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

File Contents

# Content
1 object Form1: TForm1
2 Left = 711
3 Height = 329
4 Top = 256
5 Width = 658
6 Caption = 'IBLookup Combo Box Demo'
7 ClientHeight = 329
8 ClientWidth = 658
9 OnClose = FormClose
10 OnShow = FormShow
11 LCLVersion = '1.6.0.4'
12 object Label1: TLabel
13 Left = 16
14 Height = 15
15 Top = 16
16 Width = 87
17 Caption = 'Employee Name'
18 ParentColor = False
19 end
20 object IBLookupComboEditBox1: TIBLookupComboEditBox
21 Left = 16
22 Height = 23
23 Top = 32
24 Width = 224
25 KeyField = 'EMP_NO'
26 ListField = 'FULL_NAME'
27 ListFieldIndex = 0
28 ListSource = EmployeeSource
29 LookupCache = False
30 ScrollListDataset = True
31 TabOrder = 0
32 AutoInsert = True
33 AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactRetainPrefixCase, cbactSearchAscending]
34 ItemHeight = 15
35 KeyPressInterval = 600
36 OnCanAutoInsert = IBLookupComboEditBox1CanAutoInsert
37 end
38 object Label2: TLabel
39 Left = 16
40 Height = 15
41 Top = 79
42 Width = 90
43 Caption = 'Employee Details'
44 ParentColor = False
45 end
46 object Panel1: TPanel
47 Left = 19
48 Height = 185
49 Top = 97
50 Width = 623
51 Anchors = [akTop, akLeft, akRight, akBottom]
52 BevelInner = bvLowered
53 BevelOuter = bvLowered
54 ClientHeight = 185
55 ClientWidth = 623
56 TabOrder = 1
57 object Label3: TLabel
58 Left = 14
59 Height = 15
60 Top = 18
61 Width = 57
62 Caption = 'First Name'
63 ParentColor = False
64 end
65 object DBEdit1: TDBEdit
66 Left = 14
67 Height = 23
68 Top = 32
69 Width = 136
70 DataField = 'FIRST_NAME'
71 DataSource = EmployeeSource
72 CharCase = ecNormal
73 MaxLength = 0
74 TabOrder = 0
75 end
76 object Label4: TLabel
77 Left = 168
78 Height = 15
79 Top = 18
80 Width = 56
81 Caption = 'Last Name'
82 ParentColor = False
83 end
84 object DBEdit2: TDBEdit
85 Left = 168
86 Height = 23
87 Top = 32
88 Width = 144
89 DataField = 'LAST_NAME'
90 DataSource = EmployeeSource
91 CharCase = ecNormal
92 MaxLength = 0
93 TabOrder = 1
94 end
95 object Label5: TLabel
96 Left = 553
97 Height = 15
98 Top = 120
99 Width = 18
100 Anchors = [akTop, akRight]
101 Caption = 'Ext.'
102 ParentColor = False
103 end
104 object DBEdit3: TDBEdit
105 Left = 547
106 Height = 23
107 Top = 136
108 Width = 48
109 DataField = 'PHONE_EXT'
110 DataSource = EmployeeSource
111 Anchors = [akTop, akRight]
112 CharCase = ecNormal
113 MaxLength = 0
114 TabOrder = 3
115 end
116 object Label6: TLabel
117 Left = 16
118 Height = 15
119 Top = 65
120 Width = 49
121 Caption = 'Hire Date'
122 ParentColor = False
123 end
124 object Label7: TLabel
125 Left = 172
126 Height = 15
127 Top = 65
128 Width = 31
129 Caption = 'Salary'
130 ParentColor = False
131 end
132 object DBEdit4: TDBEdit
133 Left = 168
134 Height = 23
135 Top = 80
136 Width = 144
137 DataField = 'SALARY'
138 DataSource = EmployeeSource
139 CharCase = ecNormal
140 MaxLength = 0
141 TabOrder = 4
142 end
143 object Label8: TLabel
144 Left = 392
145 Height = 15
146 Top = 16
147 Width = 46
148 Caption = 'Location'
149 ParentColor = False
150 end
151 object Label9: TLabel
152 Left = 331
153 Height = 15
154 Top = 16
155 Width = 31
156 Caption = 'Grade'
157 ParentColor = False
158 end
159 object DBComboBox1: TDBComboBox
160 Left = 331
161 Height = 23
162 Top = 32
163 Width = 53
164 DataField = 'JOB_GRADE'
165 DataSource = EmployeeSource
166 ItemHeight = 15
167 Items.Strings = (
168 '1'
169 '2'
170 '3'
171 '4'
172 '5'
173 )
174 MaxLength = 0
175 OnCloseUp = DBComboBox1CloseUp
176 Style = csDropDownList
177 TabOrder = 2
178 end
179 object Label10: TLabel
180 Left = 333
181 Height = 15
182 Top = 65
183 Width = 44
184 Caption = 'Job Title'
185 ParentColor = False
186 end
187 object Label11: TLabel
188 Left = 17
189 Height = 15
190 Top = 122
191 Width = 63
192 Caption = 'Department'
193 ParentColor = False
194 end
195 object DBEdit5: TDBEdit
196 Left = 17
197 Height = 23
198 Top = 136
199 Width = 495
200 DataField = 'DEPT_PATH'
201 DataSource = EmployeeSource
202 ReadOnly = True
203 Anchors = [akTop, akLeft, akRight]
204 CharCase = ecNormal
205 MaxLength = 0
206 TabOrder = 5
207 end
208 object SpeedButton1: TSpeedButton
209 Left = 516
210 Height = 25
211 Top = 136
212 Width = 25
213 Anchors = [akTop, akRight]
214 Caption = '...'
215 OnClick = SpeedButton1Click
216 end
217 object IBLookupComboEditBox2: TIBLookupComboEditBox
218 Left = 392
219 Height = 23
220 Top = 32
221 Width = 203
222 Anchors = [akTop, akLeft, akRight]
223 AutoSize = False
224 DataField = 'JOB_COUNTRY'
225 DataSource = EmployeeSource
226 KeyField = 'COUNTRY'
227 ListField = 'COUNTRY'
228 ListFieldIndex = 0
229 ListSource = CountriesSource
230 LookupCache = False
231 Style = csDropDownList
232 TabOrder = 6
233 AutoInsert = False
234 AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
235 ItemHeight = 15
236 end
237 object IBLookupComboEditBox3: TIBLookupComboEditBox
238 Left = 331
239 Height = 23
240 Top = 82
241 Width = 264
242 Anchors = [akTop, akLeft, akRight]
243 DataField = 'JOB_CODE'
244 DataSource = EmployeeSource
245 KeyField = 'JOB_CODE'
246 ListField = 'JOB_TITLE'
247 ListFieldIndex = 0
248 ListSource = JobCodeSource
249 LookupCache = False
250 Style = csDropDownList
251 TabOrder = 7
252 AutoInsert = False
253 AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
254 ItemHeight = 15
255 end
256 object IBDateEdit1: TDBDateEdit
257 Left = 17
258 Height = 23
259 Top = 82
260 Width = 112
261 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
262 OKCaption = 'OK'
263 CancelCaption = 'Cancel'
264 DateOrder = doNone
265 ButtonWidth = 23
266 AutoSelect = False
267 NumGlyphs = 1
268 MaxLength = 0
269 TabOrder = 8
270 DataField = 'HIRE_DATE'
271 DataSource = EmployeeSource
272 end
273 end
274 object CancelBtn: TButton
275 Left = 567
276 Height = 25
277 Top = 293
278 Width = 75
279 Anchors = [akRight, akBottom]
280 Caption = 'Cancel'
281 OnClick = CancelBtnClick
282 TabOrder = 2
283 end
284 object SaveBtn: TButton
285 Left = 481
286 Height = 25
287 Top = 293
288 Width = 75
289 Anchors = [akRight, akBottom]
290 Caption = 'Save'
291 OnClick = SaveBtnClick
292 TabOrder = 3
293 end
294 object DeleteBtn: TButton
295 Left = 18
296 Height = 25
297 Top = 294
298 Width = 75
299 Anchors = [akLeft, akBottom]
300 Caption = 'Delete'
301 OnClick = DeleteBtnClick
302 TabOrder = 4
303 end
304 object IBDatabase1: TIBDatabase
305 Connected = True
306 AllowStreamedConnected = False
307 DatabaseName = 'localhost:employee'
308 Params.Strings = (
309 'lc_ctype=UTF8'
310 'user_name=SYSDBA'
311 'user_name=SYSDBA'
312 )
313 DefaultTransaction = IBTransaction1
314 IdleTimer = 0
315 TraceFlags = []
316 UseDefaultSystemCodePage = False
317 left = 328
318 top = 24
319 end
320 object IBTransaction1: TIBTransaction
321 Active = False
322 DefaultDatabase = IBDatabase1
323 left = 296
324 top = 24
325 end
326 object Employees: TIBDataSet
327 Database = IBDatabase1
328 Transaction = IBTransaction1
329 AfterDelete = EmployeesAfterDelete
330 AfterEdit = EmployeesAfterDelete
331 AfterInsert = EmployeesAfterInsert
332 AfterPost = EmployeesAfterPost
333 BufferChunks = 1000
334 CachedUpdates = False
335 DeleteSQL.Strings = (
336 'Execute Procedure DELETE_EMPLOYEE :EMP_NO'
337 )
338 InsertSQL.Strings = (
339 'Insert Into EMPLOYEE(EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY)'
340 'Values(:EMP_NO, :FIRST_NAME, :LAST_NAME, :PHONE_EXT, :HIRE_DATE, :DEPT_NO, :JOB_CODE, :JOB_GRADE, :JOB_COUNTRY, :SALARY)'
341 )
342 RefreshSQL.Strings = (
343 'with recursive Depts As ('
344 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar'
345 '(256)) as DEPT_PATH,'
346 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
347 'From DEPARTMENT Where HEAD_DEPT is NULL '
348 'UNION ALL'
349 'Select D.DEPT_NO, D.DEPARTMENT,D. HEAD_DEPT, Depts.DEPT_PATH || '' / '' '
350 '|| D.DEPARTMENT as DEPT_PATH,'
351 'Depts.DEPT_KEY_PATH || '';'' || D.DEPT_NO as DEPT_KEY_PATH'
352 'From DEPARTMENT D'
353 'JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO'
354 ')'
355 ''
356 'Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, '
357 'A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
358 'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, '
359 'D.DEPT_KEY_PATH'
360 'From EMPLOYEE A'
361 'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
362 ''
363 'Where A.EMP_NO = :EMP_NO'
364 )
365 SelectSQL.Strings = (
366 'with recursive Depts As ('
367 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,'
368 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
369 'From DEPARTMENT Where HEAD_DEPT is NULL '
370 'UNION ALL'
371 'Select D.DEPT_NO, D.DEPARTMENT,D. HEAD_DEPT, Depts.DEPT_PATH || '' / '' || D.DEPARTMENT as DEPT_PATH,'
372 'Depts.DEPT_KEY_PATH || '';'' || D.DEPT_NO as DEPT_KEY_PATH'
373 'From DEPARTMENT D'
374 'JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO'
375 ')'
376 ''
377 'Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, '
378 'A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH'
379 'From EMPLOYEE A'
380 'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
381 'Order by 3 asc'
382 )
383 ModifySQL.Strings = (
384 'Update EMPLOYEE A Set '#13#10' A.EMP_NO = :EMP_NO,'#13#10' A.FIRST_NAME = :FIRST_NAME,'#13#10' A.LAST_NAME = :LAST_NAME,'#13#10' A.PHONE_EXT = :PHONE_EXT,'#13#10' A.HIRE_DATE = :HIRE_DATE,'#13#10' A.DEPT_NO = :DEPT_NO,'#13#10' A.JOB_CODE = :JOB_CODE,'#13#10' A.JOB_GRADE = :JOB_GRADE,'#13#10' A.JOB_COUNTRY = :JOB_COUNTRY,'#13#10' A.SALARY = :SALARY'
385 'Where A.EMP_NO = :OLD_EMP_NO'
386 )
387 GeneratorField.Generator = 'EMP_NO_GEN'
388 GeneratorField.Field = 'EMP_NO'
389 GeneratorField.ApplyOnEvent = gaeOnNewRecord
390 GenerateParamNames = False
391 DataSetCloseAction = dcSaveChanges
392 AfterTransactionEnd = EmployeesAfterTransactionEnd
393 left = 496
394 top = 16
395 object EmployeesEMP_NO: TSmallintField
396 DisplayWidth = 10
397 FieldKind = fkData
398 FieldName = 'EMP_NO'
399 Index = 0
400 LookupCache = False
401 ProviderFlags = [pfInUpdate, pfInWhere]
402 ReadOnly = False
403 Required = True
404 end
405 object EmployeesFIRST_NAME: TIBStringField
406 DisplayWidth = 15
407 FieldKind = fkData
408 FieldName = 'FIRST_NAME'
409 Index = 1
410 LookupCache = False
411 ProviderFlags = [pfInUpdate, pfInWhere]
412 ReadOnly = False
413 Required = True
414 Size = 15
415 end
416 object EmployeesLAST_NAME: TIBStringField
417 DisplayWidth = 20
418 FieldKind = fkData
419 FieldName = 'LAST_NAME'
420 Index = 2
421 LookupCache = False
422 ProviderFlags = [pfInUpdate, pfInWhere]
423 ReadOnly = False
424 Required = True
425 end
426 object EmployeesPHONE_EXT: TIBStringField
427 Alignment = taRightJustify
428 DisplayWidth = 4
429 FieldKind = fkData
430 FieldName = 'PHONE_EXT'
431 Index = 3
432 LookupCache = False
433 ProviderFlags = [pfInUpdate, pfInWhere]
434 ReadOnly = False
435 Required = False
436 Size = 4
437 end
438 object EmployeesHIRE_DATE: TDateTimeField
439 DisplayWidth = 10
440 FieldKind = fkData
441 FieldName = 'HIRE_DATE'
442 Index = 4
443 LookupCache = False
444 ProviderFlags = [pfInUpdate, pfInWhere]
445 ReadOnly = False
446 Required = True
447 end
448 object EmployeesDEPT_NO: TIBStringField
449 DisplayWidth = 3
450 FieldKind = fkData
451 FieldName = 'DEPT_NO'
452 Index = 5
453 LookupCache = False
454 ProviderFlags = [pfInUpdate, pfInWhere]
455 ReadOnly = False
456 Required = True
457 Size = 3
458 end
459 object EmployeesJOB_CODE: TIBStringField
460 DisplayWidth = 5
461 FieldKind = fkData
462 FieldName = 'JOB_CODE'
463 Index = 6
464 LookupCache = False
465 ProviderFlags = [pfInUpdate, pfInWhere]
466 ReadOnly = False
467 Required = True
468 OnChange = EmployeesJOB_CODEChange
469 Size = 5
470 end
471 object EmployeesJOB_GRADE: TSmallintField
472 DisplayWidth = 10
473 FieldKind = fkData
474 FieldName = 'JOB_GRADE'
475 Index = 7
476 LookupCache = False
477 ProviderFlags = [pfInUpdate, pfInWhere]
478 ReadOnly = False
479 Required = True
480 OnChange = EmployeesJOB_GRADEChange
481 end
482 object EmployeesJOB_COUNTRY: TIBStringField
483 DisplayWidth = 15
484 FieldKind = fkData
485 FieldName = 'JOB_COUNTRY'
486 Index = 8
487 LookupCache = False
488 ProviderFlags = [pfInUpdate, pfInWhere]
489 ReadOnly = False
490 Required = True
491 Size = 15
492 end
493 object EmployeesSALARY: TIBBCDField
494 DisplayWidth = 18
495 FieldKind = fkData
496 FieldName = 'SALARY'
497 Index = 9
498 LookupCache = False
499 ProviderFlags = [pfInUpdate, pfInWhere]
500 ReadOnly = False
501 Required = True
502 OnGetText = EmployeesSALARYGetText
503 Precision = 18
504 Currency = False
505 MaxValue = 0
506 MinValue = 0
507 Size = 2
508 end
509 object EmployeesFULL_NAME: TIBStringField
510 DisplayWidth = 37
511 FieldKind = fkData
512 FieldName = 'FULL_NAME'
513 Index = 10
514 LookupCache = False
515 ProviderFlags = [pfInUpdate, pfInWhere]
516 ReadOnly = False
517 Required = False
518 OnChange = EmployeesFULL_NAMEChange
519 Size = 37
520 end
521 object EmployeesDEPT_PATH: TIBStringField
522 DisplayWidth = 256
523 FieldKind = fkData
524 FieldName = 'DEPT_PATH'
525 Index = 11
526 LookupCache = False
527 ProviderFlags = [pfInUpdate, pfInWhere]
528 ReadOnly = False
529 Required = True
530 Size = 256
531 end
532 object EmployeesDEPT_KEY_PATH: TIBStringField
533 DisplayWidth = 64
534 FieldKind = fkData
535 FieldName = 'DEPT_KEY_PATH'
536 Index = 12
537 LookupCache = False
538 ProviderFlags = [pfInUpdate, pfInWhere]
539 ReadOnly = False
540 Required = True
541 Size = 64
542 end
543 end
544 object EmployeeSource: TDataSource
545 DataSet = Employees
546 OnDataChange = EmployeeSourceDataChange
547 left = 462
548 top = 16
549 end
550 object ApplicationProperties1: TApplicationProperties
551 OnIdle = ApplicationProperties1Idle
552 left = 328
553 top = 56
554 end
555 object Countries: TIBQuery
556 Database = IBDatabase1
557 Transaction = IBTransaction1
558 BeforeOpen = CountriesBeforeOpen
559 BufferChunks = 1000
560 CachedUpdates = False
561 GenerateParamNames = False
562 GeneratorField.ApplyOnEvent = gaeOnNewRecord
563 SQL.Strings = (
564 'Select A.COUNTRY, A.CURRENCY From COUNTRY A'
565 'JOIN JOB J On J.JOB_COUNTRY = A.COUNTRY'
566 'Where J.JOB_CODE = :JOB_CODE and J.JOB_GRADE = :JOB_GRADE'
567 )
568 Params = <
569 item
570 DataType = ftUnknown
571 Name = 'JOB_CODE'
572 ParamType = ptInput
573 end
574 item
575 DataType = ftUnknown
576 Name = 'JOB_GRADE'
577 ParamType = ptInput
578 end>
579 DataSetCloseAction = dcDiscardChanges
580 left = 425
581 top = 56
582 ParamData = <
583 item
584 DataType = ftUnknown
585 Name = 'JOB_CODE'
586 ParamType = ptInput
587 end
588 item
589 DataType = ftUnknown
590 Name = 'JOB_GRADE'
591 ParamType = ptInput
592 end>
593 end
594 object CountriesSource: TDataSource
595 DataSet = Countries
596 left = 392
597 top = 58
598 end
599 object JobCodes: TIBQuery
600 Database = IBDatabase1
601 Transaction = IBTransaction1
602 BeforeOpen = JobCodesBeforeOpen
603 BufferChunks = 1000
604 CachedUpdates = False
605 GenerateParamNames = False
606 GeneratorField.ApplyOnEvent = gaeOnNewRecord
607 SQL.Strings = (
608 'Select distinct A.JOB_CODE, A.JOB_TITLE From JOB A'
609 'Where JOB_GRADE = :JOB_GRADE'
610 'order by 2'
611 )
612 Params = <
613 item
614 DataType = ftUnknown
615 Name = 'JOB_GRADE'
616 ParamType = ptInput
617 end>
618 DataSetCloseAction = dcDiscardChanges
619 left = 425
620 top = 18
621 ParamData = <
622 item
623 DataType = ftUnknown
624 Name = 'JOB_GRADE'
625 ParamType = ptInput
626 end>
627 end
628 object JobCodeSource: TDataSource
629 DataSet = JobCodes
630 left = 392
631 top = 18
632 end
633 end