23 Mai 2020 12:14
aFields := { "CODIGO", "NOME', "ENDERECO" }
DO WHILE ! Eof()
@ pRow(), 0 SAY ""
FOR EACH oElement IN aFields
@ pRow(), pCol() + 2 SAY &( oElement )
NEXT
@ pRow() + 1, 0 SAY ""
SKIP
ENDDO
aFields := { ;
{ "CODCLI", "CODIGO", .F., 0 }, ;
{ "NOME", "NOME", .F. 0 }, ;
{ "ENDERECO", 'ENDERECO", .F. 0 }, ;
{ "VL.VENDA", "VALOR", .T., 0 } }
DO WHILE ! Eof()
IF PRow() == 0 .OR. pRow() > 66
Cabecalho( aFields )
ENDIF
@ pRow(), 0 SAY ""
FOR EACH oElement IN aFields
@ pRow(), pCol() + 2 SAY &( oElement[ 2 ] )
IF oElement[ 3 ] // se soma
oElement[ 4 ] += &( oElement[ 2 ] )
ENDIF
NEXT
@ pRow() + 1, 0 SAY ""
SKIP
ENDDO
@ pRow() + 2, 0 SAY ""
FOR EACH oElement IN aFields
IF oElement[ 3 ]
@ pRow(), pCol() + 2 SAY oElement[ 4 ] // total
ELSE
@ pRow(), pCol() + 2 SAY Space( Len( Transform( &( oElement[ 2] ), "" ) ) ) // deixa em branco
ENDIF
NEXT
RETURN
FUNCTION Cabecalho( aFields )
@ 0, 0 SAY ""
FOR EACH oElement IN aFields
@ pRow(), pCol() + 2 SAY oElement[ 1 ] // titulo da coluna
NEXT
@ pRow() + 1 SAY Replicate( "-", 132 )
@ pRow() + 2, 0 SAY ""
RETURN NIL
24 Mai 2020 10:53
25 Mai 2020 21:10
25 Mai 2020 22:35
aFields := { ;
{ "CODCLI", "CODIGO", .F., 0 }, ;
{ "NOME", "NOME", .F. 0 }, ;
{ "ENDERECO", 'ENDERECO", .F. 0 }, ;
{ "VL.VENDA", "VALOR", .T., 0 } }
oPDF := PDFClass():New()
oPDF:acHeader := { "RELATORIO", "", "" }
FOR EACH oElement IN aFields
oPDF:acHeader[ 2 ] += oElement[ 1 ] + Space(2)
NEXT
oPDF:acHeader[ 3 ] := Replicate( "-", 132 )
DO WHILE ! Eof()
oPDF:MaxRowTest()
oPDF:nCol := 0
FOR EACH oElement IN aFields
oPDF:DrawText( oPDF:nRow, oPDF:nCol + 2, &( oElement[ 2 ] ) )
IF oElement[ 3 ] // se soma
oElement[ 4 ] += &( oElement[ 2 ] )
ENDIF
NEXT
oPDF:nRow += 1
SKIP
ENDDO
oPDF:nRow += 2
oPDF:nCol := 0
FOR EACH oElement IN aFields
IF oElement[ 3 ]
oPDF:DrawText( oPDF:nRow, oPDF:nCol + 2, oElement[ 4 ] ) // total
ELSE
oPDF:DrawText( oPDF:nRow, oPDF:nCol + 2, Space( Len( Transform( &( oElement[ 2] ), "" ) ) ) ) // deixa em branco
ENDIF
NEXT
oPDF:End()
RETURN
26 Mai 2020 19:49
27 Mai 2020 08:25
27 Mai 2020 20:57