TDolphin com FastrReport

TDolphin com FastrReport

Postby aferra » Mon May 23, 2016 7:02 pm

Antes de hacerlo con DBF

oFrPrn:SetWorkArea( <alias>, Select( <alias> ) )

Alguien que utiliza saben cómo hacerlo utilizando el TDolphin?
aferra
 
Posts: 88
Joined: Wed Apr 28, 2010 6:34 pm

Re: TDolphin com FastrReport

Postby Mike Serra » Wed May 25, 2016 8:53 am

Buenos días aferra:

No he probado nunca, pero intenta esto:

oFrPrn:SetUserDataset(<Recordset>,<Cadena de caracteres separados por comas con los nombre de los campos>,<bloque de código para ir al principio>,<bloque de código para incrementar uno>,<bloque de código para disminuir uno>,<bloque de código para obtener el valor del campo>)

Te pongo un ejemplo con un array de datos. Imaginate un array (aVentas) de 2 columnas con nombre de cliente y total de ventas:
{
{"CLIENTE 1",1000},
{"CLIENTE 2",500},
{"CLIENTE 3",250}
}
Yo lo uso asi:

local aNombreCampos:{"NombreCliente","TotalVentas"}
oFrnPrn:SetUserDataset(aVentas,"NombreCliente;TotalVentas",{||i:=1},{||i:=i+1},{||i:=i-1},{||i > len(aVentas)},{|cField| xx:=frGetValue(cField,aNombreCampos), aVentas[i,xx]})

Código de FrGetValue:
Cometido: devolver la posición de cada campo, es decir:
Si es NombreCliente -> devolverá 1
Si es TotalVentas-> devolverá 2

function frGetValue(cField,aFrItems)
local nPos:=0
nPos:=ascan(aFrItems,{|v| upper(alltrim(v))=upper(alltrim(cField))})
if nPos=0
nPos:=1
end if
return nPos

Fundamentalmente seria sustituir lo que te he indicado por los bloques de código de movimiento del recordset y como el recordset obtiene el valor de los campos.

Un Saludo,
Mike Serra
 
Posts: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 33 guests