ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/dbcontrolgrid/unit1.lfm
Revision: 68
Committed: Tue Oct 17 10:07:58 2017 UTC (6 years, 6 months ago) by tony
File size: 20024 byte(s)
Log Message:
IBX: Editor Positioning tidy up
FBINTF: Trap uninitialised SQL parameters on SQL Exec. Avoids Unknown SQL Type errors.
Consistent setting of Modified (SQLParam).

File Contents

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