Ir al contenido


Foto

Dos columnas banda detalles en FastReport


  • Por favor identifícate para responder
5 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 07 febrero 2017 - 04:35

Amigos, tengo una tabla detalles donde los insumos se diferencian a través de un sólo campo (1 si es Pieza y 2 si es Servicio), deseo lograr que en la banda de detalles en fastresport tenga dos columnas, que en una liste los que son piezas y la otra liste lo que son servicios, ¿ es posible lograr eso?.

 

Saludos.


  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 febrero 2017 - 07:22

Hice lo siguiente:

 

Propiedades del MasterData:

 

Columns: 2

ColumnsWidth: 12.95 (La mitad del ancho de la banda)

 

Resultado?.

 

https://www.dropbox....lumnas.png?dl=0

 

:

 

A ver si alguien alguna solución diferente, ya que es un listado un poco largo.

 

Saludos.


  • 0

#3 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 10 febrero 2017 - 03:45

Hola.

 

Yo lo resolvería a nivel del programa Delphi, en el Dataset mismo que después envías a FastReport.

 

Por ejemplo añadiendo un ClientDataset en memoria (es decir que ni siquiera corresponde a ninguna Tabla ni consulta de la Base de Datos), y lo rellenas con la información tal y como la quieres que se muestre en el informe.

 

Ejemplo (ponemos la información que queremos mostrar en el ClientDataset cdsInforme).


php
  1. cdsInforme.CreateDataset;
  2. qryPiezas.First;
  3. qryServicios.First;
  4. // Recorremos las Piezas y Servicios y rellenamos el Dataset en Memoria
  5. while (not qryPiezas.Eof) and (not qryServicios.Eof) do begin
  6.   cdsInforme.Append;
  7.   if not qryPiezas.Eof do begin
  8.     cdsInforme.FieldByName('PIEZA_DESCRIPCION').Value := qryPiezas.FieldByName('PIEZA').Value;
  9.     cdsInforme.FieldByName('PIEZA_UNIDAD').Value := qryPiezas.FieldByName('UNIDAD').Value;
  10.     cdsInforme.FieldByName('PIEZA_CANTIDAD').Value := qryPiezas.FieldByName('CANTIDAD').Value;
  11.   end;
  12.   if not qryServicios.Eof do begin
  13.     cdsInforme.FieldByName('SERVICIO_DESCRIPCION').Value := qryServicios.FieldByName('SERVICIO').Value;
  14.     cdsInforme.FieldByName('SERVICIO_UNIDAD').Value := qryServicios.FieldByName('UNIDAD').Value;
  15.     cdsInforme.FieldByName('SERVICIO_CANTIDAD').Value := qryServicios.FieldByName('CANTIDAD').Value;
  16.   end;
  17.   cdsInforme.Post;
  18.   qryPiezas.Next;
  19.   qryServicios.Next;


  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 febrero 2017 - 09:32

Gracias amigos, me sirvió de ruta, lo que hice fue modificar la consulta cambiando los case por la función IIF(), y ahora me funciona por el momento.

 

Saludos.


  • 0

#5 Kipow

Kipow

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 228 mensajes
  • LocationGuatemala

Escrito 23 febrero 2017 - 07:08

Podrías haber usado subreportes, 2 queries diferebtes.

Enviado desde mi MHA-L09 mediante Tapatalk
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 24 febrero 2017 - 04:57

Podrías haber usado subreportes, 2 queries diferebtes.

Enviado desde mi MHA-L09 mediante Tapatalk

 

Oh!, no había llegado a pensar en eso...


  • 0




IP.Board spam blocked by CleanTalk.