ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/dbcontrolgrid/unit1.lfm
Revision: 41
Committed: Sat Jul 16 12:25:48 2016 UTC (8 years, 4 months ago) by tony
File size: 19865 byte(s)
Log Message:
Committing updates for Release R1-4-2

File Contents

# User Rev Content
1 tony 23 object Form1: TForm1
2 tony 31 Left = 248
3 tony 23 Height = 575
4 tony 31 Top = 397
5 tony 23 Width = 1026
6     Caption = 'Employee List'
7     ClientHeight = 575
8     ClientWidth = 1026
9     OnClose = FormClose
10     OnShow = FormShow
11 tony 41 LCLVersion = '1.6.0.4'
12 tony 23 object Button1: TButton
13     Left = 939
14     Height = 25
15     Top = 48
16     Width = 75
17     Action = AddEmployee
18     Anchors = [akTop, akRight]
19     TabOrder = 0
20     end
21     object Button3: TButton
22     Left = 939
23     Height = 25
24     Top = 80
25     Width = 75
26     Action = DeleteEmployee
27     Anchors = [akTop, akRight]
28     TabOrder = 1
29     end
30     object Label1: TLabel
31     Left = 17
32     Height = 15
33     Top = 14
34     Width = 87
35     Caption = 'Started Before'
36     ParentColor = False
37     end
38     object BeforeDate: TDateEdit
39     Left = 112
40     Height = 25
41     Top = 8
42 tony 37 Width = 96
43 tony 23 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
44     OKCaption = 'OK'
45     CancelCaption = 'Cancel'
46     DateOrder = doNone
47     ButtonWidth = 23
48     NumGlyphs = 1
49     MaxLength = 0
50     OnChange = BeforeDateChange
51     TabOrder = 2
52     end
53     object Label2: TLabel
54     Left = 241
55     Height = 15
56     Top = 14
57     Width = 78
58     Caption = 'Started After'
59     ParentColor = False
60     end
61     object AfterDate: TDateEdit
62     Left = 333
63     Height = 25
64     Top = 8
65 tony 37 Width = 91
66 tony 23 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
67     OKCaption = 'OK'
68     CancelCaption = 'Cancel'
69     DateOrder = doNone
70     ButtonWidth = 23
71     NumGlyphs = 1
72     MaxLength = 0
73     OnChange = BeforeDateChange
74     TabOrder = 3
75     end
76     object Panel1: TPanel
77     Left = 12
78     Height = 527
79     Top = 42
80     Width = 904
81     Anchors = [akTop, akLeft, akRight, akBottom]
82     BevelOuter = bvNone
83     ClientHeight = 527
84     ClientWidth = 904
85     ParentColor = False
86     TabOrder = 4
87     object DBControlGrid1: TDBControlGrid
88     Left = 0
89     Height = 477
90     Top = 0
91     Width = 904
92     Align = alClient
93     AlternateColor = clSkyBlue
94     AltColorStartNormal = True
95     Color = clWhite
96     DataSource = EmployeeSource
97     DefaultPositionAtEnd = False
98     DrawPanel = EmployeeEditorPanel
99     Options = [dgpIndicator]
100     TabOrder = 1
101     ColWidths = (
102     12
103     890
104     )
105     object EmployeeEditorPanel: TPanel
106     Left = 12
107     Height = 80
108     Top = 0
109     Width = 890
110     Anchors = []
111     BevelOuter = bvNone
112     BorderWidth = 2
113     BorderStyle = bsSingle
114     ClientHeight = 78
115     ClientWidth = 888
116     Color = clWhite
117     ParentColor = False
118     TabOrder = 0
119     Visible = False
120     object Label3: TLabel
121     Left = 0
122     Height = 15
123     Top = 7
124     Width = 83
125     Caption = 'Employee No.'
126     ParentColor = False
127     end
128     object DBEdit1: TDBEdit
129     Left = 90
130     Height = 25
131     Top = 2
132     Width = 120
133     DataField = 'EMP_NO'
134     DataSource = EmployeeSource
135     CharCase = ecNormal
136     MaxLength = 0
137     TabOrder = 0
138     end
139     object Label4: TLabel
140     Left = 12
141     Height = 15
142     Top = 32
143     Width = 64
144     Caption = 'First Name'
145     ParentColor = False
146     end
147     object DBEdit2: TDBEdit
148     Left = 90
149     Height = 25
150     Top = 24
151     Width = 120
152     DataField = 'FIRST_NAME'
153     DataSource = EmployeeSource
154     CharCase = ecNormal
155     MaxLength = 0
156     TabOrder = 1
157     end
158     object Label5: TLabel
159     Left = 12
160     Height = 15
161     Top = 56
162     Width = 64
163     Caption = 'Last Name'
164     ParentColor = False
165     end
166     object DBEdit3: TDBEdit
167     Left = 90
168     Height = 25
169     Top = 46
170     Width = 120
171     DataField = 'LAST_NAME'
172     DataSource = EmployeeSource
173     CharCase = ecNormal
174     MaxLength = 0
175     TabOrder = 2
176     end
177     object Label6: TLabel
178     Left = 216
179     Height = 15
180     Top = 7
181     Width = 77
182     Caption = 'Date Started'
183     ParentColor = False
184     end
185     object IBDateEdit1: TDBDateEdit
186     Left = 300
187     Height = 25
188     Top = 2
189 tony 37 Width = 100
190 tony 23 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
191     OKCaption = 'OK'
192     CancelCaption = 'Cancel'
193     DateOrder = doNone
194     ButtonWidth = 23
195     AutoSelect = False
196     NumGlyphs = 1
197     MaxLength = 0
198     TabOrder = 3
199     DataField = 'HIRE_DATE'
200     DataSource = EmployeeSource
201     end
202     object Label7: TLabel
203     Left = 252
204     Height = 15
205     Top = 32
206     Width = 37
207     Caption = 'Salary'
208     ParentColor = False
209     end
210     object DBEdit4: TDBEdit
211     Left = 300
212     Height = 25
213     Top = 24
214     Width = 104
215     DataField = 'SALARY'
216     DataSource = EmployeeSource
217     CharCase = ecNormal
218     MaxLength = 0
219     TabOrder = 5
220     end
221     object Label8: TLabel
222     Left = 814
223     Height = 15
224     Top = 54
225     Width = 24
226     Anchors = [akTop, akRight]
227     Caption = 'Ext.'
228     ParentColor = False
229     end
230     object DBEdit5: TDBEdit
231     Left = 838
232     Height = 25
233     Top = 48
234     Width = 40
235     DataField = 'PHONE_EXT'
236     DataSource = EmployeeSource
237     Anchors = [akTop, akRight]
238     CharCase = ecNormal
239     MaxLength = 0
240     TabOrder = 4
241     end
242     object Label9: TLabel
243     Left = 536
244     Height = 15
245     Top = 7
246     Width = 51
247     Caption = 'Location'
248     ParentColor = False
249     end
250     object Label10: TLabel
251     Left = 413
252     Height = 15
253     Top = 9
254     Width = 59
255     Caption = 'Job Grade'
256     ParentColor = False
257     end
258     object JobGradeDBComboBox: TDBComboBox
259     Left = 480
260     Height = 25
261 tony 41 Top = 0
262 tony 23 Width = 48
263     AutoSize = False
264     DataField = 'JOB_GRADE'
265     DataSource = EmployeeSource
266     ItemHeight = 0
267     Items.Strings = (
268     '1'
269     '2'
270     '3'
271     '4'
272     '5'
273     )
274     MaxLength = 0
275     OnCloseUp = JobGradeDBComboBoxCloseUp
276     Style = csDropDownList
277     TabOrder = 6
278     end
279     object Label11: TLabel
280     Left = 536
281     Height = 15
282     Top = 32
283     Width = 48
284     Caption = 'Job Title'
285     ParentColor = False
286     end
287     object Label12: TLabel
288     Left = 256
289     Height = 15
290     Top = 54
291     Width = 33
292     Caption = 'Dept.'
293     ParentColor = False
294     end
295     object SpeedButton1: TSpeedButton
296     Left = 786
297     Height = 25
298     Top = 48
299     Width = 23
300     Action = SelectDept
301     Anchors = [akTop, akRight]
302     end
303     object DBEdit6: TDBEdit
304     Left = 300
305     Height = 25
306     Top = 48
307     Width = 478
308     DataField = 'DEPT_PATH'
309     DataSource = EmployeeSource
310     ReadOnly = True
311     Anchors = [akTop, akLeft, akRight]
312     CharCase = ecNormal
313     MaxLength = 0
314     TabOrder = 7
315     end
316     object DBEdit7: TDBEdit
317     Left = 592
318     Height = 25
319     Top = 0
320     Width = 246
321     DataField = 'JOB_COUNTRY'
322     DataSource = EmployeeSource
323     ReadOnly = True
324     CharCase = ecNormal
325     MaxLength = 0
326     TabOrder = 8
327     end
328     object DBEdit8: TDBEdit
329     Left = 592
330     Height = 25
331     Top = 24
332     Width = 246
333     DataField = 'JOB_TITLE'
334     DataSource = EmployeeSource
335     CharCase = ecNormal
336     MaxLength = 0
337     TabOrder = 9
338     end
339     object SpeedButton2: TSpeedButton
340     Left = 847
341     Height = 22
342     Top = 0
343     Width = 23
344     Action = EditLocationAction
345     end
346     object SpeedButton3: TSpeedButton
347     Left = 847
348     Height = 22
349     Top = 24
350     Width = 23
351     Action = EditJobCodeAction
352     end
353     end
354     end
355     object Panel2: TPanel
356     Left = 0
357     Height = 50
358     Top = 477
359     Width = 904
360     Align = alBottom
361     BevelOuter = bvNone
362     ClientHeight = 50
363     ClientWidth = 904
364     ParentColor = False
365     TabOrder = 0
366     object Button5: TButton
367     Left = 80
368     Height = 25
369     Top = 16
370     Width = 75
371     Action = CancelChanges
372     Anchors = [akLeft, akBottom]
373     TabOrder = 0
374     end
375     object Button4: TButton
376     Left = 1
377     Height = 25
378     Top = 16
379     Width = 75
380     Action = SaveChanges
381     Anchors = [akLeft, akBottom]
382     TabOrder = 1
383     end
384     object DBText1: TDBText
385     Left = 832
386     Height = 27
387     Top = 16
388     Width = 49
389     Alignment = taRightJustify
390     Anchors = [akTop, akRight, akBottom]
391     DataField = 'TOTALSALARIES'
392     DataSource = TotalsSource
393     ParentColor = False
394     end
395     end
396     end
397     object Label13: TLabel
398     Left = 456
399     Height = 15
400     Top = 14
401     Width = 79
402     Caption = 'Salary Range'
403     ParentColor = False
404     end
405     object SalaryRange: TComboBox
406     Left = 544
407 tony 33 Height = 25
408 tony 23 Top = 8
409     Width = 272
410     ItemHeight = 0
411     ItemIndex = 0
412     Items.Strings = (
413     'None Specified'
414     'Below $40,000'
415     'Between $40,000 and $100,000'
416     'Above $100,000'
417     )
418     OnCloseUp = BeforeDateChange
419     Style = csDropDownList
420     TabOrder = 5
421     Text = 'None Specified'
422     end
423     object IBDatabase1: TIBDatabase
424     Connected = False
425     AllowStreamedConnected = False
426 tony 27 DatabaseName = 'localhost:employee'
427 tony 23 Params.Strings = (
428     'user_name=SYSDBA'
429 tony 33 'lc_ctype=UTF8'
430 tony 23 )
431     DefaultTransaction = IBTransaction1
432     IdleTimer = 0
433     TraceFlags = []
434 tony 41 UseDefaultSystemCodePage = False
435 tony 23 left = 832
436     top = 168
437     end
438     object IBTransaction1: TIBTransaction
439     Active = False
440     DefaultDatabase = IBDatabase1
441     Params.Strings = (
442     'read_committed'
443     'rec_version'
444     'nowait'
445     )
446     left = 872
447     top = 168
448     end
449     object EmployeeSource: TDataSource
450     DataSet = Employees
451     left = 832
452     top = 336
453     end
454     object ActionList1: TActionList
455     left = 832
456     top = 416
457     object AddEmployee: TAction
458     Caption = 'Add'
459     OnExecute = AddEmployeeExecute
460     end
461     object EditEmployee: TAction
462     Caption = 'Edit'
463     OnUpdate = EditEmployeeUpdate
464     end
465     object DeleteEmployee: TAction
466     Caption = 'Delete'
467     OnExecute = DeleteEmployeeExecute
468     OnUpdate = EditEmployeeUpdate
469     end
470     object SaveChanges: TAction
471     Caption = 'Save'
472     OnExecute = SaveChangesExecute
473     OnUpdate = SaveChangesUpdate
474     end
475     object CancelChanges: TAction
476     Caption = 'Cancel'
477     OnExecute = CancelChangesExecute
478     OnUpdate = SaveChangesUpdate
479     end
480     object SelectDept: TAction
481     Caption = '...'
482     OnExecute = SelectDeptExecute
483     end
484     object EditJobCodeAction: TAction
485     Caption = '...'
486     OnExecute = EditJobCodeActionExecute
487     OnUpdate = EditJobCodeActionUpdate
488     end
489     object EditLocationAction: TAction
490     Caption = '...'
491     OnExecute = EditLocationActionExecute
492     OnUpdate = EditJobCodeActionUpdate
493     end
494     end
495     object TotalsQuery: TIBQuery
496     Database = IBDatabase1
497     Transaction = IBTransaction1
498     BeforeOpen = EmployeesBeforeOpen
499     BufferChunks = 1000
500     CachedUpdates = False
501     GenerateParamNames = False
502     GeneratorField.ApplyOnEvent = gaeOnNewRecord
503     SQL.Strings = (
504     'Select sum(Salary) as TotalSalaries'
505     'From EMPLOYEE'
506     )
507     Params = <>
508 tony 27 DataSetCloseAction = dcDiscardChanges
509 tony 23 left = 872
510     top = 376
511     object TotalsQueryTOTALSALARIES: TIBBCDField
512     DisplayWidth = 18
513     FieldKind = fkData
514     FieldName = 'TOTALSALARIES'
515     Index = 0
516     LookupCache = False
517     ProviderFlags = [pfInUpdate, pfInWhere]
518     ReadOnly = False
519     Required = False
520     OnGetText = TotalsQueryTOTALSALARIESGetText
521     Precision = 18
522     Currency = False
523     MaxValue = 0
524     MinValue = 0
525     Size = 2
526     end
527     end
528     object TotalsSource: TDataSource
529     DataSet = TotalsQuery
530     left = 832
531     top = 376
532     end
533     object Employees: TIBDataSet
534     Database = IBDatabase1
535     Transaction = IBTransaction1
536     AfterDelete = EmployeesAfterDelete
537     AfterEdit = EmployeesAfterDelete
538     AfterInsert = EmployeesAfterInsert
539     AfterOpen = EmployeesAfterOpen
540     AfterPost = EmployeesAfterPost
541     BeforeClose = EmployeesBeforeClose
542     BeforeOpen = EmployeesBeforeOpen
543     BufferChunks = 1000
544     CachedUpdates = False
545     DeleteSQL.Strings = (
546     'Delete From EMPLOYEE A'
547     'Where A.EMP_NO = :EMP_NO'
548     )
549     InsertSQL.Strings = (
550     'Insert Into EMPLOYEE(EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY)'
551     'Values(:EMP_NO, :FIRST_NAME, :LAST_NAME, :PHONE_EXT, :HIRE_DATE, :DEPT_NO, :JOB_CODE, :JOB_GRADE, :JOB_COUNTRY, :SALARY)'
552     )
553     RefreshSQL.Strings = (
554     'with recursive Depts As ('
555     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,'
556     'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
557     'From DEPARTMENT Where HEAD_DEPT is NULL '
558     'UNION ALL'
559     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, Depts.DEPT_PATH || '' / '' || DEPARTMENT as DEPT_PATH,'
560     'Depts.DEPT_KEY_PATH || '';'' || DEPT_NO as DEPT_KEY_PATH'
561     'From DEPARTMENT '
562     'JOIN Depts On HEAD_DEPT = Depts.DEPT_NO'
563     ')'
564     ''
565     'Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
566     'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH, J.JOB_TITLE'
567     'From EMPLOYEE A'
568     'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
569     'JOIN JOB J on J.JOB_CODE = A.JOB_CODE'
570     'Where A.EMP_NO = :EMP_NO'
571     )
572     SelectSQL.Strings = (
573     'with recursive Depts As ('
574     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,'
575     'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
576     'From DEPARTMENT Where HEAD_DEPT is NULL '
577     'UNION ALL'
578     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, Depts.DEPT_PATH || '' / '' || DEPARTMENT as DEPT_PATH,'
579     'Depts.DEPT_KEY_PATH || '';'' || DEPT_NO as DEPT_KEY_PATH'
580     'From DEPARTMENT '
581     'JOIN Depts On HEAD_DEPT = Depts.DEPT_NO'
582     ')'
583     ''
584     'Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
585     'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH, J.JOB_TITLE'
586     'From EMPLOYEE A'
587     'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
588     'JOIN JOB J on J.JOB_CODE = A.JOB_CODE'
589     'Order by A.LAST_NAME'
590     )
591     ModifySQL.Strings = (
592     'Update EMPLOYEE A Set '#13#10' A.DEPT_NO = :DEPT_NO,'#13#10' A.FIRST_NAME = :FIRST_NAME,'#13#10' A.HIRE_DATE = :HIRE_DATE,'#13#10' A.JOB_CODE = :JOB_CODE,'#13#10' A.JOB_COUNTRY = :JOB_COUNTRY,'#13#10' A.JOB_GRADE = :JOB_GRADE,'#13#10' A.LAST_NAME = :LAST_NAME,'#13#10' A.PHONE_EXT = :PHONE_EXT,'#13#10' A.SALARY = :SALARY'
593     'Where A.EMP_NO = :OLD_EMP_NO'
594     )
595     GeneratorField.Generator = 'EMP_NO_GEN'
596     GeneratorField.Field = 'EMP_NO'
597     GeneratorField.ApplyOnEvent = gaeOnNewRecord
598     GenerateParamNames = False
599 tony 27 DataSetCloseAction = dcSaveChanges
600 tony 23 AfterTransactionEnd = EmployeesAfterTransactionEnd
601     left = 872
602     top = 336
603     object EmployeesEMP_NO: TSmallintField
604     DisplayWidth = 10
605     FieldKind = fkData
606     FieldName = 'EMP_NO'
607     Index = 0
608     LookupCache = False
609     ProviderFlags = [pfInUpdate, pfInWhere]
610     ReadOnly = False
611     Required = True
612     end
613     object EmployeesFIRST_NAME: TIBStringField
614     DisplayWidth = 15
615     FieldKind = fkData
616     FieldName = 'FIRST_NAME'
617     Index = 1
618     LookupCache = False
619     ProviderFlags = [pfInUpdate, pfInWhere]
620     ReadOnly = False
621     Required = True
622     Size = 15
623     end
624     object EmployeesLAST_NAME: TIBStringField
625     DisplayWidth = 20
626     FieldKind = fkData
627     FieldName = 'LAST_NAME'
628     Index = 2
629     LookupCache = False
630     ProviderFlags = [pfInUpdate, pfInWhere]
631     ReadOnly = False
632     Required = True
633     end
634     object EmployeesPHONE_EXT: TIBStringField
635     Alignment = taRightJustify
636     DisplayWidth = 4
637     FieldKind = fkData
638     FieldName = 'PHONE_EXT'
639     Index = 3
640     LookupCache = False
641     ProviderFlags = [pfInUpdate, pfInWhere]
642     ReadOnly = False
643     Required = False
644     Size = 4
645     end
646     object EmployeesHIRE_DATE: TDateTimeField
647     DisplayWidth = 10
648     FieldKind = fkData
649     FieldName = 'HIRE_DATE'
650     Index = 4
651     LookupCache = False
652     ProviderFlags = [pfInUpdate, pfInWhere]
653     ReadOnly = False
654     Required = True
655     end
656     object EmployeesDEPT_NO: TIBStringField
657     DisplayWidth = 3
658     FieldKind = fkData
659     FieldName = 'DEPT_NO'
660     Index = 5
661     LookupCache = False
662     ProviderFlags = [pfInUpdate, pfInWhere]
663     ReadOnly = False
664     Required = True
665     Size = 3
666     end
667     object EmployeesJOB_CODE: TIBStringField
668     DisplayWidth = 5
669     FieldKind = fkData
670     FieldName = 'JOB_CODE'
671     Index = 6
672     LookupCache = False
673     ProviderFlags = [pfInUpdate, pfInWhere]
674     ReadOnly = False
675     Required = True
676     Size = 5
677     end
678     object EmployeesJOB_GRADE: TSmallintField
679     DisplayWidth = 10
680     FieldKind = fkData
681     FieldName = 'JOB_GRADE'
682     Index = 7
683     LookupCache = False
684     ProviderFlags = [pfInUpdate, pfInWhere]
685     ReadOnly = False
686     Required = True
687     end
688     object EmployeesJOB_COUNTRY: TIBStringField
689     DisplayWidth = 15
690     FieldKind = fkData
691     FieldName = 'JOB_COUNTRY'
692     Index = 8
693     LookupCache = False
694     ProviderFlags = [pfInUpdate, pfInWhere]
695     ReadOnly = False
696     Required = True
697     Size = 15
698     end
699     object EmployeesSALARY: TIBBCDField
700     DisplayWidth = 18
701     FieldKind = fkData
702     FieldName = 'SALARY'
703     Index = 9
704     LookupCache = False
705     ProviderFlags = [pfInUpdate, pfInWhere]
706     ReadOnly = False
707     Required = True
708     OnGetText = EmployeesSALARYGetText
709     Precision = 18
710     Currency = False
711     MaxValue = 0
712     MinValue = 0
713     Size = 2
714     end
715     object EmployeesFULL_NAME: TIBStringField
716     DisplayWidth = 37
717     FieldKind = fkData
718     FieldName = 'FULL_NAME'
719     Index = 10
720     LookupCache = False
721     ProviderFlags = [pfInUpdate, pfInWhere]
722     ReadOnly = True
723     Required = False
724     Size = 37
725     end
726     object EmployeesDEPT_PATH: TIBStringField
727     DisplayWidth = 256
728     FieldKind = fkData
729     FieldName = 'DEPT_PATH'
730     Index = 11
731     LookupCache = False
732     ProviderFlags = [pfInUpdate, pfInWhere]
733     ReadOnly = False
734     Required = True
735     Size = 256
736     end
737     object EmployeesDEPT_KEY_PATH: TIBStringField
738     DisplayWidth = 64
739     FieldKind = fkData
740     FieldName = 'DEPT_KEY_PATH'
741     Index = 12
742     LookupCache = False
743     ProviderFlags = [pfInUpdate, pfInWhere]
744     ReadOnly = False
745     Required = True
746     Size = 64
747     end
748     object EmployeesJOB_TITLE: TIBStringField
749     DisplayWidth = 25
750     FieldKind = fkData
751     FieldName = 'JOB_TITLE'
752     Index = 13
753     LookupCache = False
754     ProviderFlags = [pfInUpdate, pfInWhere]
755     ReadOnly = False
756     Required = True
757     Size = 25
758     end
759     end
760     end