ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/dbcontrolgrid/unit1.lfm
Revision: 27
Committed: Tue Apr 14 13:10:23 2015 UTC (9 years ago) by tony
File size: 19881 byte(s)
Log Message:
Committing updates for Release R1-2-3

File Contents

# Content
1 object Form1: TForm1
2 Left = 248
3 Height = 575
4 Top = 397
5 Width = 1026
6 Caption = 'Employee List'
7 ClientHeight = 575
8 ClientWidth = 1026
9 OnClose = FormClose
10 OnShow = FormShow
11 LCLVersion = '1.4.0.3'
12 object Button1: TButton
13 Left = 939
14 Height = 25
15 Top = 48
16 Width = 75
17 Action = AddEmployee
18 Anchors = [akTop, akRight]
19 TabOrder = 0
20 end
21 object Button3: TButton
22 Left = 939
23 Height = 25
24 Top = 80
25 Width = 75
26 Action = DeleteEmployee
27 Anchors = [akTop, akRight]
28 TabOrder = 1
29 end
30 object Label1: TLabel
31 Left = 17
32 Height = 15
33 Top = 14
34 Width = 87
35 Caption = 'Started Before'
36 ParentColor = False
37 end
38 object BeforeDate: TDateEdit
39 Left = 112
40 Height = 25
41 Top = 8
42 Width = 80
43 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
44 OKCaption = 'OK'
45 CancelCaption = 'Cancel'
46 DateOrder = doNone
47 ButtonWidth = 23
48 NumGlyphs = 1
49 MaxLength = 0
50 OnChange = BeforeDateChange
51 TabOrder = 2
52 end
53 object Label2: TLabel
54 Left = 241
55 Height = 15
56 Top = 14
57 Width = 78
58 Caption = 'Started After'
59 ParentColor = False
60 end
61 object AfterDate: TDateEdit
62 Left = 333
63 Height = 25
64 Top = 8
65 Width = 80
66 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
67 OKCaption = 'OK'
68 CancelCaption = 'Cancel'
69 DateOrder = doNone
70 ButtonWidth = 23
71 NumGlyphs = 1
72 MaxLength = 0
73 OnChange = BeforeDateChange
74 TabOrder = 3
75 end
76 object Panel1: TPanel
77 Left = 12
78 Height = 527
79 Top = 42
80 Width = 904
81 Anchors = [akTop, akLeft, akRight, akBottom]
82 BevelOuter = bvNone
83 ClientHeight = 527
84 ClientWidth = 904
85 ParentColor = False
86 TabOrder = 4
87 object DBControlGrid1: TDBControlGrid
88 Left = 0
89 Height = 477
90 Top = 0
91 Width = 904
92 Align = alClient
93 AlternateColor = clSkyBlue
94 AltColorStartNormal = True
95 Color = clWhite
96 DataSource = EmployeeSource
97 DefaultRowHeight = 80
98 DefaultPositionAtEnd = False
99 DrawPanel = EmployeeEditorPanel
100 Options = [dgpIndicator]
101 TabOrder = 1
102 ColWidths = (
103 12
104 890
105 )
106 object EmployeeEditorPanel: TPanel
107 Left = 12
108 Height = 80
109 Top = 0
110 Width = 890
111 Anchors = []
112 BevelOuter = bvNone
113 BorderWidth = 2
114 BorderStyle = bsSingle
115 ClientHeight = 78
116 ClientWidth = 888
117 Color = clWhite
118 ParentColor = False
119 TabOrder = 0
120 Visible = False
121 object Label3: TLabel
122 Left = 0
123 Height = 15
124 Top = 7
125 Width = 83
126 Caption = 'Employee No.'
127 ParentColor = False
128 end
129 object DBEdit1: TDBEdit
130 Left = 90
131 Height = 25
132 Top = 2
133 Width = 120
134 DataField = 'EMP_NO'
135 DataSource = EmployeeSource
136 CharCase = ecNormal
137 MaxLength = 0
138 TabOrder = 0
139 end
140 object Label4: TLabel
141 Left = 12
142 Height = 15
143 Top = 32
144 Width = 64
145 Caption = 'First Name'
146 ParentColor = False
147 end
148 object DBEdit2: TDBEdit
149 Left = 90
150 Height = 25
151 Top = 24
152 Width = 120
153 DataField = 'FIRST_NAME'
154 DataSource = EmployeeSource
155 CharCase = ecNormal
156 MaxLength = 0
157 TabOrder = 1
158 end
159 object Label5: TLabel
160 Left = 12
161 Height = 15
162 Top = 56
163 Width = 64
164 Caption = 'Last Name'
165 ParentColor = False
166 end
167 object DBEdit3: TDBEdit
168 Left = 90
169 Height = 25
170 Top = 46
171 Width = 120
172 DataField = 'LAST_NAME'
173 DataSource = EmployeeSource
174 CharCase = ecNormal
175 MaxLength = 0
176 TabOrder = 2
177 end
178 object Label6: TLabel
179 Left = 216
180 Height = 15
181 Top = 7
182 Width = 77
183 Caption = 'Date Started'
184 ParentColor = False
185 end
186 object IBDateEdit1: TDBDateEdit
187 Left = 300
188 Height = 25
189 Top = 2
190 Width = 80
191 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
192 OKCaption = 'OK'
193 CancelCaption = 'Cancel'
194 DateOrder = doNone
195 ButtonWidth = 23
196 AutoSelect = False
197 NumGlyphs = 1
198 MaxLength = 0
199 TabOrder = 3
200 DataField = 'HIRE_DATE'
201 DataSource = EmployeeSource
202 end
203 object Label7: TLabel
204 Left = 252
205 Height = 15
206 Top = 32
207 Width = 37
208 Caption = 'Salary'
209 ParentColor = False
210 end
211 object DBEdit4: TDBEdit
212 Left = 300
213 Height = 25
214 Top = 24
215 Width = 104
216 DataField = 'SALARY'
217 DataSource = EmployeeSource
218 CharCase = ecNormal
219 MaxLength = 0
220 TabOrder = 5
221 end
222 object Label8: TLabel
223 Left = 814
224 Height = 15
225 Top = 54
226 Width = 24
227 Anchors = [akTop, akRight]
228 Caption = 'Ext.'
229 ParentColor = False
230 end
231 object DBEdit5: TDBEdit
232 Left = 838
233 Height = 25
234 Top = 48
235 Width = 40
236 DataField = 'PHONE_EXT'
237 DataSource = EmployeeSource
238 Anchors = [akTop, akRight]
239 CharCase = ecNormal
240 MaxLength = 0
241 TabOrder = 4
242 end
243 object Label9: TLabel
244 Left = 536
245 Height = 15
246 Top = 7
247 Width = 51
248 Caption = 'Location'
249 ParentColor = False
250 end
251 object Label10: TLabel
252 Left = 413
253 Height = 15
254 Top = 9
255 Width = 59
256 Caption = 'Job Grade'
257 ParentColor = False
258 end
259 object JobGradeDBComboBox: TDBComboBox
260 Left = 480
261 Height = 25
262 Top = 2
263 Width = 48
264 AutoSize = False
265 DataField = 'JOB_GRADE'
266 DataSource = EmployeeSource
267 ItemHeight = 0
268 Items.Strings = (
269 '1'
270 '2'
271 '3'
272 '4'
273 '5'
274 )
275 MaxLength = 0
276 OnCloseUp = JobGradeDBComboBoxCloseUp
277 Style = csDropDownList
278 TabOrder = 6
279 end
280 object Label11: TLabel
281 Left = 536
282 Height = 15
283 Top = 32
284 Width = 48
285 Caption = 'Job Title'
286 ParentColor = False
287 end
288 object Label12: TLabel
289 Left = 256
290 Height = 15
291 Top = 54
292 Width = 33
293 Caption = 'Dept.'
294 ParentColor = False
295 end
296 object SpeedButton1: TSpeedButton
297 Left = 786
298 Height = 25
299 Top = 48
300 Width = 23
301 Action = SelectDept
302 Anchors = [akTop, akRight]
303 end
304 object DBEdit6: TDBEdit
305 Left = 300
306 Height = 25
307 Top = 48
308 Width = 478
309 DataField = 'DEPT_PATH'
310 DataSource = EmployeeSource
311 ReadOnly = True
312 Anchors = [akTop, akLeft, akRight]
313 CharCase = ecNormal
314 MaxLength = 0
315 TabOrder = 7
316 end
317 object DBEdit7: TDBEdit
318 Left = 592
319 Height = 25
320 Top = 0
321 Width = 246
322 DataField = 'JOB_COUNTRY'
323 DataSource = EmployeeSource
324 ReadOnly = True
325 CharCase = ecNormal
326 MaxLength = 0
327 TabOrder = 8
328 end
329 object DBEdit8: TDBEdit
330 Left = 592
331 Height = 25
332 Top = 24
333 Width = 246
334 DataField = 'JOB_TITLE'
335 DataSource = EmployeeSource
336 CharCase = ecNormal
337 MaxLength = 0
338 TabOrder = 9
339 end
340 object SpeedButton2: TSpeedButton
341 Left = 847
342 Height = 22
343 Top = 0
344 Width = 23
345 Action = EditLocationAction
346 end
347 object SpeedButton3: TSpeedButton
348 Left = 847
349 Height = 22
350 Top = 24
351 Width = 23
352 Action = EditJobCodeAction
353 end
354 end
355 end
356 object Panel2: TPanel
357 Left = 0
358 Height = 50
359 Top = 477
360 Width = 904
361 Align = alBottom
362 BevelOuter = bvNone
363 ClientHeight = 50
364 ClientWidth = 904
365 ParentColor = False
366 TabOrder = 0
367 object Button5: TButton
368 Left = 80
369 Height = 25
370 Top = 16
371 Width = 75
372 Action = CancelChanges
373 Anchors = [akLeft, akBottom]
374 TabOrder = 0
375 end
376 object Button4: TButton
377 Left = 1
378 Height = 25
379 Top = 16
380 Width = 75
381 Action = SaveChanges
382 Anchors = [akLeft, akBottom]
383 TabOrder = 1
384 end
385 object DBText1: TDBText
386 Left = 832
387 Height = 27
388 Top = 16
389 Width = 49
390 Alignment = taRightJustify
391 Anchors = [akTop, akRight, akBottom]
392 DataField = 'TOTALSALARIES'
393 DataSource = TotalsSource
394 ParentColor = False
395 end
396 end
397 end
398 object Label13: TLabel
399 Left = 456
400 Height = 15
401 Top = 14
402 Width = 79
403 Caption = 'Salary Range'
404 ParentColor = False
405 end
406 object SalaryRange: TComboBox
407 Left = 544
408 Height = 25
409 Top = 8
410 Width = 272
411 ItemHeight = 0
412 ItemIndex = 0
413 Items.Strings = (
414 'None Specified'
415 'Below $40,000'
416 'Between $40,000 and $100,000'
417 'Above $100,000'
418 )
419 OnCloseUp = BeforeDateChange
420 Style = csDropDownList
421 TabOrder = 5
422 Text = 'None Specified'
423 end
424 object IBDatabase1: TIBDatabase
425 Connected = False
426 AllowStreamedConnected = False
427 DatabaseName = 'localhost:employee'
428 Params.Strings = (
429 'user_name=SYSDBA'
430 'lc_ctype=UTF-8'
431 )
432 DefaultTransaction = IBTransaction1
433 IdleTimer = 0
434 SQLHourGlass = False
435 TraceFlags = []
436 left = 832
437 top = 168
438 end
439 object IBTransaction1: TIBTransaction
440 Active = False
441 DefaultDatabase = IBDatabase1
442 Params.Strings = (
443 'read_committed'
444 'rec_version'
445 'nowait'
446 )
447 left = 872
448 top = 168
449 end
450 object EmployeeSource: TDataSource
451 DataSet = Employees
452 left = 832
453 top = 336
454 end
455 object ActionList1: TActionList
456 left = 832
457 top = 416
458 object AddEmployee: TAction
459 Caption = 'Add'
460 OnExecute = AddEmployeeExecute
461 end
462 object EditEmployee: TAction
463 Caption = 'Edit'
464 OnUpdate = EditEmployeeUpdate
465 end
466 object DeleteEmployee: TAction
467 Caption = 'Delete'
468 OnExecute = DeleteEmployeeExecute
469 OnUpdate = EditEmployeeUpdate
470 end
471 object SaveChanges: TAction
472 Caption = 'Save'
473 OnExecute = SaveChangesExecute
474 OnUpdate = SaveChangesUpdate
475 end
476 object CancelChanges: TAction
477 Caption = 'Cancel'
478 OnExecute = CancelChangesExecute
479 OnUpdate = SaveChangesUpdate
480 end
481 object SelectDept: TAction
482 Caption = '...'
483 OnExecute = SelectDeptExecute
484 end
485 object EditJobCodeAction: TAction
486 Caption = '...'
487 OnExecute = EditJobCodeActionExecute
488 OnUpdate = EditJobCodeActionUpdate
489 end
490 object EditLocationAction: TAction
491 Caption = '...'
492 OnExecute = EditLocationActionExecute
493 OnUpdate = EditJobCodeActionUpdate
494 end
495 end
496 object TotalsQuery: TIBQuery
497 Database = IBDatabase1
498 Transaction = IBTransaction1
499 BeforeOpen = EmployeesBeforeOpen
500 BufferChunks = 1000
501 CachedUpdates = False
502 GenerateParamNames = False
503 GeneratorField.ApplyOnEvent = gaeOnNewRecord
504 SQL.Strings = (
505 'Select sum(Salary) as TotalSalaries'
506 'From EMPLOYEE'
507 )
508 Params = <>
509 DataSetCloseAction = dcDiscardChanges
510 left = 872
511 top = 376
512 object TotalsQueryTOTALSALARIES: TIBBCDField
513 DisplayWidth = 18
514 FieldKind = fkData
515 FieldName = 'TOTALSALARIES'
516 Index = 0
517 LookupCache = False
518 ProviderFlags = [pfInUpdate, pfInWhere]
519 ReadOnly = False
520 Required = False
521 OnGetText = TotalsQueryTOTALSALARIESGetText
522 Precision = 18
523 Currency = False
524 MaxValue = 0
525 MinValue = 0
526 Size = 2
527 end
528 end
529 object TotalsSource: TDataSource
530 DataSet = TotalsQuery
531 left = 832
532 top = 376
533 end
534 object Employees: TIBDataSet
535 Database = IBDatabase1
536 Transaction = IBTransaction1
537 AfterDelete = EmployeesAfterDelete
538 AfterEdit = EmployeesAfterDelete
539 AfterInsert = EmployeesAfterInsert
540 AfterOpen = EmployeesAfterOpen
541 AfterPost = EmployeesAfterPost
542 BeforeClose = EmployeesBeforeClose
543 BeforeOpen = EmployeesBeforeOpen
544 BufferChunks = 1000
545 CachedUpdates = False
546 DeleteSQL.Strings = (
547 'Delete From EMPLOYEE A'
548 'Where A.EMP_NO = :EMP_NO'
549 )
550 InsertSQL.Strings = (
551 'Insert Into EMPLOYEE(EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY)'
552 'Values(:EMP_NO, :FIRST_NAME, :LAST_NAME, :PHONE_EXT, :HIRE_DATE, :DEPT_NO, :JOB_CODE, :JOB_GRADE, :JOB_COUNTRY, :SALARY)'
553 )
554 RefreshSQL.Strings = (
555 'with recursive Depts As ('
556 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,'
557 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
558 'From DEPARTMENT Where HEAD_DEPT is NULL '
559 'UNION ALL'
560 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, Depts.DEPT_PATH || '' / '' || DEPARTMENT as DEPT_PATH,'
561 'Depts.DEPT_KEY_PATH || '';'' || DEPT_NO as DEPT_KEY_PATH'
562 'From DEPARTMENT '
563 'JOIN Depts On HEAD_DEPT = Depts.DEPT_NO'
564 ')'
565 ''
566 'Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
567 'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH, J.JOB_TITLE'
568 'From EMPLOYEE A'
569 'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
570 'JOIN JOB J on J.JOB_CODE = A.JOB_CODE'
571 'Where A.EMP_NO = :EMP_NO'
572 )
573 SelectSQL.Strings = (
574 'with recursive Depts As ('
575 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,'
576 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
577 'From DEPARTMENT Where HEAD_DEPT is NULL '
578 'UNION ALL'
579 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, Depts.DEPT_PATH || '' / '' || DEPARTMENT as DEPT_PATH,'
580 'Depts.DEPT_KEY_PATH || '';'' || DEPT_NO as DEPT_KEY_PATH'
581 'From DEPARTMENT '
582 'JOIN Depts On HEAD_DEPT = Depts.DEPT_NO'
583 ')'
584 ''
585 'Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
586 'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH, J.JOB_TITLE'
587 'From EMPLOYEE A'
588 'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
589 'JOIN JOB J on J.JOB_CODE = A.JOB_CODE'
590 'Order by A.LAST_NAME'
591 )
592 ModifySQL.Strings = (
593 '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'
594 'Where A.EMP_NO = :OLD_EMP_NO'
595 )
596 GeneratorField.Generator = 'EMP_NO_GEN'
597 GeneratorField.Field = 'EMP_NO'
598 GeneratorField.ApplyOnEvent = gaeOnNewRecord
599 GenerateParamNames = False
600 DataSetCloseAction = dcSaveChanges
601 AfterTransactionEnd = EmployeesAfterTransactionEnd
602 left = 872
603 top = 336
604 object EmployeesEMP_NO: TSmallintField
605 DisplayWidth = 10
606 FieldKind = fkData
607 FieldName = 'EMP_NO'
608 Index = 0
609 LookupCache = False
610 ProviderFlags = [pfInUpdate, pfInWhere]
611 ReadOnly = False
612 Required = True
613 end
614 object EmployeesFIRST_NAME: TIBStringField
615 DisplayWidth = 15
616 FieldKind = fkData
617 FieldName = 'FIRST_NAME'
618 Index = 1
619 LookupCache = False
620 ProviderFlags = [pfInUpdate, pfInWhere]
621 ReadOnly = False
622 Required = True
623 Size = 15
624 end
625 object EmployeesLAST_NAME: TIBStringField
626 DisplayWidth = 20
627 FieldKind = fkData
628 FieldName = 'LAST_NAME'
629 Index = 2
630 LookupCache = False
631 ProviderFlags = [pfInUpdate, pfInWhere]
632 ReadOnly = False
633 Required = True
634 end
635 object EmployeesPHONE_EXT: TIBStringField
636 Alignment = taRightJustify
637 DisplayWidth = 4
638 FieldKind = fkData
639 FieldName = 'PHONE_EXT'
640 Index = 3
641 LookupCache = False
642 ProviderFlags = [pfInUpdate, pfInWhere]
643 ReadOnly = False
644 Required = False
645 Size = 4
646 end
647 object EmployeesHIRE_DATE: TDateTimeField
648 DisplayWidth = 10
649 FieldKind = fkData
650 FieldName = 'HIRE_DATE'
651 Index = 4
652 LookupCache = False
653 ProviderFlags = [pfInUpdate, pfInWhere]
654 ReadOnly = False
655 Required = True
656 end
657 object EmployeesDEPT_NO: TIBStringField
658 DisplayWidth = 3
659 FieldKind = fkData
660 FieldName = 'DEPT_NO'
661 Index = 5
662 LookupCache = False
663 ProviderFlags = [pfInUpdate, pfInWhere]
664 ReadOnly = False
665 Required = True
666 Size = 3
667 end
668 object EmployeesJOB_CODE: TIBStringField
669 DisplayWidth = 5
670 FieldKind = fkData
671 FieldName = 'JOB_CODE'
672 Index = 6
673 LookupCache = False
674 ProviderFlags = [pfInUpdate, pfInWhere]
675 ReadOnly = False
676 Required = True
677 Size = 5
678 end
679 object EmployeesJOB_GRADE: TSmallintField
680 DisplayWidth = 10
681 FieldKind = fkData
682 FieldName = 'JOB_GRADE'
683 Index = 7
684 LookupCache = False
685 ProviderFlags = [pfInUpdate, pfInWhere]
686 ReadOnly = False
687 Required = True
688 end
689 object EmployeesJOB_COUNTRY: TIBStringField
690 DisplayWidth = 15
691 FieldKind = fkData
692 FieldName = 'JOB_COUNTRY'
693 Index = 8
694 LookupCache = False
695 ProviderFlags = [pfInUpdate, pfInWhere]
696 ReadOnly = False
697 Required = True
698 Size = 15
699 end
700 object EmployeesSALARY: TIBBCDField
701 DisplayWidth = 18
702 FieldKind = fkData
703 FieldName = 'SALARY'
704 Index = 9
705 LookupCache = False
706 ProviderFlags = [pfInUpdate, pfInWhere]
707 ReadOnly = False
708 Required = True
709 OnGetText = EmployeesSALARYGetText
710 Precision = 18
711 Currency = False
712 MaxValue = 0
713 MinValue = 0
714 Size = 2
715 end
716 object EmployeesFULL_NAME: TIBStringField
717 DisplayWidth = 37
718 FieldKind = fkData
719 FieldName = 'FULL_NAME'
720 Index = 10
721 LookupCache = False
722 ProviderFlags = [pfInUpdate, pfInWhere]
723 ReadOnly = True
724 Required = False
725 Size = 37
726 end
727 object EmployeesDEPT_PATH: TIBStringField
728 DisplayWidth = 256
729 FieldKind = fkData
730 FieldName = 'DEPT_PATH'
731 Index = 11
732 LookupCache = False
733 ProviderFlags = [pfInUpdate, pfInWhere]
734 ReadOnly = False
735 Required = True
736 Size = 256
737 end
738 object EmployeesDEPT_KEY_PATH: TIBStringField
739 DisplayWidth = 64
740 FieldKind = fkData
741 FieldName = 'DEPT_KEY_PATH'
742 Index = 12
743 LookupCache = False
744 ProviderFlags = [pfInUpdate, pfInWhere]
745 ReadOnly = False
746 Required = True
747 Size = 64
748 end
749 object EmployeesJOB_TITLE: TIBStringField
750 DisplayWidth = 25
751 FieldKind = fkData
752 FieldName = 'JOB_TITLE'
753 Index = 13
754 LookupCache = False
755 ProviderFlags = [pfInUpdate, pfInWhere]
756 ReadOnly = False
757 Required = True
758 Size = 25
759 end
760 end
761 end