ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/employee/unit1.lfm
Revision: 270
Committed: Fri Jan 18 11:10:37 2019 UTC (5 years, 9 months ago) by tony
File size: 26207 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 tony 270 LCLVersion = '2.0.0.3'
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 270 Connected = True
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 270 CaseSensitiveParameterNames = False
591 tony 209 EnableStatistics = False
592 tony 19 GenerateParamNames = False
593 tony 7 GeneratorField.ApplyOnEvent = gaeOnNewRecord
594 tony 209 MasterDetailDelay = 0
595 tony 7 SQL.Strings = (
596 tony 21 'Select sum(Salary) as TotalSalaries'
597     'From EMPLOYEE'
598 tony 7 )
599     Params = <>
600 tony 27 DataSetCloseAction = dcDiscardChanges
601 tony 21 left = 872
602     top = 376
603     object TotalsQueryTOTALSALARIES: TIBBCDField
604     DisplayWidth = 18
605     FieldKind = fkData
606     FieldName = 'TOTALSALARIES'
607     Index = 0
608     LookupCache = False
609     ProviderFlags = [pfInUpdate, pfInWhere]
610     ReadOnly = False
611     Required = False
612     OnGetText = EmployeesSALARYGetText
613     Precision = 18
614     Currency = False
615     MaxValue = 0
616     MinValue = 0
617     Size = 2
618     end
619     end
620     object TotalsSource: TDataSource
621     DataSet = TotalsQuery
622     left = 832
623     top = 376
624     end
625     object Employees: TIBDataSet
626 tony 45 AllowAutoActivateTransaction = False
627 tony 21 Database = IBDatabase1
628     Transaction = IBTransaction1
629 tony 107 ForcedRefresh = True
630 tony 21 AfterDelete = EmployeesAfterDelete
631     AfterEdit = EmployeesAfterDelete
632     AfterInsert = EmployeesAfterInsert
633     AfterOpen = EmployeesAfterOpen
634     AfterScroll = EmployeesAfterScroll
635     BeforeClose = EmployeesBeforeClose
636     BeforeOpen = EmployeesBeforeOpen
637 tony 45 BufferChunks = 5000
638 tony 21 CachedUpdates = False
639 tony 270 CaseSensitiveParameterNames = True
640 tony 209 EnableStatistics = False
641 tony 21 DeleteSQL.Strings = (
642     'Delete From EMPLOYEE A'
643     'Where A.EMP_NO = :EMP_NO'
644     )
645     InsertSQL.Strings = (
646     'Insert Into EMPLOYEE(EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY)'
647     'Values(:EMP_NO, :FIRST_NAME, :LAST_NAME, :PHONE_EXT, :HIRE_DATE, :DEPT_NO, :JOB_CODE, :JOB_GRADE, :JOB_COUNTRY, :SALARY)'
648     )
649     RefreshSQL.Strings = (
650     'with recursive Depts As ('
651     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,'
652     'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
653     'From DEPARTMENT Where HEAD_DEPT is NULL '
654     'UNION ALL'
655 tony 45 'Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || '' / '' || D.DEPARTMENT as DEPT_PATH,'
656     'Depts.DEPT_KEY_PATH || '';'' || D.DEPT_NO as DEPT_KEY_PATH'
657     'From DEPARTMENT D'
658     'JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO'
659 tony 21 ')'
660     ''
661     'Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
662     'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH'
663     'From EMPLOYEE A'
664     'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
665 tony 45 ''
666 tony 21 'Where A.EMP_NO = :EMP_NO'
667     )
668     SelectSQL.Strings = (
669     'with recursive Depts As ('
670     'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,'
671     'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
672     'From DEPARTMENT Where HEAD_DEPT is NULL '
673     'UNION ALL'
674 tony 45 'Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || '' / '' || D.DEPARTMENT as DEPT_PATH,'
675     'Depts.DEPT_KEY_PATH || '';'' || D.DEPT_NO as DEPT_KEY_PATH'
676     'From DEPARTMENT D'
677     'JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO'
678 tony 21 ')'
679     ''
680 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, '
681 tony 21 'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH'
682     'From EMPLOYEE A'
683     'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
684     )
685     ModifySQL.Strings = (
686     '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'
687     'Where A.EMP_NO = :OLD_EMP_NO'
688     )
689     GeneratorField.Generator = 'EMP_NO_GEN'
690     GeneratorField.Field = 'EMP_NO'
691     GeneratorField.ApplyOnEvent = gaeOnNewRecord
692     GenerateParamNames = False
693 tony 209 MasterDetailDelay = 0
694 tony 27 DataSetCloseAction = dcSaveChanges
695 tony 21 AfterTransactionEnd = EmployeesAfterTransactionEnd
696 tony 27 OnValidatePost = EmployeesValidatePost
697 tony 21 left = 872
698 tony 7 top = 336
699 tony 21 object EmployeesEMP_NO: TSmallintField
700 tony 7 DisplayWidth = 10
701     FieldKind = fkData
702     FieldName = 'EMP_NO'
703     Index = 0
704     LookupCache = False
705     ProviderFlags = [pfInUpdate, pfInWhere]
706     ReadOnly = False
707     Required = True
708     end
709 tony 21 object EmployeesFIRST_NAME: TIBStringField
710 tony 7 DisplayWidth = 15
711     FieldKind = fkData
712     FieldName = 'FIRST_NAME'
713     Index = 1
714     LookupCache = False
715     ProviderFlags = [pfInUpdate, pfInWhere]
716     ReadOnly = False
717     Required = True
718     Size = 15
719     end
720 tony 21 object EmployeesLAST_NAME: TIBStringField
721 tony 7 DisplayWidth = 20
722     FieldKind = fkData
723     FieldName = 'LAST_NAME'
724     Index = 2
725     LookupCache = False
726     ProviderFlags = [pfInUpdate, pfInWhere]
727     ReadOnly = False
728     Required = True
729     end
730 tony 21 object EmployeesPHONE_EXT: TIBStringField
731     Alignment = taRightJustify
732 tony 7 DisplayWidth = 4
733     FieldKind = fkData
734     FieldName = 'PHONE_EXT'
735     Index = 3
736     LookupCache = False
737     ProviderFlags = [pfInUpdate, pfInWhere]
738     ReadOnly = False
739     Required = False
740     Size = 4
741     end
742 tony 21 object EmployeesHIRE_DATE: TDateTimeField
743 tony 7 DisplayWidth = 10
744     FieldKind = fkData
745     FieldName = 'HIRE_DATE'
746     Index = 4
747     LookupCache = False
748     ProviderFlags = [pfInUpdate, pfInWhere]
749     ReadOnly = False
750     Required = True
751     end
752 tony 21 object EmployeesDEPT_NO: TIBStringField
753 tony 7 DisplayWidth = 3
754     FieldKind = fkData
755     FieldName = 'DEPT_NO'
756     Index = 5
757     LookupCache = False
758     ProviderFlags = [pfInUpdate, pfInWhere]
759     ReadOnly = False
760     Required = True
761     Size = 3
762     end
763 tony 21 object EmployeesJOB_CODE: TIBStringField
764 tony 7 DisplayWidth = 5
765     FieldKind = fkData
766     FieldName = 'JOB_CODE'
767     Index = 6
768     LookupCache = False
769     ProviderFlags = [pfInUpdate, pfInWhere]
770     ReadOnly = False
771     Required = True
772 tony 21 OnChange = EmployeesJOB_CODEChange
773 tony 7 Size = 5
774     end
775 tony 21 object EmployeesJOB_GRADE: TSmallintField
776 tony 7 DisplayWidth = 10
777     FieldKind = fkData
778     FieldName = 'JOB_GRADE'
779     Index = 7
780     LookupCache = False
781     ProviderFlags = [pfInUpdate, pfInWhere]
782     ReadOnly = False
783     Required = True
784 tony 21 OnChange = EmployeesJOB_GRADEChange
785 tony 7 end
786 tony 21 object EmployeesJOB_COUNTRY: TIBStringField
787 tony 7 DisplayWidth = 15
788     FieldKind = fkData
789     FieldName = 'JOB_COUNTRY'
790     Index = 8
791     LookupCache = False
792     ProviderFlags = [pfInUpdate, pfInWhere]
793     ReadOnly = False
794     Required = True
795     Size = 15
796     end
797 tony 21 object EmployeesSALARY: TIBBCDField
798     DisplayWidth = 18
799     FieldKind = fkData
800     FieldName = 'SALARY'
801     Index = 9
802     LookupCache = False
803     ProviderFlags = [pfInUpdate, pfInWhere]
804     ReadOnly = False
805     Required = True
806     OnGetText = EmployeesSALARYGetText
807     Precision = 18
808     Currency = False
809     MaxValue = 0
810     MinValue = 0
811     Size = 2
812     end
813     object EmployeesFULL_NAME: TIBStringField
814 tony 19 DisplayWidth = 37
815     FieldKind = fkData
816     FieldName = 'FULL_NAME'
817 tony 21 Index = 10
818 tony 19 LookupCache = False
819     ProviderFlags = [pfInUpdate, pfInWhere]
820     ReadOnly = True
821     Required = False
822     Size = 37
823     end
824 tony 21 object EmployeesDEPT_PATH: TIBStringField
825     DisplayWidth = 256
826 tony 7 FieldKind = fkData
827 tony 21 FieldName = 'DEPT_PATH'
828     Index = 11
829 tony 7 LookupCache = False
830     ProviderFlags = [pfInUpdate, pfInWhere]
831     ReadOnly = False
832     Required = True
833 tony 21 Size = 256
834 tony 7 end
835 tony 21 object EmployeesDEPT_KEY_PATH: TIBStringField
836     DisplayWidth = 64
837     FieldKind = fkData
838     FieldName = 'DEPT_KEY_PATH'
839     Index = 12
840     LookupCache = False
841     ProviderFlags = [pfInUpdate, pfInWhere]
842     ReadOnly = False
843     Required = True
844     Size = 64
845     end
846 tony 7 end
847 tony 21 object Countries: TIBQuery
848 tony 45 AllowAutoActivateTransaction = False
849 tony 21 Database = IBDatabase1
850     Transaction = IBTransaction1
851     BeforeOpen = CountriesBeforeOpen
852     BufferChunks = 1000
853     CachedUpdates = False
854 tony 270 CaseSensitiveParameterNames = False
855 tony 209 EnableStatistics = False
856 tony 21 GenerateParamNames = False
857     GeneratorField.ApplyOnEvent = gaeOnNewRecord
858 tony 209 MasterDetailDelay = 0
859 tony 21 SQL.Strings = (
860     'Select A.COUNTRY, A.CURRENCY From COUNTRY A'
861     'JOIN JOB J On J.JOB_COUNTRY = A.COUNTRY'
862     'Where J.JOB_CODE = :JOB_CODE and J.JOB_GRADE = :JOB_GRADE'
863     'Order by 1'
864     )
865     Params = <
866     item
867     DataType = ftUnknown
868     Name = 'JOB_CODE'
869     ParamType = ptInput
870     end
871     item
872     DataType = ftUnknown
873     Name = 'JOB_GRADE'
874     ParamType = ptInput
875     end>
876 tony 27 DataSetCloseAction = dcDiscardChanges
877 tony 21 left = 872
878 tony 7 top = 296
879 tony 21 ParamData = <
880     item
881     DataType = ftUnknown
882     Name = 'JOB_CODE'
883     ParamType = ptInput
884     end
885     item
886     DataType = ftUnknown
887     Name = 'JOB_GRADE'
888     ParamType = ptInput
889     end>
890 tony 7 end
891 tony 21 object JobCodeSource: TDataSource
892     DataSet = JobCodes
893     left = 832
894     top = 256
895 tony 7 end
896 tony 21 object JobCodes: TIBQuery
897 tony 45 AllowAutoActivateTransaction = False
898 tony 21 Database = IBDatabase1
899     Transaction = IBTransaction1
900     BeforeOpen = JobCodesBeforeOpen
901     BufferChunks = 1000
902     CachedUpdates = False
903 tony 270 CaseSensitiveParameterNames = False
904 tony 209 EnableStatistics = False
905 tony 21 GenerateParamNames = False
906     GeneratorField.ApplyOnEvent = gaeOnNewRecord
907 tony 209 MasterDetailDelay = 0
908 tony 21 SQL.Strings = (
909     'Select A.JOB_CODE, A.JOB_TITLE From JOB A'
910     'Where JOB_COUNTRY = :JOB_COUNTRY and JOB_GRADE = :JOB_GRADE'
911     'Order by Upper(JOB_TITLE)'
912 tony 7 )
913 tony 21 Params = <
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 tony 27 DataSetCloseAction = dcDiscardChanges
925 tony 21 left = 872
926     top = 256
927     ParamData = <
928     item
929     DataType = ftUnknown
930     Name = 'JOB_COUNTRY'
931     ParamType = ptInput
932     end
933     item
934     DataType = ftUnknown
935     Name = 'JOB_GRADE'
936     ParamType = ptInput
937     end>
938     end
939     object Depts: TIBQuery
940 tony 45 AllowAutoActivateTransaction = False
941 tony 21 Database = IBDatabase1
942     Transaction = IBTransaction1
943     BufferChunks = 1000
944     CachedUpdates = False
945 tony 270 CaseSensitiveParameterNames = False
946 tony 209 EnableStatistics = False
947 tony 21 GenerateParamNames = False
948     GeneratorField.ApplyOnEvent = gaeOnNewRecord
949 tony 209 MasterDetailDelay = 0
950 tony 21 SQL.Strings = (
951     'Select A.DEPT_NO, A.DEPARTMENT From DEPARTMENT A'
952     ''
953     'Order by Upper(Department)'
954 tony 7 )
955 tony 21 Params = <>
956 tony 27 DataSetCloseAction = dcDiscardChanges
957 tony 21 left = 872
958     top = 210
959 tony 7 end
960 tony 21 object DeptsSource: TDataSource
961     DataSet = Depts
962     left = 832
963     top = 208
964     end
965 tony 29 object JobGradeChangeTimer: TTimer
966     Interval = 0
967     OnTimer = JobGradeChangeTimerTimer
968 tony 39 left = 777
969     top = 304
970 tony 29 end
971     object JobCodeChangeTimer: TTimer
972     Interval = 0
973     OnTimer = JobCodeChangeTimerTimer
974 tony 39 left = 776
975     top = 353
976 tony 29 end
977 tony 7 end