'Nome       : EncFra.sql
'Tipo       : LST
'Data       : 2016/03/18
'Versao     : 1.0
'Descricao  : ENC - Listagens de fraccionamento

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


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
Zoom para preview             [PrvZoom]=1.5
Opcoes para impressora WIN   [PrWinOpc]=[ORI=P]
##


'==============================================================================
#SQL - Comandos SQL
'==============================================================================
Base de dados           [BD]=EmpFic$("EMP","Cemp,Emp_Dat.mdb")


'------------------------------------------------------------------------------
'- Lista de artigos -----------------------------------------------------------
'------------------------------------------------------------------------------
Gerar registos       [Cmd]=LisArt=+
   +SELECT * FROM {TB_StcMst} +
   +WHERE left(Art$, 1) <> '#' +
   +AND   Art$   BETWEEN '{Opc_Art.Ini}' AND '{Opc_Art.Fim}' +
   +ORDER BY Art$


'------------------------------------------------------------------------------
'- Lista de documentos --------------------------------------------------------
'------------------------------------------------------------------------------
Gerar registos       [Cmd]=LisDoc=+
   +SELECT * FROM {TB_EncMst} MST +
   +WHERE left(Tdoc$, 1) <> '#' AND MST.RecVal <> 255 +
   +AND   MST.[Tdoc$]  IN('{Opc_Tdoc}') +
   +AND   MST.[Ndoc$]  BETWEEN '{Opc_Ndoc.Ini}' AND '{Opc_Ndoc.Fim}' +
   +AND   MST.[CtEnt$] BETWEEN '{Opc_Ct.Ini}'   AND '{Opc_Ct.Fim}' +
   +AND   MST.Dtl      BETWEEN  {Opc_Dtl.Ini}   AND  {Opc_Dtl.Fim} +
   +ORDER BY Tdoc$, Ndoc$

'- por conta ------------------------------------------------------------------
Gerar registos       [Cmd]=LisDocCt=+
   +SELECT * FROM {TB_EncMst} MST +
   +WHERE left(Tdoc$, 1) <> '#' AND MST.RecVal <> 255 +
   +AND   MST.[Tdoc$]  IN('{Opc_Tdoc}') +
   +AND   MST.[Ndoc$]  BETWEEN '{Opc_Ndoc.Ini}' AND '{Opc_Ndoc.Fim}' +
   +AND   MST.[CtEnt$] BETWEEN '{Opc_Ct.Ini}'   AND '{Opc_Ct.Fim}' +
   +AND   MST.Dtl      BETWEEN  {Opc_Dtl.Ini}   AND  {Opc_Dtl.Fim} +
   +ORDER BY CtEnt$, Tdoc$, Ndoc$

##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=LisArt,Lista de artigos (XLS)

'formato
Saida/Impressora           [DocPrt]=NULA
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'especifico do documento
Opcao especifica           [DocEsp]=OpcEsp=???

'funcoes de listagem
Base para documento         [FxDOC]=ArtXls
Listar cabecalho            [FxCAB]=ArtXls_Cab
Listar linhas               [FxLIN]=ArtXls_Lin, 0
Listar fim                  [FxFIM]=ArtXls_Fim

Matriz auxiliar            [DocMat]=EncFraArt.xls

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=LisArt
Subtotalizadores           [SQLSbt]=
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=LisDoc,Lista de documentos (XLS)

'formato
Saida/Impressora           [DocPrt]=NULA
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'especifico do documento
Opcao especifica           [DocEsp]=OpcEsp=???

'funcoes de listagem
Base para documento         [FxDOC]=DocXls
Listar cabecalho            [FxCAB]=DocXls_Cab
Listar linhas               [FxLIN]=DocXls_Lin, 0
Listar fim                  [FxFIM]=DocXls_Fim

Matriz auxiliar            [DocMat]=EncFraDoc.xls

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=LisDoc
Subtotalizadores           [SQLSbt]=
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=DocCt,Documentos por conta (XLS)

'formato
Saida/Impressora           [DocPrt]=NULA
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'especifico do documento
Opcao especifica           [DocEsp]=OpcEsp=???

'funcoes de listagem
Base para documento         [FxDOC]=DocCtXls
Listar cabecalho            [FxCAB]=DocCtXls_Cab
Listar linhas               [FxLIN]=DocCtXls_Lin, 0
Listar fim                  [FxFIM]=DocCtXls_Fim

Matriz auxiliar            [DocMat]=EncFraDoc.xls

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=LisDocCt
Subtotalizadores           [SQLSbt]=CtEnt$
##


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

'Campos
vaNrg    = FrmNum$(5.0, cntReg)                             'numero do registo

