Отчёт через Web. где ошибка?
Задача: для каждого отчёта динамически создавать в fr диалоговое окошко с возможностью выбора параметров для запроса отчёта с последующим формированием отчёта.
Вот что было сделано:
из дельфи в отчёт экспортируется вот такой скрипт:
При запуске такого отчёта из дизайнера или просто при запуске с использованием компонет дельфи - всё срабатывает правильно (форма отрисовывается, при нажатии на кнопку Ок появляется окошко с предпросмотром данного отчёта с учётом параметров)
А вот если файл с таким скриптом скормить fr серверу то...
1 - при формировании диалогового окна в браузере меняются все пропорции
2 - не отображаются лабелы (или их кэпшены...)
3 - при нажатии на любую из кнопок ничего не происходит
4 - при повторном нажатии на любую из кнопок диалоговый браузер закрывается и открывается ещё одно окно браузера с предыдущей страницей...
Вопрос:
1 - Что я делаю не так? (Как сделать так чтоб в вебе всё работало?)
2 - Как правильно запускать превью (ели не использовать mrOK)
3 - Как сделать так чтобы Квери не формировал отчёт до заполнения параметров?
Спасибо!!!
Вот что было сделано:
из дельфи в отчёт экспортируется вот такой скрипт:
var i:integer;
myEdits: array [1..100] of tfrxeditcontrol;
myLabels: array [0..100] of tfrxlabelcontrol;
myButtons: array [1..2] of tfrxButtonControl;
myDialogPage: tfrxdialogpage;
procedure Button1OnClick(Sender: TfrxComponent);
begin
ADOQuery.Close;
for i:=1 to ADOQuery.Params.Count do
Begin
ADOQuery.Params.Items[i-1].DataType :=ftString;
ADOQuery.Params.Items[i-1].Value:=trim(myEdits[i].text);
end;
ADOQuery.Open;
end;
Begin
if ADOQuery.Params.Count <>0 then begin
myDialogPage:=tfrxdialogpage.Create(data.parent);
myLabels[0]:=tfrxlabelcontrol.create(myDialogPage);
myLabels[0].caption:='Введите значения параметров';
myButtons[1]:=tfrxButtonControl.create(myDialogPage);
myButtons[1].Caption:='Ok';
myButtons[1].ModalResult:=mrOk;
myButtons[1].OnClick:='Button1OnClick';
myButtons[2]:=tfrxButtonControl.create(myDialogPage);
myButtons[2].Caption:='Cancel';
myButtons[2].ModalResult:=mrCancel;
for i:=1 to ADOQuery.Params.Count do
Begin
myLabels[i]:=tfrxlabelcontrol.create(myDialogPage);
myLabels[i].left:=10;
myLabels[i].top:=25*i;
myLabels[i].caption:=ADOQuery.params[i-1].name;
myEdits[i]:=tfrxeditcontrol.create(myDialogPage);
myEdits[i].left:=130;
myEdits[i].top:=25*i;
End;
myButtons[1].top:=25*i+25;
myButtons[2].left:=myButtons[1].left+myButtons[1].width;
myButtons[2].top:=myButtons[1].top;
myDialogPage.height:=25*i+80;
myDialogPage.width:=250;
end;
end.
= ';
При запуске такого отчёта из дизайнера или просто при запуске с использованием компонет дельфи - всё срабатывает правильно (форма отрисовывается, при нажатии на кнопку Ок появляется окошко с предпросмотром данного отчёта с учётом параметров)
А вот если файл с таким скриптом скормить fr серверу то...
1 - при формировании диалогового окна в браузере меняются все пропорции
2 - не отображаются лабелы (или их кэпшены...)
3 - при нажатии на любую из кнопок ничего не происходит
4 - при повторном нажатии на любую из кнопок диалоговый браузер закрывается и открывается ещё одно окно браузера с предыдущей страницей...
Вопрос:
1 - Что я делаю не так? (Как сделать так чтоб в вебе всё работало?)
2 - Как правильно запускать превью (ели не использовать mrOK)
3 - Как сделать так чтобы Квери не формировал отчёт до заполнения параметров?
Спасибо!!!