ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/employee/unit1.lfm
Revision: 39
Committed: Tue May 17 08:14:52 2016 UTC (8 years, 5 months ago) by tony
File size: 25553 byte(s)
Log Message:
Committing updates for Release R1-4-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 39 Width = 932
6 tony 21 Caption = 'Employee List'
7     ClientHeight = 482
8 tony 39 ClientWidth = 932
9 tony 7 OnClose = FormClose
10     OnShow = FormShow
11 tony 39 LCLVersion = '1.6.0.4'
12 tony 7 object Button1: TButton
13 tony 39 Left = 845
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 39 Left = 845
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 39 Left = 845
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 tony 39 Width = 87
44 tony 21 Caption = 'Started Before'
45     ParentColor = False
46     end
47     object BeforeDate: TDateEdit
48     Left = 112
49 tony 39 Height = 25
50 tony 21 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 tony 39 Width = 78
67 tony 21 Caption = 'Started After'
68     ParentColor = False
69     end
70     object AfterDate: TDateEdit
71     Left = 333
72 tony 39 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 tony 39 Width = 810
90 tony 21 Anchors = [akTop, akLeft, akRight, akBottom]
91     BevelOuter = bvNone
92     ClientHeight = 434
93 tony 39 ClientWidth = 810
94 tony 21 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 tony 39 Width = 810
102 tony 21 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 tony 39 Width = 810
204 tony 21 Align = alBottom
205     BevelOuter = bvNone
206     ClientHeight = 50
207 tony 39 ClientWidth = 810
208 tony 21 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 tony 39 Width = 49
233 tony 21 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 tony 39 ClientHeight = 78
249     ClientWidth = 782
250 tony 21 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 tony 39 Width = 83
259 tony 21 Caption = 'Employee No.'
260     ParentColor = False
261     end
262     object DBEdit1: TDBEdit
263     Left = 90
264 tony 39 Height = 25
265 tony 21 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 tony 39 Width = 64
278 tony 21 Caption = 'First Name'
279     ParentColor = False
280     end
281     object DBEdit2: TDBEdit
282     Left = 90
283 tony 39 Height = 25
284 tony 21 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 tony 39 Width = 64
297 tony 21 Caption = 'Last Name'
298     ParentColor = False
299     end
300     object DBEdit3: TDBEdit
301     Left = 90
302 tony 39 Height = 25
303 tony 21 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 tony 39 Width = 77
316 tony 21 Caption = 'Date Started'
317     ParentColor = False
318     end
319     object IBDateEdit1: TDBDateEdit
320     Left = 300
321 tony 39 Height = 25
322 tony 21 Top = 2
323 tony 37 Width = 104
324 tony 21 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
325     OKCaption = 'OK'
326     CancelCaption = 'Cancel'
327     DateOrder = doNone
328     ButtonWidth = 23
329 tony 27 AutoSelect = False
330 tony 21 NumGlyphs = 1
331     MaxLength = 0
332     TabOrder = 3
333     DataField = 'HIRE_DATE'
334     DataSource = EmployeeSource
335     end
336     object Label7: TLabel
337     Left = 252
338     Height = 15
339     Top = 32
340 tony 39 Width = 37
341 tony 21 Caption = 'Salary'
342     ParentColor = False
343     end
344     object DBEdit4: TDBEdit
345     Left = 300
346 tony 39 Height = 25
347 tony 21 Top = 24
348     Width = 104
349     DataField = 'SALARY'
350     DataSource = EmployeeSource
351     CharCase = ecNormal
352     MaxLength = 0
353     TabOrder = 5
354     end
355     object Label8: TLabel
356 tony 39 Left = 708
357 tony 21 Height = 15
358     Top = 54
359 tony 39 Width = 24
360 tony 21 Anchors = [akTop, akRight]
361     Caption = 'Ext.'
362     ParentColor = False
363     end
364     object DBEdit5: TDBEdit
365 tony 39 Left = 732
366     Height = 25
367 tony 21 Top = 48
368     Width = 40
369     DataField = 'PHONE_EXT'
370     DataSource = EmployeeSource
371     Anchors = [akTop, akRight]
372     CharCase = ecNormal
373     MaxLength = 0
374     TabOrder = 4
375     end
376     object Label9: TLabel
377     Left = 536
378     Height = 15
379     Top = 7
380 tony 39 Width = 51
381 tony 21 Caption = 'Location'
382     ParentColor = False
383     end
384     object Label10: TLabel
385     Left = 413
386     Height = 15
387     Top = 9
388 tony 39 Width = 59
389 tony 21 Caption = 'Job Grade'
390     ParentColor = False
391     end
392     object JobGradeDBComboBox: TDBComboBox
393     Left = 480
394 tony 37 Height = 23
395 tony 21 Top = 2
396     Width = 48
397     AutoSize = False
398     DataField = 'JOB_GRADE'
399     DataSource = EmployeeSource
400 tony 39 ItemHeight = 0
401 tony 21 Items.Strings = (
402     '1'
403     '2'
404     '3'
405     '4'
406     '5'
407     )
408     MaxLength = 0
409     OnCloseUp = JobGradeDBComboBoxCloseUp
410     Style = csDropDownList
411     TabOrder = 6
412     end
413     object Label11: TLabel
414     Left = 536
415     Height = 15
416     Top = 32
417 tony 39 Width = 48
418 tony 21 Caption = 'Job Title'
419     ParentColor = False
420     end
421     object Label12: TLabel
422     Left = 256
423     Height = 15
424     Top = 54
425 tony 39 Width = 33
426 tony 21 Caption = 'Dept.'
427     ParentColor = False
428     end
429     object SpeedButton1: TSpeedButton
430 tony 39 Left = 680
431 tony 21 Height = 25
432     Top = 48
433     Width = 23
434     Action = SelectDept
435     Anchors = [akTop, akRight]
436     end
437     object DBEdit6: TDBEdit
438     Left = 300
439 tony 39 Height = 25
440 tony 21 Top = 48
441 tony 39 Width = 372
442 tony 21 DataField = 'DEPT_PATH'
443     DataSource = EmployeeSource
444     ReadOnly = True
445     Anchors = [akTop, akLeft, akRight]
446     CharCase = ecNormal
447     MaxLength = 0
448     TabOrder = 7
449     end
450     object IBLookupComboEditBox2: TIBLookupComboEditBox
451     Left = 600
452 tony 37 Height = 23
453 tony 21 Top = 0
454 tony 39 Width = 172
455 tony 21 Anchors = [akTop, akLeft, akRight]
456     AutoSize = False
457     DataField = 'JOB_COUNTRY'
458     DataSource = EmployeeSource
459     KeyField = 'COUNTRY'
460     ListField = 'COUNTRY'
461     ListFieldIndex = 0
462     ListSource = CountrySource
463     LookupCache = False
464     Style = csDropDownList
465     TabOrder = 8
466     AutoInsert = False
467     AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
468 tony 39 ItemHeight = 0
469 tony 21 end
470     object IBLookupComboEditBox1: TIBLookupComboEditBox
471     Left = 600
472 tony 37 Height = 23
473 tony 21 Top = 24
474 tony 39 Width = 172
475 tony 21 Anchors = [akTop, akLeft, akRight]
476     AutoSize = False
477     DataField = 'JOB_CODE'
478     DataSource = EmployeeSource
479     KeyField = 'JOB_CODE'
480     ListField = 'JOB_TITLE'
481     ListFieldIndex = 0
482     ListSource = JobCodeSource
483     LookupCache = False
484     Style = csDropDownList
485     TabOrder = 9
486     AutoInsert = False
487     AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
488 tony 39 ItemHeight = 0
489 tony 21 end
490     end
491 tony 7 end
492 tony 21 object Label13: TLabel
493     Left = 456
494     Height = 15
495     Top = 14
496 tony 39 Width = 79
497 tony 21 Caption = 'Salary Range'
498     ParentColor = False
499     end
500     object SalaryRange: TComboBox
501     Left = 544
502 tony 39 Height = 25
503 tony 21 Top = 8
504     Width = 272
505 tony 39 ItemHeight = 0
506 tony 21 ItemIndex = 0
507     Items.Strings = (
508     'None Specified'
509     'Below $40,000'
510     'Between $40,000 and $100,000'
511     'Above $100,000'
512     )
513     OnCloseUp = BeforeDateChange
514     Style = csDropDownList
515     TabOrder = 6
516     Text = 'None Specified'
517     end
518 tony 7 object IBDatabase1: TIBDatabase
519 tony 21 Connected = False
520 tony 7 AllowStreamedConnected = False
521 tony 37 DatabaseName = 'employee'
522 tony 7 Params.Strings = (
523     'user_name=SYSDBA'
524 tony 33 'lc_ctype=UTF8'
525 tony 7 )
526     DefaultTransaction = IBTransaction1
527     IdleTimer = 0
528     TraceFlags = []
529 tony 39 UseDefaultSystemCodePage = True
530 tony 21 left = 832
531     top = 168
532 tony 7 end
533     object IBTransaction1: TIBTransaction
534     Active = False
535     DefaultDatabase = IBDatabase1
536     Params.Strings = (
537     'read_committed'
538     'rec_version'
539     'nowait'
540     )
541 tony 21 left = 872
542     top = 168
543 tony 7 end
544 tony 21 object EmployeeSource: TDataSource
545     DataSet = Employees
546     left = 832
547     top = 336
548     end
549     object ActionList1: TActionList
550     left = 832
551     top = 416
552     object AddEmployee: TAction
553     Caption = 'Add'
554     OnExecute = AddEmployeeExecute
555     end
556     object EditEmployee: TAction
557     Caption = 'Edit'
558     OnExecute = EditEmployeeExecute
559     OnUpdate = EditEmployeeUpdate
560     end
561     object DeleteEmployee: TAction
562     Caption = 'Delete'
563     OnExecute = DeleteEmployeeExecute
564     OnUpdate = EditEmployeeUpdate
565     end
566     object SaveChanges: TAction
567     Caption = 'Save'
568     OnExecute = SaveChangesExecute
569     OnUpdate = SaveChangesUpdate
570     end
571     object CancelChanges: TAction
572     Caption = 'Cancel'
573     OnExecute = CancelChangesExecute
574     OnUpdate = SaveChangesUpdate
575     end
576     object SelectDept: TAction
577     Caption = '...'
578     OnExecute = SelectDeptExecute
579     end
580     end
581     object CountrySource: TDataSource
582     DataSet = Countries
583     left = 832
584     top = 296
585     end
586     object TotalsQuery: TIBQuery
587 tony 7 Database = IBDatabase1
588     Transaction = IBTransaction1
589 tony 21 BeforeOpen = EmployeesBeforeOpen
590 tony 7 BufferChunks = 1000
591     CachedUpdates = False
592 tony 19 GenerateParamNames = False
593 tony 7 GeneratorField.ApplyOnEvent = gaeOnNewRecord
594     SQL.Strings = (
595 tony 21 'Select sum(Salary) as TotalSalaries'
596     'From EMPLOYEE'
597 tony 7 )
598     Params = <>
599 tony 27 DataSetCloseAction = dcDiscardChanges
600 tony 21 left = 872
601     top = 376
602     object TotalsQueryTOTALSALARIES: TIBBCDField
603     DisplayWidth = 18
604     FieldKind = fkData
605     FieldName = 'TOTALSALARIES'
606     Index = 0
607     LookupCache = False
608     ProviderFlags = [pfInUpdate, pfInWhere]
609     ReadOnly = False
610     Required = False
611     OnGetText = EmployeesSALARYGetText
612     Precision = 18
613     Currency = False
614     MaxValue = 0
615     MinValue = 0
616     Size = 2
617     end
618     end
619     object TotalsSource: TDataSource
620     DataSet = TotalsQuery
621     left = 832
622     top = 376
623     end
624     object Employees: TIBDataSet
625     Database = IBDatabase1
626     Transaction = IBTransaction1
627     AfterDelete = EmployeesAfterDelete
628     AfterEdit = EmployeesAfterDelete
629     AfterInsert = EmployeesAfterInsert
630     AfterOpen = EmployeesAfterOpen
631     AfterPost = EmployeesAfterPost
632     AfterScroll = EmployeesAfterScroll
633     BeforeClose = EmployeesBeforeClose
634     BeforeOpen = EmployeesBeforeOpen
635     BufferChunks = 1000
636     CachedUpdates = False
637     DeleteSQL.Strings = (
638     'Delete From EMPLOYEE A'
639     'Where A.EMP_NO = :EMP_NO'
640     )
641     InsertSQL.Strings = (
642     'Insert Into EMPLOYEE(EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY)'
643     'Values(:EMP_NO, :FIRST_NAME, :LAST_NAME, :PHONE_EXT, :HIRE_DATE, :DEPT_NO, :JOB_CODE, :JOB_GRADE, :JOB_COUNTRY, :SALARY)'
644     )
645     RefreshSQL.Strings = (
646     'with recursive Depts As ('
647     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,'
648     'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
649     'From DEPARTMENT Where HEAD_DEPT is NULL '
650     'UNION ALL'
651     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, Depts.DEPT_PATH || '' / '' || DEPARTMENT as DEPT_PATH,'
652     'Depts.DEPT_KEY_PATH || '';'' || DEPT_NO as DEPT_KEY_PATH'
653     'From DEPARTMENT '
654     'JOIN Depts On HEAD_DEPT = Depts.DEPT_NO'
655     ')'
656     ''
657     'Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
658     'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH'
659     'From EMPLOYEE A'
660     'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
661     'Where A.EMP_NO = :EMP_NO'
662     )
663     SelectSQL.Strings = (
664     'with recursive Depts As ('
665     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,'
666     'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
667     'From DEPARTMENT Where HEAD_DEPT is NULL '
668     'UNION ALL'
669     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, Depts.DEPT_PATH || '' / '' || DEPARTMENT as DEPT_PATH,'
670     'Depts.DEPT_KEY_PATH || '';'' || DEPT_NO as DEPT_KEY_PATH'
671     'From DEPARTMENT '
672     'JOIN Depts On HEAD_DEPT = Depts.DEPT_NO'
673     ')'
674     ''
675     'Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
676     'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH'
677     'From EMPLOYEE A'
678     'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
679     )
680     ModifySQL.Strings = (
681     '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'
682     'Where A.EMP_NO = :OLD_EMP_NO'
683     )
684     GeneratorField.Generator = 'EMP_NO_GEN'
685     GeneratorField.Field = 'EMP_NO'
686     GeneratorField.ApplyOnEvent = gaeOnNewRecord
687     GenerateParamNames = False
688 tony 27 DataSetCloseAction = dcSaveChanges
689 tony 21 AfterTransactionEnd = EmployeesAfterTransactionEnd
690 tony 27 OnValidatePost = EmployeesValidatePost
691 tony 21 left = 872
692 tony 7 top = 336
693 tony 21 object EmployeesEMP_NO: TSmallintField
694 tony 7 DisplayWidth = 10
695     FieldKind = fkData
696     FieldName = 'EMP_NO'
697     Index = 0
698     LookupCache = False
699     ProviderFlags = [pfInUpdate, pfInWhere]
700     ReadOnly = False
701     Required = True
702     end
703 tony 21 object EmployeesFIRST_NAME: TIBStringField
704 tony 7 DisplayWidth = 15
705     FieldKind = fkData
706     FieldName = 'FIRST_NAME'
707     Index = 1
708     LookupCache = False
709     ProviderFlags = [pfInUpdate, pfInWhere]
710     ReadOnly = False
711     Required = True
712     Size = 15
713     end
714 tony 21 object EmployeesLAST_NAME: TIBStringField
715 tony 7 DisplayWidth = 20
716     FieldKind = fkData
717     FieldName = 'LAST_NAME'
718     Index = 2
719     LookupCache = False
720     ProviderFlags = [pfInUpdate, pfInWhere]
721     ReadOnly = False
722     Required = True
723     end
724 tony 21 object EmployeesPHONE_EXT: TIBStringField
725     Alignment = taRightJustify
726 tony 7 DisplayWidth = 4
727     FieldKind = fkData
728     FieldName = 'PHONE_EXT'
729     Index = 3
730     LookupCache = False
731     ProviderFlags = [pfInUpdate, pfInWhere]
732     ReadOnly = False
733     Required = False
734     Size = 4
735     end
736 tony 21 object EmployeesHIRE_DATE: TDateTimeField
737 tony 7 DisplayWidth = 10
738     FieldKind = fkData
739     FieldName = 'HIRE_DATE'
740     Index = 4
741     LookupCache = False
742     ProviderFlags = [pfInUpdate, pfInWhere]
743     ReadOnly = False
744     Required = True
745     end
746 tony 21 object EmployeesDEPT_NO: TIBStringField
747 tony 7 DisplayWidth = 3
748     FieldKind = fkData
749     FieldName = 'DEPT_NO'
750     Index = 5
751     LookupCache = False
752     ProviderFlags = [pfInUpdate, pfInWhere]
753     ReadOnly = False
754     Required = True
755     Size = 3
756     end
757 tony 21 object EmployeesJOB_CODE: TIBStringField
758 tony 7 DisplayWidth = 5
759     FieldKind = fkData
760     FieldName = 'JOB_CODE'
761     Index = 6
762     LookupCache = False
763     ProviderFlags = [pfInUpdate, pfInWhere]
764     ReadOnly = False
765     Required = True
766 tony 21 OnChange = EmployeesJOB_CODEChange
767 tony 7 Size = 5
768     end
769 tony 21 object EmployeesJOB_GRADE: TSmallintField
770 tony 7 DisplayWidth = 10
771     FieldKind = fkData
772     FieldName = 'JOB_GRADE'
773     Index = 7
774     LookupCache = False
775     ProviderFlags = [pfInUpdate, pfInWhere]
776     ReadOnly = False
777     Required = True
778 tony 21 OnChange = EmployeesJOB_GRADEChange
779 tony 7 end
780 tony 21 object EmployeesJOB_COUNTRY: TIBStringField
781 tony 7 DisplayWidth = 15
782     FieldKind = fkData
783     FieldName = 'JOB_COUNTRY'
784     Index = 8
785     LookupCache = False
786     ProviderFlags = [pfInUpdate, pfInWhere]
787     ReadOnly = False
788     Required = True
789     Size = 15
790     end
791 tony 21 object EmployeesSALARY: TIBBCDField
792     DisplayWidth = 18
793     FieldKind = fkData
794     FieldName = 'SALARY'
795     Index = 9
796     LookupCache = False
797     ProviderFlags = [pfInUpdate, pfInWhere]
798     ReadOnly = False
799     Required = True
800     OnGetText = EmployeesSALARYGetText
801     Precision = 18
802     Currency = False
803     MaxValue = 0
804     MinValue = 0
805     Size = 2
806     end
807     object EmployeesFULL_NAME: TIBStringField
808 tony 19 DisplayWidth = 37
809     FieldKind = fkData
810     FieldName = 'FULL_NAME'
811 tony 21 Index = 10
812 tony 19 LookupCache = False
813     ProviderFlags = [pfInUpdate, pfInWhere]
814     ReadOnly = True
815     Required = False
816     Size = 37
817     end
818 tony 21 object EmployeesDEPT_PATH: TIBStringField
819     DisplayWidth = 256
820 tony 7 FieldKind = fkData
821 tony 21 FieldName = 'DEPT_PATH'
822     Index = 11
823 tony 7 LookupCache = False
824     ProviderFlags = [pfInUpdate, pfInWhere]
825     ReadOnly = False
826     Required = True
827 tony 21 Size = 256
828 tony 7 end
829 tony 21 object EmployeesDEPT_KEY_PATH: TIBStringField
830     DisplayWidth = 64
831     FieldKind = fkData
832     FieldName = 'DEPT_KEY_PATH'
833     Index = 12
834     LookupCache = False
835     ProviderFlags = [pfInUpdate, pfInWhere]
836     ReadOnly = False
837     Required = True
838     Size = 64
839     end
840 tony 7 end
841 tony 21 object Countries: TIBQuery
842     Database = IBDatabase1
843     Transaction = IBTransaction1
844     BeforeOpen = CountriesBeforeOpen
845     BufferChunks = 1000
846     CachedUpdates = False
847     GenerateParamNames = False
848     GeneratorField.ApplyOnEvent = gaeOnNewRecord
849     SQL.Strings = (
850     'Select A.COUNTRY, A.CURRENCY From COUNTRY A'
851     'JOIN JOB J On J.JOB_COUNTRY = A.COUNTRY'
852     'Where J.JOB_CODE = :JOB_CODE and J.JOB_GRADE = :JOB_GRADE'
853     'Order by 1'
854     )
855     Params = <
856     item
857     DataType = ftUnknown
858     Name = 'JOB_CODE'
859     ParamType = ptInput
860     end
861     item
862     DataType = ftUnknown
863     Name = 'JOB_GRADE'
864     ParamType = ptInput
865     end>
866 tony 27 DataSetCloseAction = dcDiscardChanges
867 tony 21 left = 872
868 tony 7 top = 296
869 tony 21 ParamData = <
870     item
871     DataType = ftUnknown
872     Name = 'JOB_CODE'
873     ParamType = ptInput
874     end
875     item
876     DataType = ftUnknown
877     Name = 'JOB_GRADE'
878     ParamType = ptInput
879     end>
880 tony 7 end
881 tony 21 object JobCodeSource: TDataSource
882     DataSet = JobCodes
883     left = 832
884     top = 256
885 tony 7 end
886 tony 21 object JobCodes: TIBQuery
887     Database = IBDatabase1
888     Transaction = IBTransaction1
889     BeforeOpen = JobCodesBeforeOpen
890     BufferChunks = 1000
891     CachedUpdates = False
892     GenerateParamNames = False
893     GeneratorField.ApplyOnEvent = gaeOnNewRecord
894     SQL.Strings = (
895     'Select A.JOB_CODE, A.JOB_TITLE From JOB A'
896     'Where JOB_COUNTRY = :JOB_COUNTRY and JOB_GRADE = :JOB_GRADE'
897     'Order by Upper(JOB_TITLE)'
898 tony 7 )
899 tony 21 Params = <
900     item
901     DataType = ftUnknown
902     Name = 'JOB_COUNTRY'
903     ParamType = ptInput
904     end
905     item
906     DataType = ftUnknown
907     Name = 'JOB_GRADE'
908     ParamType = ptInput
909     end>
910 tony 27 DataSetCloseAction = dcDiscardChanges
911 tony 21 left = 872
912     top = 256
913     ParamData = <
914     item
915     DataType = ftUnknown
916     Name = 'JOB_COUNTRY'
917     ParamType = ptInput
918     end
919     item
920     DataType = ftUnknown
921     Name = 'JOB_GRADE'
922     ParamType = ptInput
923     end>
924     end
925     object Depts: TIBQuery
926     Database = IBDatabase1
927     Transaction = IBTransaction1
928     BufferChunks = 1000
929     CachedUpdates = False
930     GenerateParamNames = False
931     GeneratorField.ApplyOnEvent = gaeOnNewRecord
932     SQL.Strings = (
933     'Select A.DEPT_NO, A.DEPARTMENT From DEPARTMENT A'
934     ''
935     'Order by Upper(Department)'
936 tony 7 )
937 tony 21 Params = <>
938 tony 27 DataSetCloseAction = dcDiscardChanges
939 tony 21 left = 872
940     top = 210
941 tony 7 end
942 tony 21 object DeptsSource: TDataSource
943     DataSet = Depts
944     left = 832
945     top = 208
946     end
947 tony 29 object JobGradeChangeTimer: TTimer
948     Interval = 0
949     OnTimer = JobGradeChangeTimerTimer
950 tony 39 left = 777
951     top = 304
952 tony 29 end
953     object JobCodeChangeTimer: TTimer
954     Interval = 0
955     OnTimer = JobCodeChangeTimerTimer
956 tony 39 left = 776
957     top = 353
958 tony 29 end
959 tony 7 end