'artigo
vaArt     = vuArt$                                          'artigo
vaArtCod  = vuArtCod$                                       'artigo - formatado
vaArtNom  = vuArtNom$                                       'nome

'documento
vaDocTdo  = vuDocTdo$                                       'tipo de documento
vaDocNdo  = vuDocNdo$                                       'numero de documento
vaDocNdv  = FrmNdo$("46", vuDocTdo$, vuDocNdo$)             'numero de documento formatado

'existencia
vaFraQuExi    = FrmNum$(6.2,vuFraQuExi)                     'quantidade existente
toFraQuExi    = FrmNum$(6.2,Total("vaFraQuExi",0))          'quantidade existente - total
s1FraQuExi    = FrmNum$(6.3,Total("vaFraQuExi",1))          'quantidade existente - subtotal 1

vaFraQuDis    = FrmNum$(6.2,vuFraQuDis)                     'quantidade disponivel
toFraQuDis    = FrmNum$(6.2,Total("vaFraQuDis",0))          'quantidade disponivel - total
s1FraQuDis    = FrmNum$(6.3,Total("vaFraQuDis",1))          'quantidade disponivel - subtotal 1

'clientes
vaFraCliQuEnc = FrmNum$(6.2,vuFraCliQuEnc)                  'clientes - quantidade de encomendas
toFraCliQuEnc = FrmNum$(6.2,Total("vaFraCliQuEnc",0))       'clientes - quantidade de encomendas - total
s1FraCliQuEnc = FrmNum$(6.3,Total("vaFraCliQuEnc",1))       'clientes - quantidade de encomendas - subtotal 1

vaFraCliQuFac = FrmNum$(6.2,vuFraCliQuFac)                  'clientes - quantidade de facturas
toFraCliQuFac = FrmNum$(6.2,Total("vaFraCliQuFac",0))       'clientes - quantidade de facturas - total
s1FraCliQuFac = FrmNum$(6.3,Total("vaFraCliQuFac",1))       'clientes - quantidade de facturas - subtotal 1

vaFraCliQuDev = FrmNum$(6.2,vuFraCliQuDev)                  'clientes - quantidade de devolucoes
toFraCliQuDev = FrmNum$(6.2,Total("vaFraCliQuDev",0))       'clientes - quantidade de devolucoes - total
s1FraCliQuDev = FrmNum$(6.3,Total("vaFraCliQuDev",1))       'clientes - quantidade de devolucoes - subtotal 1

vaFraCliQuPen = FrmNum$(6.2,vuFraCliQuPen)                  'clientes - quantidade pendente
toFraCliQuPen = FrmNum$(6.2,Total("vaFraCliQuPen",0))       'clientes - quantidade pendente - total
s1FraCliQuPen = FrmNum$(6.3,Total("vaFraCliQuPen",1))       'clientes - quantidade pendente - subtotal 1

'fornecedores
vaFraForQuEnc = FrmNum$(6.2,vuFraForQuEnc)                  'fornecedores - quantidade de encomendas
toFraForQuEnc = FrmNum$(6.2,Total("vaFraCliQuEnc",0))       'fornecedores - quantidade de encomendas - total
s1FraForQuEnc = FrmNum$(6.3,Total("vaFraCliQuEnc",1))       'fornecedores - quantidade de encomendas - subtotal 1

vaFraForQuFac = FrmNum$(6.2,vuFraForQuFac)                  'fornecedores - quantidade de facturas
toFraForQuFac = FrmNum$(6.2,Total("vaFraCliQuFac",0))       'fornecedores - quantidade de facturas - total
s1FraForQuFac = FrmNum$(6.3,Total("vaFraCliQuFac",1))       'fornecedores - quantidade de facturas - subtotal 1

vaFraForQuDev = FrmNum$(6.2,vuFraForQuDev)                  'fornecedores - quantidade de devolucoes
toFraForQuDev = FrmNum$(6.2,Total("vaFraCliQuDev",0))       'fornecedores - quantidade de devolucoes - total
s1FraForQuDev = FrmNum$(6.3,Total("vaFraCliQuDev",1))       'fornecedores - quantidade de devolucoes - subtotal 1

vaFraForQuPen = FrmNum$(6.2,vuFraForQuPen)                  'fornecedores - quantidade pendente
toFraForQuPen = FrmNum$(6.2,Total("vaFraCliQuPen",0))       'fornecedores - quantidade pendente - total
s1FraForQuPen = FrmNum$(6.3,Total("vaFraCliQuPen",1))       'fornecedores - quantidade pendente - subtotal 1

