Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-04-2004
oliverinf oliverinf is offline
Miembro
 
Registrado: feb 2004
Posts: 65
Poder: 21
oliverinf Va por buen camino
HAcer algo similar a la Combinacion de correspondencia de Word

hola, que tal? ,
Tengo que hacer unos reportes donde parte del reporte es fijo y otra parte dinánico (toma los datos del resultado de un consulta). Lo que yo quiero hacer es permitir al usuario modifique como el quiera la parte fija (texto) y la posición de los campos en el reporte.
Algo así como lo que hace word con la combinación de correspondencia "utiliza una plantilla o documento donde inserta campos de combinación los cuales se conectan a una tabla (o bd.). DOnde el usuario puede modificar dicha plantilla"

No se si soy claro con la explicación, pero desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 26-04-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Wop!

Pues yo, tal y como tu dices, lo haría con word. Genera plantillas con marcadores donde pondrás la parte que lees de la BD. Los usuarios pueden modificar lo que tu llamas "parte fija" o antes de generar el informe tocando la plantilla de word o después, tocando el documento generado (yo te aconsejo lo segundo, ya que sinó te van a desmontar la plantilla).

Otra opción es distribuir el editor de informes. Esto se puede hacer con algunos sistemas como FastReport, pero desconozco en qué otros está disponible. En FR distribuyes el editor como un programa o como una opción dentro del tuyo y los informes como ficheros .fr. Es un sistema muy potente, pero requiere usuarios bastante avanzados.

Si lo que quieres es programarte el editor tú "a pelo", tómatelo con paciencia, porque la cosa no es en absoluto sencilla.
__________________
E pur si muove
Responder Con Cita
  #3  
Antiguo 26-04-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 22
Nuria Va por buen camino
Hola!

Cita:
Empezado por Marto
Si lo que quieres es programarte el editor tú "a pelo", tómatelo con paciencia, porque la cosa no es en absoluto sencilla.
Cierto pero no imposible. Puedes utilizar el componente TRxRichEdit (vienen con las Rx, que las puedes descargar de la pág. web del compañero Cadetill ) para generarte tu propio Editor de Texto. Todo depende de lo que quieras hacer, con Word como bien dice Marto te puedes apañar... .

Saludos!
Responder Con Cita
  #4  
Antiguo 26-04-2004
oliverinf oliverinf is offline
Miembro
 
Registrado: feb 2004
Posts: 65
Poder: 21
oliverinf Va por buen camino
Hola

Gracias por responder a mi pregunta. Con respecto a las opciones que uds. me dicen ya las habia pensado (y aún no las he descartado), simplemente que estaba buscando alguna otra alternativa que sirviera para lo que necesito.
La primera opcion de utilizar word (se que la mas simple de implementar), pero no me convence ya que dependo de que este instalado dicho soft en la maquina (lo cual no me resulta muy amigable depender del mismo).
La segunda opcion es la que estuve pensando con mayor detenimiento (hacer un pequenño editor de textos).
En este ultimo caso me gustaría que el usuario pueda insertar los "campos de combinación" como el desea.
Seguiré pensando en esta última opcion, cualquier idea la agradeceré.

Pd.: me gustaria hacer algo como similar al Soft "Lex-Doctor". Donde toda la edicion de los reportes se hace en el soft mismo.
Responder Con Cita
  #5  
Antiguo 26-04-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 22
Nuria Va por buen camino
Cita:
Empezado por oliverinf
En este ultimo caso me gustaría que el usuario pueda insertar los "campos de combinación" como el desea.
Por si te sirve, yo lo tengo implementado en mi editor. Lo que hago es una especie de plantilla de word. Depende de la plantilla que utilice el usuario le muestro unos campos u otros en un ComboBox, por lo que el mismo se va creando sus propias plantillas...

Luego cuando llama al texto simplemente sustituyo los campos por el valor que corresponde, según el query. Para identificar los campos que tengo que sustituir en el texto los he enmarcado con los siguientes símbolos '<< NombreCampo >>' .

Espero que te sirva.

Saludos!
Responder Con Cita
  #6  
Antiguo 26-04-2004
oliverinf oliverinf is offline
Miembro
 
Registrado: feb 2004
Posts: 65
Poder: 21
oliverinf Va por buen camino
[

Luego cuando llama al texto simplemente sustituyo los campos por el valor que corresponde, según el query. Para identificar los campos que tengo que sustituir en el texto los he enmarcado con los siguientes símbolos '<< NombreCampo >>' .

Te agradeceré si me explicas con mas detalle esta alternativa que a simple vista me parece muy viable.
Además, quisiera saber si usas algun editor de reportes com Quick Report o algun otro.
las plantillas las guardas con algun formato en especial o solo texto.

gracias.
Responder Con Cita
  #7  
Antiguo 27-04-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 22
Nuria Va por buen camino
Hola!

Simplemente cuando selecciona un campo que quiere añadir a la plantilla hago lo siguiente:

Código:
  // Campos--> TComboBox donde tengo los nombres de los campos .
  //  Editor ---> TRichEdit. 
  // Cuando selecciona un campo del comboBox...
  Editor.SelText:= '<<' + Campos.Items.Strings[Campos.ItemIndex]+ '>>';
Así me creo la plantilla. Es de tipo texto pero la puedes guardar con la extensión que quieras. Luego para sustituir los campos hago lo siguiente:

Código:
      // Valor ---> Array donde estan los valores de los campos...
     // Sustituyo campos
      for i:= 0 to Length(Campos) - 1 do begin
        texto := '<<' + Campos[i] + '>>';
        // busco la  de la string a sustituir...
        posi := Editor.FindText(texto,1,longi,[stSetSelection]);  
        while posi >= 0 do begin
          MainForm.Editor.selStart :=  posi;
          MainForm.Editor.SelLength := Length(texto) ;
          // Sustituyo el texto....
          MainForm.Editor.SelText := valor[i];
          posi := Editor.FindText(Texto,posi,longi,[stSetSelection]);
        end;
      end;
Cita:
Empezado por oliverinf
quisiera saber si usas algun editor de reportes com Quick Report o algun otro.
De momento no. Aunque creo que al final tendré que utilizar alguno, ya que estoy teniendo algún problemilla a la hora de imprimir ciertas cosas...Hilo

Bueno espero haberme explicado bien. Cualquier duda ya sabes...

Saludos!
Responder Con Cita
  #8  
Antiguo 27-04-2004
oliverinf oliverinf is offline
Miembro
 
Registrado: feb 2004
Posts: 65
Poder: 21
oliverinf Va por buen camino
Muchas gracias...

Muchas gracias por tu explicacion Nuria. Veré si lo implemento. Es mas, trataré de hacer esto que me decis y generando algun reporte dinámicamente de acuerdo a la plantilla utlizada.

Saludos...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:43:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi