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