'documento/artigo
vaFraDocQuOrg = FrmNum$(6.2,vuFraDocQuOrg)                  'documento - quantidade original
toFraDocQuOrg = FrmNum$(6.2,Total("vaFraDocQuOrg",0))       'documento - quantidade original - total
s1FraDocQuOrg = FrmNum$(6.3,Total("vaFraDocQuOrg",1))       'documento - quantidade original - subtotal 1

vaFraDocQuUsa = FrmNum$(6.2,vuFraDocQuUsa)                  'documento - quantidade usada
toFraDocQuUsa = FrmNum$(6.2,Total("vaFraDocQuUsa",0))       'documento - quantidade usada - total
s1FraDocQuUsa = FrmNum$(6.3,Total("vaFraDocQuUsa",1))       'documento - quantidade usada - subtotal 1

vaFraDocQuDev = FrmNum$(6.2,vuFraDocQuDev)                  'documento - quantidade devolvida
toFraDocQuDev = FrmNum$(6.2,Total("vaFraDocQuDev",0))       'documento - quantidade devolvida - total
s1FraDocQuDev = FrmNum$(6.3,Total("vaFraDocQuDev",1))       'documento - quantidade devolvida - subtotal 1

vaFraDocQuDis = FrmNum$(6.2,vuFraDocQuDis)                  'documento - quantidade disponivel
toFraDocQuDis = FrmNum$(6.2,Total("vaFraDocQuDis",0))       'documento - quantidade disponivel - total
s1FraDocQuDis = FrmNum$(6.3,Total("vaFraDocQuDis",1))       'documento - quantidade disponivel - subtotal 1

vaFraDocQuDoc = FrmNum$(6.2,vuFraDocQuDoc)                  'documento - quantidade do documento
toFraDocQuDoc = FrmNum$(6.2,Total("vaFraDocQuDoc",0))       'documento - quantidade do documento - total
s1FraDocQuDoc = FrmNum$(6.3,Total("vaFraDocQuDoc",1))       'documento - quantidade do documento - subtotal 1

'diversos
##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (13) --->'Comentario
'- (25) --------------->'Comentario
'- (28) ------------------>'Comentario
'- (40) ------------------------------>'Comentario
'- (43) --------------------------------->'Comentario
'- (46) ------------------------------------>'Comentario
'- (49) --------------------------------------->'Comentario
'- (52) ------------------------------------------>'Comentario
'- (55) --------------------------------------------->'Comentario
'- (58) ------------------------------------------------>'Comentario
'- (61) --------------------------------------------------->'Comentario


Sub FxIni 'funcao de inicializacao
cnt=0                                              'limpar contador
end sub


Sub FxFim 'funcao de finalizacao
'nada a executar
end sub


Sub Lst_AJT 'ajuste
'nada a executar
'MsgBox "", "TIT", "MSG"
end sub


'==============================================================================
'= COM = Funcoes comuns =======================================================
'==============================================================================
'------------------------------------------------------------------------------
'- [VAR] - Variaveis ----------------------------------------------------------
'------------------------------------------------------------------------------
Sub VarRegPrp_Art 'preparar variaveis do registo - artigo
regIdr  = SqlCmp("RecIde")                'IDR
regOpc$ = SqlCmp$("DivOpc$")              'campos opcionais
regArt$ = SqlCmp$("Art$")                 'artigo
regNom$ = SqlCmp$("Nome1$")               'nome do artigo

'valores para listar/acumular
vuArt$    = regArt$                       'artigo
vuArtCod$ = StcCodFrm$(regArt$)           'artigo formatado
vuArtNom$ = StcArtIde$("N1", regArt$)     'nome do artigo

'dados do fraccionamento
okFra = EncFraCalcArt(vuArt$)             'calcular dados do artigo

vuFraArtCod$  = VarCom$("FRA.ART.COD")    'artigo
vuFraArtNom$  = VarCom$("FRA.ART.NOM")    'nome do artigo

vuFraQuExi    = VarCom("FRA.QUEXI")       'quantidade existente
vuFraQuDis    = VarCom("FRA.QUDIS")       'quantidade disponivel

vuFraForQuEnc = VarCom("FRA.FOR.QUENC")   'fornecedores - quantidade de encomendas
vuFraForQuFac = VarCom("FRA.FOR.QUFAC")   'fornecedores - quantidade de facturas
vuFraForQuDev = VarCom("FRA.FOR.QUDEV")   'fornecedores - quantidade de devolucoes
vuFraForQuPen = VarCom("FRA.FOR.QUPEN")   'fornecedores - quantidade pendente
vuFraForLpe$  = VarCom$("FRA.FOR.LPE")    'fornecedores - lista de encomendas pendentes

