Você está na página 1de 5

Modelos de Relatorios

Abrangncia

Existem vrias formas de se gerar um relatrio no sistema, no entanto a forma de se elaborar o
programa no varia muito. Abaixo mostramos um modelo-padro, que utiliza as funes
bsicas na gerao de um relatrio.


/ */
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+ Funcao | MATR425 | Aut or | Rodr i go de Sar t or i o | Dat a | 11/ 05/ 95 |
+- - - - - - - - - - - +- - - - - - - - - - +- - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - +- - - - - - - - - - - - - +
| Descr i cao | Rel at or i o de Est oque por Lot e |
+- - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Si nt axe | MATR425( ) |
+- - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Uso | Gener i co |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| ATUALI ZACOES SOFRI DAS DESDE A CONSTRUCAO NI CI AL |
+- - - - - - - - - - - +- - - - - - - - +- - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Pr ogr amador | Dat a | BOPS | Mot i vo da Al t er acao |
+- - - - - - - - - - - +- - - - - - - - +- - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| | | | |
+- - - - - - - - - - - +- - - - - - - - +- - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
/ */
#i ncl ude ' MATR425. CH'
#i ncl ude ' FI VEWI N. CH'
Funct i on MATR425( )
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Def i ne Var i avei s |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
Local cDesc1 : = STR0001 / / " Est e pr ogr ama emi t i r a' uma r el acao coma posi o de "
Local cDesc2 : = STR0002 / / " est oque por Lot e/ Sub- Lot e. "
Local cDesc3 : = ' '
Local cSt r i ng : = ' SB8'
Local Ti t ul o : = STR0003 / / " Posi cao de Est oque por Lot e/ Sub- Lot e"
Local Tamanho : = ' M'
Local wnRel : = ' MATR425'
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Var i avei s Ti po Pr i vat e padr ao de t odos os r el at or i os |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
Pr i vat e aOr d : = {STR0004, STR0005} / / " Por Pr odut o" ###" Por Lot e/ Sub- Lot e"
Pr i vat e aRet ur n : = {STR0006, 1, STR0007, 1, 2, 1, ' ' , 1 } / / " Zebr ado" ###" Admi ni st r acao"
Pr i vat e cPer g : = ' MR425A'
Pr i vat e nLast Key : = 0
Pr i vat e nTi po : = 0
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Ver i f i ca as per gunt as sel eci onadas |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
Per gunt e( ' MR425A' , . F. )
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Var i avei s ut i l i zadas par a par amet r os |
| mv_par 01 / / Do Pr odut o |
| mv_par 02 / / At e Pr odut o |
| mv_par 03 / / De Lot e |
| mv_par 04 / / At e Lot e |
| mv_par 05 / / De Sub- Lot e |
| mv_par 06 / / At e Sub- Lot e |
| mv_par 07 / / De Local |
| mv_par 08 / / At e Local |
| mv_par 09 / / Li st a Sal do Zer ado ? Li st a/ Nao Li st a |
| mv_par 10 / / Do Ti po |
| mv_par 11 / / At e o Ti po |
| mv_par 12 / / Do Gr upo |
| mv_par 13 / / At e o Gr upo |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
Reviso: 17/07/2002
Verso 5.07 Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores
Pgina 1de 5
24/8/2004 http://dem.microsiga.com.br/w_wEx011.apw?Cod=018293
| Envi a cont r ol e par a SETPRI NT |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
wnRel : = Set Pr i nt ( cSt r i ng, wnRel , cPer g, @Ti t ul o, cDesc1, cDesc2, cDesc3, . F. , aOr d, , Tamanho)
nTi po : = I f ( aRet ur n[ 4] ==1, Get Mv( ' MV_COMP' ) , Get Mv( ' MV_NORM' ) )
I f nLast Key == 27
dbCl ear Fi l t er ( )
Ret ur n Ni l
Endi f
Set Def aul t ( aRet ur n, cSt r i ng)
I f nLast Key == 27
dbCl ear Fi l t er ( )
Ret ur n Ni l
Endi f
Rpt St at us( {| l End| C425I mp( @l End, wnRel , Tamanho, Ti t ul o) }, Ti t ul o)
Ret ur n Ni l
/ */
+- - - - - - - - - - - - +- - - - - - - - - - +- - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - +- - - - - - - - - - +
| Funcao | C425I mp | Aut or | Rodr i go Sar t or i o | Dat a | 14/ 11/ 95 |
| - - - - - - - - - - - - +- - - - - - - - - - +- - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - +- - - - - - - - - - +
| Descr i cao | Chamada do Rel at or i o |
+- - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Uso | MATR425 |
+- - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
/ */
St at i c Funct i on C425I mp( l End, wnRel , Tamanho, Ti t ul o)
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Var i avei s especi f i cas dos r el at or i os |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
Local cI ndex : = ' '
Local cCond : = ' '
Local cLot eAnt : = ' '
Local cPr odAnt : = ' '
Local cDescAnt : = ' '
Local cSLot Ant : = ' '
Local cAl moAnt : = ' '
Local cSeekSB8 : = ' '
Local cCondSB8 : = ' '
Local cNomAr q : = ' '
Local cPi cSl d : = PesqPi ct ( ' SB8' , ' B8_SALDO' , 12)
Local cPi cEmp : = PesqPi ct ( ' SB8' , ' B8_EMPENHO' , 12)
Local dDat aAnt : = Ct oD( ' / / ' )
Local dVal i Ant : = Ct oD( ' / / ' )
Local nSal do : = 0
Local nEmpenho : = 0
Local nSal doT : = 0
Local nEmpenhoT : = 0
Local nCnt I mpr : = 0
Local nI ndSB8 : = 0
Local l SubLot e : = . F.
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Var i avei s ut i l i zadas par a I mpr essao do Cabecal ho e Rodape |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
Pr i vat e aLi nha : = {}
Pr i vat e Cabec1 : = ' '
Pr i vat e Cabec2 : = ' '
Pr i vat e cBTxt : = Space( 10)
Pr i vat e cBCont : = 0
Pr i vat e Li : = 80
Pr i vat e M_PAG : = 01
/ / - - Condi cao de Fi l t r agemda I ndRegua
cCond : = ' B8_FI LI AL==" ' +xFi l i al ( ' SB8' ) +' " . And. '
cCond += ' B8_PRODUTO>=" ' +mv_par 01+' " . And. B8_PRODUTO<=" ' +mv_par 02+' " . And. '
cCond += ' B8_LOTECTL>=" ' +mv_par 03+' " . And. B8_LOTECTL<=" ' +mv_par 04+' " . And. '
cCond += ' B8_NUMLOTE>=" ' +mv_par 05+' " . And. B8_NUMLOTE<=" ' +mv_par 06+' " . And. '
cCond += ' B8_LOCAL>=" ' +mv_par 07+' " . And. B8_LOCAL<=" ' +mv_par 08+' " '
I f aRet ur n[ 8] ==1
cI ndex : = ' B8_FI LI AL+B8_PRODUTO+B8_LOCAL+B8_LOTECTL+B8_NUMLOTE'
Ti t ul o : = STR0008 / / " POSI CAO DE ESTOQUE POR LOTE/ SUBLOTE ( POR PRODUTO) "
Cabec1 : = STR0009 / / " PRODUTO DESCRI CAO SUB- LOTE LOTE AL SALDO EMPENHO DATA DATA "
Cabec2 : = STR0014 / / " VALI DADE "
El seI f aRet ur n[ 8] == 2
cI ndex : = ' B8_FI LI AL+B8_LOTECTL+B8_NUMLOTE+B8_PRODUTO+B8_LOCAL'
Ti t ul o : = STR0010 / / " POSI CAO DE ESTOQUE POR LOTE/ SUB- LOTE ( POR LOTE) "
Cabec1 : = STR0011 / / " SUB- LOTE LOTE PRODUTO DESCRI CAO AL SALDO EMPENHO DATA DATA "
Cabec2 : = STR0014 / / "
EndI f
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Pega o nome do ar qui vo de i ndi ce de t r abal ho |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
cNomAr q : = Cr i aTr ab( ' ' , . F. )
Pgina 2de 5
24/8/2004 http://dem.microsiga.com.br/w_wEx011.apw?Cod=018293
/ / - - Set a a Or demCor r et a no Ar qui vo SB1
dbSel ect Ar ea( ' SB1' )
dbSet Or der ( 1)
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Cr i a I ndi ce de Tr abal ho |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
dbSel ect Ar ea( ' SB8' )
I ndRegua( ' SB8' , cNomAr q, cI ndex, , cCond, STR0017) / / " Sel eci onando Regi st r os. . . "
#I FNDEF TOP
dbSet I ndex( cNomAr q+Or dBagExt ( ) )
#ENDI F
dbGoTop( )
Set Regua( Last Rec( ) )
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Pr ocessa o Laco de i mpr essao |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
Do Whi l e ! Eof ( )
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Cancel a a i mpr essao |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
I f l End
@PRow( ) +1, 001 PSay STR0012 / / " CANCELADO PELO OPERADOR"
Exi t
EndI f
l SubLot e : = Rast r o( B8_PRODUTO, ' S' )
/ / - - Def i ne a Quebr a por Pr odut o ou Lot e
I f aRet ur n[ 8] == 1
cSeekSB8 : = B8_FI LI AL+B8_PRODUTO+B8_LOCAL
cCondSB8 : = ' B8_FI LI AL+B8_PRODUTO+B8_LOCAL'
El se
cSeekSB8 : = B8_FI LI AL+B8_LOTECTL+I f ( l SubLot e, B8_NUMLOTE, ' ' ) +B8_PRODUTO+B8_LOCAL
cCondSB8 : = ' B8_FI LI AL+B8_LOTECTL+' +I f ( l SubLot e, ' B8_NUMLOTE+' , ' ' ) +' B8_PRODUTO+B8_LOCAL'
EndI f
nSal do : = 0
nEmpenho : = 0
nSal doT : = 0
nEmpenhoT : = 0

