//-> Para Centraliza‡Æo dos Textos - Controle dos Centrimetros
#Define PAD_LEFT 0
#Define PAD_RIGHT 1
#Define PAD_CENTER 2
STATIC FUNCTION IMPRIME_CAIXA_RESUMIDO( DbPedidos, DbPedAnual, cDataInicial, ;
cDataFinal, aGet, DeOndeParte )
LOCAL cAlias, oImagem, gcFile
LOCAL ResColuna, ResLinha
LOCAL oPrn, oFont, oFontLogo, oFontDivi, oFontList, ;
oFontCurs, oPen1, oPen2, oPen3, oFontSubl
LOCAL nLinha, nColuna // Linha e coluna da Descricao
LOCAL nDinheiro, nCheque, nChequePre, nTickets, nCartaoCred,;
nCartaoDebi, nContraVale, nPagina, nTotalGeral, xDataLista
MEMVAR XCAIXAINI, XCAIXAFIN, XOPERAINI, XOPERAFIN
PUBLIC XNOMEEMP, XCIDDIR
XDATALISTA := ALLTRIM(XCIDDIR)+ ", " + ;
LTRIM( STR( DAY( DATE() ) ) ) + ;
" de " + ;
OemToAnsi(CMONTH( DATE() )) + ;
" de " + ;
STR( YEAR( DATE() ) ) + ;
"."
// VariAveis Para Achar os Valores Que o Cliente Pagou
nDinheiro := 0.00
nCheque := 0.00
nChequePre := 0.00
nTickets := 0.00
nCartaoCred := 0.00
nCartaoDebi := 0.00
nContraVale := 0.00
nTotalGeral := 0.00
cAlias := ALIAS() // DbPedidos
MsgWait( "SOMANDO OS TOTALIZADORES DO FLUXO DE CAIXA - RESUMIDO", ;
"AGUARDE UM MOMENTO POR FAVOR... ", 1.5 )
//-> Vou somar os totalizadores - antes de mostrar o Preview
WHILE ( .NOT. EOF() )
SYSREFRESH()
IF EOF()
EXIT
ENDIF
nDinheiro := nDinheiro + ( cAlias )->DINHEIRO - ;
( cAlias )->TROCOCLIEN
nCheque := nCheque + ( cAlias )->CHEQUE
nChequePre := nChequePre + ( cAlias )->CHEQUEPRE
nTickets := nTickets + ( cAlias )->TICKETS
nCartaoCred := nCartaoCred + ( cAlias )->CARTAOCRED
nCartaoDebi := nCartaoDebi + ( cAlias )->CARTAODEBI
nContraVale := nContraVale + ( cAlias )->CONTRAVALE
nTotalGeral := nTotalGeral + ( cAlias )->TOTPEDIDO
SKIP // Proximo Pedido
ENDDO
//-> Mostra o Relatorio... Preview do Fluxo do Caixa - Resumido
PRINT oPrn NAME "Fluxo do Caixa Resumido" PREVIEW MODAL
IF EMPTY( oPrn:hDC )
RETURN NIL // Printer was not installed or ready
ENDIF
DEFINE FONT oFont NAME "Courier New" SIZE 0, -8 OF oPrn
DEFINE FONT oFontDivi NAME "Courier New" SIZE 0, -10 BOLD OF oPrn
DEFINE FONT oFontCurs NAME "Courier New" SIZE 0, -14 BOLD OF oPrn
DEFINE FONT oFontSubl NAME "Courier New" SIZE 0, -16 BOLD UnderLine OF oPrn
//-> Problemas com o Windows XP - Formato da FONTE Nao Reconhecido
IF IsWinNT() .OR. IsWin2000() // Para Windows XP/NT e 2000 / 2003
DEFINE FONT oFontLogo NAME "Courier New" SIZE 0, -16 BOLD OF oPrn
DEFINE FONT oFontList NAME "Courier New" SIZE 0, -20 BOLD OF oPrn
ELSE //-> 95/98/ME
DEFINE FONT oFontLogo NAME "Courier New" SIZE 0, -20 BOLD OF oPrn
DEFINE FONT oFontList NAME "Courier New" SIZE 0, -22 BOLD OF oPrn
ENDIF
//-> Caneta do Preview
DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BROWN OF oPrn
DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BROWN OF oPrn
DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK OF oPrn
oPrn:SetPage(9) //-> A4 //9
oPrn:SetPortrait() //-> Vertical(Retrato)
//oPrn:SetLandscape() //-> Horizontal
//- Como Imprimir em Centimetros sem errar e em qualquer Impressora
ResLinha := oPrn:nVertRes() / 40
ResLinha := oPrn:nLogPixely() / 2.54
ResColuna := oPrn:nLogPixelx() / 2.54
PAGE
nLinha := 0.50
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
SUBSTR( XNOMEEMP, 1, 32 ), oFontDivi,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
nColuna := 0.00
//-> Cabe‡alho
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"FLUXO DO CAIXA RESUMIDO ", oFontDivi,, ;
CLR_BLACK,, PAD_CENTER )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
//-> Data de Hoje
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Data: " + DTOC( DATE() ) ) + " - " + ;
OemToAnsi( "Hora: " + TIME() ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
IF XCAIXAINI > 0 .AND. XCAIXAFIN > 0
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Caixa Inicial: " + STR( XCAIXAINI ) + ;
" - " + ;
"Caixa Final..: " + STR( XCAIXAFIN ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
ELSEIF VAL(XOPERAINI) > 0 .AND. VAL(XOPERAFIN) > 0
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
OemToAnsi( "Operador Inicial: " + ( XOPERAINI ) + ;
" - " + ;
"Operador Final..: " + ( XOPERAFIN ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
ENDIF
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"RESUMO GERAL.: ", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30 //-> Pula a Linha
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"EM DINHEIRO..: ", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 4.65
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nDinheiro, "@E 9,999,999.99" ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"EM CHEQUE....: ", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 4.65
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nCheque, "@E 9,999,999.99" ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"EM CHEQUE PRE: ", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 4.65
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nChequePre, "@E 9,999,999.99" ), oFont,,;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"EM TICKETS...: ", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 4.65
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nTickets, "@E 9,999,999.99" ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"EM C. CREDITO: ", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 4.65
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nCartaoCred, "@E 9,999,999.99" ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"EM C. DEBITO.: ", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 4.65
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nCartaoDebi, "@E 9,999,999.99" ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"EM C. VALE...: ", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 4.65
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nContraVale, "@E 9,999,999.99" ), oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("-",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"TOTAL GERAL..: ", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nColuna := 3.65
//-> Total Geral
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
TRANSF( nTotalGeral, "@E 999,999,999,999.99" ), ;
oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.75
nColuna := 0.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
REPLICATE("_",40), oFont,, CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
nColuna := 2.25
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Assinatura", oFont,, ;
CLR_BLACK,, PAD_LEFT )
nLinha += 0.30
ENDPAGE
ENDPRINT
oFont:End()
oFontLogo:End()
oFontDivi:End()
oFontList:End()
oFontCurs:End()
oFontSubl:End()
oPen1:End()
oPen2:End()
oPen3:End()
RETURN NIL