'Nome       : StcInv.std
'Tipo       : LST
'Data       : 2016/05/05
'Versao     : 1.0a
'Descricao  : Inventario de Stocks

'=============================================================================
'#VER - Historia de modificacoes
'=============================================================================
'- Versao : 1.0a  ____/__/__ -------------------------------------------------
'Limitar armazens a usar (usa opcao de armazens de entrada para limite)
'Nao listar artigos comecados por '#' ou espaco

'- Versao : 1.0   2016/04/15 -------------------------------------------------
'Versao base
'Adaptacao de Invent.std


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
'Tipo de armazens                    [TARZ]=?
'Numero de armazens                  [NARZ]=?
##


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


'------------------------------------------------------------------------------
'- generico -------------------------------------------------------------------
'------------------------------------------------------------------------------
Nome do artigo [Cmd]=ArtNom=+
   +SELECT Nome1$ as [NOME$] +
   +FROM {TB_StcMst} +
   +WHERE Art$ = '{ART.COD}'


Nome do armazem [Cmd]=ArzNom=+
   +SELECT IdeNor$ as [NOM$] +
   +FROM StcArzIde +
   +WHERE Arz = {ARZ.COD}


'------------------------------------------------------------------------------
'- Acumulados por artigo ------------------------------------------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=ArtAcm=+
   +SELECT ART.Art$ AS [Art$], Art.Nome1$ AS [Nom$], +
   +ACM.UPC  AS UPC,   ACM.Pmc  AS PMC, +
   +ACM.QEnt AS EntQu, ACM.VEnt AS EntVt, +
   +ACM.QSai AS SaiQu, ACM.VSai AS SaiVt, +
   +1 AS UNI +
   +FROM {TB_StcMst} AS ART +
   +LEFT JOIN StcAcm AS ACM ON ART.Art$ = ACM.Art$ +
   +WHERE ART.RecVal <> 255 AND ART.RecSit <> 255 +
   +AND   LEFT(ART.Art$, 1) <> '#' +
   +AND   ART.Art$           > '#' +
   +AND   (ACM.Ano  = {Ano} OR ACM.Ano IS NULL) +
   +AND   (ACM.Arz = 0      OR ACM.Arz IS NULL) +
   +AND   ART.Art$ BETWEEN '{Opc_Art.Ini}'   AND '{Opc_Art.Fim}' +
   +ORDER BY ART.Art$


'------------------------------------------------------------------------------
'- Acumulados por artigo/armazem - exportar -----------------------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=ArtArzAcm=+
   +SELECT ART.Art$ AS [Art$], Art.Nome1$ AS [Nom$], +
   +ACM.Arz  AS ARZ, +
   +ACM.UPC  AS UPC,   ACM.Pmc  AS PMC, +
   +ACM.QEnt AS EntQu, ACM.VEnt AS EntVt, +
   +ACM.QSai AS SaiQu, ACM.VSai AS SaiVt, +
   +1 AS UNI +
   +FROM {TB_StcMst} AS ART +
   +LEFT JOIN StcAcm AS ACM ON ART.Art$ = ACM.Art$ +
   +WHERE ACM.RecVal <> 255 AND ACM.RecSit <> 255 +
   +AND   LEFT(ART.Art$, 1) <> '#' +
   +AND   ART.Art$           > '#' +
   +AND   ACM.Ano  = {Ano} +
   +AND   ART.Art$ BETWEEN '{Opc_Art.Ini}'   AND '{Opc_Art.Fim}' +
   +AND   ACM.Arz  BETWEEN  {Opc_ArzEnt.Ini} AND  {Opc_ArzEnt.Fim} +
   +ORDER BY ART.Art$, ACM.Arz