vuFraCliQuEnc = VarCom("FRA.CLI.QUENC")   'clientes - quantidade de encomendas
vuFraCliQuFac = VarCom("FRA.CLI.QUFAC")   'clientes - quantidade de facturas
vuFraCliQuDev = VarCom("FRA.CLI.QUDEV")   'clientes - quantidade de devolucoes
vuFraCliQuPen = VarCom("FRA.CLI.QUPEN")   'clientes - quantidade pendente
vuFraCliLpe$  = VarCom$("FRA.CLI.LPE")    'clientes - lista de encomendas pendentes

'diversos
vObsDiv$ = ""                             'observacoes
call VarAcmIni                            'inicializar acumuladores
end sub


Sub VarRegPrp_Doc 'preparar variaveis do registo - documento
regIdr  = SqlCmp("RecIde")                'IDR
regOpc$ = SqlCmp$("DivOpc$")              'campos opcionais
regTdo$ = SqlCmp$("Tdoc$")                'tipo de documento
regNdo$ = SqlCmp$("Ndoc$")                'numero de documento
regDtl  = SqlCmp("Dtl")                   'data
regCte$ = SqlCmp$("CtEnt$")               'conta

ctuCod$ = regCte$                         'conta a usar

'valores calculados
call Com_Var_PrpCtu                       'preparar variaveis - conta

'valores para listar/acumular
vuDocTdo$ = regTdo$                       'tipo de documento
vuDocNdo$ = regNdo$                       'numero de documento
vuDocDtl  = regDtl                        'data

'dados do fraccionamento
fraNop = EncFraCalcDoc(regTdo$, regNdo$)  'calcular dados do documento

'diversos
vObsDiv$ = ""                             'observacoes
call VarAcmIni                            'inicializar acumuladores
end sub


Sub VarRegPrp_DocCon 'preparar valores do registo - documento/consultar artigo
okArt = EncFraCalcDocCon(artIdx)          'consultar dados do artigo

vuFraDocArt$  = VarCom$("FRA.DOC.ART")    'documento - artigo
vuFraDocQuOrg = VarCom("FRA.DOC.QUORG")   'documento - quantidade original
vuFraDocQuUsa = VarCom("FRA.DOC.QUUSA")   'documento - quantidade usada
vuFraDocQuDev = VarCom("FRA.DOC.QUDEV")   'documento - quantidade devolvuda
vuFraDocQuDis = VarCom("FRA.DOC.QUDIS")   'documento - quantidade disponivel
vuFraDocQuDoc = VarCom("FRA.DOC.QUDOC")   'documento - quantidade do documento

'vuFraDocLpe$  = VarCom$("FRA.DOC.LPE")    'documento - lista de ligacoes

vuArt$    = vuFraDocArt$                  'artigo
vuArtCod$ = StcCodFrm$(vuArt$)            'artigo formatado
vuArtNom$ = StcArtIde$("N1", vuArt$)      'nome do artigo
end sub


Sub VarAcmIni 'inicializar acumuladores
'nada a executar
end sub


Sub VarAcmExe 'acumular valores
res = AcmExe("vaNrg", 1)                           'numero de registos

res = AcmExe("vaFraQuExi", vuFraQuExi)             'quantidade existente
res = AcmExe("vaFraQuDis", vuFraQuDis)             'quantidade disponivel

'clientes
res = AcmExe("vaFraCliQuEnc", vuFraCliQuEnc)       'clientes - quantidade de encomendas
res = AcmExe("vaFraCliQuFac", vuFraCliQuFac)       'clientes - quantidade de facturas
res = AcmExe("vaFraCliQuDev", vuFraCliQuDev)       'clientes - quantidade de devolucoes
res = AcmExe("vaFraCliQuPen", vuFraCliQuPen)       'clientes - quantidade pendente

'fornecedores
res = AcmExe("vaFraForQuEnc", vuFraForQuEnc)       'fornecedores - quantidade de encomendas
res = AcmExe("vaFraForQuFac", vuFraForQuFac)       'fornecedores - quantidade de facturas
res = AcmExe("vaFraForQuDev", vuFraForQuDev)       'fornecedores - quantidade de devolucoes
res = AcmExe("vaFraForQuPen", vuFraForQuPen)       'fornecedores - quantidade pendente

'documento/artigo
res = AcmExe("vaFraDocQuOrg", vuFraDocQuOrg)       'documento - quantidade original
res = AcmExe("vaFraDocQuUsa", vuFraDocQuUsa)       'documento - quantidade usada
res = AcmExe("vaFraDocQuDev", vuFraDocQuDev)       'documento - quantidade devolvida
res = AcmExe("vaFraDocQuDis", vuFraDocQuDis)       'documento - quantidade disponivel
res = AcmExe("vaFraDocQuDoc", vuFraDocQuDoc)       'documento - quantidade do documento
end sub


