'Nome       : Exemplo_Prt.ipw
'Tipo       : LST
'Data       : 2012/11/14
'Versao     : 1.0
'Descricao  : Exemplo de listagem para varias impressoras

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   ____/__/__ --------------------------------------------------
'Versao base


'==============================================================================
#DEF - Definicao global do documento
'==============================================================================
Caracteres invalidos             [CarInv]=#
##


'==============================================================================
#ESP - Campos especificos
'==============================================================================
Especifico 1                      [EspOp1]=Opcao 1
Especifico 2                      [EspOp2]=Opcao 2
Limites a listar                  [EspLim]=?
##


'==============================================================================
#DOC - Configuracao do documento - Impressora grafica
'==============================================================================
Nome                       [DocNom]=FAC_GRA
Tipo                       [DocTip]=

Vias                       [DocVia]=Original
'Vias                       [DocVia]=Original;Duplicado
'Vias                       [DocVia]=Original,2;Duplicado,2;Triplicado

Dados especificos          [DocEsp]=ESP1,FAC

'formato
'Impressora                 [DocPrt]=
'Impressora                 [DocPrt]=PR01
'Saida/Impressora           [DocPrt]=PAG_W
'Saida/Impressora           [DocPrt]=PAG_W,PRV
Saida/Impressora            [DocPrt]=[TIP=PAG_W][PRV=N][DRV=Prt_GrfPdf.std]

Linhas por pagina          [DocLpg]=20
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=3

'funcoes de listagem
Listar cabecalho            [FxCAB]=Cab
Listar linhas               [FxLIN]=Lin; Nor; Ajt; Txl; Pmo; Doc; Ide; Inf,0;
Listar fim                  [FxFIM]=Fim
##


'==============================================================================
#DOC - Configuracao do documento - Impressora texto
'==============================================================================
Nome                       [DocNom]=FAC_TXT
Tipo                       [DocTip]=

Vias                       [DocVia]=Duplicado

Dados especificos          [DocEsp]=ESP1,FAC

'formato
'Impressora                 [DocPrt]=
Saida/Impressora            [DocPrt]=PrtVid.std

Linhas por pagina          [DocLpg]=20
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=3

'funcoes de listagem
Listar cabecalho            [FxCAB]=TxCab
Listar linhas               [FxLIN]=TxLin; Nor; Ajt; Txl; Pmo; Doc; Ide; Inf,0
Listar fim                  [FxFIM]=TxFim
##


'==============================================================================
#DOC - Configuracao do documento - Impressora especifica (grafica)
'==============================================================================
Nome                       [DocNom]=FAC_BROTHER
Tipo                       [DocTip]=

Vias                       [DocVia]=Triplicado

Dados especificos          [DocEsp]=ESP1,FAC

'formato
'Impressora                 [DocPrt]=
Saida/Impressora           [DocPrt]=[TIP=PAG_W][PRV=N][DRV=Prt_BROTHER.std]

Linhas por pagina          [DocLpg]=20
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=3

'funcoes de listagem
Listar cabecalho            [FxCAB]=Cab
Listar linhas               [FxLIN]=Lin; Nor; Ajt; Txl; Pmo; Doc; Ide; Inf,0
Listar fim                  [FxFIM]=Fim
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Pag      = Doc_CntPag
DataExt  = FrmVal$(Sig_DtHoje,45,0)

'descricao da empresa 
EmpNome  = Emp_Inf_Nome$
EmpMorada= Emp_Inf_Morada$
EmpLocal = Emp_Inf_Local$
EmpCpost = Emp_Inf_Cpost$
EmpTel   = Emp_Inf_Telef$
EmpFax   = Emp_Inf_Fax$
EmpCtrb  = Emp_Inf_Contrib$
EmpTps   = Emp_Inf_NatJur$
EmpReg   = Emp_Inf_NumReg$
EmpEmail = Emp_Inf_Email$
EmpWeb   = Emp_Inf_Web$

'indicacao do destinatario do documento
Ct       = Cta_Mst_Ct$
Nome     = VarAlt$("Enc_Mst","Cta_Mst_Nome$")
Morada   = VarAlt$("Enc_Mst","Cta_Ang_Morada$")
Local    = VarAlt$("Enc_Mst","Cta_Ang_Local$")
Cpost    = VarAlt$("Enc_Mst","Cta_Ang_Cpost$")
Ctrb     = VarAlt$("Enc_Mst","Cta_Mst_Ctrb$")