'------------------------------------------------------------------------------
'- Existencia por armazem/identificacao ---------------------------------------
'------------------------------------------------------------------------------
Gerar registos      [Cmd]=ArzAcmIde=+
   +SELECT ACM.*, ARZ.* +
   +FROM {TB_StcAcm} AS ACM +
   +LEFT JOIN StcArzIde AS ARZ ON ACM.Arz = ARZ.Arz +
   +WHERE ARZ.RecVal <> 255 AND ARZ.RecVal <> 255 +
   +AND   ACM.Ano = {Ano}   AND ACM.Arz <> 0 +
   +AND   Art$    BETWEEN '{Opc_Art.Ini}'   AND '{Opc_Art.Fim}' +
   +AND   Ct$     BETWEEN '{Opc_Ct.Ini}'    AND '{Opc_Ct.Fim}' +
   +AND   Dtl     BETWEEN  {Opc_Dtl.Ini}    AND  {Opc_Dtl.Fim} +
   +ORDER BY ACM.Arz

##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=XlsInvArt,Inventario por artigo (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    [DocEsp]=

'funcoes de listagem
Base para documento         [FxDOC]=XlsInvArt
Listar cabecalho            [FxCAB]=XlsInvArt_Cab
Listar linhas               [FxLIN]=XlsInvArt_Lin
Listar fim                  [FxFIM]=XlsInvArt_Fim

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

Matriz auxiliar            [DocMat]=StcInvArz.xls
##