/ / - - Pr ocessa o Laco da Quebr a
Do Whi l e ! Eof ( ) . And. cSeekSB8 == &( cCondSB8)

/ / - - At ual i za a Regua de I mpr essao
I ncRegua( )

+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Cancel a a I mpr essao |
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
I f l End
@PRow( ) +1, 001 PSay STR0012 / / " CANCELADO PELO OPERADOR"
Exi t
EndI f

/ / - - Sal do do Lot e ou Lot e/ Subl ot e
nSal do += B8_SALDO
nEmpenho += B8_EMPENHO

/ / - - Sal do Tot al da Quebr a
nSal doT += B8_SALDO
nEmpenhoT += B8_EMPENHO

/ / - - Posi ci ona- se na Descr i cao Cor r et a do SB1
I f ! ( cPr odAnt ==B8_PRODUTO)
SB1- >( dbSeek( xFi l i al ( ' SB1' ) +SB8- >B8_PRODUTO, . F. ) )
EndI f

I f SB1- >B1_TI PO < mv_par 10 . Or . SB1- >B1_TI PO > mv_par 11
dbSki p( )
Loop
EndI f

I f SB1- >B1_GRUPO < mv_par 12 . Or . SB1- >B1_GRUPO > mv_par 13
dbSki p( )
Loop
EndI f