'linhas do documento
LinArt   = StcCodFrm$("")
LinOpcCor= TxIde$(Enc_Mov_Opc$,"COR")   
ArtIde   = TxIde$(Enc_Mov_Opc$,"OPCIDE")   
LinNome  = EncArtIde$("")
LinQu    = StcQuFrm$(Doc_Art_Qu,9,"")
LinPrc   = FrmVal$(Doc_Art_Prc,21,8.2)
LinUni   = Stc_Mst_Unid$
LinDesco = Enc_Mov_Desco$
LinLiq   = FrmVal$(Doc_Art_Liq,21,10.2)
Iva      = IvaTax$("A")+" %"
LinTxl   = Enc_Mov_Div$

'Medidas
DocArtQuM  =Enc_Mov_MedTxt$
DocArtMedV =Enc_Mov_MedVal


'conversão de moeda
DocEurTot=FrmVal$(MoeCnv("N",Doc_Tot_Tot,Enc_Mst_Moeda,2),21,13.2)
DocEurCmb=FrmVal$(EmpTabCon$("MOEDA",Enc_Mst_Moeda,"CMBEUR"),21,3.3)

'informacoes sobre o documento
Vend      = "("+Enc_Mst_Vend+") "+EmpTabCon$("Vend",Enc_Mst_Vend,"Nome")
Cpag      = EmpTabCon$("Cpag",Enc_Mst_CpagCod,"Des")
DocNome   = Doc_Ide_Nome$
'DocNum    = FrmNdo$("44",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
DocNum    = FrmNdo$("06",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
DocVia    = Doc_Ide_Via$
DocDtl    = FrmDt$("EXT",Doc_Ide_Dtl)
DocDtv    = FrmDt$("EXT",Doc_Ide_Dtv)
DocOrg    = VarAlt$("ENC_MST","Emp_Inf_Local$")
DocDest   = VarAlt$("ENC_MST","Cta_Ang_Local$")
Viatura   = TxIde$(Enc_Mst_Opc$,"MAT")
HorSai    = FrmVal$(Enc_Mst_HrSai,53,0)
Vreq      = TxIde$(Enc_Mst_Opc$,"REQ")

DocRcNum  = DocRcNum$
DocRcDtl  = DocRcDtl$
DocRcDtv  = DocRcDtv$

'listar documentos
DocIde    = Enc_Mst_Tdoc$+" "+FrmNdo$("44",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
DocVl     = FrmVal$(Doc_Tot_Tot,21,13.2)
pIvaI1    = FrmVal$(IvaInc("T",1),21,10.2)
pIvaV1    = FrmVal$(IvaVal("T",1),21,10.2)
pDocIva   = FrmVal$(Doc_Tot_Iva,21,13.2)
pDocTot   = FrmVal$(Doc_Tot_Tot,21,13.2)

FrmExp    = FrmExp$
ModPag    = ModPag$
NBanco    = NBanco$
VBanco    = VBanco$

'RodLin1   = Emp_Inf_Nome$
'RodLin2   = Emp_Inf_Morada$+","+Emp_Inf_Local$+","+Emp_Inf_Cpost$+", Tel. "+Emp_Inf_Telef$+" Fax "+Emp_Inf_Fax$
'RodLin3   = "NIPC "+Emp_Inf_Contrib$+", Capital Social"+Emp_Inf_CapSoc

RodLin1   =  "Contribuinte: "+Emp_Inf_Contrib$+"   Capital Social "+Emp_Inf_CapSoc+" e   "+Emp_Inf_NatJur$+"    "+Emp_Inf_NumReg$
RodLin2   =  ""
RodLin3   =  ""
##


'==============================================================================
#SEQ - Sequencias para recolha de artigos
'==============================================================================
'------------------------------------------------------------------------------
'#INF - Linha de texto
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=INF
Codigos validos            [ID1]=*
Codigos invalidos          [ID0]=PORTE,MOBRA

'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
'Campo opcional              [E]=OPC Var$,Descricao,Tipo(A/N)+Dig
'Quantidade                   [E]=QU; ESC:LPL
'Quantidade 2                [E]=QU2
'Preco                        [E]=PRC
'Desconto                     [E]=DES
'Iva                          [E]=IVA

'Funcao e Mensagem (MsgBox)   [E]=FxExe UtzMsgBox
'Funcao e Mensagem (Sbar)     [E]=FxExe UtzMsgSbar
'Mensagem em MsgBox           [E]=MsgBox "",Titulo,Linha1|Linha2
'Mensagem em Status Bar       [E]=MsgSbar 1,Msg painel 1
'Esperar (segundos)           [E]=EspSeg 2

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU

Preco                        [E]=PRC

Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#NOR - Tipo Normal
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=NOR
Codigos validos            [ID1]=*
Codigos invalidos          [ID0]=PORTE,MOBRA

'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
'Campo opcional              [E]=OPC Var$,Descricao,Tipo(A/N)+Dig

Quantidade                   [E]=QU; ESC:LPL
'Quantidade 2                [E]=QU2

Identificacao de cliente     [E]=Ofr_Cli COD

Preco                        [E]=PRC

Desconto                     [E]=DES
Iva                          [E]=IVA

'Funcao e Mensagem (MsgBox)   [E]=FxExe UtzMsgBox
'Funcao e Mensagem (Sbar)     [E]=FxExe UtzMsgSbar
'Mensagem em MsgBox           [E]=MsgBox "",Titulo,Linha1|Linha2
'Mensagem em Status Bar       [E]=MsgSbar 1,Msg painel 1
'Esperar (segundos)           [E]=EspSeg 2

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#PMO - Tipo Valor total (portes e Mao de obra)
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=PMO
Codigos validos            [ID1]=PORTE,MOBRA
Codigos invalidos          [ID0]=

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA
Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

Inicio de alteracao    [E,ALT  ]=ALT
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#TXL - Tipo Texto livre
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=TXL
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=
'Modos de uso               [IDM]=Rec:RTX; Alt:RTX; Cor:RTX

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Texto                  [E,RTX  ]=TXL
Recolha automatica           [E]=RAUTO
Confirmar linha              [E]=CFL; CF2:RTX, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#IDE - Linha artigo com nome livre 
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=IDE
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=
'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha aautomatica          [E]=RAUTO
Campo opcional 1             [E]=OPC OPCIDE,Nome,A30
Quantidade                   [E]=QU; ESC:LPL
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
Quantidade                   [E]=QU
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM

##


'-----------------------------------------------------------------------------
' Recolha do Cabecalho do documento
'-----------------------------------------------------------------------------
'==============================================================================
#PAGDEF - Definicao de paginas
'==============================================================================
Pagina inicial      [PagIni]=1
Campo inicial       [CmpIni]=6
##


'==============================================================================
#PAG  Dados para Documento    'Definicao da pagina 
'==============================================================================
'mo asp x   y  identificacao           di  variavel                            frm   dv ope
30,-10, 20, 50,"Conta               " ,100,Cta_Mst_Ct$                         ,30.0,250
31, 10, 20, 80,"Nome                " ,100,VarAlt$("ENC_MST","Cta_Mst_Nome$")  ,30.0,250
31, 10, 20,110,"Morada              " ,100,VarAlt$("ENC_MST","Cta_Ang_Morada$"),30.0,250
31, 10, 20,140,"Localidade          " ,100,VarAlt$("ENC_MST","Cta_Ang_Local$") ,30.0,250
31, 10, 20,170,"Codigo Postal       " ,100,VarAlt$("ENC_MST","Cta_Ang_Cpost$") ,30.0,250

31, 10, 20,200,"Expedição           " ,100,TxIde$(Enc_Mst_Opc$,"FRM_EXP")      ,30.0,200
30, 10, 20,230,"Modo Pagamento      " ,100,TxIde$(Enc_Mst_Opc$,"MOD_PAG")      ,30.0,200
30, 10, 20,260,"Nosso Banco         " ,100,TxIde$(Enc_Mst_Opc$,"N_BANCO")      ,30.0,180

30, 10, 320,260,"Vosso Banco        " ,100,TxIde$(Enc_Mst_Opc$,"V_BANCO")        ,30.0,180

31, 10, 390,050,"Vendedor       " ,100,Enc_Mst_Vend                        , 2.0, 50
30, 10, 390,080,"Contribuinte   " ,100,VarAlt$("ENC_MST","Cta_Mst_Ctrb$")  ,20.0,100
30,110, 390,110,"Cond. Pagamento" ,100,Enc_Mst_CpagCod                     , 2.0, 50
10, 53, 390,140,"Hora de saida   ",100,Enc_Mst_HrSai                      , 4.0,100
31, 10, 390,170,"Local de carga  ",100,VarAlt$("ENC_MST","Emp_Inf_Local$"),30.0,100
31, 10, 390,200,"Local de entrega",100,VarAlt$("ENC_MST","Cta_Ang_Local$"),30.0,100
31, 10, 390,230,"Matricula       ",100,TxIde$(Enc_Mst_Opc$,"MAT")         ,30.0,100
##

'30, 10,430,100,100,  8.0,"Texto   : ",150,Variavel,Ope
' |   |  |   |   |    |      |          |    |       |
' |   |  |   |   |    |      |          |    |       +--> Opcao especial
' |   |  |   |   |    |      |          |    +----------> Variavel
' |   |  |   |   |    |      |          +---------------> Dimensao da identificacao
' |   |  |   |   |    |      +--------------------------> Texto Informativo
' |   |  |   |   |    +--------------> Formato do valor
' |   |  |   |   +-------------------> Dimensao
' |   |  |   +-----------------------> Coluna
' |   |  +---------------------------> Linha
' |   +------------------------------> Tipo de valor/Aspecto
' +----------------------------------> Controlo de recolha
'
'1o parametro - modo/controlo de recolha (<0 nao pode alterar)
'2o parametro - tipo dos dados/aspecto
'3o parametro - linha
'4o parametro - coluna
'5o parametro - dimensao da identificacao
'6o parametro - formato do valor (inteiros.decimais)
'7o parametro - texto informativo
'8o parametro - variavel
'
'Controlo de recolha : 1x - Pode modificar para registo novo
'                      2x - Pode modificar para alteracao de registo
'                      3x - Igual a 1x+2x
'                      ?0 - Nao cria variavel
'                      ?1 - Cria variavel
'
'Notas : O campo 'Opcao especial' e opcional


'==============================================================================
#PGM - Funcoes para impressao do documento
'==============================================================================
'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------------->'Comentario (58)
'---------------------------------------------------->'Comentario (55)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)


'-----------------------------------------------------------------------------
' Funcoes para inicializacao
'-----------------------------------------------------------------------------
SUB FxIni 'funcao de inicializacao
'modo WIN
PrWIN AJT_F, 56.7,  56.7                                    'ajuste para milimetros
PrWIN AJT_D,-280.0,-280.0                                   'deslocamento de ajuste 
PrWIN IMG_F, 1, VarTx$("[SIG_DIR.DIV],OliLogo.bmp","R")     'imagem (logotipo)
PrWIN ET,  2                                                'espessura de traco 
end sub


SUB FxFim 'funcao de finalizacao
PrWIN FON, "REG"                                      'limpar registo de fontes
end sub

'-----------------------------------------------------------------------------
' Funcoes para impressao do documento
'-----------------------------------------------------------------------------
SUB CabIni 'inicializar
DocRcNum$ = FrmNdo$("44",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$) 'numero de documento
DocRcDtl$ = FrmVal$(Doc_Ide_Dtl,44,0)                 'data de lancamento
DocRcDtv$ = FrmVal$(Doc_Ide_Dtv,44,0)                 'data de vencimento

txInf1$=""                                            'informacao 1
txInf2$=""                                            'informacao 2

FrmExp$   = TxIde$(Enc_Mst_Opc$,"FRM_EXP")            '?
ModPag$   = TxIde$(Enc_Mst_Opc$,"MOD_PAG")            '?
NBanco$   = TxIde$(Enc_Mst_Opc$,"N_BANCO")            '?
VBanco$   = TxIde$(Enc_Mst_Opc$,"V_BANCO")            '?

Moeda1 = Enc_Mst_Moeda                                'moeda princiapl
Moeda2 = 98                                           'moeda contravalor (escudo)
end sub


Sub DocLogo 'listar logotipo
'PrWIN IMG_V,1, 0, 0, 50, 20                           'imagem (logotipo)
'PrWIN IMG_V,1, 0, 0, 75, 30                           'imagem (logotipo)
'PrWIN IMG_V,1, 0, 0, 72, 28                           'imagem (logotipo)

LogoFdi = 1.25                                        'factor de dimensao do logotipo
LogoDx  = 50 * LogoFdi                                'dimensao X do logotipo
LogoDy  = 20 * LogoFdi                                'dimensao Y do logotipo

PrWIN IMG_V,1, 0, 0,LogoDx,LogoDy                     'imagem (logotipo)

'PrWIN GR_CX,  0, 0, "+50", "+20", 1                   'caixa envolvente
end sub


Sub DocIdeEmp 'listar identificacao da empresa
PrWIN FON, 16, 1                                      'activar fonte

'PrWin COR_T,Azul                                      '?
PrWin COR_T,128,128,128                               '?

PrWin FON, "BOLD+"                                    'activar bold
'PrWIN TX_N, 0, 20,@EmpNome                            '?
PrWin FON, "BOLD-"                                    'desactivar bold
PrWin COR_T,Preto                                     '?

'dados da empresa
'PrWin COR_T,Azul                                      '?
PrWin COR_T,128,128,128                               '?

PrWIN FON, 9, 1                                       'activar fonte
PrWIN AJT_B,  Margem+10, 40                           'posicao base
PrWIN TX_N,  0,  0,@EmpMorada                         '?
PrWIN TX_N,  0,  5,@EmpLocal                          '?
PrWIN TX_N,  0, 10,@EmpCpost                          '?
PrWIN TX_N,  0, 15,"Telefone:"                        '?
PrWIN TX_N, 15, 15,@EmpTel                            '?
PrWIN TX_N, 40, 15,"Telefax :"                        '?
PrWIN TX_N, 55, 15,@EmpFax                            '?
PrWIN TX_N,  0, 20,Emp_Inf_Web$                       '?
'PrWIN TX_N, 0, 25,@EmpWeb                            '?
PrWin COR_T,preto                                     '?
end sub


'-----------------------------------------------------------------------------
' Cabecalho do documento
'-----------------------------------------------------------------------------
SUB CAB 'cabecalho do documento  
margem = 5                                            '?
azul   = 1                                            '?
Preto  = 0                                            '?

PrWIN AJT_B,  Margem+10, 10                           'posicao base
call DocLogo                                          'listar logotipo
call DocIdeEmp                                        'listar identificacao da empresa

ajt=0                                                 '?
if enc_mst_Tdoc$ = "FPF" then                         '?
   ajt=10                                             '?
end if

'dados do documento
PrWIN AJT_B, Margem+130,15                            'posicao base
PrWIN FON  , 20, 1                                    'activar fonte
PrWIN TX_N ,  0, 1,@DocNome                           'nome documento
PrWIN FON  , 14, 1                                    'activar fonte
PrWIN TX_N , 45+ajt, 3,@DocNum                        'numero documento
PrWIN FON  , 10, 1                                    'activar fonte
PrWIN TX_N ,  0,10,@DocVia                            '?
PrWIN TX_N ,  0,15,@DocDtl                            '?


'dados do cliente (janela de carta)
PrWIN AJT_B, 110, 50                                  'posicao base
PrWIN FON, 10,  1                                     'activar fonte
PrWIN TX_N, 0,  5,@Nome                               '?
PrWIN TX_N, 0, 10,@Morada                             '?
PrWIN TX_N, 0, 15,@Local                              '?
PrWIN TX_N, 0, 20,@Cpost                              '?

PrWIN AJT_B, Margem+15,87                             'posicao base
PrWIN TX_N, 0, 0,"Código Cliente "                    '?
PrWIN TX_N,45, 0,@Ct                                  '?
PrWIN TX_N, 0, 5,"V/ N.Contribuinte "                 '?
PrWIN TX_N,45, 5,@Ctrb                                '?
PrWIN TX_N, 0,10,"Condições de Pagamento"             '?

if modPag$<>"" then                                   'definiu modo pagamento ?
   PrWIN TX_N,45,10,@ModPag                           '?
else                                                  'modo normal
   PrWIN TX_N,45,10,@Cpag                             '?
end if


'- corpo do documento ----------------------------------------------------------
PrWIN AJT_B, Margem+10, 105                           'posicao base
PrWIN COR_E, 200, 200, 200                            'cor de enchimento RGB
PrWIN GR_ME, 0                                        'modo de enchimento
PrWIN GR_CE,  2,  0, 190,  08, 2                      'caixa do cabecalho

PrWin FON, "BOLD+"                                    'activar bold
PrWIN FON, 9, 1                     	              'activar fonte

'tamanho de colunas
tcod   = 25                                           '?
Tdes   = 65                                           '?
tQu    = 20                                           '?
Tprc   = 25                                           '?
TDesco = 15                                           '?
Tvalor = 25                                           '?
TIva   = 15                                           '?

'posicao de colunas
Col1 = 5                                              'codigo
Col2 = Col1 + Tcod                                    'descricao
Col3 = Col2 + Tdes                                    'quantidade
Col4 = Col3 + Tqu                                     'preco unitario
Col5 = Col4 + Tprc                                    'desconto
Col6 = Col5 + TDesco                                  'valor
Col7 = Col6 + tValor                                  'iva
Col8 = Col7 + tiva                                    'coluna maxima

ajt = 3                                               '?
Lin = 2                                               '?
PrWIN TX_N,Col1, Lin,"Código"                         'texto centrado
PrWIN TX_N,Col2, Lin,"Descrição"                      'texto 
PrWIN TX_N,Col3, Lin,"Quantidade"                     'texto 
PrWIN TX_N,Col4, Lin,"Preço Unitario"                 'texto
PrWIN TX_N,Col5+ajt, Lin,"Desconto"                   'texto
PrWIN TX_N,Col6+10, Lin,"Valor"                       'texto 
PrWIN TX_N,Col7, Lin,"IVA"                            'texto 

PrWIN FON, 8, 1                                       'activar fonte
PrWin FON, "BOLD-"                                    'desactivar bold
end sub


'-----------------------------------------------------------------------------
' Linhas do Documento
'-----------------------------------------------------------------------------
Sub LinPosAjt 'ajustar posicao de linha
PrWIN AJT_B,  Margem+10, 110+Doc_CntLin*5             'posicao base
end sub


SUB LinNor 'artigos tipo normal
PrWIN AJT_B,  Margem+10, 110+Doc_CntLin*5             'posicao base
PrWIN TX_N, Col1-3,   0    ,@LinArt                   '?
PrWIN TX_N, Col2,     0    ,@LinNome                  '?
PrWIN TX_NP,Col3,     0,"N",@LinQu                    '?
PrWIN TX_NP,Col4,     0,"N",@LinPrc                   '?
PrWIN TX_NP,Col5+7,   0,"N",@LinDesco                 '?
PrWIN TX_NP,Col6,     0,"N",@LinLiq                   '?
PrWIN TX_NP,Col7,     0,"N",@Iva                      '?
end sub


SUB LinIde 'artigos tipo nome livre
call LinNor                                           '?
end sub


SUB LinTxl 'artigos tipo texto livre
PrWIN AJT_B,  Margem+10, 110+Doc_CntLin*5             'posicao base
PrWIN TX_N,   Col2,   0,@LinTxl                       '?
end sub


SUB LinDoc 'linha de documento
PrWIN AJT_B,   8, 110+Doc_CntLin*5                    'posicao base
PrWIN TX_N,    4,   0,@DocIde                         '?
PrWIN TX_NP,  40,   0,"N",@pDocTot                    '?
PrWIN TX_NP, 100,   0,"N",@pDocIva                    '?
end sub


'-----------------------------------------------------------------------------
' Final do Documento
'-----------------------------------------------------------------------------
SUB FimAjt 'ajuste de fim de pagina
Call Caixas_Fim_Pagina                                'imprimir caixas
PrWIN TX_N, 150, 30,"Transporte de Página"            '?
PrWIN FP                                              'fim de pagina
end sub


SUB Fim 'totais do documento
FimDoc=250                                            '?

tmp$=enc_Mst_Tdoc$                                    '?
if tmp$="F1" then                                     '?
   txi$ = "Os Bens constantes desta factura, foram colocados à disposição do adquirente nesta data"

   PrWIN AJT_B, Margem+10, FimDoc-5                   'posicao base
   PrWin FON, "BOLD+"                                 'activar bold
   PrWIN TX_N,  Col1,  0,txi$                         '?
   PrWin FON, "BOLD-"                                 'desactivar bold
end if

Call Caixas_de_Iva                                    '?
Call Totais_Documento                                 '?

PrWIN AJT_B,  Margem+5, FimDoc+20                     'posicao base
PrWIN FON, 7, 1                                       'activar fonte
PrWIN TX_N,  0, 0, "Documento Processado por Computador"
PrWIN TX_N, 0,  3, SigLstInf$("PERSON")

PrWIN COR_T, 1                                        '?

'informacao de rodape
PrWIN FON, 8, 1                                       'fonte
PrWIN AJT_B,   Margem+5, FimDoc+28                    'posicao base
CMax=Col8                                             '?
PrWIN GR_LI,   0,  0,  cmax, 0                        'linha vertical
PrWIN TX_CTR,  0,  0,  Cmax,  0,@RodLin1              'texto centrado
PrWIN TX_CTR,  0,  3,  Cmax,  3,@RodLin2              'texto centrado
PrWIN TX_CTR,  0,  6,  Cmax,  6,@RodLin3              'texto centrado
PrWIN COR_T, 0

PrWIN FP                                              'fim de pagina
end Sub


'-----------------------------------------------------------------------------
' Funcoes diversas
'-----------------------------------------------------------------------------
Sub Totais_Documento
PrWIN AJT_B,  Margem + 140, FimDoc                    'posicao base

Col1 =  1                                             '?
Col2 = 23                                             '?
Col3 = 30                                             '?
Col4 = 62                                             '?

DocIlq$   = FrmVal$(Ado_Tot_Ilq,  21,13.2)            '?
DocIva$   = FrmVal$(Ado_Tot_Iva,21,13.2)              '?
DocDesco$ = FrmVal$(Ado_Tot_Desco,21,13.2)            '?
DocTot$   = FrmVal$(Ado_Tot_Tot,21,13.2)              '?
Abv$      = EmpTabCon$("MOEDA", Enc_Mst_Moeda, "ABRV")   '?

PrWIN FON, 9, 1                                       'activar fonte
PrWin FON, "BOLD+"                                    'activar bold
PrWIN TX_N, Col1,    0,"Iliquido"                     '?
PrWIN TX_N, Col1,    5,"Desconto"                     '?
PrWIN TX_N, Col1,   10,"Total de IVA"                 '?
PrWIN TX_N, Col1+2, 16,"T O T A L"                    '? 

PrWin FON, "ITAL+"                                    'activar italico
PrWIN TX_N, Col2,    16, EmpTabCon$("MOEDA", Moeda1, "ABRV")    '?

PrWin FON, "ITAL-"                                    'desactivar italico
PrWin FON, "BOLD-"                                    'desactivar bold

PrWIN TX_NP, Col3,     0,"N",DocIlq$                  '?
PrWIN TX_NP, Col3,     5,"N",DocDesco$                '?
PrWIN TX_NP, Col3,    10,"N",DocIva$                  '?
PrWIN TX_NP, Col3,    16,"N",DocTot$


PrWIN GR_CX,   0,   0, Col4, 15                       'caixa de moldura superior
PrWIN GR_CX,   0,  15, Col4, 20                       'caixa de moldura inferior
PrWIN GR_LI,   Col2-2,  0, Col2-2,  20                'linha vertical
End sub


Sub Caixas_de_Iva 'caixas para IVA
PrWIN AJT_B, Margem+ 10, FimDoc                       'posicao base
Lin  = 0                                              '?
Col1 = 3                                              '?
Col2 = Col1+10                                        '?
Col3 = Col2+30                                        '?

PrWin FON, "BOLD+"                                    'activar bold
PrWIN FON, 9, 1                                       'activar fonte
                         	
ajt = 5                                               '?
PrWIN TX_N,  Col1,      0,"%IVA"                      '?
PrWIN TX_N,  Col2+ajt,  0,"Incidência"                '?
PrWIN TX_N,  Col3+ajt,  0,"Valor de IVA"              '?

PrWin FON, "BOLD-"                                    'desactivar bold

Lin = 5                                               '?
cnt = 1                                               '?
for n=0 to 5
If AdoIvaInc("T",n) > 0 then                          '?
   Cnt = Cnt + 1                                                 'contar linhas
   PrWIN TX_NP,  Col1, Lin,"N",FrmVal$(IvaTax(n),21,2.0)         '? 
   PrWIN TX_NP,  Col2, Lin,"N",FrmVal$(AdoIvaInc("T",n),21,10.2) '?
   PrWIN TX_NP,  Col3, Lin,"N",FrmVal$(AdoIvaVal("T",n),21,10.2) '?
   Lin = Lin + 5                                                 'contar linha
end if
Next

PrWIN GR_CX,   0,   0, Col3+25, 4                     'caixa de moldura
PrWIN GR_CX,   0,   0, Col3+25, Lin                   'caixa de moldura
End Sub


'==============================================================================
'TXT - Modo texto
'==============================================================================

'------------------------------------------------------------------------------
' Cabecalho do documento
'------------------------------------------------------------------------------
Sub TxCab 'cabecalho do documento
print PrtCmd$("[10CPILN]")
?@EmpNome                                                                     #
?@EmpMorada                                   @DocNome                        #
?@EmpLocal                                    NUMERO DOCUMENTO  : @DocRcNum   #
?@EmpCpost                                    VIA DOCUMENTO     : @DocVia     #
?                                             DATA              : @DocRcDtl   #
?                                             DATA VENCIMENTO   : @DocRcDtv   #
print PrtCmd$("[16CPILN]")
?Contribuinte No   : @EmpCtrb                                                 #
?Tipo de sociedade : @EmpTps                                                  #
?Registo           : @EmpReg                                                  #
?Capital Social    : @EmpCapSoc                                               #
print PrtCmd$("[10CPILN]");
?                                       +--                             --+#
?                                       |                                 |
?                                         @Nome                           #
?Telefone : @EmpTel                       @Morada                         #
?Fax      : @EmpFax                       @Local                          #
?                                         @Cpost                          #
?                                       |                                 |
?                                       +--                             --+#
?COD. CLIENTE      : @Ct                                                    #
?V/No CONTRIBUINTE : @Ctrb                                                  #
?VENDEDOR          : @Vend                                                  #
?COND.DE PAGAMENTO : @Cpag                                  Folha No : @Pag #
? @LinInf1                                                         #
print PrtCmd$("[16CPILN]")
?====================================================================================================================================
? Codigo                Descricao                     Quantidade      Uni     Preco Unitario    Desconto       Total Liquido     IVA
?====================================================================================================================================
end sub


'------------------------------------------------------------------------------
' Linhas do Documento
'------------------------------------------------------------------------------
Sub TxLinNor 'artigos tipo normal
?@LinArt           @LinNome                           @LinQu          @Uni     @LinPrc           @LinDesco       @LinLiq        @Iva
end sub


Sub TxLinIde 'artigos tipo nome livre
?@LinArt           @LinNome                           @LinQu          @Uni     @LinPrc           @LinDesco       @LinLiq        @Iva
end sub


Sub TxLinCor 'Exemplo campos opcionais
?@LinArt           @LinNome                           @LinQu          @Uni     @LinPrc           @LinDesco       @LinLiq        @Iva
?Cor escolhida   : @LinOpcCor
end sub


Sub TxLinMed 'artigos com medidas
?@LinArt           @LinNome                           @LinQu          @Uni     @LinPrc           @LinDesco       @LinLiq        @Iva
?                  Dimensao do artigo  @LinMedidas         Total Qu x Medias =   @Medidas2        #
end sub


Sub TxLinPmo 'artigos tipo Portes e Mao-de-obra
'?    @LinNome                                                                                                    @LinLiq        @Iva

'guardar valor para imprimir no final do documento
Portes$  = FrmVal$(Doc_Art_Liq,21,13.2)
'?   @Portes                 #
end sub


Sub TxLinTxl 'artigos tipo texto livre
Print Tab(19) Enc_Mov_Div$
end sub


Sub TxLinAjt 'ajuste de linhas
?
end sub


Sub TxLinDoc 'linha de documento
? Documento : @DocIde            @pDocTot             @pDocIva               #
'? Iva 1                          @pIvaI1              @pIvaV1                #
end sub


Sub TxLinOfrCli 'identificacao de cliente
cliCod$ = "Cliente: " + Enc_Mov_Lote$                 'codigo
cliNom$ = EncOfrCliIde$("NOM", Enc_Mov_Lote$)         'identificacao

Print Tab(19) cliCod$                   'listar codigo
Print Tab(29) CliNom$                   'listar nome

'separacao
tmp = CntLin("INC",1)                                 'contar linha adicional
end sub


'------------------------------------------------------------------------------
' Final do Documento
'------------------------------------------------------------------------------
Sub TxFimAjt 'ajuste de fim de pagina
print PrtCmd$("[SP]")
end sub


Sub TxFim 'total do documento
DocEurTot$ = FrmVal$(MoeCnv("N",Doc_Tot_Tot,Enc_Mst_Moeda,Moeda2),21,13.2)
print PrtCmd$("[10CPILN]")
?=============================================================================
? IVA  Taxa   V.Incidencia       I.V.A.
?=============================================================================
?  0     0     @IvaI0                      | TOTAL ILIQUIDO : @DocIlq        #
?  1    @IvaT1 @IvaI1        @IvaV1        | DESCONTOS      : @DocDesco      #
?  2    @IvaT2 @IvaI2        @IvaV2        | TOTAL LIQUIDO  : @DocLiq        #
?  3    @IvaT3 @IvaI3        @IvaV3        |
?  4    @IvaT4 @IvaI4        @IvaV4        |                :       
?==========================================|                :                
? LOCAL ENTREGA  : @DocDest                |                :                
? LOCAL DE CARGA : @DocOrg                 | PORTES         : @Portes        #
? HORA DE SAIDA  : @HorSai                 |                                 #
? VIATURA        : @Viatura                | TOTAL DE IVA   : @DocIva        #
?                                          |==================================
?   ** PROCESSADO POR COMPUTADOR **        | @TotalAbv1     : @DocTot        #
?                                          |                                 #
?=============================================================================

'ExtNl=NumExtPrp("77,77","=")                      'preparar extenso

'print NumExt$(1 ,Ado_Tot_Tot,"ESC",3)             'linha 1 de extenso
'print NumExt$(2)                                  'linha 2 de extenso


'tmp$=left$(Cta_Ang_Grupo$,2)
'print PrtCmd$("[10CILN]")            
'if tmp$="AA" then
'   print tab(20) "Este cliente e do tipo AA"
'else
'   print tab(25) "Este cliente e de tipo desconhecido"
'end if

print PrtCmd$("[SP]")                             'terminar pagina
end sub

##
