ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/isqlmonitor/MainForm.lfm
Revision: 318
Committed: Thu Feb 25 12:03:26 2021 UTC (3 years, 2 months ago) by tony
File size: 26704 byte(s)
Log Message:
Update Examples for FB4

File Contents

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