Jump to content
Fivewin Brasil

Relatórios em FR3/Alessandro


Alain da Silva

Recommended Posts

Boa noite Alessandro, eu baixei em dicas os relatórios em FR3 que vc postou. Estou querendo aprender como utilizar o fr3. Na minha atualização do five meus relatórios não funcionam mais. Teria como vc me mostrar como montar um relatório por exemplo o aFrRelatorioPadrao.fr3.

Antes eu fazia assim:

#include "FiveWin.ch"
#include "Utilprn.ch"

FUNCTION RELVEN()
  LOCAL OPRN,GRUA,SUBA,XLN,LN,oUtil,oFnt9,ofnt4,NGRU,NSUB,RFOR,CON,TREC
  DBCLOSEALL()
  IF ABRE6()=.F.
     MSGALERT("Não Foi Possível Abrir os Arquivos, Tente Novamente...","Mensagem")
     RETURN(.F.)
  ENDIF

XXI := .T.
  NATUAL := 0

PRINTER OPRN NAME "RELATÓRIO DE VENDEDORES" PREVIEW MODAL
  IF GETPRINTDC() == 0 // Cancelar Impressão
     RETURN .F.
  ENDIF

OPRN:SETPAGE(9)
//  OPRN:SETLANDSCAPE()    // paisagem
  DEFINE FONT oFnt9 NAME "Arial" SIZE 0,-8 OF OPRN
  DEFINE FONT oFNT4 NAME "Arial" SIZE 0, -10 BOLD OF oPrn
  DEFINE PEN oPen WIDTH 3 COLOR CLR_BLACK
  DEFINE UTILPRN oUtil PEN oPen OF oPrn
  XLN := 4.6
  LN := 26

  SELE 6
  GO TOP
  CURSORWAIT()

  PAG := 1
  CABVEN(OPRN,PAG,oUtil)

  BEGIN SEQUENCE

     DO WHILE ! EOF()
        UTILPRN oUtil XLN,0.8   SAY STRZERO(ARQVEN->CODIGO,14)
        UTILPRN OUTIL XLN,4.8   SAY ARQVEN->NOME
        UTILPRN OUTIL XLN,14.3  SAY STR(ARQVEN->PERCENTUAL,5,2)
        XLN := XLN + 0.4
        LN := LN + 1
        IF LN >= 86
           PAG := PAG + 1
           ENDPAGE
           XLN := 4.6
           LN := 26
           CABVEN(OPRN,PAG,oUtil)
        ENDIF
        SKIP
        UNLOCK
     ENDDO
  END SEQUENCE
  IF LN <> 86
     ENDPAGE
  ENDIF
  ENDPRINT
  OUTIL:END()
  OPEN:END()
  OFNT9:END()
  OPRN:END()
  CURSORARROW()
  GO TOP
  RETURN NIL

****************************************
FUNCTION CABVEN(OPRN,PAG,oUtil)
  Local oBrush
  Local nColor := 15724527
  DEFINE FONT oFont NAME "Arial" SIZE 0,-16 BOLD OF OPRN
  DEFINE FONT oFNT2 NAME "Arial" SIZE 0, -10 OF oPrn
  DEFINE FONT oFNT3 NAME "Arial" SIZE 0, -12 BOLD OF oPrn
  DEFINE FONT oFNT4 NAME "Arial" SIZE 0, -6.5 OF oPrn
  DEFINE BRUSH oBrush COLOR nColor

  PAGE
  UTILPRN oUtil BOX 0.35,0.5 TO 3,20.2 PEN oPen
  UTILPRN oUtil BOX 0.35,5 TO 3,15     PEN oPen

