Página 1 de 1

FAST REPORT e TDbfDataSet

Publicado: Sab Ago 14, 2010 9:09 pm
por Marcelo Coelho Silva
Prezados Senhores,
Estou tentando utilizar o FastReport com Xailer/TDbfDataSet ( ::oDbf ),
mas estou tendo o seguinte problema:
Quando chamo o Procedimento IMPRIMIR com lPreview := .f. ( DesignReport
) tudo ocorre bem e consigo montar o Produt001.fr3, porem, quando
lPreview := .t. (ShowReport) o FastReport diz (mensagem de erro) que
DataSet "Estoque" não existe.
Agradeço a quem poder me ajudar,
Att.
Marcelo Coelho Silva
Brasil.
PS: Se a variavel que recebe o objeto frReportManager não for PUBLIC da
erro GPS.
**** Trecho dos codigos utilizados abaixo. *****
Public Y_FReport
Y_FReport := frReportManager():new()
//---------------------------------------------------------- -------------------------------------
// Procedimento IMPRIMIR
With Object Y_FReport
:LoadFromFile("..reportprodut001.fr3")
If lPreview
// :SetWorkArea("Estoque", ::oDbf:Area() )
SetXailerDataSet( Y_FReport, "Estoque" , ::oDbf )
:ShowReport()
:ClearDataSets()
else
// :SetWorkArea("Estoque", ::oDbf:Area() )
// :SetWorkArea( "Estoque", 1 )
SetXailerDataSet( Y_FReport, "Estoque" , ::oDbf )
:DesignReport()
:ClearDataSets()
EndIf
:Clear()
End With
//---------------------------------------------------------- --------------------
Function SetXailerDataSet( oFrManager, cFrAlias, oDataSet )
Local cStr:='', x
For x := 1 to oDataSet:FieldCount()
cStr += oDataSet:FieldName(x) + ";"
Next
oFrManager:SetUserDataSet( cFrAlias, cStr,;
{||oDataSet:GoTop()}, {||oDataSet:Skip(1)}, ;
{||oDataSet:Skip(1)}, {||oDataSet:Eof()},;

{|cField|oDataSet:oFieldByName(cField):FieldGet()} )
Return Nil

FAST REPORT e TDbfDataSet

Publicado: Sab Ago 14, 2010 9:17 pm
por Marcelo Coelho Silva
Consegui funcionar alterando a posição do :LoadFromFile.
// corrigido...
With Object Y_FReport
If lPreview
// :SetWorkArea("Estoque", ::oDbf:Area() )
SetXailerDataSet( Y_FReport, "Estoque" , ::oDbf )
:LoadFromFile("..reportprodut001.fr3")
:ShowReport()
:ClearDataSets()
else
// :SetWorkArea("Estoque", ::oDbf:Area() )
// :SetWorkArea( "Estoque", 1 )
SetXailerDataSet( Y_FReport, "Estoque" , ::oDbf )
:LoadFromFile("..reportprodut001.fr3")
:DesignReport()
:ClearDataSets()
EndIf
:Clear()
End With
Em 14/08/2010 16:09, Marcelo Coelho Silva escreveu:
> Prezados Senhores,
>
>
> Estou tentando utilizar o FastReport com Xailer/TDbfDataSet ( ::oDbf ),
> mas estou tendo o seguinte problema:
>
> Quando chamo o Procedimento IMPRIMIR com lPreview := .f. ( DesignReport
> ) tudo ocorre bem e consigo montar o Produt001.fr3, porem, quando
> lPreview := .t. (ShowReport) o FastReport diz (mensagem de erro) que
> DataSet "Estoque" não existe.
>
> Agradeço a quem poder me ajudar,
>
> Att.
>
> Marcelo Coelho Silva
> Brasil.
>
>
> PS: Se a variavel que recebe o objeto frReportManager não for PUBLIC da
> erro GPS.
>
>
> **** Trecho dos codigos utilizados abaixo. *****
>
>
>
>
>
>
> Public Y_FReport
>
> Y_FReport := frReportManager():new()
>
> //---------------------------------------------------------- -------------------------------------
>
>
> // Procedimento IMPRIMIR
>
> With Object Y_FReport
> :LoadFromFile("..reportprodut001.fr3")
> If lPreview
> // :SetWorkArea("Estoque", ::oDbf:Area() )
> SetXailerDataSet( Y_FReport, "Estoque" , ::oDbf )
> :ShowReport()
> :ClearDataSets()
> else
> // :SetWorkArea("Estoque", ::oDbf:Area() )
> // :SetWorkArea( "Estoque", 1 )
> SetXailerDataSet( Y_FReport, "Estoque" , ::oDbf )
> :DesignReport()
> :ClearDataSets()
> EndIf
> :Clear()
> End With
>
>
>
>
> //---------------------------------------------------------- --------------------
>
>
>
> Function SetXailerDataSet( oFrManager, cFrAlias, oDataSet )
>
> Local cStr:='', x
>
> For x := 1 to oDataSet:FieldCount()
> cStr += oDataSet:FieldName(x) + ";"
> Next
>
> oFrManager:SetUserDataSet( cFrAlias, cStr,;
> {||oDataSet:GoTop()}, {||oDataSet:Skip(1)}, ;
> {||oDataSet:Skip(1)}, {||oDataSet:Eof()},;
>
> {|cField|oDataSet:oFieldByName(cField):FieldGet()} )
>
> Return Nil
>