Проблема с глобальной переменной
Инициализирую переменную в основной части скрипта (главный begin end). Переменная объявлена в части var. При обращении к этой переменной в обработчике события BeforePrint выясняется, что она уже равна 0. Пробовал передавать через глобальные перменные отчета - возвращает ерунду. Даже через текст объекта Memo пробовал - не инициализируется. Хелп!
Комментарии
var
i: integer;
begin
i := 89;
ShowMessage(i);
end.
Результат - окошо с 89. В чем проблемы не понимаю?
var
i: integer;
procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
Memo1.Text := IntToStr(i);
end;
begin
i := 89;
ShowMessage(i);
end.
В мемосе текст печатается, окошко выскакивает - чего еще?
begin
if not BlockScript then begin
I := 89;
end;
end;
BlockScript = false во время подготовки данных, но перед самим выводом отчета пробивается значением true. Инициализаровать переменную ВНЕ блока if then я не могу.
Может подскажите еще ?
1. Как динамично в скрипте отчета по условию из Дельфей сбросить DataSet у MasterData и сделать невидимыми GroupHeader и GroupFooter?
Такой кусок не прокатывает:
procedure ReportTitle1OnBeforePrint(Sender: TfrxComponent);
begin
if RecordCount = 0 then Begin {RecordCount - встроенная ф-я из Дельфей}
MasterData1.DataSet := nil;
MasterData1.RowCount := 1;
GroupHeader1.Visible := False;
GroupFooter1.Visible := False;
end;
end;
2. В чем разница между
frReport.Variables.AddVariable (aGroupName, AvariableName, aValue);
и
fsGlobalUnit.Variables[AvariableName] := aValue;