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

File Contents

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