Защита программы с помощью отчета
Здравствуйте уважаемые любители и профессионалы. Подскажите как в событии OnEndDoc получить значение определенной переменной отчета?
Если присваиваю значение переменной сам, то она видна.
Делаю перед ShowReport
frxReport1.Variables:= ''+ pFIBDataSet1.FBN('MyVar').AsString +'';
Затем в OnEndDoc читаю
Index := frxReport1.Variables.IndexOf('VAR1');
if Index <> -1 then
Variable := frxReport1.Variables.Items[Index];
if Variable.Value <> pFIBDataSet1.FBN('MyVar').AsString then
так все работает. Но мне надо проверить что находится в этой переменной без присвоения. Т.е. в дизайнере делаю переменную VAR1 , в OnGetValue пишу if VarName = 'VAR1' then Value := pFIBDataSet1.FBN('MyVar').AsString;
И в OnEndDoc получаю NULL. Что делаю неправильно?
Если присваиваю значение переменной сам, то она видна.
Делаю перед ShowReport
frxReport1.Variables:= ''+ pFIBDataSet1.FBN('MyVar').AsString +'';
Затем в OnEndDoc читаю
Index := frxReport1.Variables.IndexOf('VAR1');
if Index <> -1 then
Variable := frxReport1.Variables.Items[Index];
if Variable.Value <> pFIBDataSet1.FBN('MyVar').AsString then
так все работает. Но мне надо проверить что находится в этой переменной без присвоения. Т.е. в дизайнере делаю переменную VAR1 , в OnGetValue пишу if VarName = 'VAR1' then Value := pFIBDataSet1.FBN('MyVar').AsString;
И в OnEndDoc получаю NULL. Что делаю неправильно?
Комментарии
frxReport1.EngineOptions.DestroyForms := False
Можно конечно присваивать значение. Но как потом узнать что эта переменная будет печататься? Значение будет то что надо, но ведь переменную не обязательно вставлять в какое-нибудь Мемо. Вбил любые данные вместо переменной и все будет работать.
Для демо-версии проще заблокировать возможность экспорта и сохранения сформированныхстраниц превью, а во время печати добавлять надпись ДЕМО на печатаемую страницу в событии TfrxReport.OnPrintPage