Ayuda con Xailer Multiples- Maestror->Detalle en FastReport
Publicado: Mié Feb 03, 2010 9:56 pm
Hola a todos,
alguien puede ayudarme con este codigo, funciona pero el details siempre es
el mismo para todos.
Agraderecia enormemente cualquir ayuda
METHOD AsignaReporte(oSender, nOption) CLASS TFrmPersonal
Local aDataSet := {}
Local cSelect := ""
Local bBlock:={||::SincroMov()}
::oDataset := AppData:oServer:Query(::cSelect )
::SincroMov()
aadd(aDataSet, {"TABLA", ::oDataSet,.T., bBlock})
aadd(aDataSet, {"TABLA1 ::oDataSet1, Nil, Nil})
aadd(aDataSet, {"TABLA2 ::oDataSet2, Nil, Nil})
aadd(aDataSet, {"TABLA3 ::oDataSet3, Nil, Nil})
RETURN aDataSet
//---------------------------------------------------------- ---------------------------
METHOD SincroMov( oSender ) CLASS TFrmPersonal
Local cSelect := ""
If !(::oDataset:Eof())
cSelect="SELECT campo1, campo2 FROM table1 WHERE nif = ? "
cSelect := AppData:oServer:BuildSQLSt(cSelect,::oDataset:nif)
::oDataset1 := AppData:oServer:Query(cSelect)
cSelect="SELECT campo1, campo2 FROM table2 WHERE nif = ? "
cSelect := AppData:oServer:BuildSQLSt(cSelect,::oDataset:nif)
::oDataset2 := AppData:oServer:Query(cSelect)
cSelect="SELECT campo1, campo2 FROM table3 WHERE nif = ? "
cSelect := AppData:oServer:BuildSQLSt(cSelect,::oDataset:nif)
::oDataset3 := AppData:oServer:Query(cSelect)
Endif
RETURN Nil
//---------------------------------------------------------- -----------------------------------------
// ES PERTENECE A OTRO FORM
//---------------------------------------------------------- ------------------------------------------
METHOD PrintReport(nOption, lPreview) CLASS TFrmSelReport
Local oInforme, n
Local aDataSet := ::OnPrint(nOption) //=> Evento que llama a METHOD
AsignaReporte(oSender, nOption)
Default aDataSet To {}
WITH OBJECT oInforme:= FrReportManager():New( Application:cDirectory +
"SystemFrSystH.dll" )
:LoadLangRes( Application:cDirectory + "System" + "Spanish.xml")
:ClearDataSets()
IF LEN( aDataSet[ 1 ] ) > 1
FOR n:= 1 TO LEN( aDataSet )
SetXailerDataSet( oInforme, aDataSet[ n, 1 ], aDataSet[ n,
2 ], aDataSet[ n, 3 ], aDataSet[ n, 4 ] )
NEXT
ENDIF
:SetFileName( ".reportes" +"New_Report.fr3" )
:DesignReport()
:DestroyFr()
END WITH
oInforme:= NIl
Return .T.
Juan Jose Lopez
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 4832 (20100203) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
alguien puede ayudarme con este codigo, funciona pero el details siempre es
el mismo para todos.
Agraderecia enormemente cualquir ayuda
METHOD AsignaReporte(oSender, nOption) CLASS TFrmPersonal
Local aDataSet := {}
Local cSelect := ""
Local bBlock:={||::SincroMov()}
::oDataset := AppData:oServer:Query(::cSelect )
::SincroMov()
aadd(aDataSet, {"TABLA", ::oDataSet,.T., bBlock})
aadd(aDataSet, {"TABLA1 ::oDataSet1, Nil, Nil})
aadd(aDataSet, {"TABLA2 ::oDataSet2, Nil, Nil})
aadd(aDataSet, {"TABLA3 ::oDataSet3, Nil, Nil})
RETURN aDataSet
//---------------------------------------------------------- ---------------------------
METHOD SincroMov( oSender ) CLASS TFrmPersonal
Local cSelect := ""
If !(::oDataset:Eof())
cSelect="SELECT campo1, campo2 FROM table1 WHERE nif = ? "
cSelect := AppData:oServer:BuildSQLSt(cSelect,::oDataset:nif)
::oDataset1 := AppData:oServer:Query(cSelect)
cSelect="SELECT campo1, campo2 FROM table2 WHERE nif = ? "
cSelect := AppData:oServer:BuildSQLSt(cSelect,::oDataset:nif)
::oDataset2 := AppData:oServer:Query(cSelect)
cSelect="SELECT campo1, campo2 FROM table3 WHERE nif = ? "
cSelect := AppData:oServer:BuildSQLSt(cSelect,::oDataset:nif)
::oDataset3 := AppData:oServer:Query(cSelect)
Endif
RETURN Nil
//---------------------------------------------------------- -----------------------------------------
// ES PERTENECE A OTRO FORM
//---------------------------------------------------------- ------------------------------------------
METHOD PrintReport(nOption, lPreview) CLASS TFrmSelReport
Local oInforme, n
Local aDataSet := ::OnPrint(nOption) //=> Evento que llama a METHOD
AsignaReporte(oSender, nOption)
Default aDataSet To {}
WITH OBJECT oInforme:= FrReportManager():New( Application:cDirectory +
"SystemFrSystH.dll" )
:LoadLangRes( Application:cDirectory + "System" + "Spanish.xml")
:ClearDataSets()
IF LEN( aDataSet[ 1 ] ) > 1
FOR n:= 1 TO LEN( aDataSet )
SetXailerDataSet( oInforme, aDataSet[ n, 1 ], aDataSet[ n,
2 ], aDataSet[ n, 3 ], aDataSet[ n, 4 ] )
NEXT
ENDIF
:SetFileName( ".reportes" +"New_Report.fr3" )
:DesignReport()
:DestroyFr()
END WITH
oInforme:= NIl
Return .T.
Juan Jose Lopez
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 4832 (20100203) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com