Sub Com_Var_PrpCtu 'preparar variaveis - conta
res  = CtaContaLer(ctuCod$)                        'preparar dados da conta

'msgbox "",ctuCod$,res

ctuCov$ = CTA_MST_Ct$                              'codigo formatado
ctuNom$ = CTA_MST_Nome$                            'nome
ctuIde$ = ctuCov$ + " - " + ctuNom$                'identificacao
end sub


'------------------------------------------------------------------------------
'- [TXT] - Listar em modo texto -----------------------------------------------
'------------------------------------------------------------------------------
'nao ha


'------------------------------------------------------------------------------
'- [XLS] - Listar para EXCEL --------------------------------------------------
'------------------------------------------------------------------------------
Sub ComXls_DocIni 'inicializar documento
'msgbox "","DocIni",comCabTit$

call XlsComDoc_IniMat                              'inicializar documento por matriz

'preparacao especifica
res = XlsWks("Valores")                            'activar worksheet

'preparar cabecalho
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
lstTit$ = comCabTit$                               'titulo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
res = XlsIdeLst("Emp_Nom", empNom$)                'nome da empresa
res = XlsIdeLst("Lst_Tit", lstTit$)                'titulo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data

call XlsComLin_Ini                                 'iniciar linhas
end sub


Sub ComXls_DocFim 'terminar documento
'res = XlsWksAct("A", 1)                            'activar worksheet
call XlsComDoc_Fim                                 'terminar/mostrar documento
end sub


Sub ComXls_IncLin 'incrementar linha
call XlsComLin_IncRep                              'incrementar linha + repor formato normal

zon$ = XlsZon$(liUsa, coArtNom)                    'zona
res = XlsAli(zon$, "4")                            'alinhamento
end sub


Sub ComXls_LinSep 'linha de separacao
call ComXls_IncLin                                 'incrementar linha
end sub


'- Grupos ---------------------------------------------------------------------
Sub ComXls_LinTit1 'titulo 1
'if grpIde$ <> "" then                              'ha titulo ?
   'msgbox "", "Titulo",grpIde$

   call ComXls_IncLin                              'incrementar linha	
   call XlsComLin_ActB                             'activar linha em BOLD

   res = XlsLst(liUsa, coIdeGrp, grpIde$)          'listar identificacao
'end if

grpIde$ = ""                                       'anular identificacao
end sub


Sub ComXls_SbtNrg 'numero de registos do subtotal
res = XlsLst(liUsa, coNrg, vNrg)                   'numero de registos
res = XlsLst(liUsa, coIds, ideSbt$)                'identificar subtotal

zon$ = XlsZon$(liUsa, coNrg)                       'zona
'zon$ = XlsZon$(liUsa, coNrg, liUsa, coIds)         'zona

res = XlsAli(zon$, "|")                            'alinhamento
end sub


'------------------------------------------------------------------------------
'- [XLS/ART] - Listar para EXCEL - Artigo -------------------------------------
'------------------------------------------------------------------------------
Sub ComXls_Art_Lin 'linha de valores
call ComXls_IncLin                                 'incrementar linha

call VarRegPrp_Art                                 'preparar valores
call VarAcmExe                                     'acumular valores

'listar
res = XlsLst(liUsa, coArtCod, vuArtCod$)           'artigo
res = XlsLst(liUsa, coArtNom, vuArtNom$)           'nome

res = XlsLst(liUsa, coQuExi, vuFraQuExi)           'quantidade existente
res = XlsLst(liUsa, coQuDis, vuFraQuDis)           'quantidade disponivel

res = XlsLst(liUsa, coForQuEnc, vuFraForQuEnc)     'fornecedores - quantidade de encomendas
res = XlsLst(liUsa, coForQuFac, vuFraForQuFac)     'fornecedores - quantidade de facturas
res = XlsLst(liUsa, coForQuDev, vuFraForQuDev)     'fornecedores - quantidade de devolucoes
res = XlsLst(liUsa, coForQuPen, vuFraForQuPen)     'fornecedores - quantidade pendente

res = XlsLst(liUsa, coCliQuEnc, vuFraCliQuEnc)     'clientes - quantidade de encomendas
res = XlsLst(liUsa, coCliQuFac, vuFraCliQuFac)     'clientes - quantidade de facturas
res = XlsLst(liUsa, coCliQuDev, vuFraCliQuDev)     'clientes - quantidade de devolucoes
res = XlsLst(liUsa, coCliQuPen, vuFraCliQuPen)     'clientes - quantidade pendente

res = XlsLst(liUsa, coObsDiv, vObsDiv$)            'observacoes

