ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/dbcontrolgrid/unit1.lfm
Revision: 41
Committed: Sat Jul 16 12:25:48 2016 UTC (7 years, 9 months ago) by tony
File size: 19865 byte(s)
Log Message:
Committing updates for Release R1-4-2

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