Jump to content
Fivewin Brasil

Fastreport com DBF


SISCO

Recommended Posts

SELECT TITULO

IF TITULO->(Recno()) == 0

MSGSTOP("Consulta Não Encontrada","Atenção")

RETURN .F.

ELSE

cImagem1 := ".\IMAGEM\logo.bmp"

RepDir := ".\REPORTS\"

cTitulo := "CONTAS CORRENTE EM ABERTO "

cTipo := "ENTIDADE"

oFrPrn := frReportManager():new()

oFrPrn:SetIcon(1) //ícone da janela do FRH

oFrPrn:SetTitle( cTitulo ) //título da janela do FRH

oFrPrn:SetTitle( cTipo ) //título da janela do FRH

oFrPrn:SetTitle( cImagem1 ) //título da janela do FRH

oFrPrn:LoadLangRes( 'brazil.xml') //arquivo de idioma

oFrPrn:SetWorkArea("TITULO", Select("TITULO"))

ENDIF

Link to comment
Share on other sites

Obrigado por responderem.

Fiz o gotop e nada, abaixo o restante do código

oFrPrn:LoadFromFile(RepDir+"REL_TITABE.FR3") // para leitura direta de arquivo FR3
oFrPrn:PreviewOptions:SetAllowEdit( .f. ) // inibe o botão de edição do relatório pelo usuário

oFrPrn:ShowReport()
oFrPrn:DestroyFR()

Link to comment
Share on other sites

EU UTILIZO ASSIM, DÊ UMA OLHADA NESTAS DUAS LINHA EM VERMELHO E VÊ SE TE AJUDA...



FrPrn := frReportManager():New() //Abertura do FastReports

FrPrn:SetIcon(1) //Escolha do Ícone

FrPrn:SetTitle("Pedido - "+StrZero(nNumero,10)) //Titulo da Dialog no FastReports

*******************************************************************

FrPrn:LoadLangRes( cDirFr+"BRAZIL.XML")

*******************************************************************

nVrExame := 0.00

cMaterial:= ""

cExames := ""

*

cArqTmp := "Pedido_"

cCampo1 := ""

*

FrPrn:SetWorkArea(cArqTmp, 98, .f., {FR_RB_FIRST, FR_RE_LAST, 0})

FrPrn:SetUserDataSet( cArqTmp,cCampo1,;

{|| DbGoTop() }, ; //--> bGoTop

{|| DbSkip(1) }, ; //--> bSkipPlus

{|| DbSkip(-1)}, ; //--> bSkipMinus

{|| EOF() }, ; //--> bCheckEOF

{|aField1| &(cArqTmp+"->"+aField1) } )

*

FrPrn:PreviewOptions:SetAllowEdit( .F. )

FrPrn:PreviewOptions:SetZoomMode(2)

FrPrn:PreviewOptions:SetOutlineExpand(.F.)
Link to comment
Share on other sites

Segue um exemplo de como eu defino o acesso a um DBF no Fast

****************************************************************************
FUNCTION ImprimeCarne()
****************************************************************************
Local cDir := "", lProssegue := .F.
local bAction
Private oFrPrn
 
   //-- Gerar objeto Fast-Report
   cDir := DirExe()
 
   oFrPrn := frReportManager():new( cDir + "FRSystH.dll" )
 
   //-- Configurar os campos
   With object oFrPrn
 
      :LoadFromResource("CARNENOVO")
      
      GeraDatabaseFR()
      
      :SetProperty("NomeEmp.Memo", "Text", pEmp:cFantasia)
      :SetProperty("EnderecoEmp.Memo", "Text",  pEmp:cEndereco + " - " +;
                                                pEmp:cCidade + " / " +;
                                                pEmp:cEstado)
      
      //-- Configurar o preview
      :PreviewOptions:SetAllowEdit(.F.)
      :PreviewOptions:SetButtons(1209)
      :PreviewOptions:SetMaximized(.T.)
      
      //-- Preview
      :ShowReport()
      
      //-- Limpa os datasets
      :ClearDataSets()
      
      //-- Fecha/Limpa
      :Clear()
      
      //-- Destrói
      :DestroyFR()
 
   end
 
   Select CARNE
   DbCloseArea()
 
RETURN .T.
/*------------------------------------------------------------------------*/
 
****************************************************************************
static Procedure GeraDatabaseFR()
****************************************************************************
*
* Gerar os bancos de dados em aberto no fast report
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 21/6/2009 - 08:52:17
*
****************************************************************************
 
local aDbf := ListaAlias(), x := 0, y := 0, i := 0
 
   aDbf := ListaAlias()
 
   x := 10 ; y := 20
 
   With object oFrPrn
 
      For i = 1 to Len(aDbf)
 
         If !:SetProperty( aDbf[i], "TableName", pDir + aDbf[i] + ".DBF")
            :CreateFRObject("TFrxHarbourWorkArea","Data",aDbf[i], x, 10, y, 20)
         end
 
         //-- Modificar as propiedades do Data Source Estoque
         :SetProperty( aDbf[i], "TableName", pDir + aDbf[i] + ".DBF")
         :SetProperty( aDbf[i], "UserName", aDbf[i])
         :SetProperty( aDbf[i], "Name", aDbf[i])
         :SetProperty( aDbf[i], "Alias", aDbf[i])
         :SetProperty( aDbf[i], "WorkArea", Select(aDbf[i]) )
         
         //-- Adicionar Data Source ao relatório
         :AddGlobalDsToReport(aDbf[i])
         
         x += 50 ; y += 50
         
      end//-- For i = 1 to Len(aDbf)
         
   end//-- With object oFrPrn
 
