You've already forked lazarus-ccr
tvplanit: Add new event field "Location". Rename some fields for more consistency. Undo some of the changes in previous commit inspired by CodeTyphoon version.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4717 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -571,6 +571,10 @@ msgstr "F"
|
||||
msgid "M"
|
||||
msgstr "M"
|
||||
|
||||
#: vpsr.rslocationlbl
|
||||
msgid "Location:"
|
||||
msgstr "Ort:"
|
||||
|
||||
#: vpsr.rslsaturday
|
||||
msgctxt "vpsr.rslsaturday"
|
||||
msgid "S"
|
||||
|
@ -561,6 +561,10 @@ msgstr ""
|
||||
msgid "M"
|
||||
msgstr ""
|
||||
|
||||
#: vpsr.rslocationlbl
|
||||
msgid "Location:"
|
||||
msgstr ""
|
||||
|
||||
#: vpsr.rslsaturday
|
||||
msgctxt "vpsr.rslsaturday"
|
||||
msgid "S"
|
||||
|
@ -542,6 +542,8 @@ var
|
||||
I: Integer;
|
||||
Event: TVpEvent;
|
||||
Qry: TAdsQuery;
|
||||
F: TField;
|
||||
FixedLoc, FixedLocP: String;
|
||||
begin
|
||||
if (Resource <> nil) and Resource.EventsDirty then begin
|
||||
Qry := TAdsQuery.Create(self);
|
||||
@ -566,6 +568,14 @@ begin
|
||||
Qry.ParamByName('ID').AsInteger := Event.RecordID;
|
||||
Qry.Open;
|
||||
|
||||
if Qry.FieldByName('Location') <> nil then begin
|
||||
FixedLoc := 'Location, ';
|
||||
FixedLocP := ':Loc, ';
|
||||
end else begin
|
||||
FixedLoc := '';
|
||||
FixedLocP := '';
|
||||
end;
|
||||
|
||||
if Qry.Locate('RecordID', Event.RecordID, [])
|
||||
then begin
|
||||
{ existing record found }
|
||||
@ -576,9 +586,11 @@ begin
|
||||
Qry.FieldByName('EndTime').AsDateTime := Event.EndTime;
|
||||
Qry.FieldByName('ResourceID').AsInteger := Resource.ResourceID;
|
||||
Qry.FieldByName('Description').AsString := Event.Description;
|
||||
Qry.FieldByName('Notes').AsString := Event.Note;
|
||||
F := Qry.FieldByName('Location'); // new
|
||||
if F <> nil then F.AsString := Event.Location;
|
||||
Qry.FieldByName('Notes') := Event.Notes;
|
||||
Qry.FieldByName('Category').AsInteger := Event.Category;
|
||||
Qry.FieldByName('DingPath').AsString := Event.AlarmWavPath;
|
||||
Qry.FieldByName('DingPath').AsString := Event.DingPath;
|
||||
Qry.FieldByName('AllDayEvent').AsBoolean := Event.AllDayEvent;
|
||||
Qry.FieldByName('AlarmSet').AsBoolean := Event.AlarmSet;
|
||||
Qry.FieldByName('AlarmAdvance').AsInteger := Event.AlarmAdv;
|
||||
@ -605,45 +617,47 @@ begin
|
||||
end else begin
|
||||
Qry.Close;
|
||||
Qry.SQL.Text := 'INSERT INTO Events '
|
||||
+ '(RecordID, StartTime, EndTime, ResourceID, Description, Notes, '
|
||||
+ 'SnoozeTime, Category, DingPath, AllDayEvent, AlarmSet, '
|
||||
+ '(RecordID, StartTime, EndTime, ResourceID, Description, ' + FixedLoc +
|
||||
+ 'Notes, SnoozeTime, Category, DingPath, AllDayEvent, AlarmSet, '
|
||||
+ 'AlarmAdvance, AlarmAdvanceType, RepeatCode, '
|
||||
+ 'RepeatRangeEnd, CustomInterval, '
|
||||
+ 'UserField0, UserField1, UserField2, UserField3, UserField4, '
|
||||
+ 'UserField5, UserField6, UserField7, UserField8, UserField9) '
|
||||
+ 'VALUES(:RecID, :STime, :ETime, :ResID, :Desc, :Notes, :SnTime, '
|
||||
+ ':Cat, :DPath, :ADEvent, :ASet, :AAdvance, :AAdvanceType, '
|
||||
+ ':RCode, :RRangeEnd, :CInterval, :UserField0, '
|
||||
+ 'VALUES(:RecID, :STime, :ETime, :ResID, :Desc, ' + FixedLocP
|
||||
+ ':Notes, :SnTime, :Cat, :DPath, :ADEvent, :ASet, :AAdvance, '
|
||||
+ ':AAdvanceType, :RCode, :RRangeEnd, :CInterval, :UserField0, '
|
||||
+ ':UserField1, :UserField2, :UserField3, :UserField4, '
|
||||
+ ':UserField5, :UserField6, :UserField7, :UserField8, '
|
||||
+ ':UserField9)';
|
||||
|
||||
Qry.ParamByName('RecID').AsInteger := Event.RecordID;
|
||||
Qry.ParamByName('STime').AsDateTime := Event.StartTime;
|
||||
Qry.ParamByName('ETime').AsDateTime := Event.EndTime;
|
||||
Qry.ParamByName('ResID').AsInteger := Resource.ResourceID;
|
||||
Qry.ParamByName('Desc').AsString := Event.Description;
|
||||
Qry.ParamByName('Notes').AsString := Event.Note;
|
||||
Qry.ParamByName('SnTime').AsDateTime := Event.SnoozeTime;
|
||||
Qry.ParamByName('Cat').AsInteger := Event.Category;
|
||||
Qry.ParamByName('DPath').AsString := Event.AlarmWavPath;
|
||||
Qry.ParamByName('ADEvent').AsBoolean := Event.AllDayEvent;
|
||||
Qry.ParamByName('ASet').AsBoolean := Event.AlarmSet;
|
||||
Qry.ParamByName('AAdvance').AsInteger := Event.AlarmAdv;
|
||||
Qry.ParamByName('RecID').AsInteger := Event.RecordID;
|
||||
Qry.ParamByName('STime').AsDateTime := Event.StartTime;
|
||||
Qry.ParamByName('ETime').AsDateTime := Event.EndTime;
|
||||
Qry.ParamByName('ResID').AsInteger := Resource.ResourceID;
|
||||
Qry.ParamByName('Desc').AsString := Event.Description;
|
||||
if FixedLocP <> '' then
|
||||
Qry.ParamByName('Loc').AsString := Event.Location;
|
||||
Qry.ParamByName('Notes').AsString := Event.Notes;
|
||||
Qry.ParamByName('SnTime').AsDateTime := Event.SnoozeTime;
|
||||
Qry.ParamByName('Cat').AsInteger := Event.Category;
|
||||
Qry.ParamByName('DPath').AsString := Event.AlarmWavPath;
|
||||
Qry.ParamByName('ADEvent').AsBoolean := Event.AllDayEvent;
|
||||
Qry.ParamByName('ASet').AsBoolean := Event.AlarmSet;
|
||||
Qry.ParamByName('AAdvance').AsInteger := Event.AlarmAdv;
|
||||
Qry.ParamByName('AAdvanceType').AsInteger := Ord(Event.AlarmAdvType);
|
||||
Qry.ParamByName('RCode').AsInteger := Ord(Event.RepeatCode);
|
||||
Qry.ParamByName('RRangeEnd').AsDateTime := Event.RepeatRangeEnd;
|
||||
Qry.ParamByName('CInterval').AsInteger := Event.CustInterval;
|
||||
Qry.ParamByName('UserField0').AsString := Event.UserField0;
|
||||
Qry.ParamByName('UserField1').AsString := Event.UserField1;
|
||||
Qry.ParamByName('UserField2').AsString := Event.UserField2;
|
||||
Qry.ParamByName('UserField3').AsString := Event.UserField3;
|
||||
Qry.ParamByName('UserField4').AsString := Event.UserField4;
|
||||
Qry.ParamByName('UserField5').AsString := Event.UserField5;
|
||||
Qry.ParamByName('UserField6').AsString := Event.UserField6;
|
||||
Qry.ParamByName('UserField7').AsString := Event.UserField7;
|
||||
Qry.ParamByName('UserField8').AsString := Event.UserField8;
|
||||
Qry.ParamByName('UserField9').AsString := Event.UserField9;
|
||||
Qry.ParamByName('RCode').AsInteger := Ord(Event.RepeatCode);
|
||||
Qry.ParamByName('RRangeEnd').AsDateTime := Event.RepeatRangeEnd;
|
||||
Qry.ParamByName('CInterval').AsInteger := Event.CustInterval;
|
||||
Qry.ParamByName('UserField0').AsString := Event.UserField0;
|
||||
Qry.ParamByName('UserField1').AsString := Event.UserField1;
|
||||
Qry.ParamByName('UserField2').AsString := Event.UserField2;
|
||||
Qry.ParamByName('UserField3').AsString := Event.UserField3;
|
||||
Qry.ParamByName('UserField4').AsString := Event.UserField4;
|
||||
Qry.ParamByName('UserField5').AsString := Event.UserField5;
|
||||
Qry.ParamByName('UserField6').AsString := Event.UserField6;
|
||||
Qry.ParamByName('UserField7').AsString := Event.UserField7;
|
||||
Qry.ParamByName('UserField8').AsString := Event.UserField8;
|
||||
Qry.ParamByName('UserField9').AsString := Event.UserField9;
|
||||
|
||||
Qry.ExecSQL;
|
||||
end;
|
||||
@ -666,6 +680,8 @@ var
|
||||
I: Integer;
|
||||
Contact: TVpContact;
|
||||
Qry: TAdsQuery;
|
||||
F: TField;
|
||||
FixedNote, FixedNoteP: Boolean;
|
||||
begin
|
||||
if (Resource <> nil) and Resource.ContactsDirty then begin
|
||||
{ Dump this resource's dirty contacts to the DB }
|
||||
@ -692,6 +708,14 @@ begin
|
||||
Qry.ParamByName('ID').AsInteger := Contact.RecordID;
|
||||
Qry.Open;
|
||||
|
||||
if Qry.FieldByName('Note') <> nil then
|
||||
FixedNote := 'Note, '
|
||||
else if Qry.FieldByName('Notes') <> nil then
|
||||
FixedNote := 'Notes, '
|
||||
else
|
||||
FixedNote := '';
|
||||
if FixedNote <> '' then FixedNoteP := ':Notes, ' else FixedNoteP := '';
|
||||
|
||||
if Qry.Locate('RecordID', Contact.RecordID, [])
|
||||
then begin
|
||||
{ existing record found }
|
||||
@ -714,7 +738,9 @@ begin
|
||||
Qry.FieldByName('State').AsString := Contact.State;
|
||||
Qry.FieldByName('Zip').AsString := Contact.Zip;
|
||||
Qry.FieldByName('Country').AsString := Contact.Country;
|
||||
Qry.FieldByName('Note').AsString := Contact.Note;
|
||||
F := Qry.FieldByName('Notes');
|
||||
if F = nil then F := Qry.FieldByName('Note'); // deprecated
|
||||
if F <> nil then F.AsString := Contact.Notes;
|
||||
Qry.FieldByName('Phone1').AsString := Contact.Phone1;
|
||||
Qry.FieldByName('Phone2').AsString := Contact.Phone2;
|
||||
Qry.FieldByName('Phone3').AsString := Contact.Phone3;
|
||||
@ -753,7 +779,7 @@ begin
|
||||
Qry.SQL.Text := 'INSERT INTO Contacts '
|
||||
+ '(ResourceID, RecordID, FirstName, LastName, Birthdate, '
|
||||
+ 'Anniversary, Title, Company, Job_Position, EMail, Address, '
|
||||
+ 'City, State, Zip, Country, Note, Phone1, Phone2, Phone3, '
|
||||
+ 'City, State, Zip, Country, ' + FixedNote +'Phone1, Phone2, Phone3, '
|
||||
+ 'Phone4, Phone5, PhoneType1, PhoneType2, PhoneType3, PhoneType4, '
|
||||
+ 'PhoneType5, Category, Custom1, Custom2, Custom3, Custom4, '
|
||||
+ 'UserField0, UserField1, UserField2, UserField3, UserField4, '
|
||||
@ -761,7 +787,7 @@ begin
|
||||
|
||||
+ 'VALUES(:ResourceID, :RecordID, :FirstName, :LastName, '
|
||||
+ ':Birthdate, :Anniversary, :Title, :Company, :Job_Position, '
|
||||
+ ':EMail, :Address, :City, :State, :Zip, :Country, :Note, '
|
||||
+ ':EMail, :Address, :City, :State, :Zip, :Country, ' + FixedNoteP
|
||||
+ ':Phone1, :Phone2, :Phone3, :Phone4, :Phone5, :PhoneType1, '
|
||||
+ ':PhoneType2, :PhoneType3, :PhoneType4, :PhoneType5, :Category, '
|
||||
+ ':Custom1, :Custom2, :Custom3, :Custom4, :UserField0, '
|
||||
@ -785,7 +811,8 @@ begin
|
||||
Qry.ParamByName('State').AsString := Contact.State;
|
||||
Qry.ParamByName('Zip').AsString := Contact.Zip;
|
||||
Qry.ParamByName('Country').AsString := Contact.Country;
|
||||
Qry.ParamByName('Note').AsString := Contact.Note;
|
||||
if FixedNoteP <> '' then
|
||||
Qry.ParamByName('Notes').AsString := Contact.Notes;
|
||||
Qry.ParamByName('Phone1').AsString := Contact.Phone1;
|
||||
Qry.ParamByName('Phone2').AsString := Contact.Phone2;
|
||||
Qry.ParamByName('Phone3').AsString := Contact.Phone3;
|
||||
|
@ -129,7 +129,7 @@ object AlarmNotifyForm: TAlarmNotifyForm
|
||||
end
|
||||
end
|
||||
object EventDialog: TVpEventEditDialog
|
||||
Version = 'v1.03'
|
||||
Version = 'v1.04'
|
||||
TimeFormat = tf24Hour
|
||||
Options = []
|
||||
Placement.Position = mpCenterTop
|
||||
|
@ -103,7 +103,8 @@ implementation
|
||||
{$R *.dfm}
|
||||
{$ENDIF}
|
||||
|
||||
uses VpSR;
|
||||
uses
|
||||
StrUtils, VpSR;
|
||||
|
||||
{ TVpNotificationDialog }
|
||||
|
||||
@ -147,26 +148,29 @@ end;
|
||||
{ TAlarmNotifyForm }
|
||||
|
||||
procedure TAlarmNotifyForm.PopulateSelf;
|
||||
var
|
||||
fmt: String;
|
||||
begin
|
||||
if Event <> nil then begin
|
||||
Caption := RSReminder;
|
||||
// SubjectCaption.Caption := RSSubjectCaption;
|
||||
// NotesCaption.Caption := RSNotesCaption;
|
||||
SnoozeCaption.Caption := RSSnoozeCaption;
|
||||
DismissBtn.Caption := RSDismissBtn;
|
||||
SnoozeBtn.Caption := RSSnoozeBtn;
|
||||
OpenItemBtn.Caption := RSOpenItemBtn;
|
||||
lNotes.Caption := Event.Note;
|
||||
lNotes.Caption := Event.Notes;
|
||||
lSubject.Caption := Event.Description;
|
||||
lTime.caption := dateTimeToStr(Event.StartTime)+' - '+dateTimeToStr(Event.EndTime);
|
||||
|
||||
if Now > Event.StartTime then
|
||||
Self.Caption := RSOverdue + ' : '
|
||||
else
|
||||
Self.Caption := RSReminder + ' : ';
|
||||
fmt := IfThen(trunc(Event.StartTime) = Date(), 't', 'ddddd t');
|
||||
lTime.Caption := Format('%s - %s', [
|
||||
FormatDateTime(fmt, Event.StartTime),
|
||||
FormatDateTime(fmt, Event.EndTime)] );
|
||||
if Event.Location <> '' then
|
||||
lTime.Caption := lTime.Caption + ' (' + Event.Location + ')';
|
||||
|
||||
Self.Caption := Self.Caption + FormatDateTime(ShortDateFormat + ' '
|
||||
+ ShortTimeFormat, Event.StartTime);
|
||||
Caption := Format('%s : %s', [
|
||||
IfThen(Now > Event.StartTime, RSOverdue, RSReminder),
|
||||
FormatDateTime(fmt, Event.StartTime) ]);
|
||||
|
||||
SnoozeCombo.Items.Clear;
|
||||
SnoozeCombo.Items.Add(RS1Minute);
|
||||
@ -175,13 +179,6 @@ begin
|
||||
SnoozeCombo.Items.Add(Format(RSXMinutes, [15]));
|
||||
SnoozeCombo.Items.Add(Format(RSXMinutes, [30]));
|
||||
SnoozeCombo.Items.Add(Format(RSXMinutes, [45]));
|
||||
{
|
||||
SnoozeCombo.Items.Add(RS5Minutes);
|
||||
SnoozeCombo.Items.Add(RS10Minutes);
|
||||
SnoozeCombo.Items.Add(RS15Minutes);
|
||||
SnoozeCombo.Items.Add(RS30Minutes);
|
||||
SnoozeCombo.Items.Add(RS45Minutes);
|
||||
}
|
||||
SnoozeCombo.Items.Add(RS1Hour);
|
||||
SnoozeCombo.Items.Add(Format(RSXHours, [2]));
|
||||
SnoozeCombo.Items.Add(Format(RSXHours, [3]));
|
||||
@ -190,28 +187,12 @@ begin
|
||||
SnoozeCombo.Items.Add(Format(RSXHours, [6]));
|
||||
SnoozeCombo.Items.Add(Format(RSXHours, [7]));
|
||||
SnoozeCombo.Items.Add(Format(RSXHours, [8]));
|
||||
{
|
||||
SnoozeCombo.Items.Add(RS2Hours);
|
||||
SnoozeCombo.Items.Add(RS3Hours);
|
||||
SnoozeCombo.Items.Add(RS4Hours);
|
||||
SnoozeCombo.Items.Add(RS5Hours);
|
||||
SnoozeCombo.Items.Add(RS6Hours);
|
||||
SnoozeCombo.Items.Add(RS7Hours);
|
||||
SnoozeCombo.Items.Add(RS8Hours);
|
||||
}
|
||||
SnoozeCombo.Items.Add(RS1Day);
|
||||
SnoozeCombo.Items.Add(Format(RSXDays, [2]));
|
||||
SnoozeCombo.Items.Add(Format(RSXDays, [3]));
|
||||
SnoozeCombo.Items.Add(Format(RSXDays, [4]));
|
||||
SnoozeCombo.Items.Add(Format(RSXDays, [5]));
|
||||
SnoozeCombo.Items.Add(Format(RSXDays, [6]));
|
||||
{
|
||||
SnoozeCombo.Items.Add(RS2Days);
|
||||
SnoozeCombo.Items.Add(RS3Days);
|
||||
SnoozeCombo.Items.Add(RS4Days);
|
||||
SnoozeCombo.Items.Add(RS5Days);
|
||||
SnoozeCombo.Items.Add(RS6Days);
|
||||
}
|
||||
SnoozeCombo.Items.Add(RS1Week);
|
||||
SnoozeCombo.ItemIndex := 0;
|
||||
SnoozeDelay := 5 / MinutesInDay;
|
||||
|
@ -586,6 +586,8 @@ var
|
||||
I: Integer;
|
||||
Event: TVpEvent;
|
||||
Qry: TQuery;
|
||||
F: TField;
|
||||
FixedLoc, FixedLocP: String;
|
||||
begin
|
||||
if (Resource <> nil) and Resource.EventsDirty then begin
|
||||
Qry := TQuery.Create(self);
|
||||
@ -610,6 +612,14 @@ begin
|
||||
Qry.ParamByName('ID').AsInteger := Event.RecordID;
|
||||
Qry.Open;
|
||||
|
||||
if Qry.FieldByName('Location') = nil then begin
|
||||
FixedLoc := '';
|
||||
FixedLocP := '';
|
||||
end else begin
|
||||
FixedLoc := 'Location, ';
|
||||
FixedLocP := ':Loc, ';
|
||||
end;
|
||||
|
||||
if Qry.Locate('RecordID', Event.RecordID, [])
|
||||
then begin
|
||||
{ existing record found }
|
||||
@ -620,9 +630,11 @@ begin
|
||||
Qry.FieldByName('EndTime').AsDateTime := Event.EndTime;
|
||||
Qry.FieldByName('ResourceID').AsInteger := Resource.ResourceID;
|
||||
Qry.FieldByName('Description').AsString := Event.Description;
|
||||
Qry.FieldByName('Notes').AsString := Event.Note;
|
||||
F := Qry.FieldByName('Location'); // newe
|
||||
if F <> nil then F.AsString := Event.Location;
|
||||
Qry.FieldByName('Notes').AsString := Event.Notes;
|
||||
Qry.FieldByName('Category').AsInteger := Event.Category;
|
||||
Qry.FieldByName('DingPath').AsString := Event.AlarmWavPath;
|
||||
Qry.FieldByName('DingPath').AsString := Event.DingPath;
|
||||
Qry.FieldByName('AllDayEvent').AsBoolean := Event.AllDayEvent;
|
||||
Qry.FieldByName('AlarmSet').AsBoolean := Event.AlarmSet;
|
||||
Qry.FieldByName('AlarmAdvance').AsInteger := Event.AlarmAdv;
|
||||
@ -649,45 +661,46 @@ begin
|
||||
end else begin
|
||||
Qry.Close;
|
||||
Qry.SQL.Text := 'INSERT INTO Events '
|
||||
+ '(RecordID, StartTime, EndTime, ResourceID, Description, Notes, '
|
||||
+ 'SnoozeTime, Category, DingPath, AllDayEvent, AlarmSet, '
|
||||
+ '(RecordID, StartTime, EndTime, ResourceID, Description, ' + FixedLocation
|
||||
+ 'Notes, SnoozeTime, Category, DingPath, AllDayEvent, AlarmSet, '
|
||||
+ 'AlarmAdvance, AlarmAdvanceType, RepeatCode, '
|
||||
+ 'RepeatRangeEnd, CustomInterval, '
|
||||
+ 'UserField0, UserField1, UserField2, UserField3, UserField4, '
|
||||
+ 'UserField5, UserField6, UserField7, UserField8, UserField9) '
|
||||
+ 'VALUES(:RecID, :STime, :ETime, :ResID, :Desc, :Notes, :SnTime, '
|
||||
+ ':Cat, :DPath, :ADEvent, :ASet, :AAdvance, :AAdvanceType, '
|
||||
+ ':RCode, :RRangeEnd, :CInterval, :UserField0, '
|
||||
+ 'VALUES(:RecID, :STime, :ETime, :ResID, :Desc, ' + FixedLoc
|
||||
+ ':Notes, :SnTime, :Cat, :DPath, :ADEvent, :ASet, :AAdvance, '
|
||||
+ ':AAdvanceType, :RCode, :RRangeEnd, :CInterval, :UserField0, '
|
||||
+ ':UserField1, :UserField2, :UserField3, :UserField4, '
|
||||
+ ':UserField5, :UserField6, :UserField7, :UserField8, '
|
||||
+ ':UserField9)';
|
||||
|
||||
Qry.ParamByName('RecID').AsInteger := Event.RecordID;
|
||||
Qry.ParamByName('STime').AsDateTime := Event.StartTime;
|
||||
Qry.ParamByName('ETime').AsDateTime := Event.EndTime;
|
||||
Qry.ParamByName('ResID').AsInteger := Resource.ResourceID;
|
||||
Qry.ParamByName('Desc').AsString := Event.Description;
|
||||
Qry.ParamByName('Notes').AsString := Event.Note;
|
||||
Qry.ParamByName('SnTime').AsDateTime := Event.SnoozeTime;
|
||||
Qry.ParamByName('Cat').AsInteger := Event.Category;
|
||||
Qry.ParamByName('DPath').AsString := Event.AlarmWavPath;
|
||||
Qry.ParamByName('ADEvent').AsBoolean := Event.AllDayEvent;
|
||||
Qry.ParamByName('ASet').AsBoolean := Event.AlarmSet;
|
||||
Qry.ParamByName('AAdvance').AsInteger := Event.AlarmAdv;
|
||||
Qry.ParamByName('RecID').AsInteger := Event.RecordID;
|
||||
Qry.ParamByName('STime').AsDateTime := Event.StartTime;
|
||||
Qry.ParamByName('ETime').AsDateTime := Event.EndTime;
|
||||
Qry.ParamByName('ResID').AsInteger := Resource.ResourceID;
|
||||
Qry.ParamByName('Desc').AsString := Event.Description;
|
||||
if FixedLocP <> '' then Qry.ParamByName('Loc').AsString := Event.Location;
|
||||
Qry.ParamByName('Notes').AsString := Event.Notes;
|
||||
Qry.ParamByName('SnTime').AsDateTime := Event.SnoozeTime;
|
||||
Qry.ParamByName('Cat').AsInteger := Event.Category;
|
||||
Qry.ParamByName('DPath').AsString := Event.DingPath;
|
||||
Qry.ParamByName('ADEvent').AsBoolean := Event.AllDayEvent;
|
||||
Qry.ParamByName('ASet').AsBoolean := Event.AlarmSet;
|
||||
Qry.ParamByName('AAdvance').AsInteger := Event.AlarmAdv;
|
||||
Qry.ParamByName('AAdvanceType').AsInteger := Ord(Event.AlarmAdvType);
|
||||
Qry.ParamByName('RCode').AsInteger := Ord(Event.RepeatCode);
|
||||
Qry.ParamByName('RRangeEnd').AsDateTime := Event.RepeatRangeEnd;
|
||||
Qry.ParamByName('CInterval').AsInteger := Event.CustInterval;
|
||||
Qry.ParamByName('UserField0').AsString := Event.UserField0;
|
||||
Qry.ParamByName('UserField1').AsString := Event.UserField1;
|
||||
Qry.ParamByName('UserField2').AsString := Event.UserField2;
|
||||
Qry.ParamByName('UserField3').AsString := Event.UserField3;
|
||||
Qry.ParamByName('UserField4').AsString := Event.UserField4;
|
||||
Qry.ParamByName('UserField5').AsString := Event.UserField5;
|
||||
Qry.ParamByName('UserField6').AsString := Event.UserField6;
|
||||
Qry.ParamByName('UserField7').AsString := Event.UserField7;
|
||||
Qry.ParamByName('UserField8').AsString := Event.UserField8;
|
||||
Qry.ParamByName('UserField9').AsString := Event.UserField9;
|
||||
Qry.ParamByName('RCode').AsInteger := Ord(Event.RepeatCode);
|
||||
Qry.ParamByName('RRangeEnd').AsDateTime := Event.RepeatRangeEnd;
|
||||
Qry.ParamByName('CInterval').AsInteger := Event.CustInterval;
|
||||
Qry.ParamByName('UserField0').AsString := Event.UserField0;
|
||||
Qry.ParamByName('UserField1').AsString := Event.UserField1;
|
||||
Qry.ParamByName('UserField2').AsString := Event.UserField2;
|
||||
Qry.ParamByName('UserField3').AsString := Event.UserField3;
|
||||
Qry.ParamByName('UserField4').AsString := Event.UserField4;
|
||||
Qry.ParamByName('UserField5').AsString := Event.UserField5;
|
||||
Qry.ParamByName('UserField6').AsString := Event.UserField6;
|
||||
Qry.ParamByName('UserField7').AsString := Event.UserField7;
|
||||
Qry.ParamByName('UserField8').AsString := Event.UserField8;
|
||||
Qry.ParamByName('UserField9').AsString := Event.UserField9;
|
||||
|
||||
Qry.ExecSQL;
|
||||
end;
|
||||
@ -710,6 +723,8 @@ var
|
||||
I: Integer;
|
||||
Contact: TVpContact;
|
||||
Qry: TQuery;
|
||||
F: TField;
|
||||
FixedNote, FixedNoteP: String;
|
||||
begin
|
||||
if (Resource <> nil) and Resource.ContactsDirty then begin
|
||||
{ Dump this resource's dirty contacts to the DB }
|
||||
@ -736,6 +751,12 @@ begin
|
||||
Qry.ParamByName('ID').AsInteger := Contact.RecordID;
|
||||
Qry.Open;
|
||||
|
||||
// Fix name change of "Note" field
|
||||
if Qry.FieldByName('Notes') <> nil then FixedNote := 'Notes, ' else
|
||||
if Qry.FieldByName('Note') <> nil then FixedNote := 'Note, '
|
||||
else FixedNote := '';
|
||||
if FixedNote <> '' then FixedNoteP := ':Notes, ' else FixeNoteP := '';
|
||||
|
||||
if Qry.Locate('RecordID', Contact.RecordID, [])
|
||||
then begin
|
||||
{ existing record found }
|
||||
@ -758,7 +779,9 @@ begin
|
||||
Qry.FieldByName('State').AsString := Contact.State;
|
||||
Qry.FieldByName('Zip').AsString := Contact.Zip;
|
||||
Qry.FieldByName('Country').AsString := Contact.Country;
|
||||
Qry.FieldByName('Note').AsString := Contact.Note;
|
||||
F := Qry.FieldByName('Notes');
|
||||
if F = nil then F := Qry.FieldByName('Note'); // deprecated
|
||||
if F <> nil then F.AsString := Contact.Notes;
|
||||
Qry.FieldByName('Phone1').AsString := Contact.Phone1;
|
||||
Qry.FieldByName('Phone2').AsString := Contact.Phone2;
|
||||
Qry.FieldByName('Phone3').AsString := Contact.Phone3;
|
||||
@ -797,7 +820,7 @@ begin
|
||||
Qry.SQL.Text := 'INSERT INTO Contacts '
|
||||
+ '(ResourceID, RecordID, FirstName, LastName, Birthdate, '
|
||||
+ 'Anniversary, Title, Company, Job_Position, EMail, Address, '
|
||||
+ 'City, State, Zip, Country, Note, Phone1, Phone2, Phone3, '
|
||||
+ 'City, State, Zip, Country, ' + FixedNote + 'Phone1, Phone2, Phone3, '
|
||||
+ 'Phone4, Phone5, PhoneType1, PhoneType2, PhoneType3, PhoneType4, '
|
||||
+ 'PhoneType5, Category, Custom1, Custom2, Custom3, Custom4, '
|
||||
+ 'UserField0, UserField1, UserField2, UserField3, UserField4, '
|
||||
@ -805,7 +828,7 @@ begin
|
||||
|
||||
+ 'VALUES(:ResourceID, :RecordID, :FirstName, :LastName, '
|
||||
+ ':Birthdate, :Anniversary, :Title, :Company, :Job_Position, '
|
||||
+ ':EMail, :Address, :City, :State, :Zip, :Country, :Note, '
|
||||
+ ':EMail, :Address, :City, :State, :Zip, :Country, ' + FixedNoteP
|
||||
+ ':Phone1, :Phone2, :Phone3, :Phone4, :Phone5, :PhoneType1, '
|
||||
+ ':PhoneType2, :PhoneType3, :PhoneType4, :PhoneType5, :Category, '
|
||||
+ ':Custom1, :Custom2, :Custom3, :Custom4, :UserField0, '
|
||||
@ -829,7 +852,7 @@ begin
|
||||
Qry.ParamByName('State').AsString := Contact.State;
|
||||
Qry.ParamByName('Zip').AsString := Contact.Zip;
|
||||
Qry.ParamByName('Country').AsString := Contact.Country;
|
||||
Qry.ParamByName('Note').AsString := Contact.Note;
|
||||
if FixedNote <> '' then Qry.ParamByName('Notes').AsString := Contact.Notes;
|
||||
Qry.ParamByName('Phone1').AsString := Contact.Phone1;
|
||||
Qry.ParamByName('Phone2').AsString := Contact.Phone2;
|
||||
Qry.ParamByName('Phone3').AsString := Contact.Phone3;
|
||||
|
@ -188,8 +188,6 @@ type
|
||||
{ TVpEvent }
|
||||
|
||||
TVpEvent = class
|
||||
private
|
||||
FLocation: string;
|
||||
protected{private}
|
||||
FOwner: TVpSchedule;
|
||||
FItemIndex: Integer;
|
||||
@ -205,7 +203,8 @@ type
|
||||
FAlertDisplayed: Boolean;
|
||||
FAlarmAdvType: TVpAlarmAdvType;
|
||||
FRecordID: Int64;
|
||||
FNote: string;
|
||||
FLocation: string;
|
||||
FNotes: string;
|
||||
FDescription: string;
|
||||
FStartTime: TDateTime;
|
||||
FEndTime: TDateTime;
|
||||
@ -236,7 +235,8 @@ type
|
||||
procedure SetCategory(Value: Integer);
|
||||
procedure SetDescription(const Value: string);
|
||||
procedure SetEndTime(Value: TDateTime);
|
||||
procedure SetNote(const Value: string);
|
||||
procedure SetLocation(const Value: String);
|
||||
procedure SetNotes(const Value: string);
|
||||
procedure SetRecordID(Value: Int64);
|
||||
procedure SetStartTime(Value: TDateTime);
|
||||
procedure SetCustInterval(Value: Integer);
|
||||
@ -245,7 +245,8 @@ type
|
||||
public
|
||||
constructor Create(Owner: TVpSchedule);
|
||||
destructor Destroy; override;
|
||||
property AlarmWavPath: string read FDingPath write SetDingPath;
|
||||
property DingPath: string read FDingPath write SetDingPath;
|
||||
property AlarmWavPath: string read FDingPath write SetDingPath; deprecated 'Use "DingPath" instead';
|
||||
property AlertDisplayed: Boolean read FAlertDisplayed write FAlertDisplayed;
|
||||
property AllDayEvent: Boolean read FAllDayEvent write SetAllDayEvent;
|
||||
property Changed: Boolean read FChanged write SetChanged;
|
||||
@ -255,11 +256,12 @@ type
|
||||
property StartTime : TDateTime read FStartTime write SetStartTime;
|
||||
property EndTime : TDateTime read FEndTime write SetEndTime;
|
||||
property Description : string read FDescription write SetDescription;
|
||||
property Note : string read FNote write SetNote;
|
||||
property Notes : string read FNotes write SetNotes;
|
||||
property Note: String read FNotes write SetNotes; deprecated 'Use "Notes" instead';
|
||||
property Category : Integer read FCategory write SetCategory;
|
||||
property AlarmSet : Boolean read FAlarmSet write SetAlarmSet;
|
||||
property AlarmAdv : Integer read FAlarmAdv write SetAlarmAdv;
|
||||
property Location: string read FLocation write FLocation;
|
||||
property Location: string read FLocation write SetLocation;
|
||||
property Loading : Boolean read FLoading write FLoading;
|
||||
{ 0=Minutes, 1=Hours, 2=Days }
|
||||
property AlarmAdvType : TVpAlarmAdvType read FAlarmAdvType write SetAlarmAdvType;
|
||||
@ -445,7 +447,7 @@ type
|
||||
FState : string;
|
||||
FZip : string;
|
||||
FCountry : string;
|
||||
FNote : string;
|
||||
FNotes : string;
|
||||
FPrivateRec : boolean;
|
||||
FCategory : integer;
|
||||
FCustom1 : string;
|
||||
@ -480,7 +482,7 @@ type
|
||||
procedure SetEMail(const Value: string);
|
||||
procedure SetFirstName(const Value: string);
|
||||
procedure SetLastName(const Value: string);
|
||||
procedure SetNote(const Value: string);
|
||||
procedure SetNotes(const Value: string);
|
||||
procedure SetPhone1(const Value: string);
|
||||
procedure SetPhone2(const Value: string);
|
||||
procedure SetPhone3(const Value: string);
|
||||
@ -528,7 +530,8 @@ type
|
||||
property State : string read FState write SetState;
|
||||
property Zip : string read FZip write SetZip;
|
||||
property Country : string read FCountry write SetCountry;
|
||||
property Note : string read FNote write SetNote;
|
||||
property Note : string read FNotes write SetNotes; deprecated 'Use "Notes" instead';
|
||||
property Notes : string read FNotes write SetNotes;
|
||||
property Category : integer read FCategory write SetCategory;
|
||||
property Custom1 : string read FCustom1 write SetCustom1;
|
||||
property Custom2 : string read FCustom2 write SetCustom2;
|
||||
@ -954,10 +957,19 @@ begin
|
||||
end;
|
||||
{=====}
|
||||
|
||||
procedure TVpEvent.SetNote(const Value: string);
|
||||
procedure TVpEvent.SetLocation(const Value: String);
|
||||
begin
|
||||
if Value <> FNote then begin
|
||||
FNote := Value;
|
||||
if Value <> FLocation then begin
|
||||
FLocation := Value;
|
||||
Changed := true;
|
||||
end;
|
||||
end;
|
||||
{=====}
|
||||
|
||||
procedure TVpEvent.SetNotes(const Value: string);
|
||||
begin
|
||||
if Value <> FNotes then begin
|
||||
FNotes := Value;
|
||||
Changed := true;
|
||||
end;
|
||||
end;
|
||||
@ -1604,10 +1616,10 @@ begin
|
||||
end;
|
||||
{=====}
|
||||
|
||||
procedure TVpContact.SetNote(const Value: string);
|
||||
procedure TVpContact.SetNotes(const Value: string);
|
||||
begin
|
||||
if Value <> FNote then begin
|
||||
FNote := Value;
|
||||
if Value <> FNotes then begin
|
||||
FNotes := Value;
|
||||
Changed := true;
|
||||
end;
|
||||
end;
|
||||
|
@ -143,7 +143,7 @@ begin
|
||||
{ Resource ID }
|
||||
with AddFieldDef do begin
|
||||
Name := 'ResourceID';
|
||||
DataType := ftAutoInc; //ftInteger;
|
||||
DataType := ftInteger;
|
||||
Required := true;
|
||||
end;
|
||||
{ Description }
|
||||
@ -249,7 +249,7 @@ begin
|
||||
{ Record ID }
|
||||
with AddFieldDef do begin
|
||||
Name := 'RecordID';
|
||||
DataType := ftAutoInc; //ftInteger;
|
||||
DataType := ftInteger;
|
||||
Required := true;
|
||||
end;
|
||||
{ StartTime }
|
||||
@ -277,6 +277,13 @@ begin
|
||||
Size := 255;
|
||||
Required := false;
|
||||
end;
|
||||
{ Locataion } // new
|
||||
with AddFieldDef do begin
|
||||
Name := 'Location';
|
||||
DataType := ftString;
|
||||
Size := 255;
|
||||
Required := false;
|
||||
end;
|
||||
{ Note }
|
||||
with AddFieldDef do begin
|
||||
Name := 'Notes';
|
||||
@ -422,7 +429,7 @@ begin
|
||||
{ Record ID }
|
||||
with AddFieldDef do begin
|
||||
Name := 'RecordID';
|
||||
DataType := ftAutoInc; //ftInteger;
|
||||
DataType := ftInteger;
|
||||
Required := true;
|
||||
end;
|
||||
{ Resource ID }
|
||||
@ -515,7 +522,7 @@ begin
|
||||
end;
|
||||
{ Note }
|
||||
with AddFieldDef do begin
|
||||
Name := 'Note';
|
||||
Name := 'Notes'; // was: "Note" in old version
|
||||
DataType := ftString;
|
||||
Size := 1024;
|
||||
Required := false;
|
||||
@ -703,7 +710,7 @@ begin
|
||||
{ Record ID }
|
||||
with AddFieldDef do begin
|
||||
Name := 'RecordID';
|
||||
DataType := ftAutoInc; //ftInteger;
|
||||
DataType := ftInteger;
|
||||
Required := true;
|
||||
end;
|
||||
{ Resource ID }
|
||||
@ -1014,33 +1021,37 @@ end;
|
||||
procedure TVpCustomDBDataStore.LoadEvents;
|
||||
var
|
||||
Event: TVpEvent;
|
||||
F: TField;
|
||||
begin
|
||||
if Resource <> nil then
|
||||
{ Load this resource's events into memory }
|
||||
with EventsTable do begin
|
||||
|
||||
SetFilterCriteria(EventsTable,
|
||||
True,
|
||||
ResourceTable.FieldByName('ResourceID').AsInteger,
|
||||
TimeRange.StartTime,
|
||||
TimeRange.EndTime);
|
||||
SetFilterCriteria(
|
||||
EventsTable,
|
||||
True,
|
||||
ResourceTable.FieldByName('ResourceID').AsInteger,
|
||||
TimeRange.StartTime,
|
||||
TimeRange.EndTime
|
||||
);
|
||||
First;
|
||||
|
||||
while not EventsTable.EOF do begin
|
||||
Event := Resource.Schedule.AddEvent(FieldByName('RecordID').AsInteger,
|
||||
Event := Resource.Schedule.AddEvent(
|
||||
FieldByName('RecordID').AsInteger,
|
||||
FieldByName('StartTime').AsDateTime,
|
||||
FieldByName('EndTime').AsDateTime);
|
||||
FieldByName('EndTime').AsDateTime
|
||||
);
|
||||
if Event <> nil then begin
|
||||
Event.Loading := true;
|
||||
Event.Description := FieldByName('Description').AsString;
|
||||
Event.Note := FieldByName('Notes').AsString;
|
||||
F := FieldByName('Location'); // new
|
||||
if F <> nil then Event.Location := F.AsString;
|
||||
Event.Notes := FieldByName('Notes').AsString;
|
||||
Event.Category := FieldByName('Category').AsInteger;
|
||||
Event.AlarmWavPath := FieldByName('DingPath').AsString;
|
||||
Event.AllDayEvent := FieldByName('AllDayEvent').AsBoolean;
|
||||
Event.AlarmSet := FieldByName('AlarmSet').AsBoolean;
|
||||
Event.AlarmAdv := FieldByName('AlarmAdvance').AsInteger;
|
||||
Event.AlarmAdvType := TVpAlarmAdvType(
|
||||
FieldByName('AlarmAdvanceType').AsInteger);
|
||||
Event.AlarmAdvType := TVpAlarmAdvType(FieldByName('AlarmAdvanceType').AsInteger);
|
||||
Event.SnoozeTime := FieldByName('SnoozeTime').AsDateTime;
|
||||
Event.RepeatCode := TVpRepeatType(FieldByName('RepeatCode').AsInteger);
|
||||
Event.RepeatRangeEnd := FieldByName('RepeatRangeEnd').AsDateTime;
|
||||
@ -1068,6 +1079,7 @@ end;
|
||||
procedure TVpCustomDBDataStore.LoadContacts;
|
||||
var
|
||||
Contact: TVpContact;
|
||||
F: TField;
|
||||
begin
|
||||
if (Resource <> nil) then
|
||||
with ContactsTable do begin
|
||||
@ -1092,7 +1104,9 @@ begin
|
||||
Contact.State := FieldByName('State').AsString;
|
||||
Contact.Zip := FieldByName('Zip').AsString;
|
||||
Contact.Country := FieldByName('Country').AsString;
|
||||
Contact.Note := FieldByName('Note').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;
|
||||
@ -1168,6 +1182,7 @@ procedure TVpCustomDBDataStore.PostContacts;
|
||||
var
|
||||
I: Integer;
|
||||
Contact: TVpContact;
|
||||
F: TField;
|
||||
begin
|
||||
if (Resource <> nil) and Resource.ContactsDirty then begin
|
||||
{ Dump this resource's dirty contacts to the DB }
|
||||
@ -1216,7 +1231,9 @@ begin
|
||||
ContactsTable.FieldByName('State').AsString := Contact.State;
|
||||
ContactsTable.FieldByName('Zip').AsString := Contact.Zip;
|
||||
ContactsTable.FieldByName('Country').AsString := Contact.Country;
|
||||
ContactsTable.FieldByName('Note').AsString := Contact.Note;
|
||||
F := ContactsTable.FieldByName('Notes');
|
||||
if F = nil then F := ContactsTable.FieldByName('Note');
|
||||
if F <> nil then F.AsString := Contact.Notes;
|
||||
ContactsTable.FieldByName('Phone1').AsString := Contact.Phone1;
|
||||
ContactsTable.FieldByName('Phone2').AsString := Contact.Phone2;
|
||||
ContactsTable.FieldByName('Phone3').AsString := Contact.Phone3;
|
||||
@ -1273,6 +1290,7 @@ procedure TVpCustomDBDataStore.PostEvents;
|
||||
var
|
||||
J: Integer;
|
||||
Event: TVpEvent;
|
||||
F: TField;
|
||||
begin
|
||||
if (Resource <> nil) and Resource.EventsDirty then begin
|
||||
{ Dump this resource's dirty events to the DB }
|
||||
@ -1310,9 +1328,11 @@ begin
|
||||
EventsTable.FieldByName('EndTime').AsDateTime := Event.EndTime;
|
||||
EventsTable.FieldByName('ResourceID').AsInteger := Resource.ResourceID;
|
||||
EventsTable.FieldByName('Description').AsString := Event.Description;
|
||||
EventsTable.FieldByName('Notes').AsString := Event.Note;
|
||||
F := EventsTable.FieldByName('Location'); // new
|
||||
if F <> nil then F.AsString := Event.Location;
|
||||
EventsTable.FieldByName('Notes').AsString := Event.Notes;
|
||||
EventsTable.FieldByName('Category').AsInteger := Event.Category;
|
||||
EventsTable.FieldByName('DingPath').AsString := Event.AlarmWavPath;
|
||||
EventsTable.FieldByName('DingPath').AsString := Event.DingPath;
|
||||
EventsTable.FieldByName('AllDayEvent').AsBoolean := Event.AllDayEvent;
|
||||
EventsTable.FieldByName('AlarmSet').AsBoolean := Event.AlarmSet;
|
||||
EventsTable.FieldByName('AlarmAdvance').AsInteger := Event.AlarmAdv;
|
||||
@ -1573,6 +1593,7 @@ end;
|
||||
procedure TVpCustomDBDataStore.RefreshContacts;
|
||||
var
|
||||
Contact: TVpContact;
|
||||
F: TField;
|
||||
begin
|
||||
if Resource <> nil then begin
|
||||
{ Clear the Contacts }
|
||||
@ -1599,7 +1620,9 @@ begin
|
||||
Contact.State := FieldByName('State').AsString;
|
||||
Contact.Zip := FieldByName('Zip').AsString;
|
||||
Contact.Country := FieldByName('Country').AsString;
|
||||
Contact.Note := FieldByName('Note').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;
|
||||
@ -1637,6 +1660,7 @@ end;
|
||||
procedure TVpCustomDBDataStore.RefreshEvents;
|
||||
var
|
||||
Event: TVpEvent;
|
||||
F: TField;
|
||||
begin
|
||||
if Resource <> nil then begin
|
||||
{ Clear the Events }
|
||||
@ -1659,9 +1683,11 @@ begin
|
||||
Event.Loading := true; {prevents the events changed flag from being set}
|
||||
// Event.RecordID := FieldByName('RecordID').AsInteger;
|
||||
Event.Description := FieldByName('Description').AsString;
|
||||
Event.Note := FieldByName('Notes').AsString;
|
||||
F := FieldByName('Location'); // new
|
||||
if F <> nil then Event.Location := F.AsString;
|
||||
Event.Notes := FieldByName('Notes').AsString;
|
||||
Event.Category := FieldByName('Category').AsInteger;
|
||||
Event.AlarmWavPath := FieldByName('DingPath').AsString;
|
||||
Event.DingPath := FieldByName('DingPath').AsString;
|
||||
Event.AllDayEvent := FieldByName('AllDayEvent').AsBoolean;
|
||||
Event.AlarmSet := FieldByName('AlarmSet').AsBoolean;
|
||||
Event.AlarmAdv := FieldByName('AlarmAdvance').AsInteger;
|
||||
@ -1823,8 +1849,8 @@ var
|
||||
begin
|
||||
if aUseDateTime then
|
||||
filter := Format('ResourceID = %d '
|
||||
+ 'and (( (StartTime >= %s) and (EndTime <= %s) ) '
|
||||
+ ' or ( (RepeatCode > 0) and (%s <= RepeatRangeEnd) ))',
|
||||
+ 'and ( ( (StartTime >= %s) and (EndTime <= %s) ) '
|
||||
+ ' or ( (RepeatCode > 0) and (%s <= RepeatRangeEnd) ) )',
|
||||
[aResourceID,
|
||||
QuotedStr(FormatDateTime('c', aStartDateTime)),
|
||||
QuotedStr(FormatDateTime('c', aEndDateTime)),
|
||||
|
@ -78,10 +78,8 @@ type
|
||||
function GetNextID(TableName: string): Int64; override;
|
||||
procedure Load; override;
|
||||
procedure CreateTable(TableName: string);
|
||||
procedure CreateIndexDefs(const TableName : string;
|
||||
IndexDefs : TIndexDefs); override;
|
||||
procedure CreateFieldDefs(const TableName : string; FieldDefs : TFieldDefs);
|
||||
override;
|
||||
procedure CreateIndexDefs(const TableName : string; IndexDefs : TIndexDefs); override;
|
||||
procedure CreateFieldDefs(const TableName : string; FieldDefs : TFieldDefs); override;
|
||||
|
||||
procedure PostResources; override;
|
||||
procedure PostEvents; override;
|
||||
@ -574,6 +572,8 @@ var
|
||||
I: Integer;
|
||||
Event: TVpEvent;
|
||||
Qry: TDBISAMQuery;
|
||||
F: TField;
|
||||
FixedLoc, FixedLocP: String;
|
||||
begin
|
||||
if (Resource <> nil) and Resource.EventsDirty then begin
|
||||
Qry := TDBISAMQuery.Create(self);
|
||||
@ -599,6 +599,14 @@ begin
|
||||
Qry.ParamByName('ID').AsInteger := Event.RecordID;
|
||||
Qry.Open;
|
||||
|
||||
if Qry.FieldByName('Location') <> nil then begin
|
||||
FixedLoc := 'Location, ';
|
||||
FixedLocP := ':Loc, ';
|
||||
end else begin
|
||||
FixedLoc := '';
|
||||
FixedLocP := '';
|
||||
end;
|
||||
|
||||
if Qry.Locate('RecordID', Event.RecordID, [])
|
||||
then begin
|
||||
{ existing record found }
|
||||
@ -609,9 +617,11 @@ begin
|
||||
Qry.FieldByName('EndTime').AsDateTime := Event.EndTime;
|
||||
Qry.FieldByName('ResourceID').AsInteger := Resource.ResourceID;
|
||||
Qry.FieldByName('Description').AsString := Event.Description;
|
||||
Qry.FieldByName('Notes').AsString := Event.Note;
|
||||
F := Qry.FieldByName('Location'); // new
|
||||
if F <> nil then F.AsString := Event.Location;
|
||||
Qry.FieldByName('Notes').AsString := Event.Notes;
|
||||
Qry.FieldByName('Category').AsInteger := Event.Category;
|
||||
Qry.FieldByName('DingPath').AsString := Event.AlarmWavPath;
|
||||
Qry.FieldByName('DingPath').AsString := Event.DingPath;
|
||||
Qry.FieldByName('AllDayEvent').AsBoolean := Event.AllDayEvent;
|
||||
Qry.FieldByName('AlarmSet').AsBoolean := Event.AlarmSet;
|
||||
Qry.FieldByName('AlarmAdvance').AsInteger := Event.AlarmAdv;
|
||||
@ -638,45 +648,46 @@ begin
|
||||
end else begin
|
||||
Qry.Close;
|
||||
Qry.SQL.Text := 'INSERT INTO Events '
|
||||
+ '(RecordID, StartTime, EndTime, ResourceID, Description, Notes, '
|
||||
+ 'SnoozeTime, Category, DingPath, AllDayEvent, AlarmSet, '
|
||||
+ '(RecordID, StartTime, EndTime, ResourceID, Description, ' + FixedLoc
|
||||
+ 'Notes, SnoozeTime, Category, DingPath, AllDayEvent, AlarmSet, '
|
||||
+ 'AlarmAdvance, AlarmAdvanceType, RepeatCode, '
|
||||
+ 'RepeatRangeEnd, CustomInterval, '
|
||||
+ 'UserField0, UserField1, UserField2, UserField3, UserField4, '
|
||||
+ 'UserField5, UserField6, UserField7, UserField8, UserField9) '
|
||||
+ 'VALUES(:RecID, :STime, :ETime, :ResID, :Desc, :Notes, :SnTime, '
|
||||
+ ':Cat, :DPath, :ADEvent, :ASet, :AAdvance, :AAdvanceType, '
|
||||
+ ':RCode, :RRangeEnd, :CInterval, :UserField0, '
|
||||
+ 'VALUES(:RecID, :STime, :ETime, :ResID, :Desc, ' + FixedLocP
|
||||
+ ':Notes, :SnTime, :Cat, :DPath, :ADEvent, :ASet, :AAdvance, '
|
||||
+ ':AAdvanceType, :RCode, :RRangeEnd, :CInterval, :UserField0, '
|
||||
+ ':UserField1, :UserField2, :UserField3, :UserField4, '
|
||||
+ ':UserField5, :UserField6, :UserField7, :UserField8, '
|
||||
+ ':UserField9)';
|
||||
|
||||
Qry.ParamByName('RecID').AsInteger := Event.RecordID;
|
||||
Qry.ParamByName('STime').AsDateTime := Event.StartTime;
|
||||
Qry.ParamByName('ETime').AsDateTime := Event.EndTime;
|
||||
Qry.ParamByName('ResID').AsInteger := Resource.ResourceID;
|
||||
Qry.ParamByName('Desc').AsString := Event.Description;
|
||||
Qry.ParamByName('Notes').AsString := Event.Note;
|
||||
Qry.ParamByName('SnTime').AsDateTime := Event.SnoozeTime;
|
||||
Qry.ParamByName('Cat').AsInteger := Event.Category;
|
||||
Qry.ParamByName('DPath').AsString := Event.AlarmWavPath;
|
||||
Qry.ParamByName('ADEvent').AsBoolean := Event.AllDayEvent;
|
||||
Qry.ParamByName('ASet').AsBoolean := Event.AlarmSet;
|
||||
Qry.ParamByName('AAdvance').AsInteger := Event.AlarmAdv;
|
||||
Qry.ParamByName('RecID').AsInteger := Event.RecordID;
|
||||
Qry.ParamByName('STime').AsDateTime := Event.StartTime;
|
||||
Qry.ParamByName('ETime').AsDateTime := Event.EndTime;
|
||||
Qry.ParamByName('ResID').AsInteger := Resource.ResourceID;
|
||||
Qry.ParamByName('Desc').AsString := Event.Description;
|
||||
if FixedLocP <> '' then Qry.ParamByName('Loc').AsString := Event.Location;
|
||||
Qry.ParamByName('Notes').AsString := Event.Note;
|
||||
Qry.ParamByName('SnTime').AsDateTime := Event.SnoozeTime;
|
||||
Qry.ParamByName('Cat').AsInteger := Event.Category;
|
||||
Qry.ParamByName('DPath').AsString := Event.AlarmWavPath;
|
||||
Qry.ParamByName('ADEvent').AsBoolean := Event.AllDayEvent;
|
||||
Qry.ParamByName('ASet').AsBoolean := Event.AlarmSet;
|
||||
Qry.ParamByName('AAdvance').AsInteger := Event.AlarmAdv;
|
||||
Qry.ParamByName('AAdvanceType').AsInteger := Ord(Event.AlarmAdvType);
|
||||
Qry.ParamByName('RCode').AsInteger := Ord(Event.RepeatCode);
|
||||
Qry.ParamByName('RRangeEnd').AsDateTime := Event.RepeatRangeEnd;
|
||||
Qry.ParamByName('CInterval').AsInteger := Event.CustInterval;
|
||||
Qry.ParamByName('UserField0').AsString := Event.UserField0;
|
||||
Qry.ParamByName('UserField1').AsString := Event.UserField1;
|
||||
Qry.ParamByName('UserField2').AsString := Event.UserField2;
|
||||
Qry.ParamByName('UserField3').AsString := Event.UserField3;
|
||||
Qry.ParamByName('UserField4').AsString := Event.UserField4;
|
||||
Qry.ParamByName('UserField5').AsString := Event.UserField5;
|
||||
Qry.ParamByName('UserField6').AsString := Event.UserField6;
|
||||
Qry.ParamByName('UserField7').AsString := Event.UserField7;
|
||||
Qry.ParamByName('UserField8').AsString := Event.UserField8;
|
||||
Qry.ParamByName('UserField9').AsString := Event.UserField9;
|
||||
Qry.ParamByName('RCode').AsInteger := Ord(Event.RepeatCode);
|
||||
Qry.ParamByName('RRangeEnd').AsDateTime := Event.RepeatRangeEnd;
|
||||
Qry.ParamByName('CInterval').AsInteger := Event.CustInterval;
|
||||
Qry.ParamByName('UserField0').AsString := Event.UserField0;
|
||||
Qry.ParamByName('UserField1').AsString := Event.UserField1;
|
||||
Qry.ParamByName('UserField2').AsString := Event.UserField2;
|
||||
Qry.ParamByName('UserField3').AsString := Event.UserField3;
|
||||
Qry.ParamByName('UserField4').AsString := Event.UserField4;
|
||||
Qry.ParamByName('UserField5').AsString := Event.UserField5;
|
||||
Qry.ParamByName('UserField6').AsString := Event.UserField6;
|
||||
Qry.ParamByName('UserField7').AsString := Event.UserField7;
|
||||
Qry.ParamByName('UserField8').AsString := Event.UserField8;
|
||||
Qry.ParamByName('UserField9').AsString := Event.UserField9;
|
||||
|
||||
Qry.ExecSQL;
|
||||
end;
|
||||
@ -705,6 +716,8 @@ var
|
||||
I: Integer;
|
||||
Contact: TVpContact;
|
||||
Qry: TDBISAMQuery;
|
||||
F: TField;
|
||||
FixedNote, FixedNoteP: String;
|
||||
begin
|
||||
if (Resource <> nil) and Resource.ContactsDirty then begin
|
||||
{ Dump this resource's dirty contacts to the DB }
|
||||
@ -732,6 +745,15 @@ begin
|
||||
Qry.ParamByName('ID').AsInteger := Contact.RecordID;
|
||||
Qry.Open;
|
||||
|
||||
if Qry.FieldByName('Notes') <> nil then begin
|
||||
FixedNote := 'Notes, '; FixedNoteP := ':Note, ';
|
||||
end else
|
||||
if Qry.FieldByName('Note') <> nil then begin
|
||||
FixedNote := 'Note, '; FixedNoteP := ':Notes, ';
|
||||
end else begin
|
||||
FixedNote := ''; FixedNoteP := '';
|
||||
end;
|
||||
|
||||
if Qry.Locate('RecordID', Contact.RecordID, [])
|
||||
then begin
|
||||
{ existing record found }
|
||||
@ -750,7 +772,9 @@ begin
|
||||
Qry.FieldByName('State').AsString := Contact.State;
|
||||
Qry.FieldByName('Zip').AsString := Contact.Zip;
|
||||
Qry.FieldByName('Country').AsString := Contact.Country;
|
||||
Qry.FieldByName('Note').AsString := Contact.Note;
|
||||
F := Qry.FieldByName('Notes');
|
||||
if F = nil then F := Qry.FieldByName('Note'); // deprecated
|
||||
if F <> nil then F.AsString := Contact.Notes;
|
||||
Qry.FieldByName('Phone1').AsString := Contact.Phone1;
|
||||
Qry.FieldByName('Phone2').AsString := Contact.Phone2;
|
||||
Qry.FieldByName('Phone3').AsString := Contact.Phone3;
|
||||
@ -786,7 +810,7 @@ begin
|
||||
Qry.SQL.Text := 'INSERT INTO Contacts '
|
||||
+ '(ResourceID, RecordID, FirstName, LastName, Title, Company, '
|
||||
+ 'Job_Position, EMail, Address, City, State, Zip, Country, '
|
||||
+ 'Note, Phone1, Phone2, Phone3, Phone4, Phone5, PhoneType1, '
|
||||
+ FixedNote + 'Phone1, Phone2, Phone3, Phone4, Phone5, PhoneType1, '
|
||||
+ 'PhoneType2, PhoneType3, PhoneType4, PhoneType5, Category, '
|
||||
+ 'Custom1, Custom2, Custom3, Custom4, UserField0, UserField1, '
|
||||
+ 'UserField2, UserField3, UserField4, UserField5, UserField6, '
|
||||
@ -794,7 +818,7 @@ begin
|
||||
|
||||
+ 'VALUES(:ResourceID, :RecordID, :FirstName, :LastName, :Title, '
|
||||
+ ':Company, :Job_Position, :EMail, :Address, :City, :State, :Zip, '
|
||||
+ ':Country, :Note, :Phone1, :Phone2, :Phone3, :Phone4, :Phone5, '
|
||||
+ ':Country, ' + FixedNoteP + ':Phone1, :Phone2, :Phone3, :Phone4, :Phone5, '
|
||||
+ ':PhoneType1, :PhoneType2, :PhoneType3, :PhoneType4, :PhoneType5, '
|
||||
+ ':Category, :Custom1, :Custom2, :Custom3, :Custom4, :UserField0, '
|
||||
+ ':UserField1, :UserField2, :UserField3, :UserField4, :UserField5, '
|
||||
@ -813,7 +837,7 @@ begin
|
||||
Qry.ParamByName('State').AsString := Contact.State;
|
||||
Qry.ParamByName('Zip').AsString := Contact.Zip;
|
||||
Qry.ParamByName('Country').AsString := Contact.Country;
|
||||
Qry.ParamByName('Note').AsString := Contact.Note;
|
||||
if FixedNoteP <> '' then Qry.ParamByName('Notes').AsString := Contact.Notes;
|
||||
Qry.ParamByName('Phone1').AsString := Contact.Phone1;
|
||||
Qry.ParamByName('Phone2').AsString := Contact.Phone2;
|
||||
Qry.ParamByName('Phone3').AsString := Contact.Phone3;
|
||||
|
@ -1,11 +1,11 @@
|
||||
object DlgEventEdit: TDlgEventEdit
|
||||
Left = 417
|
||||
Height = 385
|
||||
Height = 388
|
||||
Top = 211
|
||||
Width = 697
|
||||
BorderStyle = bsToolWindow
|
||||
Caption = 'Add / Edit Events'
|
||||
ClientHeight = 385
|
||||
ClientHeight = 388
|
||||
ClientWidth = 697
|
||||
Constraints.MinHeight = 378
|
||||
Constraints.MinWidth = 594
|
||||
@ -16,7 +16,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Height = 41
|
||||
Top = 344
|
||||
Top = 347
|
||||
Width = 697
|
||||
Align = alBottom
|
||||
BevelOuter = bvNone
|
||||
@ -96,9 +96,9 @@ object DlgEventEdit: TDlgEventEdit
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
end
|
||||
object CategoryLbl: TLabel
|
||||
Left = 5
|
||||
Left = 403
|
||||
Height = 15
|
||||
Top = 41
|
||||
Top = 43
|
||||
Width = 51
|
||||
Caption = 'Category:'
|
||||
ParentColor = False
|
||||
@ -286,7 +286,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
Width = 74
|
||||
Caption = '&Reminder:'
|
||||
OnClick = AlarmSetClick
|
||||
TabOrder = 11
|
||||
TabOrder = 12
|
||||
end
|
||||
object StartTime: TComboBox
|
||||
Left = 231
|
||||
@ -296,7 +296,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
ItemHeight = 15
|
||||
OnChangeBounds = StartTimeChange
|
||||
OnExit = StartTimeExit
|
||||
TabOrder = 4
|
||||
TabOrder = 5
|
||||
end
|
||||
object EndTime: TComboBox
|
||||
Left = 231
|
||||
@ -306,18 +306,18 @@ object DlgEventEdit: TDlgEventEdit
|
||||
ItemHeight = 15
|
||||
OnChangeBounds = EndTimeChange
|
||||
OnExit = EndTimeExit
|
||||
TabOrder = 6
|
||||
TabOrder = 7
|
||||
end
|
||||
object Category: TComboBox
|
||||
Left = 86
|
||||
Left = 484
|
||||
Height = 21
|
||||
Top = 38
|
||||
Top = 40
|
||||
Width = 182
|
||||
ItemHeight = 15
|
||||
OnDrawItem = CategoryDrawItem
|
||||
ReadOnly = True
|
||||
Style = csOwnerDrawFixed
|
||||
TabOrder = 1
|
||||
TabOrder = 2
|
||||
end
|
||||
object RecurringType: TComboBox
|
||||
Left = 379
|
||||
@ -327,7 +327,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
ItemHeight = 15
|
||||
OnChange = RecurringTypeChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 7
|
||||
TabOrder = 8
|
||||
end
|
||||
object IntervalUpDown: TUpDown
|
||||
Left = 652
|
||||
@ -339,7 +339,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
Min = 0
|
||||
OnClick = IntervalUpDownClick
|
||||
Position = 0
|
||||
TabOrder = 9
|
||||
TabOrder = 10
|
||||
Wrap = False
|
||||
end
|
||||
object AlarmAdvType: TComboBox
|
||||
@ -349,7 +349,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
Width = 93
|
||||
ItemHeight = 15
|
||||
Style = csDropDownList
|
||||
TabOrder = 14
|
||||
TabOrder = 15
|
||||
end
|
||||
object AdvanceUpDown: TUpDown
|
||||
Left = 194
|
||||
@ -361,7 +361,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
Min = 1
|
||||
OnClick = AdvanceUpDownClick
|
||||
Position = 1
|
||||
TabOrder = 13
|
||||
TabOrder = 14
|
||||
Wrap = False
|
||||
end
|
||||
object CBAllDay: TCheckBox
|
||||
@ -371,14 +371,14 @@ object DlgEventEdit: TDlgEventEdit
|
||||
Width = 89
|
||||
Caption = 'All Day Event'
|
||||
OnClick = CBAllDayClick
|
||||
TabOrder = 2
|
||||
TabOrder = 3
|
||||
end
|
||||
object edtUnusedPlaceholder: TEdit
|
||||
Left = 587
|
||||
Height = 23
|
||||
Top = 104
|
||||
Width = 65
|
||||
TabOrder = 8
|
||||
TabOrder = 9
|
||||
Text = 'Placeholder control'
|
||||
Visible = False
|
||||
end
|
||||
@ -431,7 +431,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
NumGlyphs = 1
|
||||
MaxLength = 0
|
||||
OnChangeBounds = StartDateChange
|
||||
TabOrder = 3
|
||||
TabOrder = 4
|
||||
end
|
||||
object EndDate: TDateEdit
|
||||
Left = 104
|
||||
@ -482,7 +482,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
NumGlyphs = 1
|
||||
MaxLength = 0
|
||||
OnChangeBounds = EndDateChange
|
||||
TabOrder = 5
|
||||
TabOrder = 6
|
||||
end
|
||||
object RepeatUntil: TDateEdit
|
||||
Left = 440
|
||||
@ -532,7 +532,7 @@ object DlgEventEdit: TDlgEventEdit
|
||||
}
|
||||
NumGlyphs = 1
|
||||
MaxLength = 0
|
||||
TabOrder = 10
|
||||
TabOrder = 11
|
||||
end
|
||||
object AlarmAdvance: TEdit
|
||||
Left = 130
|
||||
@ -540,13 +540,29 @@ object DlgEventEdit: TDlgEventEdit
|
||||
Top = 168
|
||||
Width = 64
|
||||
OnChange = AlarmAdvanceChange
|
||||
TabOrder = 12
|
||||
TabOrder = 13
|
||||
Text = 'AlarmAdvance'
|
||||
end
|
||||
object LocationLbl: TLabel
|
||||
Left = 5
|
||||
Height = 15
|
||||
Top = 43
|
||||
Width = 49
|
||||
Caption = 'Location:'
|
||||
FocusControl = LocationEdit
|
||||
ParentColor = False
|
||||
end
|
||||
object LocationEdit: TEdit
|
||||
Left = 86
|
||||
Height = 23
|
||||
Top = 39
|
||||
Width = 235
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
object NotesMemo: TMemo
|
||||
Left = 8
|
||||
Height = 102
|
||||
Height = 105
|
||||
Top = 232
|
||||
Width = 679
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
|
@ -41,7 +41,7 @@ uses
|
||||
{$ENDIF}
|
||||
SysUtils, {$IFDEF VERSION6}Variants,{$ENDIF} Classes,
|
||||
Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, VpData, VpEdPop,
|
||||
VpDateEdit, ComCtrls, VpBase, VpClock, VpBaseDS, VpDlg, VpConst,
|
||||
ComCtrls, VpBase, VpBaseDS, VpDlg, VpConst,
|
||||
Buttons, EditBtn;
|
||||
|
||||
type
|
||||
@ -59,6 +59,8 @@ type
|
||||
|
||||
TDlgEventEdit = class(TForm)
|
||||
AlarmAdvance: TEdit;
|
||||
LocationEdit: TEdit;
|
||||
LocationLbl: TLabel;
|
||||
NotesMemo: TMemo;
|
||||
StartDate: TDateEdit;
|
||||
EndDate: TDateEdit;
|
||||
@ -307,14 +309,14 @@ begin
|
||||
CBAllDay.Checked := Event.AllDayEvent;
|
||||
AlarmWavPath := Event.AlarmWavPath;
|
||||
|
||||
|
||||
StartDate.Enabled := not CBAllDay.Checked;
|
||||
EndDate.Enabled := not CBAllDay.Checked;
|
||||
EndTime.Enabled := not CBAllDay.Checked;
|
||||
StartTime.Enabled := not CBAllDay.Checked;
|
||||
|
||||
DescriptionEdit.Text := Event.Description;
|
||||
NotesMemo.Text := Event.Note;
|
||||
LocationEdit.Text := Event.Location;
|
||||
NotesMemo.Text := Event.Notes;
|
||||
AlarmSet.Checked := Event.AlarmSet;
|
||||
AlarmSetClick(Self);
|
||||
if not Event.AlarmSet then
|
||||
@ -345,7 +347,8 @@ begin
|
||||
Event.EndTime := EndDate.Date + StrToTime(EndTime.Text);
|
||||
Event.RepeatRangeEnd := RepeatUntil.Date;
|
||||
Event.Description := DescriptionEdit.Text;
|
||||
Event.Note := NotesMemo.Text;
|
||||
Event.Location := LocationEdit.Text;
|
||||
Event.Notes := NotesMemo.Text;
|
||||
Event.Category := Category.ItemIndex;
|
||||
Event.AlarmSet := AlarmSet.Checked;
|
||||
Event.AlarmAdv := StrToIntDef(AlarmAdvance.Text, 0);
|
||||
@ -353,7 +356,7 @@ begin
|
||||
Event.RepeatCode := TVpRepeatType(RecurringType.ItemIndex);
|
||||
Event.CustInterval := StrToIntDef(FCustomInterval.Text, 0);
|
||||
Event.AllDayEvent := CBAllDay.Checked;
|
||||
Event.AlarmWavPath := AlarmWavPath;
|
||||
Event.DingPath := AlarmWavPath;
|
||||
end;
|
||||
{=====}
|
||||
|
||||
@ -502,6 +505,7 @@ begin
|
||||
CancelBtn.Caption := RSCancelBtn;
|
||||
AppointmentGroupBox.Caption := RSAppointmentGroupBox;
|
||||
DescriptionLbl.Caption := RSDescriptionLbl;
|
||||
LocationLbl.Caption := RSLocationLbl;
|
||||
CategoryLbl.Caption := RSCategoryLbl;
|
||||
StartTimeLbl.Caption := RSStartTimeLbl;
|
||||
EndTimeLbl.Caption := RSEndTimeLbl;
|
||||
|
@ -157,10 +157,9 @@ type
|
||||
procedure PurgeResource(Res: TVpResource); override;
|
||||
procedure PurgeEvents(Res: TVpResource); override;
|
||||
procedure PurgeContacts(Res: TVpResource); override;
|
||||
procedure PurgeTasks(Res: TVpResource); override;
|
||||
function GetFieldName(Mappings: TCollection;
|
||||
VPField: string): string;
|
||||
procedure PurgeTasks(Res: TVpResource); override;
|
||||
|
||||
function GetFieldName(Mappings: TCollection; VPField: string): string;
|
||||
function GetNextID(TableName: string): Int64; override;
|
||||
|
||||
{ These are published via the TVpDataSources class, which allows them to }
|
||||
@ -246,43 +245,39 @@ begin
|
||||
and FContactsDataSrc.DataSet.Active
|
||||
and FTasksDataSrc.DataSet.Active;
|
||||
|
||||
result := AllAssigned and AllActive;
|
||||
Result := AllAssigned and AllActive;
|
||||
end;
|
||||
{=====}
|
||||
|
||||
function TVpFlexDataStore.GetResourceTable : TDataset;
|
||||
begin
|
||||
result := nil;
|
||||
if (FResourceDataSrc <> nil)
|
||||
and (FResourceDataSrc.DataSet <> nil)
|
||||
then result := FResourceDataSrc.DataSet;
|
||||
if (FResourceDataSrc <> nil) and (FResourceDataSrc.DataSet <> nil) then
|
||||
Result := FResourceDataSrc.DataSet;
|
||||
end;
|
||||
{=====}
|
||||
|
||||
function TVpFlexDataStore.GetEventsTable : TDataset;
|
||||
begin
|
||||
result := nil;
|
||||
if (FEventsDataSrc <> nil)
|
||||
and (FEventsDataSrc.DataSet <> nil)
|
||||
then result := FEventsDataSrc.DataSet;
|
||||
if (FEventsDataSrc <> nil) and (FEventsDataSrc.DataSet <> nil) then
|
||||
Result := FEventsDataSrc.DataSet;
|
||||
end;
|
||||
{=====}
|
||||
|
||||
function TVpFlexDataStore.GetContactsTable : TDataset;
|
||||
begin
|
||||
result := nil;
|
||||
if (FContactsDataSrc <> nil)
|
||||
and (FContactsDataSrc.DataSet <> nil)
|
||||
then result := FContactsDataSrc.DataSet;
|
||||
if (FContactsDataSrc <> nil) and (FContactsDataSrc.DataSet <> nil) then
|
||||
Result := FContactsDataSrc.DataSet;
|
||||
end;
|
||||
{=====}
|
||||
|
||||
function TVpFlexDataStore.GetTasksTable : TDataset;
|
||||
begin
|
||||
result := nil;
|
||||
if (FTasksDataSrc <> nil)
|
||||
and (FTasksDataSrc.DataSet <> nil)
|
||||
then result := FTasksDataSrc.DataSet;
|
||||
if (FTasksDataSrc <> nil) and (FTasksDataSrc.DataSet <> nil) then
|
||||
Result := FTasksDataSrc.DataSet;
|
||||
end;
|
||||
{=====}
|
||||
|
||||
@ -575,15 +570,22 @@ begin
|
||||
if (FN1 <> '') then
|
||||
Event.Description := FieldByName(FN1).AsString;
|
||||
|
||||
FN1 := GetFieldName(FEventMappings, 'Note');
|
||||
FN1 := GetFieldName(FEventMappings, 'Location'); // new
|
||||
if (FN1 <> '') then
|
||||
Event.Note := FieldByName(FN1).AsString;
|
||||
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, 'AlarmWavPath');
|
||||
FN1 := GetFieldName(FEventMappings, 'DingPath');
|
||||
if FN1 = '' then
|
||||
FN1 := GetFieldName(FEventMappings, 'AlarmWavPath'); // deprectated
|
||||
if (FN1 <> '') then
|
||||
Event.AlarmWavPath := FieldByName(FN1).AsString;
|
||||
|
||||
@ -746,9 +748,11 @@ begin
|
||||
if FN <> '' then
|
||||
Contact.Country := FieldByName(FN).AsString;
|
||||
|
||||
FN := GetFieldName(FContactMappings, 'Note');
|
||||
FN := GetFieldName(FContactMappings, 'Notes');
|
||||
if FN = '' then
|
||||
FN := GetFieldName(FContactMappings, 'Note'); // deprecated
|
||||
if FN <> '' then
|
||||
Contact.Note := FieldByName(FN).AsString;
|
||||
Contact.Notes := FieldByName(FN).AsString;
|
||||
|
||||
FN := GetFieldName(FContactMappings, 'Phone1');
|
||||
if FN <> '' then
|
||||
@ -1161,15 +1165,23 @@ begin
|
||||
if FN <> '' then
|
||||
EventsTable.FieldByName(FN).AsString := Event.Description;
|
||||
|
||||
FN := GetFieldName(FEventMappings, 'Note');
|
||||
FN := GetFieldName(FEventMappings, 'Location'); // new
|
||||
if FN <> '' then
|
||||
EventsTable.FieldByName(FN).AsString := Event.Note;
|
||||
EventsTable.FieldByName(FN).AsString := Event.Location;
|
||||
|
||||
FN := GetFieldName(FEventMappings, 'Notes');
|
||||
if FN = '' then
|
||||
FN := GetFieldName(FEventMappings, 'Note'); // deprecated
|
||||
if FN <> '' then
|
||||
EventsTable.FieldByName(FN).AsString := Event.Notes;
|
||||
|
||||
FN := GetFieldName(FEventMappings, 'Category');
|
||||
if FN <> '' then
|
||||
EventsTable.FieldByName(FN).AsInteger := Event.Category;
|
||||
|
||||
FN := GetFieldName(FEventMappings, 'AlarmWavPath');
|
||||
FN := GetFieldName(FEventMappings, 'DingPath');
|
||||
if FN = '' then
|
||||
FN := GetFieldName(FEventMappings, 'AlarmWavPath'); // deprecated
|
||||
if FN <> '' then
|
||||
EventsTable.FieldByName(FN).AsString := Event.AlarmWavPath;
|
||||
|
||||
@ -1380,9 +1392,11 @@ begin
|
||||
if FN <> '' then
|
||||
ContactsTable.FieldByName(FN).AsString := Contact.Country;
|
||||
|
||||
FN := GetFieldName(FContactMappings, 'Note');
|
||||
FN := GetFieldName(FContactMappings, 'Notes');
|
||||
if FN = '' then
|
||||
FN := GetFieldName(FContactMappings, 'Note'); // deprecated
|
||||
if FN <> '' then
|
||||
ContactsTable.FieldByName(FN).AsString := Contact.Note;
|
||||
ContactsTable.FieldByName(FN).AsString := Contact.Notes;
|
||||
|
||||
FN := GetFieldName(FContactMappings, 'Phone1');
|
||||
if FN <> '' then
|
||||
|
@ -588,5 +588,4 @@ begin
|
||||
canvas.Free;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
@ -222,6 +222,7 @@ resourcestring
|
||||
RSDlgEventEdit = 'Event';
|
||||
RSAppointmentGroupBox = 'Appointment';
|
||||
RSDescriptionLbl = 'Subject:';
|
||||
RSLocationLbl = 'Location:';
|
||||
RSCategoryLbl = 'Category:';
|
||||
RSStartTimeLbl = 'Start Time:';
|
||||
RSEndTimeLbl = 'End Time:';
|
||||
|
Reference in New Issue
Block a user