· 8 years ago · Mar 07, 2018, 06:06 AM
1unit kal;
2
3interface
4
5uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, DB, VpWeekView, StdCtrls, VpEdPop, VpDateEdit, VpTaskList,
8 VpBaseDS, VpTaskEditDlg, VpContactEditDlg, VpEvntEditDlg, VpDlg,
9 VpResEditDlg, VpDayView, VpBase, VpCalendar, VpDBDS, VpFlxDS,
10 ZAbstractRODataset, ZAbstractDataset, ZDataset, ZConnection;
11
12type
13
14 TForm1 = class(TForm)
15 ZConnection1: TZConnection;
16 ZQuery1: TZQuery;
17 ZQuery2: TZQuery;
18 ZQuery3: TZQuery;
19 DataSource1: TDataSource;
20 DataSource2: TDataSource;
21 DataSource3: TDataSource;
22 VpFlexDataStore1: TVpFlexDataStore;
23 VpCalendar1: TVpCalendar;
24 ZQuery4: TZQuery;
25 DataSource4: TDataSource;
26 VpDayView1: TVpDayView;
27 VpControlLink1: TVpControlLink;
28 VpResourceEditDialog1: TVpResourceEditDialog;
29 VpEventEditDialog1: TVpEventEditDialog;
30 VpContactEditDialog1: TVpContactEditDialog;
31 VpTaskEditDialog1: TVpTaskEditDialog;
32 VpResourceCombo1: TVpResourceCombo;
33 VpTaskList1: TVpTaskList;
34 VpDateEdit1: TVpDateEdit;
35 VpWeekView1: TVpWeekView;
36 ZQuery1EventNo: TLargeintField;
37 ZQuery1VenueNo: TLargeintField;
38 ZQuery1Event_Name: TStringField;
39 ZQuery1Event_Date: TDateField;
40 ZQuery1Event_Time: TTimeField;
41 ZQuery1Event_Description: TStringField;
42 ZQuery1Ticket_Price: TSmallintField;
43 ZQuery1Event_Photo: TStringField;
44 ZQuery2ResourceID: TLargeintField;
45 ZQuery2Description: TStringField;
46 ZQuery2Notes: TStringField;
47 ZQuery2ImageIndex: TStringField;
48 ZQuery2ResourceActive: TStringField;
49 ZQuery2UserField0: TStringField;
50 ZQuery2UserField1: TStringField;
51 ZQuery2UserField2: TStringField;
52 ZQuery2UserField3: TStringField;
53 ZQuery2UserField4: TStringField;
54 ZQuery2UserField5: TStringField;
55 ZQuery2UserField6: TStringField;
56 ZQuery2UserField7: TStringField;
57 ZQuery2UserField8: TStringField;
58 ZQuery2UserField9: TStringField;
59 ZQuery3RecordID: TLargeintField;
60 ZQuery3ResouceID: TIntegerField;
61 ZQuery3Complete: TStringField;
62 ZQuery3Description: TStringField;
63 ZQuery3Details: TStringField;
64 ZQuery3CreatedOn: TStringField;
65 ZQuery3Piority: TStringField;
66 ZQuery3Category: TStringField;
67 ZQuery3CompletedOn: TStringField;
68 ZQuery3DueDate: TDateTimeField;
69 ZQuery3UserField0: TStringField;
70 ZQuery3UserField1: TStringField;
71 ZQuery3UserField2: TStringField;
72 ZQuery3UserField3: TStringField;
73 ZQuery3UserField4: TStringField;
74 ZQuery3UserField5: TStringField;
75 ZQuery3UserFiled6: TStringField;
76 ZQuery3UserField7: TStringField;
77 ZQuery3UserField8: TStringField;
78 ZQuery3UserField9: TStringField;
79 ComboBox1: TComboBox;
80 CheckBox1: TCheckBox;
81 procedure Button1Click(Sender: TObject);
82 procedure TrackBar1Change(Sender: TObject);
83 procedure Button2Click(Sender: TObject);
84 procedure Button3Click(Sender: TObject);
85 procedure FormCreate(Sender: TObject);
86 procedure CheckBox1Click(Sender: TObject);
87 function VpFlexDataStore1GetNextID(Sender: TObject;
88 TableName: String): Integer;
89 procedure VpFlexDataStore1Connect(Sender: TObject);
90 procedure VpFlexDataStore1CreateTable(Sender: TObject;
91 TableName: String);
92 private
93 { Private declarations }
94 procedure CreateRecordIDTable;
95 procedure InitializeRecordIDTable;
96 procedure CreateFieldDefs(const TableName: string; FieldDefs: TFieldDefs);
97 procedure CreateIndexDefs(const TableName: string; IndexDefs: TIndexDefs);
98
99 public
100 end;
101
102 var
103
104 Form1 : TForm1;
105implementation
106
107{$R *.dfm}
108
109
110procedure TForm1.CheckBox1Click(Sender: TObject);
111begin
112 VpDayView1.IncludeWeekends := CheckBox1.Checked;
113end;
114
115function TForm1.VpFlexDataStore1GetNextID(Sender: TObject;
116 TableName: String): Integer;
117var
118 Query: TQuery;
119 GotIt: Boolean;
120 ID : Integer;
121 FieldName: string;
122begin
123
124 CreateRecordIDTable;
125
126 Query := TQuery.Create(self);
127 ID := 0;
128 try
129 Query.DatabaseName := ResourceTable.DatabaseName;
130
131 Query.Sql.Text := 'Select * from ' + RecordIDTableName;
132 Query.Open;
133
134 if TableName = ResourceTableName then begin
135 FieldName := 'ResourceID';
136 ID := Query.FieldByName('ResourceID').AsInteger;
137
138 end else if TableName = TasksTableName then begin
139 FieldName := 'TaskID';
140 ID := Query.FieldByName('TaskID').AsInteger;
141
142 end else if TableName = EventsTableName then begin
143 FieldName := 'EventID';
144 ID := Query.FieldByName('EventID').AsInteger;
145
146 end else if TableName = ContactsTableName then begin
147 FieldName := 'ContactID';
148 ID := Query.FieldByName('ContactID').AsInteger;
149
150 end else begin
151 raise EInvalidTable.Create;
152 Exit;
153 end;
154
155 Query.Close;
156 Query.SQL.Text := 'Update ' + RecordIDTableName + ' Set ' + FieldName
157 + ' = :NewID Where (' + FieldName + ' = :OldID)';
158
159 GotIt := false;
160 while not GotIt do begin
161 Inc(ID);
162 Query.ParamByName('NewID').AsInteger := ID;
163 Query.ParamByName('OldID').AsInteger := ID - 1;
164 Query.ExecSQL;
165
166 GotIt := (Query.RowsAffected = 1);
167 end;
168 end;
169 finally
170 Query.Close;
171 Query.Free;
172 end;
173 end;
174
175 result := ID;
176end;
177
178procedure TForm1.VpFlexDataStore1Connect(Sender: TObject);
179begin
180 { Check to see if the RecordID table exists and if not, create it. }
181 CreateRecordIDTable;
182end;
183
184procedure TForm1.CreateRecordIDTable;
185var
186 RecTable: TTable;
187begin
188 { Check to see if the RecordID table exists and if not, create it. }
189 RecTable := TTable.Create(self);
190 RecTable.DatabaseName := ResourceTable.DatabaseName;
191 RecTable.TableName := RecordIDTableName;
192 try
193 try
194 RecTable.Open;
195 except
196 CreateFieldDefs(RecordIDTableName, RecTable.FieldDefs);
197 CreateIndexDefs(RecordIDTableName, RecTable.IndexDefs);
198 RecTable.CreateTable;
199 InitializeRecordIDTable;
200 end;
201 finally
202 RecTable.Free;
203 end;
204end;
205
206
207procedure TForm1.InitializeRecordIDTable;
208var
209 Qry: TQuery;
210 ID: Integer;
211begin
212 Qry := TQuery.Create(self);
213 try
214 Qry.DatabaseName := ResourceTable.DatabaseName;
215
216 Qry.SQL.Text := 'Select * from ' + RecordIDTableName;
217 Qry.Open;
218 if Qry.RowsAffected = 0 then begin
219 { create one record in the table }
220 Qry.SQL.Clear;
221 Qry.SQL.Text := 'INSERT INTO ' + RecordIDTableName
222 + '(ResourceID, EventID, TaskID, ContactID) '
223 + 'VALUES(0, 0, 0, 0)';
224 Qry.ExecSQL;
225 end;
226 Qry.Close;
227
228 { Initialize Resource ID }
229 Qry.SQL.Text := 'Select Max(ResourceID) as MaxRes from '
230 + ResourceTableName;
231 Qry.Open;
232 ID := Qry.Fields[0].AsInteger;
233 Qry.Close;
234
235 Qry.SQL.Text := 'Update ' + RecordIDTableName + ' Set ResourceID = :ResID';
236 Qry.ParamByName('ResID').AsInteger := ID;
237 Qry.ExecSQL;
238
239 { Initialize Event RecordID }
240 Qry.SQL.Text := 'Select Max(RecordID) as MaxEvent from '
241 + EventsTableName;
242 Qry.Open;
243 ID := Qry.Fields[0].AsInteger;
244 Qry.Close;
245
246 Qry.SQL.Text := 'Update ' + RecordIDTableName + ' Set EventID = :EvID';
247 Qry.ParamByName('EvID').AsInteger := ID;
248 Qry.ExecSQL;
249
250 { Initialize Contact RecordID }
251 Qry.SQL.Text := 'Select Max(RecordID) as MaxContact from '
252 + ContactsTableName;
253 Qry.Open;
254 ID := Qry.Fields[0].AsInteger;
255 Qry.Close;
256
257 Qry.SQL.Text := 'Update ' + RecordIDTableName + ' Set ContactID = :CoID';
258 Qry.ParamByName('CoID').AsInteger := ID;
259 Qry.ExecSQL;
260
261 { Initialize Task RecordID }
262 Qry.SQL.Text := 'Select Max(RecordID) as MaxTask from ' + TasksTableName;
263 Qry.Open;
264 ID := Qry.Fields[0].AsInteger;
265 Qry.Close;
266
267 Qry.SQL.Text := 'Update ' + RecordIDTableName + ' Set TaskID = :TsID';
268 Qry.ParamByName('TsID').AsInteger := ID;
269 Qry.ExecSQL;
270
271 finally
272 Qry.Free;
273 end;
274end;
275{=====}
276
277procedure TForm1.VpFlexDataStore1CreateTable(Sender: TObject;
278 TableName: String);
279var
280 Table: TTable;
281begin
282 if TableName = ResourceTableName then
283 Table := TTable(ResourceTable)
284 { I cast it to show you how, in case you }
285 { want to use a TQuery with the BDE }
286
287 else if TableName = EventsTableName then
288 Table := TTable(EventsTable)
289
290 else if TableName = ContactsTableName then
291 Table := TTable(ContactsTable)
292
293 else if TableName = TasksTableName then
294 Table := TTable(TasksTable);
295
296 CreateFieldDefs(TableName, Table.FieldDefs);
297 CreateIndexDefs(TableName, Table.IndexDefs);
298
299 if Table <> nil then
300 Table.CreateTable;
301end;
302
303procedure TForm1.CreateFieldDefs(const TableName: string;
304 FieldDefs: TFieldDefs);
305begin
306 if TableName = ResourceTableName then begin
307 with FieldDefs do begin
308 Clear;
309 { Resource ID }
310 with AddFieldDef do begin
311 Name := 'ResourceID';
312 DataType := ftInteger;
313 Required := true;
314 end;
315 { Description }
316 with AddFieldDef do begin
317 Name := 'Description';
318 DataType := ftString;
319 Size := 255;
320 Required := false;
321 end;
322 { Notes }
323 with AddFieldDef do begin
324 Name := 'Notes';
325 DataType := ftString;
326 Size := 1024;
327 Required := false;
328 end;
329 { Image Index }
330 with AddFieldDef do begin
331 Name := 'ImageIndex';
332 DataType := ftInteger;
333 Required := false;
334 end;
335 { Active }
336 with AddFieldDef do begin
337 Name := 'ResourceActive';
338 DataType := ftBoolean;
339 Required := false;
340 end;
341 { UserField0 }
342 with AddFieldDef do begin
343 Name := 'UserField0';
344 DataType := ftString;
345 Required := false;
346 end;
347 { UserField1 }
348 with AddFieldDef do begin
349 Name := 'UserField1';
350 DataType := ftString;
351 Required := false;
352 end;
353 { UserField2 }
354 with AddFieldDef do begin
355 Name := 'UserField2';
356 DataType := ftString;
357 Required := false;
358 end;
359 { UserField3 }
360 with AddFieldDef do begin
361 Name := 'UserField3';
362 DataType := ftString;
363 Required := false;
364 end;
365 { UserField4 }
366 with AddFieldDef do begin
367 Name := 'UserField4';
368 DataType := ftString;
369 Required := false;
370 end;
371 { UserField5 }
372 with AddFieldDef do begin
373 Name := 'UserField5';
374 DataType := ftString;
375 Required := false;
376 end;
377 { UserField6 }
378 with AddFieldDef do begin
379 Name := 'UserField6';
380 DataType := ftString;
381 Required := false;
382 end;
383 { UserField7 }
384 with AddFieldDef do begin
385 Name := 'UserField7';
386 DataType := ftString;
387 Required := false;
388 end;
389 { UserField8 }
390 with AddFieldDef do begin
391 Name := 'UserField8';
392 DataType := ftString;
393 Required := false;
394 end;
395 { UserField9 }
396 with AddFieldDef do begin
397 Name := 'UserField9';
398 DataType := ftString;
399 Required := false;
400 end;
401 end; {with FieldDefs do}
402 end else if TableName = EventsTableName then begin
403 with FieldDefs do begin
404 Clear;
405 { Record ID }
406 with AddFieldDef do begin
407 Name := 'RecordID';
408 DataType := ftInteger;
409 Required := true;
410 end;
411 { StartTime }
412 with AddFieldDef do begin
413 Name := 'StartTime';
414 DataType := ftDateTime;
415 Required := true;
416 end;
417 { EndTime }
418 with AddFieldDef do begin
419 Name := 'EndTime';
420 DataType := ftDateTime;
421 Required := true;
422 end;
423 { Repeat Range End }
424 with AddFieldDef do begin
425 Name := 'RepeatRangeEnd';
426 DataType := ftDateTime;
427 Required := false;
428 end;
429 { Resource ID }
430 with AddFieldDef do begin
431 Name := 'ResourceID';
432 DataType := ftInteger;
433 Required := true;
434 end;
435 { Description }
436 with AddFieldDef do begin
437 Name := 'Description';
438 DataType := ftString;
439 Size := 255;
440 Required := false;
441 end;
442 { Note }
443 with AddFieldDef do begin
444 Name := 'Notes';
445 DataType := ftString;
446 Size := 1024;
447 Required := false;
448 end;
449 { Category }
450 with AddFieldDef do begin
451 Name := 'Category';
452 DataType := ftInteger;
453 Required := false;
454 end;
455 { AllDayEvent }
456 with AddFieldDef do begin
457 Name := 'AllDayEvent';
458 DataType := ftBoolean;
459 Required := false;
460 end;
461 { DingPath }
462 with AddFieldDef do begin
463 Name := 'DingPath';
464 DataType := ftString;
465 Size := 255;
466 Required := false;
467 end;
468 { AlarmSet }
469 with AddFieldDef do begin
470 Name := 'AlarmSet';
471 DataType := ftBoolean;
472 Required := false;
473 end;
474 { Alarm Advance }
475 with AddFieldDef do begin
476 Name := 'AlarmAdvance';
477 DataType := ftInteger;
478 Required := false;
479 end;
480 { Alarm Advance Type }
481 with AddFieldDef do begin
482 Name := 'AlarmAdvanceType';
483 DataType := ftInteger;
484 Required := false;
485 end;
486 { SnoozeTime }
487 with AddFieldDef do begin
488 Name := 'SnoozeTime';
489 DataType := ftDateTime;
490 Required := false;
491 end;
492 { Repeat Code }
493 with AddFieldDef do begin
494 Name := 'RepeatCode';
495 DataType := ftInteger;
496 Required := false;
497 end;
498 { Custom Repeat Interval }
499 with AddFieldDef do begin
500 Name := 'CustomInterval';
501 DataType := ftInteger;
502 Required := false;
503 end;
504 { UserField0 }
505 with AddFieldDef do begin
506 Name := 'UserField0';
507 DataType := ftString;
508 Required := false;
509 end;
510 { UserField1 }
511 with AddFieldDef do begin
512 Name := 'UserField1';
513 DataType := ftString;
514 Required := false;
515 end;
516 { UserField2 }
517 with AddFieldDef do begin
518 Name := 'UserField2';
519 DataType := ftString;
520 Required := false;
521 end;
522 { UserField3 }
523 with AddFieldDef do begin
524 Name := 'UserField3';
525 DataType := ftString;
526 Required := false;
527 end;
528 { UserField4 }
529 with AddFieldDef do begin
530 Name := 'UserField4';
531 DataType := ftString;
532 Required := false;
533 end;
534 { UserField5 }
535 with AddFieldDef do begin
536 Name := 'UserField5';
537 DataType := ftString;
538 Required := false;
539 end;
540 { UserField6 }
541 with AddFieldDef do begin
542 Name := 'UserField6';
543 DataType := ftString;
544 Required := false;
545 end;
546 { UserField7 }
547 with AddFieldDef do begin
548 Name := 'UserField7';
549 DataType := ftString;
550 Required := false;
551 end;
552 { UserField8 }
553 with AddFieldDef do begin
554 Name := 'UserField8';
555 DataType := ftString;
556 Required := false;
557 end;
558 { UserField9 }
559 with AddFieldDef do begin
560 Name := 'UserField9';
561 DataType := ftString;
562 Required := false;
563 end;
564 end; {with FieldDefs do}
565 end else if TableName = ContactsTableName then begin
566 with FieldDefs do begin
567 Clear;
568 { Record ID }
569 with AddFieldDef do begin
570 Name := 'RecordID';
571 DataType := ftInteger;
572 Required := true;
573 end;
574 { Resource ID }
575 with AddFieldDef do begin
576 Name := 'ResourceID';
577 DataType := ftInteger;
578 Required := true;
579 end;
580 { FirstName }
581 with AddFieldDef do begin
582 Name := 'FirstName';
583 DataType := ftString;
584 Size := 50;
585 Required := false;
586 end;
587 { LastName }
588 with AddFieldDef do begin
589 Name := 'LastName';
590 DataType := ftString;
591 Size := 50;
592 Required := false;
593 end;
594 { Birthdate }
595 with AddFieldDef do begin
596 Name := 'Birthdate';
597 DataType := ftDate;
598 Required := false;
599 end;
600 { Anniversary }
601 with AddFieldDef do begin
602 Name := 'Anniversary';
603 DataType := ftDate;
604 Required := false;
605 end;
606 { Title }
607 with AddFieldDef do begin
608 Name := 'Title';
609 DataType := ftString;
610 Size := 50;
611 Required := false;
612 end;
613 { Company }
614 with AddFieldDef do begin
615 Name := 'Company';
616 DataType := ftString;
617 Size := 50;
618 Required := false;
619 end;
620 { Position }
621 with AddFieldDef do begin
622 Name := 'Job_Position';
623 DataType := ftString;
624 Size := 30;
625 Required := false;
626 end;
627 { Address }
628 with AddFieldDef do begin
629 Name := 'Address';
630 DataType := ftString;
631 Size := 100;
632 Required := false;
633 end;
634 { City }
635 with AddFieldDef do begin
636 Name := 'City';
637 DataType := ftString;
638 Size := 50;
639 Required := false;
640 end;
641 { State }
642 with AddFieldDef do begin
643 Name := 'State';
644 DataType := ftString;
645 Size := 25;
646 Required := false;
647 end;
648 { Zip }
649 with AddFieldDef do begin
650 Name := 'Zip';
651 DataType := ftString;
652 Size := 10;
653 Required := false;
654 end;
655 { Country }
656 with AddFieldDef do begin
657 Name := 'Country';
658 DataType := ftString;
659 Size := 25;
660 Required := false;
661 end;
662 { Note }
663 with AddFieldDef do begin
664 Name := 'Note';
665 DataType := ftString;
666 Size := 1024;
667 Required := false;
668 end;
669 { Phone1 }
670 with AddFieldDef do begin
671 Name := 'Phone1';
672 DataType := ftString;
673 Size := 25;
674 Required := false;
675 end;
676 { Phone2 }
677 with AddFieldDef do begin
678 Name := 'Phone2';
679 DataType := ftString;
680 Size := 25;
681 Required := false;
682 end;
683 { Phone3 }
684 with AddFieldDef do begin
685 Name := 'Phone3';
686 DataType := ftString;
687 Size := 25;
688 Required := false;
689 end;
690 { Phone4 }
691 with AddFieldDef do begin
692 Name := 'Phone4';
693 DataType := ftString;
694 Size := 25;
695 Required := false;
696 end;
697 { Phone5 }
698 with AddFieldDef do begin
699 Name := 'Phone5';
700 DataType := ftString;
701 Size := 25;
702 Required := false;
703 end;
704 { Phone1 }
705 with AddFieldDef do begin
706 Name := 'PhoneType1';
707 DataType := ftInteger;
708 Required := false;
709 end;
710 { Phone2 }
711 with AddFieldDef do begin
712 Name := 'PhoneType2';
713 DataType := ftInteger;
714 Required := false;
715 end;
716 { Phone3 }
717 with AddFieldDef do begin
718 Name := 'PhoneType3';
719 DataType := ftInteger;
720 Required := false;
721 end;
722 { Phone4 }
723 with AddFieldDef do begin
724 Name := 'PhoneType4';
725 DataType := ftInteger;
726 Required := false;
727 end;
728 { Phone5 }
729 with AddFieldDef do begin
730 Name := 'PhoneType5';
731 DataType := ftInteger;
732 Required := false;
733 end;
734 { Category }
735 with AddFieldDef do begin
736 Name := 'Category';
737 DataType := ftInteger;
738 Required := false;
739 end;
740 { EMail }
741 with AddFieldDef do begin
742 Name := 'EMail';
743 DataType := ftString;
744 Size := 100;
745 Required := false;
746 end;
747 { Custom1 }
748 with AddFieldDef do begin
749 Name := 'Custom1';
750 DataType := ftString;
751 Size := 100;
752 Required := false;
753 end;
754 { Custom2 }
755 with AddFieldDef do begin
756 Name := 'Custom2';
757 DataType := ftString;
758 Size := 100;
759 Required := false;
760 end;
761 { Custom3 }
762 with AddFieldDef do begin
763 Name := 'Custom3';
764 DataType := ftString;
765 Size := 100;
766 Required := false;
767 end;
768 { Custom4 }
769 with AddFieldDef do begin
770 Name := 'Custom4';
771 DataType := ftString;
772 Size := 100;
773 Required := false;
774 end;
775 { UserField0 }
776 with AddFieldDef do begin
777 Name := 'UserField0';
778 DataType := ftString;
779 Required := false;
780 end;
781 { UserField1 }
782 with AddFieldDef do begin
783 Name := 'UserField1';
784 DataType := ftString;
785 Required := false;
786 end;
787 { UserField2 }
788 with AddFieldDef do begin
789 Name := 'UserField2';
790 DataType := ftString;
791 Required := false;
792 end;
793 { UserField3 }
794 with AddFieldDef do begin
795 Name := 'UserField3';
796 DataType := ftString;
797 Required := false;
798 end;
799 { UserField4 }
800 with AddFieldDef do begin
801 Name := 'UserField4';
802 DataType := ftString;
803 Required := false;
804 end;
805 { UserField5 }
806 with AddFieldDef do begin
807 Name := 'UserField5';
808 DataType := ftString;
809 Required := false;
810 end;
811 { UserField6 }
812 with AddFieldDef do begin
813 Name := 'UserField6';
814 DataType := ftString;
815 Required := false;
816 end;
817 { UserField7 }
818 with AddFieldDef do begin
819 Name := 'UserField7';
820 DataType := ftString;
821 Required := false;
822 end;
823 { UserField8 }
824 with AddFieldDef do begin
825 Name := 'UserField8';
826 DataType := ftString;
827 Required := false;
828 end;
829 { UserField9 }
830 with AddFieldDef do begin
831 Name := 'UserField9';
832 DataType := ftString;
833 Required := false;
834 end;
835 end; {with FieldDefs do}
836 end else if TableName = TasksTableName then begin
837 with FieldDefs do begin
838 Clear;
839 { Record ID }
840 with AddFieldDef do begin
841 Name := 'RecordID';
842 DataType := ftInteger;
843 Required := true;
844 end;
845 { Resource ID }
846 with AddFieldDef do begin
847 Name := 'ResourceID';
848 DataType := ftInteger;
849 Required := true;
850 end;
851 { Complete }
852 with AddFieldDef do begin
853 Name := 'Complete';
854 DataType := ftBoolean;
855 Required := false;
856 end;
857 { Description }
858 with AddFieldDef do begin
859 Name := 'Description';
860 DataType := ftString;
861 Size := 255;
862 Required := false;
863 end;
864 { Details }
865 with AddFieldDef do begin
866 Name := 'Details';
867 DataType := ftString;
868 Size := 1024;
869 Required := false;
870 end;
871 { Created On Date }
872 with AddFieldDef do begin
873 Name := 'CreatedOn';
874 DataType := ftDateTime;
875 Required := false;
876 end;
877 { Completed On Date }
878 with AddFieldDef do begin
879 Name := 'CompletedOn';
880 DataType := ftDateTime;
881 Required := false;
882 end;
883 { Priority }
884 with AddFieldDef do begin
885 Name := 'Priority';
886 DataType := ftInteger;
887 Required := false;
888 end;
889 { Category }
890 with AddFieldDef do begin
891 Name := 'Category';
892 DataType := ftInteger;
893 Required := false;
894 end;
895 { Due Date }
896 with AddFieldDef do begin
897 Name := 'DueDate';
898 DataType := ftDateTime;
899 Required := false;
900 end;
901 { UserField0 }
902 with AddFieldDef do begin
903 Name := 'UserField0';
904 DataType := ftString;
905 Required := false;
906 end;
907 { UserField1 }
908 with AddFieldDef do begin
909 Name := 'UserField1';
910 DataType := ftString;
911 Required := false;
912 end;
913 { UserField2 }
914 with AddFieldDef do begin
915 Name := 'UserField2';
916 DataType := ftString;
917 Required := false;
918 end;
919 { UserField3 }
920 with AddFieldDef do begin
921 Name := 'UserField3';
922 DataType := ftString;
923 Required := false;
924 end;
925 { UserField4 }
926 with AddFieldDef do begin
927 Name := 'UserField4';
928 DataType := ftString;
929 Required := false;
930 end;
931 { UserField5 }
932 with AddFieldDef do begin
933 Name := 'UserField5';
934 DataType := ftString;
935 Required := false;
936 end;
937 { UserField6 }
938 with AddFieldDef do begin
939 Name := 'UserField6';
940 DataType := ftString;
941 Required := false;
942 end;
943 { UserField7 }
944 with AddFieldDef do begin
945 Name := 'UserField7';
946 DataType := ftString;
947 Required := false;
948 end;
949 { UserField8 }
950 with AddFieldDef do begin
951 Name := 'UserField8';
952 DataType := ftString;
953 Required := false;
954 end;
955 { UserField9 }
956 with AddFieldDef do begin
957 Name := 'UserField9';
958 DataType := ftString;
959 Required := false;
960 end;
961 end; {with FieldDefs do}
962 end else if TableName = RecordIDTableName then begin
963 { The RecordID Table has only one record with 4 fields }
964 { each field contains the last record ID for each of the other tables }
965 with FieldDefs do begin
966 Clear;
967 { Resource ID }
968 with AddFieldDef do begin
969 Name := 'ResourceID';
970 DataType := ftInteger;
971 Required := true;
972 end;
973 { Event ID }
974 with AddFieldDef do begin
975 Name := 'EventID';
976 DataType := ftInteger;
977 Required := true;
978 end;
979 { Task ID }
980 with AddFieldDef do begin
981 Name := 'TaskID';
982 DataType := ftInteger;
983 Required := true;
984 end;
985 { Contact ID }
986 with AddFieldDef do begin
987 Name := 'ContactID';
988 DataType := ftInteger;
989 Required := true;
990 end;
991 { UserField0 }
992 with AddFieldDef do begin
993 Name := 'UserField0';
994 DataType := ftString;
995 Required := false;
996 end;
997 { UserField1 }
998 with AddFieldDef do begin
999 Name := 'UserField1';
1000 DataType := ftString;
1001 Required := false;
1002 end;
1003 { UserField2 }
1004 with AddFieldDef do begin
1005 Name := 'UserField2';
1006 DataType := ftString;
1007 Required := false;
1008 end;
1009 { UserField3 }
1010 with AddFieldDef do begin
1011 Name := 'UserField3';
1012 DataType := ftString;
1013 Required := false;
1014 end;
1015 { UserField4 }
1016 with AddFieldDef do begin
1017 Name := 'UserField4';
1018 DataType := ftString;
1019 Required := false;
1020 end;
1021 { UserField5 }
1022 with AddFieldDef do begin
1023 Name := 'UserField5';
1024 DataType := ftString;
1025 Required := false;
1026 end;
1027 { UserField6 }
1028 with AddFieldDef do begin
1029 Name := 'UserField6';
1030 DataType := ftString;
1031 Required := false;
1032 end;
1033 { UserField7 }
1034 with AddFieldDef do begin
1035 Name := 'UserField7';
1036 DataType := ftString;
1037 Required := false;
1038 end;
1039 { UserField8 }
1040 with AddFieldDef do begin
1041 Name := 'UserField8';
1042 DataType := ftString;
1043 Required := false;
1044 end;
1045 { UserField9 }
1046 with AddFieldDef do begin
1047 Name := 'UserField9';
1048 DataType := ftString;
1049 Required := false;
1050 end;
1051 end; {with FieldDefs do}
1052 end else if TableName = RecordIDTableName then begin
1053
1054 with FieldDefs do begin
1055 Clear;
1056 { Resource ID }
1057 with AddFieldDef do begin
1058 Name := 'ResourceID';
1059 DataType := ftInteger;
1060 Required := true;
1061 end;
1062 { Event ID }
1063 with AddFieldDef do begin
1064 Name := 'EventID';
1065 DataType := ftInteger;
1066 Required := true;
1067 end;
1068 { Task ID }
1069 with AddFieldDef do begin
1070 Name := 'TaskID';
1071 DataType := ftInteger;
1072 Required := true;
1073 end;
1074 { Contact ID }
1075 with AddFieldDef do begin
1076 Name := 'ContactID';
1077 DataType := ftInteger;
1078 Required := true;
1079 end;
1080 end; {with FieldDefs do}
1081 end;
1082end;
1083{=====}
1084
1085procedure TFrmSimplePlanner.CreateIndexDefs(const TableName: string;
1086 IndexDefs: TIndexDefs);
1087begin
1088 if TableName = ResourceTableName then begin
1089 with IndexDefs do begin
1090 with AddIndexDef do begin
1091 Name := '';
1092 Fields := 'ResourceID';
1093 Options := [ixPrimary];
1094 end;
1095 with AddIndexDef do begin
1096 Name := 'Descr_ndx';
1097 Fields := 'Description';
1098 Options := [ixCaseInsensitive];
1099 end;
1100 end;
1101 end else if TableName = EventsTableName then begin
1102 with IndexDefs do begin
1103 with AddIndexDef do begin
1104 Name := '';
1105 Fields := 'RecordID';
1106 Options := [ixPrimary];
1107 end;
1108 with AddIndexDef do begin
1109 Name := 'ResID_ndx';
1110 Fields := 'ResourceID';
1111 Options := [ixCaseInsensitive];
1112 end;
1113 with AddIndexDef do begin
1114 Name := 'st_ndx';
1115 Fields := 'StartTime';
1116 Options := [ixCaseInsensitive];
1117 end;
1118 with AddIndexDef do begin
1119 Name := 'et_ndx';
1120 Fields := 'EndTime';
1121 Options := [ixCaseInsensitive];
1122 end;
1123 end;
1124 end else if TableName = ContactsTableName then begin
1125 with IndexDefs do begin
1126 with AddIndexDef do begin
1127 Name := '';
1128 Fields := 'RecordID';
1129 Options := [ixPrimary];
1130 end;
1131 with AddIndexDef do begin
1132 Name := 'ResID_ndx';
1133 Fields := 'ResourceID';
1134 Options := [ixCaseInsensitive];
1135 end;
1136 with AddIndexDef do begin
1137 Name := 'LName_ndx';
1138 Fields := 'LastName';
1139 Options := [ixCaseInsensitive];
1140 end;
1141 with AddIndexDef do begin
1142 Name := 'Company_ndx';
1143 Fields := 'Company';
1144 Options := [ixCaseInsensitive];
1145 end;
1146 end;
1147 end else if TableName = TasksTableName then begin
1148 with IndexDefs do begin
1149 with AddIndexDef do begin
1150 Name := '';
1151 Fields := 'RecordID';
1152 Options := [ixPrimary];
1153 end;
1154 with AddIndexDef do begin
1155 Name := 'ResID_ndx';
1156 Fields := 'ResourceID';
1157 Options := [ixCaseInsensitive];
1158 end;
1159
1160 with AddIndexDef do begin
1161 Name := 'DueDate';
1162 Fields := 'DueDate';
1163 Options := [];
1164 end;
1165 with AddIndexDef do begin
1166 Name := 'CompletedOn';
1167 Fields := 'CompletedOn';
1168 Options := [];
1169 end;
1170 end;
1171 end;
1172end;
1173{=====}
1174
1175end.