<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,0249421296" ReportOptions.Description.Text="" ReportOptions.LastChange="39906,51517875" ScriptLanguage="PascalScript" ScriptText.Text="procedure CategoryOnAfterData(Sender: TfrxComponent);
begin
with TfrxMemoView(Sender) do
begin
Color := <ToDos."Category.Color">;
if Color <> clWindow then
Frame.Color := clBlack
else
Frame.Color := clNone;
end;
OnAfterData(Sender);
end;
procedure PictureOnAfterData(Sender: TfrxComponent);
begin
OnAfterData(Sender);
TfrxView(Sender).Left := TfrxView(Sender).Left + 1;
end;
procedure TextMemOnAfterData(Sender: TfrxComponent);
begin
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;
OnAfterData(Sender);
end;
procedure SubjectOnAfterData(Sender: TfrxComponent);
var
X: Integer;
begin
TextMemOnAfterData(Sender);
with TfrxMemoView(Sender) do
begin
X := <ToDos."Level"> * 12;
Left := Left + X;
Width := Width - X;
Memo.Text := <ToDos."Subject">;
if (<ToDos."Subject"> = '') or (<ToDos."Text"> = '') then
Memo.Text := Memo.Strings[0] + <ToDos."Text">
else
Memo.Text := Memo.Strings[0] + #13#10 + '<i>' + <ToDos."Text"> + '</i>';
end;
end;
procedure SubjectOnAfterData2(Sender: TfrxComponent);
var
X: Integer;
begin
TextMemOnAfterData(Sender);
with TfrxMemoView(Sender) do
begin
X := <ToDos."Level"> * 12;
Left := Left + X;
Width := Width - X;
Memo.Text := <ToDos."Subject">;
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;
if Sender is TfrxMemoView then
with TfrxMemoView(Sender).Frame do
if TfrxMemoView(Sender).Color <> clNone then
Typ := Typ or ftBottom or ftTop
else
begin
Typ := Typ and not ftBottom or ftTop;
if <ToDos."HasParent"> then
Typ := Typ and not ftTop;
end;
end;
begin
end." PropData="044C65667403940003546F70027408446174617365747301010C2E00000020446174615365743D225265706F727473444D2E4E6F7465732220446174615365744E616D653D224E6F7465732200010C3400000020446174615365743D225265706F727473444D2E4E6F7465546162732220446174615365744E616D653D224E6F7465546162732200010C1700000020446174615365744E616D653D2243617074696F6E73220000095661726961626C65730100055374796C650100">