ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/journaling/examples/employee/unit1.lfm
Revision: 363
Committed: Tue Dec 7 13:30:05 2021 UTC (2 years, 4 months ago) by tony
File size: 26073 byte(s)
Log Message:
add fbintf

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