'==============================================================================
#DOC - Inventario de artigos
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=XlsInvArz,Inventario por armazem (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    [DocEsp]=

'funcoes de listagem
Base para documento         [FxDOC]=XlsInvArz
Listar cabecalho            [FxCAB]=XlsInvArz_Cab
Listar linhas               [FxLIN]=XlsInvArz_Lin
Listar fim                  [FxFIM]=XlsInvArz_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=ArtArzAcm
Subtotalizadores           [SQLSbt]=Art$

Matriz auxiliar            [DocMat]=StcInvArz.xls
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Tipo     = MemTxt$(1)
Pag      = Doc_CntPag
Tit080   = TxTit$("TT=10CPI, LD, PT=40C",Memtxt$(1))
Tit132   = TxTit$("TT=16CPI, LD, PT=66C",Memtxt$(1))
DataExt  = FrmVal$(Sig_DtHoje,45,0)

'- dados a listar -------------------------------------------------------------
vaMovDia = FrmDt$("",vuMovDia$)                    'data do dia
vaObs    = usaObs$                                 'observacaoes
vaSbtIde = ideSbt$                                 'identificacao de subtotal


'------------------------------------------------------------------------------
'- Valores --------------------------------------------------------------------
'------------------------------------------------------------------------------
vaIdeSbt  = ideSbt$                             'identificacao de subtotal

'artigo
vaArt    = vuArtCod$                            'codigo
vaArtCov = vuArtCov$                            'codigo formatado
vaNom    = vuNom$                               'nome do artigo

'contagem
toNrg    = FrmNum$(9.0,TotCnt("vaArtCov",0))    'numero de registos - total
s1Nrg    = FrmNum$(9.0,TotCnt("vaArtCov",1))    'numero de registos - subtotal 1
s2Nrg    = FrmNum$(9.0,TotCnt("vaArtCov",2))    'numero de registos - subtotal 2

'existencia - quantidade/valor
vaExiQu  = FrmNum$(06.3,vuExiQu)                'quantidade
toExiQu  = FrmNum$(06.3,Total("vaExiQu",0))     'quantidade - total
s1ExiQu  = FrmNum$(06.3,Total("vaExiQu",1))     'quantidade - subtotal 1
s2ExiQu  = FrmNum$(06.3,Total("vaExiQu",2))     'quantidade - subtotal 2

vaExiVt  = FrmNum$(12.2,vuExiVt)                'valor
toExiVt  = FrmNum$(12.2,Total("vaExiVt",0))     'valor - total
s1ExiVt  = FrmNum$(12.2,Total("vaExiVt",1))     'valor - subtotal 1
s2ExiVt  = FrmNum$(12.2,Total("vaExiVt",2))     'valor - subtotal 2

'entradas - quantidade/valor
vaEntQu  = FrmNum$(06.3,vuEntQu)                'quantidade
toEntQu  = FrmNum$(06.3,Total("vaEntQu",0))     'quantidade - total
s1EntQu  = FrmNum$(06.3,Total("vaEntQu",1))     'quantidade - subtotal 1
s2EntQu  = FrmNum$(06.3,Total("vaEntQu",2))     'quantidade - subtotal 2

vaEntVt  = FrmNum$(12.2,vuEntVt)                'valor
toEntVt  = FrmNum$(12.2,Total("vaEntVt",0))     'valor - total
s1EntVt  = FrmNum$(12.2,Total("vaEntVt",1))     'valor - subtotal 1
s2EntVt  = FrmNum$(12.2,Total("vaEntVt",2))     'valor - subtotal 2

'saidas - quantidade/valor
vaSaiQu  = FrmNum$(06.3,vuSaiQu)                'quantidade
toSaiQu  = FrmNum$(06.3,Total("vaSaiQu",0))     'quantidade - total
s1SaiQu  = FrmNum$(06.3,Total("vaSaiQu",1))     'quantidade - subtotal 1
s2SaiQu  = FrmNum$(06.3,Total("vaSaiQu",2))     'quantidade - subtotal 2

vaSaiVt  = FrmNum$(12.2,vuSaiVt)                'valor
toSaiVt  = FrmNum$(12.2,Total("vaSaiVt",0))     'valor - total
s1SaiVt  = FrmNum$(12.2,Total("vaSaiVt",1))     'valor - subtotal 1
s2SaiVt  = FrmNum$(12.2,Total("vaSaiVt",2))     'valor - subtotal 2

##


'==============================================================================
#INC - Variaveis comuns
'==============================================================================
Variaveis  comuns                 =[SIG_Dir.Div],LsComVar.std
##


'==============================================================================
#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
'- (64) ------------------------------------------------------>'Comentario
'- (67) --------------------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario
'- (70) ------------------------------------------------------------>'Comentario


Sub FxIni 'funcao de inicializacao
'nada a excutar
end sub


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


Sub Lst_AJT 'ajuste
'nada a excutar
end sub


'==============================================================================
'- Comum ----------------------------------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [REG] - Variaveis do registos ----------------------------------------------
'------------------------------------------------------------------------------
Sub Com_Var_Con 'consultar variaveis
'- (52) ------------------------------------------>'Comentario
'campos
vuArt$       = SqlCmp$("Art$")                     'artigo - codigo
vuNom$       = SqlCmp$("Nom$")                     'artigo - nome

vuUpc        = SqlCmp("Upc")                       'UPZ
vuPmc        = SqlCmp("Pmc")                       'PMC

vuArz        = SqlCmp("Arz")                       'armazem

'entradas
vuEntQu      = SqlCmp("EntQu")                     'entradas - quantidade
vuEntVt      = SqlCmp("EntVt")                     'entradas - valor

'saidas
vuSaiQu      = SqlCmp("SaiQu")                     'saidas - quantidade
vuSaiVt      = SqlCmp("SaiVt")                     'saidas - valor

'msgbox "", vuSaiQu,vuSaiVt

'valores calculados
vuArtCov$    = StcCodFrm$(vuArt$)                  'artigo - codigo formatado
vuArtIde$    = vuArtCov$ + " - " + vuNom$          'artigo - identificacao

vuExiQu      = vuEntQu - vuSaiQu                   'existencia - quantidade
vuExiVt      = vuEntVt - vuSaiVt                   'existencia - valor

if vuEntQu <> 0 then                               'ha quantidade de entradas ?
   vuEntVu = vuEntVt / vuEntQu                     'calcular valor unitario
else
   vuEntVu = 0                                     'anular valor unitario
end if

if vuSaiQu <> 0 then                               'ha quantidade de saidas ?
   vuSaiVu = vuSaiVt / vuSaiQu                     'calcular valor unitario
else
   vuSaiVu = 0                                     'anular valor unitario
end if

if vuExiQu <> 0 then                               'ha quantidade de existencia ?
   vuExiVu = vuExiVt / vuExiQu                     'calcular valor unitario
else
   vuExiVu = 0                                     'anular valor unitario
end if

'grupos de variaveis
call Com_Var_PrpArZ                                'preparar variaveis - armazem

'valores adicionais
usaObs$ = ""                                       'anular observacoes
end sub


Sub Com_Var_PrpArZ 'preparar variaveis - armazem
res       = SqlOpcAct("ARZ.COD", vuArz)            'registar armazem
vuArzNom$ = SqlCalc$("ARZNOM")                     'preparar nome do armazem

vuArzCov$ = NumTxt$(vuArz, 4)                      'codigo formatado
'vuArzNom$ = SqlOpcCon$("IdeNor$")                  'nome
vuArzIde$ = vuArzCov$ + " - " + vuArzNom$          'identificacao

'msgbox "", vuArz,vuArzCov$
end sub


'------------------------------------------------------------------------------
'- [ACM] - Acumuladores -------------------------------------------------------
'------------------------------------------------------------------------------
Sub Com_Acm_Exe 'acumular valores
res = AcmExe("vaArtCov", 1)                        'acumular - contagem

res = AcmExe("vaExiQu", vuExiQu)                   'acumular - existencia - quantidade
res = AcmExe("vaExiVt", vuExiVt)                   'acumular - existencia - valor total

res = AcmExe("vaEntQu", vuEntQu)                   'acumular - entradas   - quantidade
res = AcmExe("vaEntVt", vuEntVt)                   'acumular - entradas   - valor total

res = AcmExe("vaSaiQu", vuSaiQu)                   'acumular - saidas     - quantidade
res = AcmExe("vaSaiVt", vuSaiVt)                   'acumular - saidas     - valor total
end sub


Sub Com_Acm_Con 'consultar acumuladores
'- (52) ------------------------------------------>'Comentario
vNrg     = TotCnt("vaArtCov", acmNiv)              'numero de registos

acExiQu  = Total("vaExiQu", acmNiv)                'existencia - quantidade
acExiVt  = Total("vaExiVt", acmNiv)                'existencia - valor

acEntQu  = Total("vaEntQu", acmNiv)                'entradas   - quantidade
acEntVt  = Total("vaEntVt", acmNiv)                'entradas   - valor

acSaiQu  = Total("vaSaiQu", acmNiv)                'saidas     - quantidade
acSaiVt  = Total("vaSaiVt", acmNiv)                'saidas     - valor
end sub


'##############################################################################
'- [XLS] - Listar para XLS ----------------------------------------------------
'##############################################################################
'==============================================================================
'- [XLS] - COM - Funcoes comuns -----------------------------------------------
'==============================================================================
Sub Com_Xls_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:" + comXlsFic$                   'nome do ficheiro a gerar
xlsOpcWks$ = ""                                    'nome da worksheet

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
lstTip$ = MemTxt$(2)                               'tipo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

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

res = XlsIdeLst("LIM_ART", "")                     'limite de artigos
res = XlsIdeLst("ARZ_IDE", "")                     'identificacao de armazem
res = XlsIdeLst("VAL_STK", "")                     'valorizacao de stock

call XlsComLin_Ini                                 'iniciar linhas

'definicao das colunas
coArt    =  2                                      'artigo
coNom    =  3                                      'nome

coArzCod =  4                                      'armazem - codigo
coArzNom =  5                                      'armazem - nome

coExiQu  =  6                                      'existencia - quantidade
coExiVu  =  7                                      'existencia - valor unitario
coExiVt  =  8                                      'existencia - valor total

coEntQu  =  9                                      'entradas - quantidade
coEntVu  = 10                                      'entradas - valor unitario
coEntVt  = 11                                      'entradas - valor total

coSaiQu  = 12                                      'entradas - quantidade
coSaiVu  = 13                                      'entradas - valor unitario
coSaiVt  = 14                                      'entradas - valor total

coObs    = 15                                      'observacoes

'diversos
coIds    = coNom                                   'posicao - identificar subtotal
coNrg    = coArzCod                                'posicao - numero de registos
end sub


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


'------------------------------------------------------------------------------
'- Linhas ---------------------------------------------------------------------
'------------------------------------------------------------------------------
Sub Com_Xls_IncLin 'incrementar linha
'call XlsComLin_Inc                                 'incrementar linha
call XlsComLin_IncRep                              'incrementar linha + repor formato normal

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


Sub Com_Xls_LinSep 'linha de separacao
call XlsVnd_IncLin                                 'incrementar linha

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


Sub Com_Xls_LstLin 'listar linha
'zon$ = XlsZon$(liUsa, coNom, liUsa, coNom)         'zona
'res = XlsAli(zon$, "<")                            'alinhamento

'listar
res = XlsLst(liUsa, coArt, vuArtCov$)              'artigo - codigo formatado
res = XlsLst(liUsa, coNom, vuNom$)                 'artigo - nome

res = XlsLst(liUsa, coArzCod, vuArz)               'armazem
res = XlsLst(liUsa, coArzNom, vuArzNom$)           'armazem

res = XlsLst(liUsa, coExiQu, vuExiQu)              'existencia - quantidade
res = XlsLst(liUsa, coExiVu, vuExiVu)              'existencia - valor unitario
res = XlsLst(liUsa, coExiVt, vuExiVt)              'existencia - valor total

res = XlsLst(liUsa, coEntQu, vuEntQu)              'entradas - quantidade
res = XlsLst(liUsa, coEntVu, vuEntVu)              'entradas - valor unitario
res = XlsLst(liUsa, coEntVt, vuEntVt)              'entradas - valor total

res = XlsLst(liUsa, coSaiQu, vuSaiQu)              'saidas - quantidade
res = XlsLst(liUsa, coSaiVu, vuSaiVu)              'saidas - valor unitario
res = XlsLst(liUsa, coSaiVt, vuSaiVt)              'saidas - valor total

res = XlsLst(liUsa, coObs, vuObs$)                 'observacaoes

'- (52) ------------------------------------------>'Comentario

'diversos
usaAcm = 1                                         'assume acumular

if vuArz = 0 then                                  'armazem zero ?
   if acmUsaZer <> 1 then                          'nao acumular armazem zero ?
      usaAcm = 0                                   'nao acumular
   end if
end if

if usaAcm = 1 then                                 'acumular ?
   call Com_Acm_Exe                                'acumular valores
end if
end sub


Sub Com_Xls_LstLinObs 'listar linha - observacoes
'preparar valores
vtxObs$ = ""                                       'observacoes
vtxObs$ = vuObs$                                   'observacoes

'listar
res = XlsLst(liUsa, coObs, vtxObs$)                'observacoes
end sub


Sub Com_Xls_LstAcm 'listar - acumuladores
res = XlsLst(liUsa, coNrg, vNrg)                   'numero de registos

res = XlsLst(liUsa, coExiQu, acExiQu)              'existencia - quantidade
res = XlsLst(liUsa, coExiVt, acExiVt)              'existencia - valor total

res = XlsLst(liUsa, coEntQu, acEntQu)              'entradas - quantidade
res = XlsLst(liUsa, coEntVt, acEntVt)              'entradas - valor total

res = XlsLst(liUsa, coSaiQu, acSaiQu)              'saidas - quantidade
res = XlsLst(liUsa, coSaiVt, acSaiVt)              'saidas - valor total
end sub


'------------------------------------------------------------------------------
'- Total ----------------------------------------------------------------------
'------------------------------------------------------------------------------
Sub Com_Xls_LstTot 'listar totais
call XlsComLin_Fim                                 'fim de linhas

acmNiv = 0                                         'nivel do acumulador
call Com_Acm_Con                                   'consultar acumuladores

'listar
liUsa = linFim                                     'linha a usar

call XlsComLin_ActBI                               'activar linha em BOLD+ITALICO
call Com_Xls_LstAcm                                'listar - acumuladores
end sub


'------------------------------------------------------------------------------
'- grupo 1 --------------------------------------------------------------------
'------------------------------------------------------------------------------
Sub Com_Xls_LinTit1 'titulo 1
if titIde$ <> "" then                              'ha titulo ?
   call Com_Xls_IncLin                             'incrementar linha	
   call XlsComLin_ActB                             'activar linha em BOLD

   res = XlsLst(liUsa, coNom, titIde$)             'listar identificacao
end if

titIde$ = ""                                       'anular titulo
end sub


Sub Com_Xls_LinSbt1 'subtotal 1
acmNiv = 1                                         'nivel do acumulador
call Com_Acm_Con                                   'consultar acumuladores

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

   res = XlsLst(liUsa, coIds, ideSbt$)             'identificar subtotal

   'zon$ = XlsZon$(liUsa, coNrg)                    'zona
   zon$ = XlsZon$(liUsa, coIds, liUsa, coNrg)      'zona
   res = XlsAli(zon$, "|")                         'alinhamento

   call Com_Xls_LstAcm                             'listar - acumuladores
end if

call Com_Xls_IncLin                                'incrementar linha	

x = TotLpz(1)                                      'limpar totais
ideSbt$ = ""                                       'limpar identificador de subtotal
end sub


'==============================================================================
'- [XLS] - InvArt - Inventario de artigo --------------------------------------
'==============================================================================
Sub XlsInvArt_DocIni 'inicializar documento
comXlsFic$ = "StcInvArz.xls"                       'nome do ficheiro
comCabTit$ = "Inventário por Artigo"               'titulo

call Com_Xls_DocIni                                'inicializar documento
acmUsaZer  = 1                                     'acumular armazem zero
end sub


Sub XlsInvArt_DocFim 'terminar documento
call Com_Xls_DocFim                                'terminar documento
end sub


Sub XlsInvArt_Lin 'linha
call Com_Var_Con                                   'consultar variaveis
call Com_Xls_IncLin                                'incrementar linha	

'listar
'call ResAcmExe                                     'acumular
call Com_Xls_LstLin                                'listar linha
end sub


Sub XlsInvArt_Fim 'terminar
call Com_Xls_LstTot                                'listar totais
end sub


'==============================================================================
'- [XLS] - InvArz - Inventario por artigo/armazem -----------------------------
'==============================================================================
Sub XlsInvArz_DocIni 'inicializar documento
comXlsFic$ = "StcInvArz.xls"                       'nome do ficheiro
comCabTit$ = "Inventário por Artigo"               'titulo

call Com_Xls_DocIni                                'inicializar documento
acmUsaZer  = 0                                     'nao acumular armazem zero
end sub


Sub XlsInvArz_DocFim 'terminar documento
call Com_Xls_DocFim                                'terminar documento
end sub


Sub XlsInvArz_Lin 'linha
call Com_Var_Con                                   'consultar variaveis
call Com_Xls_IncLin                                'incrementar linha	

'listar
call Com_Xls_LstLin                                'listar linha

if vuArz = 0 then                                  'armazem zero ?
   zon$ = XlsZon$(liUsa, coArt, liUsa, coObs)      'zona
   res  = XlsEnvZon(zon$, "T,B", "C", "F")         'border
end if
end sub


Sub XlsInvArz_Fim 'terminar
call Com_Xls_LstTot                                'listar totais
end sub


'- grupo 1 -------------------------------------------------------------------
Sub XlsInvArz_LinTit1 'titulo 1
call Com_Var_Con                                   'consultar variaveis
call Com_Var_PrpCtu                                'preparar variaveis - conta

'titIde$ = artIde$                                  'titulo
titIde$ = ""                                       'anular titulo
call Com_Xls_LinTit1                               'listar
end sub


Sub XlsInvArz_LinSbt1 'subtotal 1
ideSbt$ = "Subtotal do artigo"                     'identificacao de subtotal
call Com_Xls_LinSbt1                               'listar
end sub

##


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

