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, 11 months ago) by tony
File size: 16405 byte(s)
Log Message:
Committing updates for Release R2-0-0

File Contents

# User Rev Content
1 tony 21 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 tony 41 LCLVersion = '1.6.0.4'
12 tony 21 object Label1: TLabel
13     Left = 16
14     Height = 15
15     Top = 16
16 tony 45 Width = 87
17 tony 21 Caption = 'Employee Name'
18     ParentColor = False
19     end
20     object IBLookupComboEditBox1: TIBLookupComboEditBox
21     Left = 16
22 tony 45 Height = 23
23 tony 21 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 tony 45 ItemHeight = 15
35 tony 21 KeyPressInterval = 600
36     OnCanAutoInsert = IBLookupComboEditBox1CanAutoInsert
37     end
38     object Label2: TLabel
39     Left = 16
40     Height = 15
41     Top = 79
42 tony 45 Width = 90
43 tony 21 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 tony 45 Width = 57
62 tony 21 Caption = 'First Name'
63     ParentColor = False
64     end
65     object DBEdit1: TDBEdit
66     Left = 14
67 tony 45 Height = 23
68 tony 21 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 tony 45 Width = 56
81 tony 21 Caption = 'Last Name'
82     ParentColor = False
83     end
84     object DBEdit2: TDBEdit
85     Left = 168
86 tony 45 Height = 23
87 tony 21 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 tony 45 Left = 553
97 tony 21 Height = 15
98     Top = 120
99 tony 45 Width = 18
100 tony 21 Anchors = [akTop, akRight]
101     Caption = 'Ext.'
102     ParentColor = False
103     end
104     object DBEdit3: TDBEdit
105     Left = 547
106 tony 45 Height = 23
107 tony 21 Top = 136
108     Width = 48
109     DataField = 'PHONE_EXT'
110     DataSource = EmployeeSource
111     Anchors = [akTop, akRight]
112     CharCase = ecNormal
113     MaxLength = 0
114 tony 27 TabOrder = 3
115 tony 21 end
116     object Label6: TLabel
117     Left = 16
118     Height = 15
119     Top = 65
120 tony 45 Width = 49
121 tony 21 Caption = 'Hire Date'
122     ParentColor = False
123     end
124     object Label7: TLabel
125     Left = 172
126     Height = 15
127     Top = 65
128 tony 45 Width = 31
129 tony 21 Caption = 'Salary'
130     ParentColor = False
131     end
132     object DBEdit4: TDBEdit
133     Left = 168
134 tony 45 Height = 23
135 tony 21 Top = 80
136     Width = 144
137     DataField = 'SALARY'
138     DataSource = EmployeeSource
139     CharCase = ecNormal
140     MaxLength = 0
141 tony 27 TabOrder = 4
142 tony 21 end
143     object Label8: TLabel
144     Left = 392
145     Height = 15
146     Top = 16
147 tony 45 Width = 46
148 tony 21 Caption = 'Location'
149     ParentColor = False
150     end
151     object Label9: TLabel
152     Left = 331
153     Height = 15
154     Top = 16
155 tony 45 Width = 31
156 tony 21 Caption = 'Grade'
157     ParentColor = False
158     end
159     object DBComboBox1: TDBComboBox
160     Left = 331
161 tony 45 Height = 23
162 tony 21 Top = 32
163     Width = 53
164     DataField = 'JOB_GRADE'
165     DataSource = EmployeeSource
166 tony 45 ItemHeight = 15
167 tony 21 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 tony 45 Width = 44
184 tony 21 Caption = 'Job Title'
185     ParentColor = False
186     end
187     object Label11: TLabel
188     Left = 17
189     Height = 15
190     Top = 122
191 tony 45 Width = 63
192 tony 21 Caption = 'Department'
193     ParentColor = False
194     end
195     object DBEdit5: TDBEdit
196     Left = 17
197 tony 45 Height = 23
198 tony 21 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 tony 27 TabOrder = 5
207 tony 21 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 tony 45 Height = 23
220 tony 21 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 tony 27 TabOrder = 6
233 tony 21 AutoInsert = False
234     AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
235 tony 45 ItemHeight = 15
236 tony 21 end
237     object IBLookupComboEditBox3: TIBLookupComboEditBox
238     Left = 331
239 tony 45 Height = 23
240 tony 21 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 tony 27 TabOrder = 7
252 tony 21 AutoInsert = False
253     AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
254 tony 45 ItemHeight = 15
255 tony 21 end
256 tony 27 object IBDateEdit1: TDBDateEdit
257     Left = 17
258 tony 45 Height = 23
259 tony 27 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 tony 21 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 tony 41 Connected = True
306 tony 21 AllowStreamedConnected = False
307 tony 27 DatabaseName = 'localhost:employee'
308 tony 21 Params.Strings = (
309 tony 33 'lc_ctype=UTF8'
310 tony 21 'user_name=SYSDBA'
311 tony 45 'user_name=SYSDBA'
312 tony 21 )
313     DefaultTransaction = IBTransaction1
314     IdleTimer = 0
315     TraceFlags = []
316 tony 41 UseDefaultSystemCodePage = False
317 tony 21 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 tony 45 'Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar'
345     '(256)) as DEPT_PATH,'
346 tony 21 'cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH'
347     'From DEPARTMENT Where HEAD_DEPT is NULL '
348     'UNION ALL'
349 tony 45 '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 tony 21 ')'
355     ''
356 tony 45 '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 tony 21 'From EMPLOYEE A'
361     'JOIN Depts D On D.DEPT_NO = A.DEPT_NO'
362 tony 45 ''
363 tony 21 '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 tony 45 '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 tony 21 ')'
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 tony 41 'Order by 3 asc'
382 tony 21 )
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 tony 27 DataSetCloseAction = dcSaveChanges
392 tony 21 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 tony 27 DataSetCloseAction = dcDiscardChanges
580 tony 21 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 tony 27 DataSetCloseAction = dcDiscardChanges
619 tony 21 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