ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/employee/unit1.lfm
Revision: 23
Committed: Fri Mar 13 10:26:52 2015 UTC (9 years, 1 month ago) by tony
File size: 24988 byte(s)
Log Message:
Committing updates for Release R1-2-1

File Contents

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