Page 1 of 1

TReport: Encabezado de columna en cada grupo, se puede hacer

PostPosted: Fri Mar 15, 2024 2:07 pm
by RSalazarU
Amigos del foro

Necesito hacer un reporte donde el encabezado de las columnas se repita en cada grupo
Algo asi:
Image
Es la impresión de una devolución, en la parte superior el detalle de la factura original y en la parte inferior el detalle de la devolución.

Por el momento lo tengo asi:
Image

Se podra hacer con TReport ?

Alguna sugerencia por favor

De antemano, gracias por la respuesta

Rolando
Cochabamba, Bolivia

Re: TReport: Encabezado de columna en cada grupo, se puede hacer

PostPosted: Fri Mar 15, 2024 4:38 pm
by cmsoft
Puedes probar con:
Code: Select all  Expand view
ON STARTGROUP (oReport:NewLine(),oReport:nTitleRow:=oReport:nRow+1,oReport:ColTitle())

Re: TReport: Encabezado de columna en cada grupo, se puede hacer

PostPosted: Sat Mar 16, 2024 3:06 pm
by karinha
Buenas tardes. Para realizar este reportaje con la perfección que aquí veo, la mejor opción es utilizar TIMPRIME de Rafa Carmona.

Gracias, tks.

Regards, saludos.

Re: TReport: Encabezado de columna en cada grupo, se puede hacer

PostPosted: Sat Mar 16, 2024 3:57 pm
by cmsoft
Tambien con la clase TPrinter de Fivewinn y un poco de imaginación y esfuerzo es totalmente posible

Re: TReport: Encabezado de columna en cada grupo, se puede hacer

PostPosted: Sun Mar 17, 2024 2:19 pm
by karinha
cmsoft wrote:Tambien con la clase TPrinter de Fivewinn y un poco de imaginación y esfuerzo es totalmente posible


César, tienes razón, y no vi el detalle de que tiene que haber un QRCODE, y si no recuerdo mal, el TIMPRIME de Rafa Carmona no genera QRCODE. A menos que me equivoque. Aunque creo que usando HARUPDF es posible hacerlo de forma magistral.

Gracias.

Regards, saludos.

Re: TReport: Encabezado de columna en cada grupo, se puede hacer

PostPosted: Tue Mar 19, 2024 11:42 am
by Marcelo Via Giglio
Hola Rolando,

para multiples headers con la clase Report creo que no podras hacerlo, habria que ver de modificarla, pero para el tema de los QR puede crearlos en memoria y utilizarlos desde diferentes lugares, yo lo hago utilizando la clade codebar

Code: Select all  Expand view


//------------------------------------------------------------------------------
FUNCTION generarQR( id )
//------------------------------------------------------------------------------
   LOCAL oBmp, hDib, i, oFactura, qr
   ADS_SQL(" SELECT factura, cuf FROM facturas WHERE id = $1 ", { id }, "fff" )

   qr := "https://siat.impuestos.gob.bo/consulta/QR?nit=10000000&cuf=" + ALLTRIM(fff->cuf) + ;
                                                              "&numero=" + ALLTRIM(STR(fff->factura)) + ;
                                                              "&t=2"

   oBmp := getQR( qr )

   hDib = DibFromBitmap( oBmp:hBitMap )
   M -> codigoQR := DibToStr( hDib )

   GlobalFree( hDib )
   DeleteObject( oBmp )

   fff -> ( DBCLOSEAREA() )  

   RETURN M -> codigoQR

//------------------------------------------------------------------------------
function getQR( cCode )

   local oBmp

   oCode := TCodeBars():New()
   oBmp = TBitmap():Define()
   oBmp:hBitMap := buildCOde( cCode, HB_ZEBRA_FLAG_QR_LEVEL_M )

return oBmp

//------------------------------------------------------------------------------
function BuildCode( cCode, nFlags )
   LOCAL hDC := GetDC( GetDesktopWindow() )

   default nFlags := 0

   oCode:Reset()

   oCode:nHeightCode = 4//4.5
   oCode:nWidthCode  = 4//4.5

   oCode:SetType( 14 )
   oCode:SetCode( cCode )
   oCode:SetFlags( nFlags )
   oCode:Build()

   ReleaseDC( GetDesktopWindow(), hDC )

return oCode:hCodeBar