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

# User Rev Content
1 tony 23 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 tony 27 LCLVersion = '1.4.0.3'
12 tony 23 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 tony 27 DatabaseName = 'localhost:employee'
428 tony 23 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 tony 27 DataSetCloseAction = dcDiscardChanges
510 tony 23 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 tony 27 DataSetCloseAction = dcSaveChanges
601 tony 23 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