/ / - - Sal va Dados do Regi st r o At ual / Passa par a o Pr oxi mo Regi st r o
cPr odAnt : = B8_PRODUTO
cDescAnt : = SubS( SB1- >B1_DESC, 1, 30)
cSLot Ant : = I f ( l SubLot e, B8_NUMLOTE, Space( Len( B8_NUMLOTE) ) )
cLot eAnt : = B8_LOTECTL
Pgina 3de 5
24/8/2004 http://dem.microsiga.com.br/w_wEx011.apw?Cod=018293
cAl moAnt : = B8_LOCAL
dDat aAnt : = B8_DATA
dVal i Ant : = B8_DTVALI D
dbSki p( )

/ / - - I mpr i me Sal do do Lot e ou Lot e/ Subl ot e
I f ! ( cSeekSB8==&( cCondSB8) ) . Or . l SubLot e . Or . ! ( cLot eAnt ==B8_LOTECTL)
/ / - - Ver i f i ca se Li st a Sal do Zer ado
I f mv_par 09==2 . And. Qt dComp( nSal do) ==Qt dComp( 0)
Loop
EndI f
I f Li > 58
Cabec( Ti t ul o, Cabec1, Cabec2, wnRel , Tamanho, nTi po)
EndI f
nCnt I mpr ++
I f aRet ur n[ 8] == 1
@Li , 000 PSay cPr odAnt
@Li , 016 PSay cDescAnt
@Li , 047 PSay cSLot Ant
@Li , 054 PSay cLot eAnt
El seI f aRet ur n[ 8] == 2
@Li , 000 PSay cSLot Ant
@Li , 007 PSay cLot eAnt
@Li , 018 PSay cPr odAnt
@Li , 034 PSay cDescAnt
EndI f
@Li , 065 PSay cAl moAnt
@Li , 068 PSay nSal do Pi ct ur e cPi cSl d
@Li , 081 PSay nEmpenho Pi ct ur e cPi cEmp
@Li , 094 Psay dDat aAnt
@Li , 105 Psay dVal i Ant
Li ++
nSal do : = 0
nEmpenho : = 0
EndI f
EndDo

/ / - - I mpr i me Sal do Tot al da Quebr a
I f nCnt I mpr > 0
I f Li > 58
Cabec( Ti t ul o, Cabec1, Cabec2, wnRel , Tamanho, nTi po)
EndI f
@Li , 000 PSay I f ( aRet ur n[ 8] ==1, STR0013, I f ( l SubLot e, STR0016, STR0015) ) / / " Tot al do Pr odut o -
@Li , 081 PSay nEmpenhoT Pi ct ur e cPi cEmp
Li ++
@Li , 000 PSay __Pr t Thi nLi ne( )
Li ++
nCnt I mpr : = 0
nSal doT : = 0
nEmpenhoT : = 0
EndI f
EndDo
I f ! ( Li ==80)
Roda( cBCont , cBTxt , Tamanho)
EndI f
/ / - - Rest aur a a I nt egr i dade do SB8
dbSel ect Ar ea( ' SB8' )
Ret I ndex( ' SB8' )
dbCl ear Fi l t er ( )
I f Fi l e( cNomAr q+Or dBagExt ( ) )
f Er ase( cNomAr q+Or dBagExt ( ) )
Endi f
I f aRet ur n[ 5] == 1
Set Pr i nt er To
dbCommi t Al l ( )
Our Spool ( wnRel )
Endi f
MS_Fl ush( )
Ret ur n Ni l



Grupos Relacionados
Principal / Guias de Referncia / Como programar Advpl no ERP / Modelos Padronizados
Pgina 4de 5
24/8/2004 http://dem.microsiga.com.br/w_wEx011.apw?Cod=018293

Topo da Pgina


Pgina 5de 5
24/8/2004 http://dem.microsiga.com.br/w_wEx011.apw?Cod=018293

Você também pode gostar