'res = XlsLst(liUsa, coForLpe, vuFraForLpe$)        'fornecedores - lista de encomendas pendentes
'res = XlsLst(liUsa, coCliLpe, vuFraCliLpe$)        'clientes - lista de encomendas pendentes
end sub


'- Terminar/Totais ------------------------------------------------------------
Sub ComXls_Art_Fim 'terminar
call XlsComLin_Fim                                 'fim de linhas

ltoUsa = LinFim                                    'linha para totais
liUsa  = ltoUsa                                    'linha a usar

totNiv = 0                                         'nivel de total
call ComXls_Art_Vto                                'listar valor total
end sub


Sub ComXls_Art_Vto 'listar valor total
nto = totNiv                                       'nivel de total

'valores a listar
vtoNrg      = TotCnt("vaNrg", nto)                 'numero de registos

vtoQuExi  = Total("vaFraQuExi", nto)               'total de existente
vtoQuDis  = Total("vaFraQuDis", nto)               'total de disponivel

vtoCliQuEnc = Total("vaFraCliQuEnc", nto)          'clientes - quantidade de encomendas
vtoCliQuFac = Total("vaFraCliQuFac", nto)          'clientes - quantidade de facturas
vtoCliQuDev = Total("vaFraCliQuDev", nto)          'clientes - quantidade de devolucoes
vtoCliQuPen = Total("vaFraCliQuPen", nto)          'clientes - quantidade pendente

vtoForQuEnc = Total("vaFraForQuEnc", nto)          'clientes - quantidade de encomendas
vtoForQuFac = Total("vaFraForQuFac", nto)          'clientes - quantidade de facturas
vtoForQuDev = Total("vaFraForQuDev", nto)          'clientes - quantidade de devolucoes
vtoForQuPen = Total("vaFraForQuPen", nto)          'clientes - quantidade pendente

'listar
res = XlsLst(liUsa, coNrg, vtoNrg)                 'numero de registos

res = XlsLst(liUsa, coQuExi, vtoQuExi)             'quantidade existente
res = XlsLst(liUsa, coQuDis, vtoQuDis)             'quantidade disponivel

res = XlsLst(liUsa, coCliQuEnc, vtoCliQuEnc)       'clientes - quantidade de encomendas
res = XlsLst(liUsa, coCliQuFac, vtoCliQuFac)       'clientes - quantidade de facturas
res = XlsLst(liUsa, coCliQuDev, vtoCliQuDev)       'clientes - quantidade de devolucoes
res = XlsLst(liUsa, coCliQuPen, vtoCliQuPen)       'clientes - quantidade pendente

res = XlsLst(liUsa, coForQuEnc, vtoForQuEnc)       'fornecedores - quantidade de encomendas
res = XlsLst(liUsa, coForQuFac, vtoForQuFac)       'fornecedores - quantidade de facturas
res = XlsLst(liUsa, coForQuDev, vtoForQuDev)       'fornecedores - quantidade de devolucoes
res = XlsLst(liUsa, coForQuPen, vtoForQuPen)       'fornecedores - quantidade pendente

x = TotLpz(nto)                                    'limpar totais
end sub


'------------------------------------------------------------------------------
'- [XLS/DOC] - Listar para EXCEL - Documento ----------------------------------
'------------------------------------------------------------------------------
Sub ComXls_Doc_Lin 'linha de valores
call ComXls_IncLin                                 'incrementar linha

call VarRegPrp_Doc                                 'preparar valores

vNdv$ = FrmNdo$("46", vuDocTdo$, vuDocNdo$)        'formatar numero de documento
vDtl$ = FrmDt$("", vuDocDtl)                       'formatar data do documento

'listar
call XlsComLin_ActBI                               'activar linha em BOLD+ITALICO
res = XlsLst(liUsa, coDocTdo, vuDocTdo$)           'tipo de documento
res = XlsLst(liUsa, coDocNdo, vNdv$)               'numero de documento
res = XlsLst(liUsa, coDocDtl, vDtl$)               'data do documento

call ComXls_Doc_LinArt                             'linhas de artigos
end sub


Sub ComXls_Doc_LinArt 'linhas de artigos
for artIdx = 1 to fraNop
call VarRegPrp_DocCon                              'consultar artigo
call VarAcmExe                                     'acumular valores
call ComXls_IncLin                                 'incrementar linha

res = XlsLst(liUsa, coArtCod, vuArtCod$)           'artigo
res = XlsLst(liUsa, coArtNom, vuArtNom$)           'nome

