Multi-informatica
   
     

Componentes Delphi

Usando FastReport desde IntraWeb

FastReport es un potente y popular librería de componentes para crear informes.
Si programas en IntraWeb, quizás has pensado en poder obtener bonitos informes pdf, reutilizando informes que tienes desarrollados para un programa DeskTop.

Realmente no es muy complicado, pero si no tienes en cuenta algunos “trucos”, te va a ser difícil alcanzar el resultado.

Veamos como se crearía un informe pdf en una aplicación delphi normal:

 

var pdf: TfrxPDFExport; frreport: TfrxReport;

procedure CrearReport (const nam,resul:String);
begin
frReport.LoadFromFile(nam);
pdf.ShowDialog:=false; //Turn off dialog
pdf.FileName:=resul; frReport.PrepareReport(true);
frReport.export (pdf)
end;

 

El procedimiento CrearReport recibe como parámetro nam ( que es el nombre de la plantilla fr que se quiere listar) y resul que es el nombre del archivo resultado del listado.
Este procedimiento funcionaría perfectamente en un programa desktop ( Por supuesto si se han inicializado los componentes relacionados). Sin embargo si queremos hacer lo mismo en un programa IntraWeb, intentando crear el informe como respuesta a un comando solicitado desde el formulario Web, posiblemente no te funcionara de primeras.
¿ Cual es la causa ? En una aplicación IntraWeb, la respuesta a los comandos solicitados, se procesan en hilos (Threads). Es conocido el problema que hay al generar un formulario, desde un hilo que no sea el hilo principal. (Se produce una “inconsistencia” del formulario generado).

. FastReport necesita crear unos formularios (aunque sean invisibles) para crear los informes. Si nosotros usamos solo algo parecido al codigo1, nuestra aplicación “petará” al intentar crear el informe.
¿Cuál es la solución?
Generaremos un nuevo hilo ( thread), mediante el que sincronizaremos la creación del informe con el hilo principal.

 

type
TIwFastResport = CLASS(TThread)

protected
procedure Execute; override;
public
na,resu:string;
constructor Create (const nas,resus:string);
procedure crear;
end; constructor TIwFastResport.Create (const nas,resus:string);
begin
inherited create (true);
freeonterminate:=false;
na:=nas;
resu:=resus;
end; procedure TIwFastResport.Execute; begin
synchronize (crear);
end; procedure TIwFastResport.crear;
begin
CrearReport (na,resu) end;

 

¿Como se usa este componente?

procedure TFormSample.ExportGen_( na:string; resu:string);
var th:TIwFastResport;
begin
th:=TIwFastResport.create(na,resu);
th.resume;
th.WaitFor;
th.Free;
WebApplication.SendFile(resu,True , 'application/binary', '');
end;

 

 

 

 

 

Zapatec en IntraWeb

Zapatec (Zp) es una librería Ajax escrita en JavaScript, con un claro y bien comentado código fuente. Incluye gran cantidad de ejemplos en buena combinación con la documentación de ayuda.

El objetivo es usar Zp en una aplicación Delphi / IntraWeb, con la intención de usar las técnicas Ajax de Zp para comunicar los “dos mundos”. A nuestra aplicación la llamaremos ZADI.

ver más

 

Más Ajax de IntraWEB

Hace poco más de un año que se le ha dado nombre a una técnica que está revolucionando la forma de hacer páginas WEB. Su nombre es AJaX.

Realmente no es una técnica nueva, ( por ejemplo GranPrimo utiliza técnicas AJaX desde el principio), pero nunca se les habia dado nombre, ni se habia explorado en esta técnica tanto como ahora.

He realizado 'experimentos' de uso de esta técnica en programas IntraWeb, dando como resultado unos componentes que pueden utilizarse en cualquier aplicación IntraWeb existente, añadiendo sencillas soluciones AJaX a viejos problemas de las aplicaciones IntraWeb.

He querido documentar estas experiencias en una serie de articulos que comienzan con miajax1.htm

 

El proyecto gpfeatures . 17-Mayo-2005

Este programa es una pequeña guia de uso de los componentes Gp para IntraWeb e Indy. Ilustra los diferentes usos y propositos de la libreria Gp. Los nuevos componentes para IntraWeb, la potencia de convinar el uso de IntraWeb e Indy, y nuevo componentes para WebCam, juegos...

NeTriste es un ejemplo de juego cliente/servidor, quizas no es el mejor juego que puedes poner en-linea, pero ilustra la forma en la que puedes hacerlo.

 

   

 

 

   

Zapatec

Teléfono: 978-610539 - Fax: 978-610861 -Trav.Agustina Aragón 1,1e 44002 Teruel ( España ).webmaster

Copyright © 1997-2007 , [Multi-Informatica Teruel, S.L].