Return nil
/*------------------------------------------------------------------------*/
 
****************************************************************************
Function ListaAlias()
****************************************************************************
*
* Listar todos os alias em aberto
* Parametros:
* Retorno: aAlias
*
* Autor: Samir
* 21/7/2009 - 16:53:12
*
****************************************************************************
 
local aAlias := {}, i := 0
 
   i:= 1
 
   If Empty( Alias( i ) )
      Return aAlias
   end
 
   While !Empty( Alias( i ) )
 
      aAdd(aAlias,Upper( AllTrim( Alias( i ) ) ) )
 
      i++
 
   end
 
Return aAlias
 
/*------------------------------------------------------------------------*/
Link to comment
Share on other sites

Fiz um teste de acordo com THEOTOKOS, mas deu o seguinte erro:

Erro base 1004 class: ´NIL´ has no exported method: SETWORKAREA

SELECT TITULO

DbGoTop()

IF TITULO->(Recno()) == 0

MSGSTOP("Consulta Não Encontrada","Atenção")

RETURN .F.

ENDIF

cImagem1 := ".\IMAGEM\logo.bmp"

RepDir := ".\REPORTS\"

cTitulo := "CONTAS CORRENTE EM ABERTO "

cTipo := "ENTIDADE"

oFrPrn := frReportManager():new()

oFrPrn:SetIcon(1) //ícone da janela do FRH

oFrPrn:SetTitle( cTitulo ) //título da janela do FRH

oFrPrn:SetTitle( cTipo ) //título da janela do FRH

oFrPrn:SetTitle( cImagem1 ) //título da janela do FRH

oFrPrn:LoadLangRes( 'brazil.xml') //arquivo de idioma

*

cArqTmp := "TITULO"

cCampo1 := ""

*

FrPrn:SetWorkArea(cArqTmp, 3, .f., {FR_RB_FIRST, FR_RE_LAST, 0})

FrPrn:SetUserDataSet( cArqTmp,cCampo1,;

{|| DbGoTop() }, ; //--> bGoTop

{|| DbSkip(1) }, ; //--> bSkipPlus

{|| DbSkip(-1)}, ; //--> bSkipMinus

{|| EOF() }, ; //--> bCheckEOF

{|aField1| &(cArqTmp+"->"+aField1) } )

*

FrPrn:PreviewOptions:SetAllowEdit( .F. )

FrPrn:PreviewOptions:SetZoomMode(2)

FrPrn:PreviewOptions:SetOutlineExpand(.F.)

oFrPrn:LoadFromFile(RepDir+"REL_TITABE.FR3") // para leitura direta de arquivo FR3

oFrPrn:PreviewOptions:SetAllowEdit( .f. ) // inibe o botão de edição do relatório pelo usuário

oFrPrn:DesignReport()

oFrPrn:ShowReport()

oFrPrn:DestroyFR()

Link to comment
Share on other sites

Fiz um teste de acordo com THEOTOKOS, mas deu o seguinte erro:

Erro base 1004 class: ´NIL´ has no exported method: SETWORKAREA

SELECT TITULO

DbGoTop()

IF TITULO->(Recno()) == 0

MSGSTOP("Consulta Não Encontrada","Atenção")

RETURN .F.

ENDIF

cImagem1 := ".\IMAGEM\logo.bmp"

RepDir := ".\REPORTS\"

cTitulo := "CONTAS CORRENTE EM ABERTO "

cTipo := "ENTIDADE"

oFrPrn := frReportManager():new()

oFrPrn:SetIcon(1) //ícone da janela do FRH

oFrPrn:SetTitle( cTitulo ) //título da janela do FRH

oFrPrn:SetTitle( cTipo ) //título da janela do FRH

oFrPrn:SetTitle( cImagem1 ) //título da janela do FRH

oFrPrn:LoadLangRes( 'brazil.xml') //arquivo de idioma

*

cArqTmp := "TITULO"

cCampo1 := ""

*

oFrPrn:SetWorkArea(cArqTmp, 3, .f., {FR_RB_FIRST, FR_RE_LAST, 0})

oFrPrn:SetUserDataSet( cArqTmp,cCampo1,;

{|| DbGoTop() }, ; //--> bGoTop

{|| DbSkip(1) }, ; //--> bSkipPlus

{|| DbSkip(-1)}, ; //--> bSkipMinus

{|| EOF() }, ; //--> bCheckEOF

{|aField1| &(cArqTmp+"->"+aField1) } )

*

oFrPrn:PreviewOptions:SetAllowEdit( .F. )

oFrPrn:PreviewOptions:SetZoomMode(2)

oFrPrn:PreviewOptions:SetOutlineExpand(.F.)

oFrPrn:LoadFromFile(RepDir+"REL_TITABE.FR3") // para leitura direta de arquivo FR3

oFrPrn:PreviewOptions:SetAllowEdit( .f. ) // inibe o botão de edição do relatório pelo usuário

oFrPrn:DesignReport()

oFrPrn:ShowReport()

oFrPrn:DestroyFR()

Cuidado com CTRL+C CTRL+V........... rsrsrsrsrsr

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...