From d98cf55ca3cb2818baaacf775afff436ac170896 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sat, 10 Sep 2016 13:47:46 +0000 Subject: [PATCH] tvplanit: Remove duplicate code in datastore RefreshXXX methods. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5142 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/tvplanit/source/vpdbds.pas | 182 +------------------------ components/tvplanit/source/vpflxds.pas | 14 +- components/tvplanit/source/vpxmlds.pas | 6 +- 3 files changed, 17 insertions(+), 185 deletions(-) diff --git a/components/tvplanit/source/vpdbds.pas b/components/tvplanit/source/vpdbds.pas index 120a9f364..59c59e664 100644 --- a/components/tvplanit/source/vpdbds.pas +++ b/components/tvplanit/source/vpdbds.pas @@ -1029,7 +1029,6 @@ begin inherited; end; -{=====} { Load this resource's events into memory } procedure TVpCustomDBDataStore.LoadEvents; @@ -1680,201 +1679,32 @@ end; {=====} procedure TVpCustomDBDataStore.RefreshContacts; -var - Contact: TVpContact; - F: TField; begin if Resource <> nil then begin - { Clear the Contacts } Resource.Contacts.ClearContacts; - { Load this resource's contacts into memory } - with ContactsTable do begin - SetFilterCriteria(ContactsTable, False, Resource.ResourceID, 0, 0); - First; - while not EOF do begin - Contact := Resource.Contacts.AddContact(FieldByName('RecordID').AsInteger); - Contact.Loading := true; -// Contact.RecordID := FieldByName('RecordID').AsInteger; - Contact.FirstName := FieldByName('FirstName').AsString; - Contact.LastName := FieldByName('LastName').AsString; - Contact.Birthdate := FieldByName('Birthdate').AsDateTime; - Contact.Anniversary := FieldByName('Anniversary').AsDateTime; - Contact.Title := FieldByName('Title').AsString; - Contact.Company := FieldByName('Company').AsString; - Contact.Job_Position := FieldByName('Job_Position').AsString; - Contact.EMail := FieldByName('EMail').AsString; - Contact.Address := FieldByName('Address').AsString; - Contact.City := FieldByName('City').AsString; - Contact.State := FieldByName('State').AsString; - Contact.Zip := FieldByName('Zip').AsString; - Contact.Country := FieldByName('Country').AsString; - F := FieldByName('Notes'); - if F = nil then F := FieldByName('Note'); // deprecated - if F <> nil then Contact.Notes := F.AsString; - Contact.Phone1 := FieldByName('Phone1').AsString; - Contact.Phone2 := FieldByName('Phone2').AsString; - Contact.Phone3 := FieldByName('Phone3').AsString; - Contact.Phone4 := FieldByName('Phone4').AsString; - Contact.Phone5 := FieldByName('Phone5').AsString; - Contact.PhoneType1 := FieldByName('PhoneType1').AsInteger; - Contact.PhoneType2 := FieldByName('PhoneType2').AsInteger; - Contact.PhoneType3 := FieldByName('PhoneType3').AsInteger; - Contact.PhoneType4 := FieldByName('PhoneType4').AsInteger; - Contact.PhoneType5 := FieldByName('PhoneType5').AsInteger; - Contact.Category := FieldByName('Category').AsInteger; - Contact.Custom1 := FieldByName('Custom1').AsString; - Contact.Custom2 := FieldByName('Custom2').AsString; - Contact.Custom3 := FieldByName('Custom3').AsString; - Contact.Custom4 := FieldByName('Custom4').AsString; - F := FindField('UserField0'); - if F <> nil then Contact.UserField0 := F.AsString; - F := FindField('UserField1'); - if F <> nil then Contact.UserField1 := F.AsString; - F := FindField('UserField2'); - if F <> nil then Contact.UserField2 := F.AsString; - F := FindField('UserField3'); - if F <> nil then Contact.UserField3 := F.AsString; - F := FindField('UserField4'); - if F <> nil then Contact.UserField4 := F.AsString; - F := FindField('UserField5'); - if F <> nil then Contact.UserField5 := F.AsString; - F := FindField('UserField6'); - if F <> nil then Contact.UserField6 := F.AsString; - F := FindField('UserField7'); - if F <> nil then Contact.UserField7 := F.AsString; - F := FindField('UserField8'); - if F <> nil then Contact.UserField8 := F.AsString; - F := FindField('UserField9'); - if F <> nil then Contact.UserField9 := F.AsString; - Contact.Loading := false; - Next; - end; - end; - inherited; + LoadContacts; end; + inherited; end; {=====} procedure TVpCustomDBDataStore.RefreshEvents; -var - Event: TVpEvent; - F: TField; begin if Resource <> nil then begin - { Clear the Events } Resource.Schedule.ClearEvents; - - { Load this resource's events into memory } - with EventsTable do begin - SetFilterCriteria(EventsTable, True, Resource.ResourceID, TimeRange.StartTime, TimeRange.EndTime); - First; - - while not EventsTable.EOF do - begin - Event := Resource.Schedule.AddEvent( - FieldByName('RecordID').AsInteger, - FieldByName('StartTime').AsDateTime, - FieldByName('EndTime').AsDateTime - ); - if Event <> nil then begin - Event.Loading := true; {prevents the events changed flag from being set} -// Event.RecordID := FieldByName('RecordID').AsInteger; - Event.Description := FieldByName('Description').AsString; - F := FieldByName('Location'); // new - if F <> nil then Event.Location := F.AsString; - Event.Notes := FieldByName('Notes').AsString; - Event.Category := FieldByName('Category').AsInteger; - Event.DingPath := FieldByName('DingPath').AsString; - Event.AllDayEvent := FieldByName('AllDayEvent').AsBoolean; - Event.AlarmSet := FieldByName('AlarmSet').AsBoolean; - Event.AlarmAdvance := FieldByName('AlarmAdvance').AsInteger; - Event.AlarmAdvanceType := TVpAlarmAdvType( - FieldByName('AlarmAdvanceType').AsInteger); - Event.RepeatCode := TVpRepeatType(FieldByName('RepeatCode').AsInteger); - Event.RepeatRangeEnd := FieldByName('RepeatRangeEnd').AsDateTime; - Event.CustomInterval := FieldByName('CustomInterval').AsInteger; - - F := FindField('UserField0'); - if F <> nil then Event.UserField0 := F.AsString; - F := FindField('UserField1'); - if F <> nil then Event.UserField1 := F.AsString; - F := FindField('UserField2'); - if F <> nil then Event.UserField2 := F.AsString; - F := FindField('UserField3'); - if F <> nil then Event.UserField3 := F.AsString; - F := FindField('UserField4'); - if F <> nil then Event.UserField4 := F.AsString; - F := FindField('UserField5'); - if F <> nil then Event.UserField5 := F.AsString; - F := FindField('UserField6'); - if F <> nil then Event.UserField6 := F.AsString; - F := FindField('UserField7'); - if F <> nil then Event.UserField7 := F.AsString; - F := FindField('UserField8'); - if F <> nil then Event.UserField8 := F.AsString; - F := FindField('UserField9'); - if F <> nil then Event.UserField9 := F.AsString; - - Event.Loading := false; - end; - Next; - end; - end; - inherited; + LoadEvents; end; + inherited; end; {=====} procedure TVpCustomDBDataStore.RefreshTasks; -var - Task: TVpTask; - F: TField; begin if Resource <> nil then begin - { Clear the Tasks } Resource.Tasks.ClearTasks; - { Load this resource's tasks into memory } - with TasksTable do begin - SetFilterCriteria(TasksTable, False, Resource.ResourceID, 0, 0); - First; - while not EOF do begin - Task := Resource.Tasks.AddTask(FieldByName('RecordID').AsInteger); - Task.Loading := true; -// Task.RecordID := FieldByName('RecordID').AsInteger; - Task.Complete := FieldByName('Complete').AsBoolean; - Task.Description := FieldByName('Description').AsString; - Task.Details := FieldByName('Details').AsString; - Task.CreatedOn := FieldByName('CreatedOn').AsDateTime; - Task.CompletedOn := FieldByName('CompletedOn').AsDateTime; - Task.Priority := FieldByName('Priority').AsInteger; - Task.Category := FieldByName('Category').AsInteger; - Task.DueDate := FieldByName('DueDate').AsDateTime; - F := FindField('UserField0'); - if F <> nil then Task.UserField0 := F.AsString; - F := FindField('UserField1'); - if F <> nil then Task.UserField1 := F.AsString; - F := FindField('UserField2'); - if F <> nil then Task.UserField2 := F.AsString; - F := FindField('UserField3'); - if F <> nil then Task.UserField3 := F.AsString; - F := FindField('UserField4'); - if F <> nil then Task.UserField4 := F.AsString; - F := FindField('UserField5'); - if F <> nil then Task.UserField5 := F.AsString; - F := FindField('UserField6'); - if F <> nil then Task.UserField6 := F.AsString; - F := FindField('UserField7'); - if F <> nil then Task.UserField7 := F.AsString; - F := FindField('UserField8'); - if F <> nil then Task.UserField8 := F.AsString; - F := FindField('UserField9'); - if F <> nil then Task.UserField9 := F.AsString; - Task.Loading := false; - Next; - end; - end; - inherited; + LoadTasks; end; + inherited; end; {=====} diff --git a/components/tvplanit/source/vpflxds.pas b/components/tvplanit/source/vpflxds.pas index c874801e8..cd379580b 100644 --- a/components/tvplanit/source/vpflxds.pas +++ b/components/tvplanit/source/vpflxds.pas @@ -147,9 +147,9 @@ type procedure LoadEventsOfResource(AResID: Integer); override; procedure LoadContacts; override; procedure LoadTasks; override; - procedure RefreshEvents; override; - procedure RefreshContacts; override; - procedure RefreshTasks; override; +// procedure RefreshEvents; override; +// procedure RefreshContacts; override; +// procedure RefreshTasks; override; procedure RefreshResource; override; procedure PostEvents; override; procedure PostContacts; override; @@ -1125,9 +1125,7 @@ end; procedure TVpFlexDataStore.RefreshResource; var -// Resource: TVpResource; - {Field Name} - FN : string; + FN: string; begin if Resource = nil then Resource := Resources.GetResource(ResourceID); @@ -1216,7 +1214,7 @@ begin NotifyDependents; end; {=====} - + (* procedure TVpFlexDataStore.RefreshEvents; begin if Resource <> nil then begin @@ -1249,7 +1247,7 @@ begin NotifyDependents; end; {=====} - + *) procedure TVpFlexDataStore.PostEvents; var J: Integer; diff --git a/components/tvplanit/source/vpxmlds.pas b/components/tvplanit/source/vpxmlds.pas index cf95d6d94..812441be6 100644 --- a/components/tvplanit/source/vpxmlds.pas +++ b/components/tvplanit/source/vpxmlds.pas @@ -53,14 +53,16 @@ type destructor Destroy; override; function GetNextID(TableName: string): Integer; override; + procedure SetResourceByName(Value: String); override; + procedure LoadEvents; override; procedure LoadContacts; override; procedure LoadTasks; override; + procedure PostContacts; override; procedure PostEvents; override; procedure PostResources; override; procedure PostTasks; override; - procedure SetResourceByName(Value: String); override; published property AutoConnect default false; @@ -707,12 +709,14 @@ var nodeName: String; begin node := ANode.FirstChild; + ASchedule.BatchUpdate(true); while node <> nil do begin nodeName := node.NodeName; if nodeName = 'Event' then ReadEvent(node, ASchedule); node := node.NextSibling; end; + ASchedule.BatchUpdate(false); end; //