ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/isqlmonitor/MainForm.lfm
Revision: 209
Committed: Wed Mar 14 12:48:51 2018 UTC (6 years, 1 month ago) by tony
File size: 26090 byte(s)
Log Message:
Fixes Merged

File Contents

# User Rev Content
1 tony 31 object Form1: TForm1
2 tony 68 Left = 272
3 tony 31 Height = 482
4     Top = 372
5     Width = 1002
6     Caption = 'Employee List'
7     ClientHeight = 482
8     ClientWidth = 1002
9 tony 68 DefaultMonitor = dmPrimary
10 tony 31 OnClose = FormClose
11     OnShow = FormShow
12 tony 68 Position = poScreenCenter
13 tony 209 LCLVersion = '1.8.3.0'
14 tony 31 object Button1: TButton
15     Left = 915
16     Height = 25
17     Top = 48
18     Width = 75
19     Action = AddEmployee
20     Anchors = [akTop, akRight]
21     TabOrder = 0
22     end
23     object Button2: TButton
24     Left = 915
25     Height = 25
26     Top = 86
27     Width = 75
28     Action = EditEmployee
29     Anchors = [akTop, akRight]
30     TabOrder = 1
31     end
32     object Button3: TButton
33     Left = 915
34     Height = 25
35     Top = 125
36     Width = 75
37     Action = DeleteEmployee
38     Anchors = [akTop, akRight]
39     TabOrder = 2
40     end
41     object Label1: TLabel
42     Left = 17
43 tony 68 Height = 14
44 tony 31 Top = 14
45 tony 68 Width = 87
46 tony 31 Caption = 'Started Before'
47     ParentColor = False
48     end
49     object BeforeDate: TDateEdit
50     Left = 112
51 tony 68 Height = 24
52 tony 31 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     TabOrder = 3
61     end
62     object Label2: TLabel
63     Left = 241
64 tony 68 Height = 14
65 tony 31 Top = 14
66 tony 68 Width = 78
67 tony 31 Caption = 'Started After'
68     ParentColor = False
69     end
70     object AfterDate: TDateEdit
71     Left = 333
72 tony 68 Height = 24
73 tony 31 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     TabOrder = 4
82     end
83     object Panel1: TPanel
84     Left = 12
85     Height = 434
86     Top = 42
87     Width = 880
88     Anchors = [akTop, akLeft, akRight, akBottom]
89     BevelOuter = bvNone
90     ClientHeight = 434
91     ClientWidth = 880
92     Color = clBackground
93     ParentColor = False
94     TabOrder = 5
95     object IBDynamicGrid1: TIBDynamicGrid
96     Left = 0
97     Height = 384
98     Top = 0
99     Width = 880
100     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     Width = 880
202     Align = alBottom
203     BevelOuter = bvNone
204     ClientHeight = 50
205     ClientWidth = 880
206     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 31 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 68 ClientHeight = 78
247     ClientWidth = 782
248 tony 31 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 31 Top = 7
256 tony 68 Width = 83
257 tony 31 Caption = 'Employee No.'
258     ParentColor = False
259     end
260     object DBEdit1: TDBEdit
261     Left = 90
262 tony 68 Height = 24
263 tony 31 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 31 Top = 32
275 tony 68 Width = 64
276 tony 31 Caption = 'First Name'
277     ParentColor = False
278     end
279     object DBEdit2: TDBEdit
280     Left = 90
281 tony 68 Height = 24
282 tony 31 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 31 Top = 56
294 tony 68 Width = 64
295 tony 31 Caption = 'Last Name'
296     ParentColor = False
297     end
298     object DBEdit3: TDBEdit
299     Left = 90
300 tony 68 Height = 24
301 tony 31 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 31 Top = 7
313 tony 68 Width = 77
314 tony 31 Caption = 'Date Started'
315     ParentColor = False
316     end
317     object IBDateEdit1: TDBDateEdit
318     Left = 300
319 tony 68 Height = 24
320 tony 31 Top = 2
321     Width = 80
322     CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
323     DateOrder = doNone
324     ButtonWidth = 23
325     AutoSelect = False
326     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 31 Top = 32
336 tony 68 Width = 37
337 tony 31 Caption = 'Salary'
338     ParentColor = False
339     end
340     object DBEdit4: TDBEdit
341     Left = 300
342 tony 68 Height = 24
343 tony 31 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 31 Top = 54
355 tony 68 Width = 24
356 tony 31 Anchors = [akTop, akRight]
357     Caption = 'Ext.'
358     ParentColor = False
359     end
360     object DBEdit5: TDBEdit
361 tony 68 Left = 732
362     Height = 24
363 tony 31 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 31 Top = 7
376 tony 68 Width = 51
377 tony 31 Caption = 'Location'
378     ParentColor = False
379     end
380     object Label10: TLabel
381     Left = 413
382 tony 68 Height = 14
383 tony 31 Top = 9
384 tony 68 Width = 59
385 tony 31 Caption = 'Job Grade'
386     ParentColor = False
387     end
388     object JobGradeDBComboBox: TDBComboBox
389     Left = 480
390 tony 45 Height = 23
391 tony 31 Top = 2
392     Width = 48
393     AutoSize = False
394     DataField = 'JOB_GRADE'
395     DataSource = EmployeeSource
396 tony 68 ItemHeight = 0
397 tony 31 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 31 Top = 32
413 tony 68 Width = 48
414 tony 31 Caption = 'Job Title'
415     ParentColor = False
416     end
417     object Label12: TLabel
418     Left = 256
419 tony 68 Height = 14
420 tony 31 Top = 54
421 tony 68 Width = 33
422 tony 31 Caption = 'Dept.'
423     ParentColor = False
424     end
425     object SpeedButton1: TSpeedButton
426 tony 68 Left = 680
427 tony 31 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 31 Top = 48
437 tony 68 Width = 372
438 tony 31 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 45 Height = 23
449 tony 31 Top = 0
450 tony 68 Width = 172
451 tony 31 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 68 ItemHeight = 0
465 tony 31 end
466     object IBLookupComboEditBox1: TIBLookupComboEditBox
467     Left = 600
468 tony 45 Height = 23
469 tony 31 Top = 24
470 tony 68 Width = 172
471 tony 31 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 68 ItemHeight = 0
485 tony 31 end
486     end
487     end
488     object Label13: TLabel
489     Left = 456
490 tony 68 Height = 14
491 tony 31 Top = 14
492 tony 68 Width = 79
493 tony 31 Caption = 'Salary Range'
494     ParentColor = False
495     end
496     object SalaryRange: TComboBox
497     Left = 544
498 tony 68 Height = 25
499 tony 31 Top = 8
500     Width = 272
501 tony 68 ItemHeight = 0
502 tony 31 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     object IBDatabase1: TIBDatabase
515 tony 209 Connected = True
516 tony 68 CreateIfNotExists = False
517 tony 31 AllowStreamedConnected = False
518     DatabaseName = 'localhost:employee'
519     Params.Strings = (
520     'user_name=SYSDBA'
521 tony 33 'lc_ctype=UTF8'
522 tony 45 'user_name=SYSDBA'
523 tony 31 )
524     DefaultTransaction = IBTransaction1
525     IdleTimer = 0
526     TraceFlags = [tfQPrepare, tfStmt, tfConnect]
527 tony 45 UseDefaultSystemCodePage = False
528 tony 31 left = 832
529     top = 168
530     end
531     object IBTransaction1: TIBTransaction
532     Active = False
533     DefaultDatabase = IBDatabase1
534     Params.Strings = (
535     'read_committed'
536     'rec_version'
537     'nowait'
538     )
539     left = 872
540     top = 168
541     end
542     object EmployeeSource: TDataSource
543     DataSet = Employees
544     left = 832
545     top = 336
546     end
547     object ActionList1: TActionList
548     left = 832
549     top = 416
550     object AddEmployee: TAction
551     Caption = 'Add'
552     OnExecute = AddEmployeeExecute
553     end
554     object EditEmployee: TAction
555     Caption = 'Edit'
556     OnExecute = EditEmployeeExecute
557     OnUpdate = EditEmployeeUpdate
558     end
559     object DeleteEmployee: TAction
560     Caption = 'Delete'
561     OnExecute = DeleteEmployeeExecute
562     OnUpdate = EditEmployeeUpdate
563     end
564     object SaveChanges: TAction
565     Caption = 'Save'
566     OnExecute = SaveChangesExecute
567     OnUpdate = SaveChangesUpdate
568     end
569     object CancelChanges: TAction
570     Caption = 'Cancel'
571     OnExecute = CancelChangesExecute
572     OnUpdate = SaveChangesUpdate
573     end
574     object SelectDept: TAction
575     Caption = '...'
576     OnExecute = SelectDeptExecute
577     end
578     end
579     object CountrySource: TDataSource
580     DataSet = Countries
581     left = 832
582     top = 296
583     end
584     object TotalsQuery: TIBQuery
585 tony 68 AllowAutoActivateTransaction = False
586 tony 31 Database = IBDatabase1
587     Transaction = IBTransaction1
588     BeforeOpen = EmployeesBeforeOpen
589     BufferChunks = 1000
590     CachedUpdates = False
591 tony 209 EnableStatistics = False
592 tony 31 GenerateParamNames = False
593     GeneratorField.ApplyOnEvent = gaeOnNewRecord
594 tony 209 MasterDetailDelay = 0
595 tony 31 SQL.Strings = (
596     'Select sum(Salary) as TotalSalaries'
597     'From EMPLOYEE'
598     )
599     Params = <>
600     DataSetCloseAction = dcDiscardChanges
601     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 68 AllowAutoActivateTransaction = False
627 tony 31 Database = IBDatabase1
628     Transaction = IBTransaction1
629     AfterDelete = EmployeesAfterDelete
630     AfterEdit = EmployeesAfterDelete
631     AfterInsert = EmployeesAfterInsert
632     AfterOpen = EmployeesAfterOpen
633     AfterPost = EmployeesAfterPost
634     BeforeClose = EmployeesBeforeClose
635     BeforeOpen = EmployeesBeforeOpen
636     BufferChunks = 1000
637     CachedUpdates = False
638 tony 209 EnableStatistics = False
639 tony 31 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 tony 45 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar'
650     '(256)) as DEPT_PATH,'
651 tony 31 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
652     'From DEPARTMENT Where HEAD_DEPT is NULL '
653     'UNION ALL'
654 tony 45 'Select D.DEPT_NO, D.DEPARTMENT,D. HEAD_DEPT, Depts.DEPT_PATH || '' / '' '
655     '|| 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 31 ')'
660     ''
661 tony 45 'Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, '
662     'A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
663     'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, '
664     'D.DEPT_KEY_PATH'
665 tony 31 'From EMPLOYEE A'
666     'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
667 tony 45 ''
668 tony 31 'Where A.EMP_NO = :EMP_NO'
669     )
670     SelectSQL.Strings = (
671     'with recursive Depts As ('
672 tony 45 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as '
673     'VarChar(256)) as DEPT_PATH,'
674 tony 31 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
675     'From DEPARTMENT Where HEAD_DEPT is NULL '
676     'UNION ALL'
677 tony 45 'Select D.DEPT_NO, D.DEPARTMENT,D. HEAD_DEPT, Depts.DEPT_PATH || '' / '' '
678     '|| D.DEPARTMENT as DEPT_PATH,'
679     'Depts.DEPT_KEY_PATH || '';'' || D.DEPT_NO as DEPT_KEY_PATH'
680     'From DEPARTMENT D'
681     'JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO'
682 tony 31 ')'
683     ''
684 tony 45 'Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, '
685     'A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
686     'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, '
687     'D.DEPT_KEY_PATH'
688 tony 31 'From EMPLOYEE A'
689     'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
690     )
691     ModifySQL.Strings = (
692     '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'
693     'Where A.EMP_NO = :OLD_EMP_NO'
694     )
695     GeneratorField.Generator = 'EMP_NO_GEN'
696     GeneratorField.Field = 'EMP_NO'
697     GeneratorField.ApplyOnEvent = gaeOnNewRecord
698     GenerateParamNames = False
699 tony 209 MasterDetailDelay = 0
700 tony 31 DataSetCloseAction = dcSaveChanges
701     AfterTransactionEnd = EmployeesAfterTransactionEnd
702     OnValidatePost = EmployeesValidatePost
703     left = 872
704     top = 336
705     object EmployeesEMP_NO: TSmallintField
706     DisplayWidth = 10
707     FieldKind = fkData
708     FieldName = 'EMP_NO'
709     Index = 0
710     LookupCache = False
711     ProviderFlags = [pfInUpdate, pfInWhere]
712     ReadOnly = False
713     Required = True
714     end
715     object EmployeesFIRST_NAME: TIBStringField
716     DisplayWidth = 15
717     FieldKind = fkData
718     FieldName = 'FIRST_NAME'
719     Index = 1
720     LookupCache = False
721     ProviderFlags = [pfInUpdate, pfInWhere]
722     ReadOnly = False
723     Required = True
724     Size = 15
725     end
726     object EmployeesLAST_NAME: TIBStringField
727     DisplayWidth = 20
728     FieldKind = fkData
729     FieldName = 'LAST_NAME'
730     Index = 2
731     LookupCache = False
732     ProviderFlags = [pfInUpdate, pfInWhere]
733     ReadOnly = False
734     Required = True
735     end
736     object EmployeesPHONE_EXT: TIBStringField
737     Alignment = taRightJustify
738     DisplayWidth = 4
739     FieldKind = fkData
740     FieldName = 'PHONE_EXT'
741     Index = 3
742     LookupCache = False
743     ProviderFlags = [pfInUpdate, pfInWhere]
744     ReadOnly = False
745     Required = False
746     Size = 4
747     end
748     object EmployeesHIRE_DATE: TDateTimeField
749     DisplayWidth = 10
750     FieldKind = fkData
751     FieldName = 'HIRE_DATE'
752     Index = 4
753     LookupCache = False
754     ProviderFlags = [pfInUpdate, pfInWhere]
755     ReadOnly = False
756     Required = True
757     end
758     object EmployeesDEPT_NO: TIBStringField
759     DisplayWidth = 3
760     FieldKind = fkData
761     FieldName = 'DEPT_NO'
762     Index = 5
763     LookupCache = False
764     ProviderFlags = [pfInUpdate, pfInWhere]
765     ReadOnly = False
766     Required = True
767     Size = 3
768     end
769     object EmployeesJOB_CODE: TIBStringField
770     DisplayWidth = 5
771     FieldKind = fkData
772     FieldName = 'JOB_CODE'
773     Index = 6
774     LookupCache = False
775     ProviderFlags = [pfInUpdate, pfInWhere]
776     ReadOnly = False
777     Required = True
778     OnChange = EmployeesJOB_CODEChange
779     Size = 5
780     end
781     object EmployeesJOB_GRADE: TSmallintField
782     DisplayWidth = 10
783     FieldKind = fkData
784     FieldName = 'JOB_GRADE'
785     Index = 7
786     LookupCache = False
787     ProviderFlags = [pfInUpdate, pfInWhere]
788     ReadOnly = False
789     Required = True
790     OnChange = EmployeesJOB_GRADEChange
791     end
792     object EmployeesJOB_COUNTRY: TIBStringField
793     DisplayWidth = 15
794     FieldKind = fkData
795     FieldName = 'JOB_COUNTRY'
796     Index = 8
797     LookupCache = False
798     ProviderFlags = [pfInUpdate, pfInWhere]
799     ReadOnly = False
800     Required = True
801     Size = 15
802     end
803     object EmployeesSALARY: TIBBCDField
804     DisplayWidth = 18
805     FieldKind = fkData
806     FieldName = 'SALARY'
807     Index = 9
808     LookupCache = False
809     ProviderFlags = [pfInUpdate, pfInWhere]
810     ReadOnly = False
811     Required = True
812     OnGetText = EmployeesSALARYGetText
813     Precision = 18
814     Currency = False
815     MaxValue = 0
816     MinValue = 0
817     Size = 2
818     end
819     object EmployeesFULL_NAME: TIBStringField
820     DisplayWidth = 37
821     FieldKind = fkData
822     FieldName = 'FULL_NAME'
823     Index = 10
824     LookupCache = False
825     ProviderFlags = [pfInUpdate, pfInWhere]
826     ReadOnly = True
827     Required = False
828     Size = 37
829     end
830     object EmployeesDEPT_PATH: TIBStringField
831     DisplayWidth = 256
832     FieldKind = fkData
833     FieldName = 'DEPT_PATH'
834     Index = 11
835     LookupCache = False
836     ProviderFlags = [pfInUpdate, pfInWhere]
837     ReadOnly = False
838     Required = True
839     Size = 256
840     end
841     object EmployeesDEPT_KEY_PATH: TIBStringField
842     DisplayWidth = 64
843     FieldKind = fkData
844     FieldName = 'DEPT_KEY_PATH'
845     Index = 12
846     LookupCache = False
847     ProviderFlags = [pfInUpdate, pfInWhere]
848     ReadOnly = False
849     Required = True
850     Size = 64
851     end
852     end
853     object Countries: TIBQuery
854 tony 68 AllowAutoActivateTransaction = False
855 tony 31 Database = IBDatabase1
856     Transaction = IBTransaction1
857     BufferChunks = 1000
858     CachedUpdates = False
859 tony 209 DataSource = EmployeeSource
860     EnableStatistics = False
861 tony 31 GenerateParamNames = False
862     GeneratorField.ApplyOnEvent = gaeOnNewRecord
863 tony 209 MasterDetailDelay = 250
864 tony 31 SQL.Strings = (
865     'Select A.COUNTRY, A.CURRENCY From COUNTRY A'
866     'JOIN JOB J On J.JOB_COUNTRY = A.COUNTRY'
867     'Where J.JOB_CODE = :JOB_CODE and J.JOB_GRADE = :JOB_GRADE'
868     'Order by 1'
869     )
870     Params = <
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     DataSetCloseAction = dcDiscardChanges
882     left = 872
883     top = 296
884     ParamData = <
885     item
886     DataType = ftUnknown
887     Name = 'JOB_CODE'
888     ParamType = ptInput
889     end
890     item
891     DataType = ftUnknown
892     Name = 'JOB_GRADE'
893     ParamType = ptInput
894     end>
895     end
896     object JobCodeSource: TDataSource
897     DataSet = JobCodes
898     left = 832
899     top = 256
900     end
901     object JobCodes: TIBQuery
902 tony 68 AllowAutoActivateTransaction = False
903 tony 31 Database = IBDatabase1
904     Transaction = IBTransaction1
905     BufferChunks = 1000
906     CachedUpdates = False
907 tony 209 DataSource = EmployeeSource
908     EnableStatistics = False
909 tony 31 GenerateParamNames = False
910     GeneratorField.ApplyOnEvent = gaeOnNewRecord
911 tony 209 MasterDetailDelay = 250
912 tony 31 SQL.Strings = (
913     'Select A.JOB_CODE, A.JOB_TITLE From JOB A'
914     'Where JOB_COUNTRY = :JOB_COUNTRY and JOB_GRADE = :JOB_GRADE'
915     'Order by Upper(JOB_TITLE)'
916     )
917     Params = <
918     item
919     DataType = ftUnknown
920     Name = 'JOB_COUNTRY'
921     ParamType = ptInput
922     end
923     item
924     DataType = ftUnknown
925     Name = 'JOB_GRADE'
926     ParamType = ptInput
927     end>
928     DataSetCloseAction = dcDiscardChanges
929     left = 872
930     top = 256
931     ParamData = <
932     item
933     DataType = ftUnknown
934     Name = 'JOB_COUNTRY'
935     ParamType = ptInput
936     end
937     item
938     DataType = ftUnknown
939     Name = 'JOB_GRADE'
940     ParamType = ptInput
941     end>
942     end
943     object Depts: TIBQuery
944 tony 68 AllowAutoActivateTransaction = False
945 tony 31 Database = IBDatabase1
946     Transaction = IBTransaction1
947     BufferChunks = 1000
948     CachedUpdates = False
949 tony 209 EnableStatistics = False
950 tony 31 GenerateParamNames = False
951     GeneratorField.ApplyOnEvent = gaeOnNewRecord
952 tony 209 MasterDetailDelay = 0
953 tony 31 SQL.Strings = (
954     'Select A.DEPT_NO, A.DEPARTMENT From DEPARTMENT A'
955     ''
956     'Order by Upper(Department)'
957     )
958     Params = <>
959     DataSetCloseAction = dcDiscardChanges
960     left = 872
961     top = 210
962     end
963     object DeptsSource: TDataSource
964     DataSet = Depts
965     left = 832
966     top = 208
967     end
968     object JobGradeChangeTimer: TTimer
969     Interval = 0
970     OnTimer = JobGradeChangeTimerTimer
971     left = 928
972     top = 175
973     end
974     object JobCodeChangeTimer: TTimer
975     Interval = 0
976     OnTimer = JobCodeChangeTimerTimer
977     left = 927
978     top = 224
979     end
980     end