Текущий архив: 2004.08.01;
Скачать: CL | DM;
ВнизИз Delphi в HTML Найти похожие ветки
← →
Natalie_Q (2004-07-19 17:17) [0]Проблема у меня такая: нужно заполнить форму Delphi, а затем перенести эти данные в HTML для распечатки. Я сделала шаблон страницы HTML и обрабатываю его TPageProducer"ом. Но загвоздка вот в чем, как отобразить уже обработанную страницу, не используя TWebModule? Заранее спасибо!
← →
Ega23 © (2004-07-19 17:20) [1]Давно писалось, тут из запроса файл генериться и IE запускается. Посмотри, может поможет...
Function QueryToHTML(rq:TRxQuery;sqls:string="*";aFile:string=""; browsekind: integer=1):boolean;
var
ss,fURL,fFn:string;
slst:tstringlist;
hnd:Thandle;
//.......
Procedure ChangeFileDate(aFn:string;aDate:tdatetime=0);
var dt:tdatetime;
hnd:integer;
begin
try
hnd:=-100;
if aDate=0 then dt:=now()-100 else dt:=aDate;
hnd:= FileOpen(aFN, fmOpenWrite or fmShareDenyNone);
if hnd>0 then FileSetDate(Hnd, DateTimeToFileDate(dt) );
finally
if hnd>0 then FileClose(hnd);
end;
end;
//.......
Function DoBrowse:boolean;
begin
if BrowseKind=1 then
begin
hnd:= FileExecute(fURL, "", "", esNormal);
if hnd <= 32 then
begin
ShowMessage("Не могу запустить iexplore.exe");
exit;
end;
hnd:=FindWindow("IEFrame",nil);
if hnd <>0 then BringWindowToTop(hnd);
end;//of BrowseKind=1
end;
//.......
Begin
result:=false;
if NoConnectGlb then exit; //@@ 09-10-2001
TRY
if trim(aFile)="" then fFn:=extractfilepath(paramstr(0))+"\form0.htm"
else fFn:=aFile;
fURL:="file://localhost/"+fFn;
if RQ=nil then // просто показать файл
begin
if not FileExists(fFn) then exit;
DoBrowse;
result:=true;
exit;
end;
if sqls<>"*" then RQ.Sql.text:=sqls;
RQ.Close;
Application.ProcessMessages;
RQ.Open;
RQ.first;
ss:="";
while not RQ.eof do
begin
ss := ss+ RQ.Fields[0].asString;
RQ.next;
end;
if (ss<>"") then
begin
//if trim(aFile)="" then fFn:=extractfilepath(paramstr(0))+"\form0.htm"
// else fFn:=aFile;
// fURL:="file://localhost/"+fFn;
slst:=tstringlist.Create;
slst.Add(ss);
slst.SaveToFile(fFn);
slst.free;slst:=nil;
ChangeFileDate(fFn);
DoBrowse;
result:=true;
end;
FINALLY
if slst<>nil then begin slst.free;slst:=nil; end;
END
(* Чтобы iexplore стоял на экране - в приложение добавить на таймер ???
var hnd :thandle;
begin
hnd:=FindWindow("IEFrame",nil);
if hnd <>0 then BringWindowToTop(hnd);
end;
*)
//QueryToHTML(rq,"exec s_InfSchedSummary @schedcod=1, @persid=0");
end;
Страницы: 1 вся ветка
Текущий архив: 2004.08.01;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.039 c