ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/employee/unit1.lfm
Revision: 107
Committed: Thu Jan 18 14:37:40 2018 UTC (6 years, 3 months ago) by tony
File size: 25734 byte(s)
Log Message:
Fixes merged

File Contents

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