ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/dbcontrolgrid/unit1.lfm
Revision: 45
Committed: Tue Dec 6 10:33:46 2016 UTC (7 years, 4 months ago) by tony
File size: 20052 byte(s)
Log Message:
Committing updates for Release R2-0-0

File Contents

# Content
1 object Form1: TForm1
2 Left = 495
3 Height = 575
4 Top = 399
5 Width = 1026
6 Caption = 'Employee List'
7 ClientHeight = 575
8 ClientWidth = 1026
9 OnClose = FormClose
10 OnShow = FormShow
11 LCLVersion = '1.6.0.4'
12 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 Width = 96
43 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 Width = 91
66 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 Width = 100
190 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 = 23
261 Top = 0
262 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 Height = 25
408 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 CreateIfNotExists = False
426 AllowStreamedConnected = False
427 DatabaseName = 'localhost:employee'
428 Params.Strings = (
429 'user_name=SYSDBA'
430 'lc_ctype=UTF8'
431 'user_name=SYSDBA'
432 'user_name=SYSDBA'
433 )
434 DefaultTransaction = IBTransaction1
435 IdleTimer = 0
436 TraceFlags = []
437 UseDefaultSystemCodePage = False
438 left = 832
439 top = 168
440 end
441 object IBTransaction1: TIBTransaction
442 Active = False
443 DefaultDatabase = IBDatabase1
444 Params.Strings = (
445 'read_committed'
446 'rec_version'
447 'nowait'
448 )
449 left = 872
450 top = 168
451 end
452 object EmployeeSource: TDataSource
453 DataSet = Employees
454 left = 832
455 top = 336
456 end
457 object ActionList1: TActionList
458 left = 832
459 top = 416
460 object AddEmployee: TAction
461 Caption = 'Add'
462 OnExecute = AddEmployeeExecute
463 end
464 object EditEmployee: TAction
465 Caption = 'Edit'
466 OnUpdate = EditEmployeeUpdate
467 end
468 object DeleteEmployee: TAction
469 Caption = 'Delete'
470 OnExecute = DeleteEmployeeExecute
471 OnUpdate = EditEmployeeUpdate
472 end
473 object SaveChanges: TAction
474 Caption = 'Save'
475 OnExecute = SaveChangesExecute
476 OnUpdate = SaveChangesUpdate
477 end
478 object CancelChanges: TAction
479 Caption = 'Cancel'
480 OnExecute = CancelChangesExecute
481 OnUpdate = SaveChangesUpdate
482 end
483 object SelectDept: TAction
484 Caption = '...'
485 OnExecute = SelectDeptExecute
486 end
487 object EditJobCodeAction: TAction
488 Caption = '...'
489 OnExecute = EditJobCodeActionExecute
490 OnUpdate = EditJobCodeActionUpdate
491 end
492 object EditLocationAction: TAction
493 Caption = '...'
494 OnExecute = EditLocationActionExecute
495 OnUpdate = EditJobCodeActionUpdate
496 end
497 end
498 object TotalsQuery: TIBQuery
499 Database = IBDatabase1
500 Transaction = IBTransaction1
501 BeforeOpen = EmployeesBeforeOpen
502 BufferChunks = 1000
503 CachedUpdates = False
504 GenerateParamNames = False
505 GeneratorField.ApplyOnEvent = gaeOnNewRecord
506 SQL.Strings = (
507 'Select sum(Salary) as TotalSalaries'
508 'From EMPLOYEE'
509 )
510 Params = <>
511 DataSetCloseAction = dcDiscardChanges
512 left = 872
513 top = 376
514 object TotalsQueryTOTALSALARIES: TIBBCDField
515 DisplayWidth = 18
516 FieldKind = fkData
517 FieldName = 'TOTALSALARIES'
518 Index = 0
519 LookupCache = False
520 ProviderFlags = [pfInUpdate, pfInWhere]
521 ReadOnly = False
522 Required = False
523 OnGetText = TotalsQueryTOTALSALARIESGetText
524 Precision = 18
525 Currency = False
526 MaxValue = 0
527 MinValue = 0
528 Size = 2
529 end
530 end
531 object TotalsSource: TDataSource
532 DataSet = TotalsQuery
533 left = 832
534 top = 376
535 end
536 object Employees: TIBDataSet
537 Database = IBDatabase1
538 Transaction = IBTransaction1
539 AfterDelete = EmployeesAfterDelete
540 AfterEdit = EmployeesAfterDelete
541 AfterInsert = EmployeesAfterInsert
542 AfterOpen = EmployeesAfterOpen
543 AfterPost = EmployeesAfterPost
544 BeforeClose = EmployeesBeforeClose
545 BeforeOpen = EmployeesBeforeOpen
546 BufferChunks = 1000
547 CachedUpdates = False
548 DeleteSQL.Strings = (
549 'Delete From EMPLOYEE A'
550 'Where A.EMP_NO = :EMP_NO'
551 )
552 InsertSQL.Strings = (
553 'Insert Into EMPLOYEE(EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY)'
554 'Values(:EMP_NO, :FIRST_NAME, :LAST_NAME, :PHONE_EXT, :HIRE_DATE, :DEPT_NO, :JOB_CODE, :JOB_GRADE, :JOB_COUNTRY, :SALARY)'
555 )
556 RefreshSQL.Strings = (
557 'with recursive Depts As ('
558 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as '
559 'VarChar(256)) as DEPT_PATH,'
560 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
561 'From DEPARTMENT Where HEAD_DEPT is NULL '
562 'UNION ALL'
563 'Select D.DEPT_NO, D.DEPARTMENT,D. HEAD_DEPT, Depts.DEPT_PATH || '' / '' '
564 '|| D.DEPARTMENT as DEPT_PATH,'
565 'Depts.DEPT_KEY_PATH || '';'' || D.DEPT_NO as DEPT_KEY_PATH'
566 'From DEPARTMENT D'
567 'JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO'
568 ')'
569 ''
570 'Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, '
571 'A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
572 'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, '
573 'D.DEPT_KEY_PATH, J.JOB_TITLE'
574 'From EMPLOYEE A'
575 'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
576 'JOIN JOB J on J.JOB_CODE = A.JOB_CODE'
577 ''
578 'Where A.EMP_NO = :EMP_NO'
579 )
580 SelectSQL.Strings = (
581 'with recursive Depts As ('
582 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as '
583 'VarChar(256)) as DEPT_PATH,'
584 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
585 'From DEPARTMENT Where HEAD_DEPT is NULL '
586 'UNION ALL'
587 'Select D.DEPT_NO, D.DEPARTMENT,D. HEAD_DEPT, Depts.DEPT_PATH || '' / '' '
588 '|| D.DEPARTMENT as DEPT_PATH,'
589 'Depts.DEPT_KEY_PATH || '';'' || D.DEPT_NO as DEPT_KEY_PATH'
590 'From DEPARTMENT D'
591 'JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO'
592 ')'
593 ''
594 'Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, '
595 'A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
596 'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, '
597 'D.DEPT_KEY_PATH, J.JOB_TITLE'
598 'From EMPLOYEE A'
599 'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
600 'JOIN JOB J on J.JOB_CODE = A.JOB_CODE'
601 ''
602 'Order by A.LAST_NAME'
603 )
604 ModifySQL.Strings = (
605 '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'
606 'Where A.EMP_NO = :OLD_EMP_NO'
607 )
608 GeneratorField.Generator = 'EMP_NO_GEN'
609 GeneratorField.Field = 'EMP_NO'
610 GeneratorField.ApplyOnEvent = gaeOnNewRecord
611 GenerateParamNames = False
612 DataSetCloseAction = dcSaveChanges
613 AfterTransactionEnd = EmployeesAfterTransactionEnd
614 left = 872
615 top = 336
616 object EmployeesEMP_NO: TSmallintField
617 DisplayWidth = 10
618 FieldKind = fkData
619 FieldName = 'EMP_NO'
620 Index = 0
621 LookupCache = False
622 ProviderFlags = [pfInUpdate, pfInWhere]
623 ReadOnly = False
624 Required = True
625 end
626 object EmployeesFIRST_NAME: TIBStringField
627 DisplayWidth = 15
628 FieldKind = fkData
629 FieldName = 'FIRST_NAME'
630 Index = 1
631 LookupCache = False
632 ProviderFlags = [pfInUpdate, pfInWhere]
633 ReadOnly = False
634 Required = True
635 Size = 15
636 end
637 object EmployeesLAST_NAME: TIBStringField
638 DisplayWidth = 20
639 FieldKind = fkData
640 FieldName = 'LAST_NAME'
641 Index = 2
642 LookupCache = False
643 ProviderFlags = [pfInUpdate, pfInWhere]
644 ReadOnly = False
645 Required = True
646 end
647 object EmployeesPHONE_EXT: TIBStringField
648 Alignment = taRightJustify
649 DisplayWidth = 4
650 FieldKind = fkData
651 FieldName = 'PHONE_EXT'
652 Index = 3
653 LookupCache = False
654 ProviderFlags = [pfInUpdate, pfInWhere]
655 ReadOnly = False
656 Required = False
657 Size = 4
658 end
659 object EmployeesHIRE_DATE: TDateTimeField
660 DisplayWidth = 10
661 FieldKind = fkData
662 FieldName = 'HIRE_DATE'
663 Index = 4
664 LookupCache = False
665 ProviderFlags = [pfInUpdate, pfInWhere]
666 ReadOnly = False
667 Required = True
668 end
669 object EmployeesDEPT_NO: TIBStringField
670 DisplayWidth = 3
671 FieldKind = fkData
672 FieldName = 'DEPT_NO'
673 Index = 5
674 LookupCache = False
675 ProviderFlags = [pfInUpdate, pfInWhere]
676 ReadOnly = False
677 Required = True
678 Size = 3
679 end
680 object EmployeesJOB_CODE: TIBStringField
681 DisplayWidth = 5
682 FieldKind = fkData
683 FieldName = 'JOB_CODE'
684 Index = 6
685 LookupCache = False
686 ProviderFlags = [pfInUpdate, pfInWhere]
687 ReadOnly = False
688 Required = True
689 Size = 5
690 end
691 object EmployeesJOB_GRADE: TSmallintField
692 DisplayWidth = 10
693 FieldKind = fkData
694 FieldName = 'JOB_GRADE'
695 Index = 7
696 LookupCache = False
697 ProviderFlags = [pfInUpdate, pfInWhere]
698 ReadOnly = False
699 Required = True
700 end
701 object EmployeesJOB_COUNTRY: TIBStringField
702 DisplayWidth = 15
703 FieldKind = fkData
704 FieldName = 'JOB_COUNTRY'
705 Index = 8
706 LookupCache = False
707 ProviderFlags = [pfInUpdate, pfInWhere]
708 ReadOnly = False
709 Required = True
710 Size = 15
711 end
712 object EmployeesSALARY: TIBBCDField
713 DisplayWidth = 18
714 FieldKind = fkData
715 FieldName = 'SALARY'
716 Index = 9
717 LookupCache = False
718 ProviderFlags = [pfInUpdate, pfInWhere]
719 ReadOnly = False
720 Required = True
721 OnGetText = EmployeesSALARYGetText
722 Precision = 18
723 Currency = False
724 MaxValue = 0
725 MinValue = 0
726 Size = 2
727 end
728 object EmployeesFULL_NAME: TIBStringField
729 DisplayWidth = 37
730 FieldKind = fkData
731 FieldName = 'FULL_NAME'
732 Index = 10
733 LookupCache = False
734 ProviderFlags = [pfInUpdate, pfInWhere]
735 ReadOnly = True
736 Required = False
737 Size = 37
738 end
739 object EmployeesDEPT_PATH: TIBStringField
740 DisplayWidth = 256
741 FieldKind = fkData
742 FieldName = 'DEPT_PATH'
743 Index = 11
744 LookupCache = False
745 ProviderFlags = [pfInUpdate, pfInWhere]
746 ReadOnly = False
747 Required = True
748 Size = 256
749 end
750 object EmployeesDEPT_KEY_PATH: TIBStringField
751 DisplayWidth = 64
752 FieldKind = fkData
753 FieldName = 'DEPT_KEY_PATH'
754 Index = 12
755 LookupCache = False
756 ProviderFlags = [pfInUpdate, pfInWhere]
757 ReadOnly = False
758 Required = True
759 Size = 64
760 end
761 object EmployeesJOB_TITLE: TIBStringField
762 DisplayWidth = 25
763 FieldKind = fkData
764 FieldName = 'JOB_TITLE'
765 Index = 13
766 LookupCache = False
767 ProviderFlags = [pfInUpdate, pfInWhere]
768 ReadOnly = False
769 Required = True
770 Size = 25
771 end
772 end
773 end