UTILPRN oUtil 0.5,0.6  IMAGE "IMAGE\VALPANEMA.jpg" SIZE 4,2 JPG
UTILPRN oUtil 0.5,16 IMAGE "IMAGE\TECMA.jpg"     SIZE 4,2 JPG

  UTILPRN oUtil  1,7    SAY                    "VALPANEMA FLORESTAL LTDA"                             FONT ofnt4
  UTILPRN oUtil 1.5,5.2 SAY "Rodovia Raposo Tavares KM 516,3 - Rancharia/SP - CEP 19.600-000 - Fone (18) 3265-8070" FONT ofnt4
  UTILPRN oUtil  2,7    SAY                 "CNPJ 43.198.696/0004-68  -  I.E. 570.006.243.110"                      FONT ofnt4
  UTILPRN oUtil  2.5,8  SAY                         "Data: " + DTOC( Date() )+" - Hora: "+ Time()                   FONT ofnt4
  UTILPRN oUtil 3.2,16.3  SAY "PAGINA NÚMERO : "+STRZERO(PAG,3)                                                     FONT ofnt2  UTILPRN oUtil SELECT ofnt2
  UTILPRN oUtil SELECT ofnt4
  UTILPRN oUtil SELECT oBrush

  UTILPRN oUtil MSG {"RELATÓRIO DE VENDEDOR/REPRESENTANTE"} TEXTFONT ofont AT 3.2,0.5 NOBOX

  UTILPRN oUtil BOX 4,0.5 TO 4.5,20.2 PEN oPen
  UTILPRN oUtil MSG {"CODIGO"} TEXTFONT OFNT2 AT 4.1,0.5 NOBOX
  UTILPRN oUtil MSG {"NOME"} TEXTFONT OFNT2 AT 4.1,4.5 NOBOX
  UTILPRN oUtil MSG {"COMISSÃO <%>"} TEXTFONT OFNT2 AT 4.1,14 NOBOX

  oBrush:End()
  RETURN(.T.)
Eu cheguei a fazer assim:
#include "FiveWin.ch"
#include "report.ch"

STATIC oReport

Function RELCLI()
   LOCAL oFont1, oFont2, oFont3, oPen1, oPen2

   DEFINE FONT oFont1  NAME "ARIAL" SIZE 0,-10
   DEFINE FONT oFont2  NAME "ARIAL" SIZE 0,-10 BOLD
   DEFINE FONT oFont3  NAME "ARIAL" SIZE 0,-20 BOLD
   DEFINE FONT fTitulo NAME "Times New Roman"  SIZE 0,-17
   DEFINE PEN  oPen1  WIDTH 1
   DEFINE PEN  oPen2  WIDTH 2

//______Carega configurações_____//
   if !CarregaConfig()  // Funcoes_envio.prg
	Return Nil
   Endif
   SELE 1
   DBSETORDER(2)
   DBGOTOP()
//-----------------------------------------------
//_______ INicio DO rELATÓRIO
//-----------------------------------------------
   REPORT oReport TITLE  "RELATÓRIO DE CLIENTE",m->hDados['Fantasia'],m->hDados['Endereco'];
          CAPTION "Relatório de Cliente" ;
          HEADER "Data da Emissão",DTOC(DATE()) RIGHT ;
          FOOTER "Página nº: "+str(oReport:nPage,3) CENTER;
          PEN oPen1, oPen2 ;
          FONT oFont1, oFont2, oFont3, fTitulo ;
          preview

   COLUMN TITLE "Código";
          DATA arqcli->codigo
*          GRID
*            TOTAL              ;
*            RIGHT              ;
*            PICTURE "9,999,999";
*            FONT 2             ;
*            SIZE 9

   COLUMN TITLE "Nome/Razão Social","Endereço";
          DATA SUBS(arqcli->razao,1,40),ALLTRIM(ARQCLI->ENDERECO)+","+ALLTRIM(ARQCLI->NUMERO) FONT 1;
          GRID

   COLUMN TITLE "Cidade","UF";
          DATA SUBS(ARQCLI->CIDADE,1,20),ARQCLI->ESTADO;
          GRID

   COLUMN TITLE "Telefone";
          DATA ARQCLI->TELEFONE;
          GRID
**          SHADOW pinta

*   GROUP ON ARQCLI->ESTADO ;     //--------- FAZER SOMAS
*         FOOTER "Total do Estado: "+oReport:aGroups[1]:cValue+ ;
*                " ("+ltrim(str(oReport:aGroups[1]:nCounter))+")" ;
*         FONT 2 ;
*         EJECT

   END REPORT

   oReport:oTitle:aFont[1]:= {|| 4 }   // coloca a fonte no titulo maior

   oReport:CellView()


   ACTIVATE REPORT oReport ON STARTPAGE Bitmaps()


   oFont1:End()
   oFont2:End()
   oFont3:End()
   fTitulo:End()
   oPen1:End()
   oPen2:End()

RETURN NIL

STATIC Function Bitmaps()
     oReport:SayBitmap(.3,.3,"./report/logo.bmp",1.2,1.2)
RETURN NIL

Obrigado
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...