ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/employee/unit1.lfm
Revision: 62
Committed: Wed Apr 12 09:19:59 2017 UTC (7 years ago) by tony
File size: 25685 byte(s)
Log Message:
Avoid "Object is nil" error when opening a database with DefaultSystemCodePage = true

File Contents

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