<TfrxReport Version="4.7.79" DotMatrixReport="False" IniFile="\Software\Fast Reports" OldStyleProgress="True" PreviewOptions.Buttons="4095" PreviewOptions.Zoom="1" PrintOptions.Printer="Default" PrintOptions.PrintOnSheet="0" ReportOptions.CreateDate="39870,0200169907" ReportOptions.Description.Text="" ReportOptions.LastChange="39909,4782136806" ScriptLanguage="PascalScript" ScriptText.Text="var
ArrowShowed: Boolean;
procedure ArrowOnBeforePrint(Sender: TfrxComponent);
begin
if not ArrowShowed and not<DayTasks."AllDay"> and (<DayTasks."EndTime"> >= Now) then
ArrowShowed := True
else
TfrxPictureView(Sender).Width := 0;
end;
procedure LineOnAfterData(Sender: TfrxComponent);
begin
with TfrxLineView(Sender).Frame do
if <Days."DayNo"> = 0 then
Color := $A7A7A7
else
Color := $CDCDCD;
OnAfterData(Sender);
end;
procedure TaskOnAfterData(Sender: TfrxComponent);
begin
with TfrxMemoView(Sender).Font do
begin
if (<DayTasks."EndTime"> < Now) or (<DayTasks."Completion"> = '100%') then
Color := clGray
else
Color := clWindowText;
if <DayTasks."Completion"> = '100%' then
Style := <fsStrikeOut>
else
Style := 0;
end;
end;
procedure TaskCategoryOnAfterData(Sender: TfrxComponent);
begin
with TfrxMemoView(Sender) do
begin
Color := <DayTasks."Category.Color">;
if Color <> clWindow then
Frame.Color := clBlack
else
Frame.Color := clNone;
end;
OnAfterData(Sender);
end;
procedure TaskTextOnAfterData(Sender: TfrxComponent);
begin
TaskOnAfterData(Sender);
OnAfterData(Sender);
if <DayTasks."Priority.Img"> = '' then
with TfrxMemoView(Sender) do
begin
Left := Left - 12;
Width := Width + 12;
end;
end;
procedure ToDoOnAfterData(Sender: TfrxComponent);
begin
OnAfterData(Sender);
TfrxView(Sender).Left := TfrxView(Sender).Left + <ToDos."Level"> * 10;
end;
procedure ToDoCategoryOnAfterData(Sender: TfrxComponent);
begin
ToDoOnAfterData(Sender);
with TfrxMemoView(Sender) do
begin
Color := <ToDos."Category.Color">;
if Color <> clWindow then
Frame.Color := clBlack
else
Frame.Color := clNone;
end;
end;
procedure ToDoTextOnAfterData(Sender: TfrxComponent);
begin
ToDoOnAfterData(Sender);
with TfrxMemoView(Sender) do
begin
if <ToDos."Priority.Img"> = '' then
begin
Left := Left - 12;
Width := Width + 12;
end;
Width := Width - <ToDos."Level"> * 10;
if (<ToDos."TimeStr"> = '') or (<ToDos."Subject"> = '') then
Memo.Text := <ToDos."TimeStr"> + <ToDos."Subject">
else
Memo.Text := <ToDos."TimeStr"> + #13#10 + <ToDos."Subject">;
end;
with TfrxMemoView(Sender).Font do
if <ToDos."Completion"> = '100%' then
begin
Color := clGray;
Style := <fsStrikeOut>;
end
else
begin
if (<ToDos."DueDate"> <> '') and (<ToDos."DueDate"> < Now) then
Color := clRed
else
Color := clWindowText;
Style := 0;
end;
end;
procedure FolderOnAfterData(Sender: TfrxComponent);
begin
OnAfterData(Sender);
with TfrxMemoView(Sender) do
begin
Left := Left + <Folders."Level"> * 10;
Width := Width - <Folders."Level"> * 10;
end;
end;
procedure UnreadOnAfterData(Sender: TfrxComponent);
begin
OnAfterData(Sender);
with TfrxMemoView(Sender) do
begin
if <Folders."UnreadCount"> = 0 then
Font.Style := 0
else
Font.Style := <fsBold>;
end;
end;
procedure OnAfterData(Sender: TfrxComponent);
function GetParamName(const Params: String; var Pos: Integer; var ParamName: Char): Boolean;
var
I: Integer;
S: String;
begin
I := Pos;
while (I <= Length(Params)) and (Params[I] <> '=') do Inc(I);
S := Copy(Params, Pos, I - Pos);
Pos := I + 1;
Result := (S <> '') and (S[1] in['A'..'Z']);
if Result then
ParamName := S[1];
end;
function GetParamValue(const Params: String; var Pos: Integer; var ParamValue: Integer): Boolean;
var
I: Integer;
S: String;
begin
I := Pos;
while (I <= Length(Params)) and (Params[I] in['0'..'9']) do Inc(I);
S := Copy(Params, Pos, I - Pos);
Pos := I;
Result := S <> '';
if Result then
ParamValue := StrToInt(S);
end;
var
Params: String;
Pos,ParamValue: Integer;
ParamName,ParamSign: Char;
E: Extended;
begin
Pos := 1;
with TfrxView(Sender) do
begin
Params := TagStr;
while GetParamName(Params, Pos, ParamName) do
if GetParamValue(Params, Pos, ParamValue) then
begin
if (Pos <= Length(Params)) and (Params[Pos] = '%') then
begin
if ParamName in['L', 'R', 'W'] then
E := Engine.PageWidth * ParamValue / 100
else
E := Engine.PageHeight * ParamValue / 100;
Inc(Pos);
end
else
E := ParamValue;
if (Pos <= Length(Params)) and (Params[Pos] in['+', '-']) then
begin
ParamSign := Params[Pos];
Inc(Pos);
if GetParamValue(Params, Pos, ParamValue) then
if ParamSign = '+' then
E := E + ParamValue
else
E := E - ParamValue;
end;
case ParamName of
'L': Left := E;
'T': Top := E;
'R': Left := E - Width;
'B': Top := E - Height;
'W': Width := E;
'H': Height := E;
end;
Inc(Pos);
end;
end;
end;
begin
Page1.TopMargin := 0;
Page1.LeftMargin := 15;
Page1.RightMargin := 70.4;
Page1.BottomMargin := 81.3;
end." PropData="044C65667403940003546F70027408446174617365747301010C1700000020446174615365744E616D653D2243617074696F6E732200010C1300000020446174615365744E616D653D22446179732200010C1700000020446174615365744E616D653D224461795461736B732200010C1400000020446174615365744E616D653D22546F446F732200010C1700000020446174615365744E616D653D224163636F756E74732200010C1600000020446174615365744E616D653D22466F6C646572732200010C1B00000020446174615365744E616D653D22436F6E746163744461746573220000095661726961626C65730100055374796C650100">