ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/local-employeedb/unit1.lfm
Revision: 45
Committed: Tue Dec 6 10:33:46 2016 UTC (7 years, 11 months ago) by tony
File size: 27744 byte(s)
Log Message:
Committing updates for Release R2-0-0

File Contents

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