Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   HAcer algo similar a la Combinacion de correspondencia de Word (https://www.clubdelphi.com/foros/showthread.php?t=9521)

oliverinf 26-04-2004 13:22:22

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.

marto 26-04-2004 13:36:11

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.

Nuria 26-04-2004 13:47:30

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!

oliverinf 26-04-2004 17:27:49

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.

Nuria 26-04-2004 17:42:55

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! :)

oliverinf 26-04-2004 21:15:46

[

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.

Nuria 27-04-2004 11:02:16

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! ;)

oliverinf 27-04-2004 13:51:43

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...


La franja horaria es GMT +2. Ahora son las 23:50:25.

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