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