ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/employee/unit1.lfm
Revision: 23
Committed: Fri Mar 13 10:26:52 2015 UTC (9 years, 1 month ago) by tony
File size: 24988 byte(s)
Log Message:
Committing updates for Release R1-2-1

File Contents

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