res = XlsLst(liUsa, coDocQuOrg, vuFraDocQuOrg)     'documento - quantidade original
res = XlsLst(liUsa, coDocQuUsa, vuFraDocQuUsa)     'documento - quantidade usada
res = XlsLst(liUsa, coDocQuDev, vuFraDocQuDev)     'documento - quantidade devolvida
res = XlsLst(liUsa, coDocQuDis, vuFraDocQuDis)     'documento - quantidade disponivel

res = XlsLst(liUsa, coObsDiv, vObsDiv$)            'observacoes

'vObsDiv$ = vuFraDocQuDoc                           '#DBG#
'res = XlsLst(liUsa, coDocLpe, vuFraDocLpe$)        'documento - lista de encomendas pendentes
next

call ComXls_IncLin                                 'incrementar linha
end sub


'- Grupos de valores ----------------------------------------------------------
Sub ComXls_Doc_LinSbt1 'subtotal 1
totNiv = 1                                         'nivel de total
vNrg   = TotCnt("vaNrg", 1)                        'numero de registos

'if vNrg > 1 then                                   'listar numero ?
   call ComXls_IncLin                              'incrementar linha	
   call XlsComLin_ActBI                            'activar linha em BOLD+ITALICO

   call ComXls_SbtNrg                              'numero de registos do subtotal
   call ComXls_Doc_Vto                             'listar valor total
'end if

call ComXls_IncLin                                 'incrementar linha	
x = TotLpz(1)                                      'limpar totais
end sub


'- Terminar/Totais ------------------------------------------------------------
Sub ComXls_Doc_Fim 'terminar
call XlsComLin_Fim                                 'fim de linhas

ltoUsa = LinFim                                    'linha para totais
liUsa  = ltoUsa                                    'linha a usar

totNiv = 0                                         'nivel de total
call ComXls_Doc_Vto                                'listar valor total
end sub


Sub ComXls_Doc_Vto 'listar valor total
nto = totNiv                                       'nivel de total

'valores a listar
vtoNrg      = TotCnt("vaNrg", nto)                 'numero de registos

vtoDocQuOrg = Total("vaFraDocQuOrg", nto)          'documento - quantidade original
vtoDocQuUsa = Total("vaFraDocQuUsa", nto)          'documento - quantidade usada
vtoDocQuDev = Total("vaFraDocQuDev", nto)          'documento - quantidade devolvida
vtoDocQuDis = Total("vaFraDocQuDis", nto)          'documento - quantidade disponivel
vtoDocQuDoc = Total("vaFraDocQuDoc", nto)          'documento - quantidade do documento

'listar
res = XlsLst(liUsa, coNrg, vtoNrg)                 'numero de registos

res = XlsLst(liUsa, coDocQuOrg, vtoDocQuOrg)       'documento - quantidade original
res = XlsLst(liUsa, coDocQuUsa, vtoDocQuUsa)       'documento - quantidade usada
res = XlsLst(liUsa, coDocQuDev, vtoDocQuDev)       'documento - quantidade devolvida
res = XlsLst(liUsa, coDocQuDis, vtoDocQuDis)       'documento - quantidade disponivel
'res = XlsLst(liUsa, coDocQuDoc, vtoDocQuDoc)       'documento - quantidade do documento

x = TotLpz(nto)                                    'limpar totais
end sub


'==============================================================================
'- [XLS] - Listar para XLS ----------------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [XLS] - ArtXls - Lista de artigos ------------------------------------------
'------------------------------------------------------------------------------
Sub ArtXls_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:EncFraArt.xls"                   'nome do ficheiro a gerar
xlsOpcWks$ = ""                                    'nome da woorksheet

comCabTit$ = "Lista de Artigos"                    'titulo da listagem
call ComXls_DocIni                                 'inicializar documento

'definicao das colunas
coIdeGrp   = 2                                     'identificacao de grupo

coBas      = 2                                     'coluna base
coArtCod   = 3                                     'artigo
coArtNom   = 4                                     'nome

coQuExi    = 5                                     'quantidade existente
coQuDis    = 6                                     'quantidade disponivel

coCliQuEnc = 7                                     'cliente - quantidade/encomendas
coCliQuFac = 8                                     'cliente - quantidade/facturas
coCliQuDev = 9                                     'cliente - quantidade/devolucoes
coCliQuPen = 10                                    'cliente - quantidade/pendente

coForQuEnc = 11                                    'fornecedor - quantidade/encomendas
coForQuFac = 12                                    'fornecedor - quantidade/facturas
coForQuDev = 13                                    'fornecedor - quantidade/devolucoes
coForQuPen = 14                                    'fornecedor - quantidade/pendente

coObsDiv   = 15                                    'observacoes

coForLpe   = 16                                    'fornecedor - lista de pendentes
coCliLpe   = 17                                    'cliente - lista de pendentes
end sub


