FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TDolphin com FastrReport
Posts: 88
Joined: Wed Apr 28, 2010 06:34 PM
TDolphin com FastrReport
Posted: Mon May 23, 2016 07:02 PM

Antes de hacerlo con DBF

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

Alguien que utiliza saben c贸mo hacerlo utilizando el TDolphin?

Posts: 297
Joined: Fri Apr 14, 2006 05:52 PM
Re: TDolphin com FastrReport
Posted: Wed May 25, 2016 08: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,

Continue the discussion