You've already forked lazarus-ccr
tvplanit: Refactor datastore's LoadEvents (new method LoadEventsOfResource)
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5141 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -264,6 +264,7 @@ type
|
|||||||
|
|
||||||
procedure Load; virtual;
|
procedure Load; virtual;
|
||||||
procedure LoadEvents; virtual; abstract;
|
procedure LoadEvents; virtual; abstract;
|
||||||
|
procedure LoadEventsOfResource(AResID: Integer); virtual; abstract;
|
||||||
procedure LoadContacts; virtual; abstract;
|
procedure LoadContacts; virtual; abstract;
|
||||||
procedure LoadTasks; virtual; abstract;
|
procedure LoadTasks; virtual; abstract;
|
||||||
|
|
||||||
|
@ -79,22 +79,25 @@ type
|
|||||||
|
|
||||||
procedure Load; override;
|
procedure Load; override;
|
||||||
procedure LoadEvents; override;
|
procedure LoadEvents; override;
|
||||||
|
procedure LoadEventsOfResource(AResID: integer); override;
|
||||||
procedure LoadContacts; override;
|
procedure LoadContacts; override;
|
||||||
procedure LoadTasks; override;
|
procedure LoadTasks; override;
|
||||||
|
|
||||||
procedure RefreshEvents; override;
|
procedure RefreshEvents; override;
|
||||||
procedure RefreshContacts; override;
|
procedure RefreshContacts; override;
|
||||||
procedure RefreshTasks; override;
|
procedure RefreshTasks; override;
|
||||||
procedure RefreshResource; override;
|
procedure RefreshResource; override;
|
||||||
|
|
||||||
procedure PostEvents; override;
|
procedure PostEvents; override;
|
||||||
procedure PostContacts; override;
|
procedure PostContacts; override;
|
||||||
procedure PostTasks; override;
|
procedure PostTasks; override;
|
||||||
procedure PostResources; override;
|
procedure PostResources; override;
|
||||||
{ - Added}
|
|
||||||
procedure PurgeResource(Res: TVpResource); override;
|
procedure PurgeResource(Res: TVpResource); override;
|
||||||
procedure PurgeEvents(Res: TVpResource); override;
|
procedure PurgeEvents(Res: TVpResource); override;
|
||||||
procedure PurgeContacts(Res: TVpResource); override;
|
procedure PurgeContacts(Res: TVpResource); override;
|
||||||
procedure PurgeTasks(Res: TVpResource); override;
|
procedure PurgeTasks(Res: TVpResource); override;
|
||||||
{ - End}
|
|
||||||
procedure SetResourceByName(Value: string); override;
|
procedure SetResourceByName(Value: string); override;
|
||||||
procedure CreateFieldDefs(const TableName : string;
|
procedure CreateFieldDefs(const TableName : string;
|
||||||
FieldDefs : TFieldDefs); virtual;
|
FieldDefs : TFieldDefs); virtual;
|
||||||
@ -1028,24 +1031,28 @@ begin
|
|||||||
end;
|
end;
|
||||||
{=====}
|
{=====}
|
||||||
|
|
||||||
|
{ Load this resource's events into memory }
|
||||||
procedure TVpCustomDBDataStore.LoadEvents;
|
procedure TVpCustomDBDataStore.LoadEvents;
|
||||||
|
begin
|
||||||
|
if Resource <> nil then
|
||||||
|
LoadEventsOfResource(Resource.ResourceID);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ Load the events of the specified resource into memory }
|
||||||
|
procedure TVpCustomDBDataStore.LoadEventsOfResource(AResID: Integer);
|
||||||
var
|
var
|
||||||
|
res: TVpResource;
|
||||||
Event: TVpEvent;
|
Event: TVpEvent;
|
||||||
F: TField;
|
F: TField;
|
||||||
begin
|
begin
|
||||||
if Resource <> nil then
|
// Find the resource belonging to the specified ID.
|
||||||
{ Load this resource's events into memory }
|
res := Resources.GetResource(AResID);
|
||||||
|
if res <> nil then
|
||||||
with EventsTable do begin
|
with EventsTable do begin
|
||||||
SetFilterCriteria(
|
SetFilterCriteria(EventsTable, true, AResID, TimeRange.StartTime, TimeRange.EndTime);
|
||||||
EventsTable,
|
|
||||||
True,
|
|
||||||
ResourceTable.FieldByName('ResourceID').AsInteger,
|
|
||||||
TimeRange.StartTime,
|
|
||||||
TimeRange.EndTime
|
|
||||||
);
|
|
||||||
First;
|
First;
|
||||||
while not EventsTable.EOF do begin
|
while not EventsTable.EOF do begin
|
||||||
Event := Resource.Schedule.AddEvent(
|
Event := res.Schedule.AddEvent(
|
||||||
FieldByName('RecordID').AsInteger,
|
FieldByName('RecordID').AsInteger,
|
||||||
FieldByName('StartTime').AsDateTime,
|
FieldByName('StartTime').AsDateTime,
|
||||||
FieldByName('EndTime').AsDateTime
|
FieldByName('EndTime').AsDateTime
|
||||||
@ -1053,7 +1060,7 @@ begin
|
|||||||
if Event <> nil then begin
|
if Event <> nil then begin
|
||||||
Event.Loading := true;
|
Event.Loading := true;
|
||||||
Event.Description := FieldByName('Description').AsString;
|
Event.Description := FieldByName('Description').AsString;
|
||||||
F := FieldByName('Location'); // new
|
F := FieldByName('Location');
|
||||||
if F <> nil then Event.Location := F.AsString;
|
if F <> nil then Event.Location := F.AsString;
|
||||||
Event.Notes := FieldByName('Notes').AsString;
|
Event.Notes := FieldByName('Notes').AsString;
|
||||||
Event.Category := FieldByName('Category').AsInteger;
|
Event.Category := FieldByName('Category').AsInteger;
|
||||||
@ -1086,12 +1093,10 @@ begin
|
|||||||
if F <> nil then Event.UserField8 := F.AsString;
|
if F <> nil then Event.UserField8 := F.AsString;
|
||||||
F := FindField('UserField9');
|
F := FindField('UserField9');
|
||||||
if F <> nil then Event.UserField9 := F.AsString;
|
if F <> nil then Event.UserField9 := F.AsString;
|
||||||
|
|
||||||
Event.Loading := false;
|
Event.Loading := false;
|
||||||
end;
|
end;
|
||||||
Next;
|
Next;
|
||||||
end; {while}
|
end; {while}
|
||||||
|
|
||||||
end; {with EventsTable}
|
end; {with EventsTable}
|
||||||
end;
|
end;
|
||||||
{=====}
|
{=====}
|
||||||
|
@ -144,7 +144,7 @@ type
|
|||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure Load; override;
|
procedure Load; override;
|
||||||
|
|
||||||
procedure LoadEvents; override;
|
procedure LoadEventsOfResource(AResID: Integer); override;
|
||||||
procedure LoadContacts; override;
|
procedure LoadContacts; override;
|
||||||
procedure LoadTasks; override;
|
procedure LoadTasks; override;
|
||||||
procedure RefreshEvents; override;
|
procedure RefreshEvents; override;
|
||||||
@ -540,6 +540,150 @@ begin
|
|||||||
end;
|
end;
|
||||||
{=====}
|
{=====}
|
||||||
|
|
||||||
|
procedure TVpFlexDataStore.LoadEventsOfResource(AResID: Integer);
|
||||||
|
var
|
||||||
|
res: TVpResource;
|
||||||
|
Event: TVpEvent;
|
||||||
|
{Field Name}
|
||||||
|
FN1, FN2, FN3: string;
|
||||||
|
begin
|
||||||
|
res := Resources.GetResource(AResID);
|
||||||
|
if (FEventsDataSrc = nil) or (FEventsDataSrc.DataSet = nil) then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
if (res <> nil) then begin
|
||||||
|
SetFilterCriteria(FEventsDataSrc.DataSet, True, AResID,
|
||||||
|
TimeRange.StartTime, TimeRange.EndTime);
|
||||||
|
|
||||||
|
if (FEventsDataSrc = nil) or
|
||||||
|
(FEventsDataSrc.DataSet = nil) or (not FEventsDataSrc.DataSet.Active)
|
||||||
|
then
|
||||||
|
Exit;
|
||||||
|
|
||||||
|
with FEventsDataSrc.Dataset do begin
|
||||||
|
First;
|
||||||
|
|
||||||
|
while not EOF do begin
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'RecordID');
|
||||||
|
FN2 := GetFieldName(FEventMappings, 'StartTime');
|
||||||
|
FN3 := GetFieldName(FEventMappings, 'EndTime');
|
||||||
|
if (FN1 <> '') and (FN2 <> '') and (FN3 <> '') then begin
|
||||||
|
Event := res.Schedule.AddEvent(FieldByName(FN1).AsInteger,
|
||||||
|
FieldByName(FN2).AsDateTime, FieldByName(FN3).AsDateTime);
|
||||||
|
|
||||||
|
if Event <> nil then begin
|
||||||
|
Event.Loading := true;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'Description');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.Description := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'Location'); // new
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.Location := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'Notes');
|
||||||
|
if (FN1 = '') then FN1 := GetFieldName(FEventMappings, 'Note'); // deprecated
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.Notes := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'Category');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.Category := FieldByName(FN1).AsInteger;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'DingPath');
|
||||||
|
if FN1 = '' then
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'AlarmWavPath'); // deprectated
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.DingPath := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'AllDayEvent');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.AllDayEvent := FieldByName(FN1).AsBoolean;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'AlarmSet');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.AlarmSet := FieldByName(FN1).AsBoolean;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'AlarmAdvance');
|
||||||
|
if FN1 = '' then
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'AlarmAdv'); // deprecated
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.AlarmAdvance := FieldByName(FN1).AsInteger;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'AlarmAdvanceType');
|
||||||
|
if FN1 = '' then
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'AlarmAdvType'); // deprecated
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.AlarmAdvanceType := TVpAlarmAdvType(FieldByName(FN1).AsInteger);
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'SnoozeTime');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.SnoozeTime := FieldByName(FN1).AsDateTime;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'RepeatCode');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.RepeatCode := TVpRepeatType(FieldByName(FN1).AsInteger);
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'RepeatRangeEnd');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.RepeatRangeEnd := FieldByName(FN1).AsDateTime;
|
||||||
|
|
||||||
|
FN1 := GetfieldName(FEventMappings, 'CustomInterval');
|
||||||
|
if FN1 = '' then
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'CustInterval');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.CustomInterval := FieldByName(FN1).AsInteger;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField0');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField0 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField1');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField1 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField2');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField2 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField3');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField3 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField4');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField4 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField5');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField5 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField6');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField6 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField7');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField7 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField8');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField8 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
FN1 := GetFieldName(FEventMappings, 'UserField9');
|
||||||
|
if (FN1 <> '') then
|
||||||
|
Event.UserField9 := FieldByName(FN1).AsString;
|
||||||
|
|
||||||
|
Event.Loading := false;
|
||||||
|
end; {if Event <> nil}
|
||||||
|
end; {if (FN1 <> '') and (FN2 <> '') and (FN3 <> '')}
|
||||||
|
Next;
|
||||||
|
end; {while}
|
||||||
|
end; {with FEventsDataSrc.Dataset}
|
||||||
|
end; {if resource <> nil}
|
||||||
|
end;
|
||||||
|
(*
|
||||||
procedure TVpFlexDataStore.LoadEvents;
|
procedure TVpFlexDataStore.LoadEvents;
|
||||||
var
|
var
|
||||||
Event: TVpEvent;
|
Event: TVpEvent;
|
||||||
@ -681,7 +825,7 @@ begin
|
|||||||
end; {while}
|
end; {while}
|
||||||
end; {with FEventsDataSrc.Dataset}
|
end; {with FEventsDataSrc.Dataset}
|
||||||
end; {if resource <> nil}
|
end; {if resource <> nil}
|
||||||
end;
|
end;*)
|
||||||
{=====}
|
{=====}
|
||||||
|
|
||||||
procedure TVpFlexDataStore.LoadContacts;
|
procedure TVpFlexDataStore.LoadContacts;
|
||||||
|
Reference in New Issue
Block a user