Sub ArtXls_DocFim 'terminar documento
call ComXls_DocFim                                 'terminar documento
end sub


Sub ArtXls_LinTit1 'titulo 1
call ComXls_Art_LinTit1                            'titulo 1
end sub


Sub ArtXls_LinSbt1 'subtotal 1
call ComXls_Art_LinSbt1                            'subtotal 1
end sub


Sub ArtXls_Lin 'linha de valores
call ComXls_Art_Lin                                'linha de valores
end sub


Sub ArtXls_Fim 'terminar
'msgbox "","ArtXls/FIM"

call ComXls_Art_Fim                                 'terminar
end sub


'------------------------------------------------------------------------------
'- [XLS] - DocXls - Lista de documentos ---------------------------------------
'------------------------------------------------------------------------------
Sub DocXls_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:EncFraDoc.xls"                   'nome do ficheiro a gerar
xlsOpcWks$ = ""                                    'nome da woorksheet

comCabTit$ = "Lista de Documentos"                 'titulo da listagem
call ComXls_DocIni                                 'inicializar documento

'definicao das colunas
coNrg      = 3                                     'numero de registos
'coIds      = 4                                     'identificacao de subtotal

coBas      = 2                                     'coluna base
coDocTdo   = 3                                     'tipo de documento
coDocNdo   = 4                                     'numero de documento
coDocDtl   = 5                                     'data

coArtCod   = 3                                     'artigo
coArtNom   = 4                                     'nome

coDocQuOrg = 6                                     'documento - quantidade/original
coDocQuUsa = 7                                     'documento - quantidade/usada
coDocQuDev = 8                                     'documento - quantidade/devolucoes
coDocQuDis = 9                                     'documento - quantidade/disponivel

coObsDiv   = 10                                    'observacoes

coDocQuDoc = coObsDiv                              'documento - quantidade/documento
end sub


Sub DocXls_DocFim 'terminar documento
call ComXls_DocFim                                 'terminar documento
end sub


Sub DocXls_Lin 'linha de valores
call ComXls_doc_Lin                                'linha de valores
end sub


Sub DocXls_Fim 'terminar
call ComXls_Doc_Fim                                'terminar
end sub


'------------------------------------------------------------------------------
'- [XLS] - DocXls - Documentos por conta --------------------------------------
'------------------------------------------------------------------------------
Sub DocCtXls_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:EncFraDoc.xls"                   'nome do ficheiro a gerar
xlsOpcWks$ = ""                                    'nome da woorksheet

comCabTit$ = "Documentos por Conta"                'titulo da listagem
call ComXls_DocIni                                 'inicializar documento

'definicao das colunas
coIdeGrp   = 3                                     'identificacao de grupo

coNrg      = 3                                     'numero de registos
coIds      = 4                                     'identificacao de subtotal

coBas      = 2                                     'coluna base
coDocTdo   = 3                                     'tipo de documento
coDocNdo   = 4                                     'numero de documento
coDocDtl   = 5                                     'data

coArtCod   = 3                                     'artigo
coArtNom   = 4                                     'nome

coDocQuOrg = 6                                     'documento - quantidade/encomendas
coDocQuUsa = 7                                     'documento - quantidade/facturas
coDocQuDev = 8                                     'documento - quantidade/devolucoes
coDocQuDis = 9                                     'documento - quantidade/disponivel

coObsDiv   = 10                                    'observacoes

coDocLpe   = 11                                    'documento - lista de pendentes
end sub


Sub DocCtXls_DocFim 'terminar documento
call ComXls_DocFim                                 'terminar documento
end sub


Sub DocCtXls_LinTit1 'titulo 1
call VarRegPrp_Doc                                 'preparar valores
call Com_Var_PrpCtu                                'preparar variaveis - conta

'msgbox "","", ctuIde$

grpIde$ = ctuIde$                                  'identificacao do grupo
call ComXls_LinTit1                                'titulo 1
end sub


Sub DocCtXls_LinSbt1 'subtotal 1
ideSbt$ = "Subtotal da conta"                      'identificacao de subtotal
call ComXls_Doc_LinSbt1                            'subtotal 1
end sub


Sub DocCtXls_Lin 'linha de valores
call ComXls_Doc_Lin                                'linha de valores
end sub


Sub DocCtXls_Fim 'terminar
call ComXls_Doc_Fim                                'terminar
end sub

##


'==============================================================================
#INC - Funcoes comuns
'==============================================================================
Funcoes comuns                    =[SIG_Dir.Div],LsComPgm.std
Funcoes comuns XLS                =[SIG_LST_DIR.XLS],XlsCom_Pgm.inc
##


