'Nome       : CprFab.std
'Tipo       : LST
'Data       : 2007/10/30
'Versao     : 1.0
'Descricao  : Ordem de fabrico

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   2007/??/?? --------------------------------------------------
'Versao base


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
'Especifico 1                      [EspOp1]=Opcao 1
##


'==============================================================================
#DOC_x - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=CprFab
Nome                       [DocNom]=CprFab,Ordem de Fabrico

'formato
Saida/Impressora           [DocPrt]=
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
Listar cabecalho            [FxCAB]=CprFab_Cab
Listar linhas               [FxLIN]=CprFab_Lin
Listar fim                  [FxFIM]=CprFab_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=CprFab
Nome                       [DocNom]=CprFabXls,Ordem de fabrico (XLS)

'formato
Saida/Impressora           [DocPrt]=NULA
'Saida/Impressora           [DocPrt]=
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]=CprFabXls
Listar cabecalho            [FxCAB]=CprFabXls_Cab
Listar linhas               [FxLIN]=CprFabXls_Lin,0; Art,0; Cmp,0
Listar fim                  [FxFIM]=CprFabXls_Fim

Matriz auxiliar            [DocMat]=CprFab.xls
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
'------------------------------------------------------------------------------
'Lista de variaveis especificas
'------------------------------------------------------------------------------
'valores texto
'MemTxt$(01)   - Titulo da listagem
'MemTxt$(11)   - ?


'------------------------------------------------------------------------------
'Formatacao de valores
'------------------------------------------------------------------------------
Pag       = Doc_CntPag
Cnt       = FrmVal$(CntAux(1),21,4)
Tit080    = TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI",Memtxt$(1))
Tit132    = TxTit$("TT=16CPI, LD, PT=66C",Memtxt$(1))

DataExt   = FrmDt$("EXT",Sig_DtHoje)
'DataExt   = FrmDt$("EXT",Doc_DtHoje)


'obra
'---------------------------------------------------------->'Comentario (61)
ObrTdo    = Cob_OrcDoc_Tdoc$                                'tipo de documento
ObrNdo    = Cob_OrcDoc_Ndoc$                                'numero de documento
ObrDoc    = FrmNdo$("",Cob_OrcDoc_Tdoc$,Cob_OrcDoc_Ndoc$)   'documento
ObrDes    = left$(Cob_OrcDoc_Res$,30)                       'descricao resumida
ObrLoc    = left$(Cob_OrcDoc_Loc$,30)                       'local
ObrVto    = FrmNum$(12.2,VarCom("ObrVcuVto"))               'valor total

'conta
CliCod    = Cta_Mst_Ct$                                     'conta
CliNom    = Cta_Mst_Nome$                                   'nome da conta
CliIde    = Cta_Mst_Ct$+" - "+Cta_Mst_Nome$                 'identificacao da conta

'acumulador
AcmCod    = VarCom$("AcmCod")                               'codigo
AcmTip    = VarCom$("AcmTip")                               'tipo
AcmGrp    = VarCom$("AcmGrp")                               'grupo
AcmIde    = VarCom$("AcmIde")                               'identificacao
AcmIdm    = CobLstMatIde$(VarCom$("AcmCod"))                'identificacao de material

AcmCnt    = FrmNum$(12.2,VarCom("AcmCnt"))                  'contagem
AcmQur    = FrmNum$(12.2,VarCom("AcmQur"))                  'quantidade
AcmVto    = FrmNum$(12.2,VarCom("AcmVto"))                  'valor

##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------------->'Comentario (58)
'---------------------------------------------------->'Comentario (55)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)

Sub Lst_AJT
end sub


'------------------------------------------------------------------------------
' Resumo de custo
'------------------------------------------------------------------------------
SUB ObrRcu_Cab 'cabecalho
FxDiv LstIde,16CPI,0
?@Tit080                                                                        #
?Data : @DataExt                                                  Folha No: @Pag#
?================================================================================
?  Codigo        Descricao                            Quant.        Valor       #
'123456789.12345 123456789.123456789.123456789. 123,456,789.00 123,456,789.00   #
?================================================================================

if Doc_cntPag = 1 then                             'pagina inicial ?
tmp = CntLin("INC",4)                              'contar linhas
?   Obra:    @ObrDoc                                                            #
?            @ObrDes                                                            #
?   Cliente: @CliIde                                                            #
?--------------------------------------------------------------------------------
end if
end sub


Sub ObrRcu_Lin 'linha de acumulador
'123456789.12345 123456789.123456789.123456789. 123,456,789.00 123,456,789.00   #
?@AcmCod         @AcmIde                        @AcmQur        @AcmVto          #
end sub


Sub ObrRcu_Fim
?================================================================================
?                  Total da Obra:                              @ObrVto          #
?================================================================================
FxDiv LstPer,SP
end sub


'==============================================================================
'= XLS - Funcoes comuns =======================================================
'==============================================================================
Sub Xls_DocIni 'inicializar documento
dfi$ = FicEmp$("EMP","Ext","dExcel",cmo$)          'directorio de documentos EXCEL
nfi$ = "RND:CprFab.xls"                            'nome do ficheiro
cmo$ = SigCmoCur$("MIX")                           'modulo corrente

'dfi$ = VarCom$("DocDir")                           'directorio de documentos EXCEL
'nfi$ = "RND:" + VarCom$("DocNom") + ".xls"         'nome do ficheiro

ficDoc$ = FicTmp$(dfi$, nfi$)                      'ficheiro para documento
res = DirCri("D", dfi$)                            'criar directorio para documento

xlsMatNom$ = DocOpc$("DocMat")                     'nome do ficheiro matriz
xlsMat$    = DocOpc$("DocMat+SBT")                 'endereco do ficheiro matriz

res = FicCop(xlsMat$, ficDoc$)                     'criar ficheiro (copia de matriz)

res = XlsPrp(0)                                    'preparar EXCEL
res = XlsDocLer(ficDoc$)                           'ler ficheiro
end sub


Sub Xls_LinFim 'fim de linhas
res = XlsLinEli(xlsLin, 1)                         'eliminar linha - ultima
res = XlsLinEli(xlsLba, 1)                         'eliminar linha - primeira

res = XlsIdePsq("PO_FIM")                          'pesquisar posicao final
linFim = XlsIdePsqRes("L")                         'linha da posicao final
end sub


Sub Xls_DocFim 'terminar documento
ver = 1                                            'modo ver
res = XlsDocDir$("A", dfi$)                        'activar directorio
res = XlsDocGrv(ficDoc$)                           'gravar ficheiro

if ver = 1 then                                    'mostrar ?
   res = XlsVer(0)                                 'mostrar EXCEL - normal
   'res = XlsVer(1)                                 'mostrar EXCEL - maximizado
end if

res = XlsLib(0)                                    'libertar EXCEL

'msgbox "","DocFim " + ficDoc$
end sub


Sub Xls_LinInc 'incrementar linha
xlsLsa = xlsLin                                    'linha de saida
res = XlsLinIns(xlsLin, 1)                         'juntar linha

'seguinte
xlsLin = xlsLin + 1                                'contar linha
end sub


'==============================================================================
'= Listagem para EXCEL ========================================================
'==============================================================================
'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)

Sub CprFabXls_DocIni 'inicializar documento
'msgbox "","DocIni"

'call Xls_DocIni                                    'inicializar documento
'call CprFabXls_Prep                                'preparar
'call CprFabXls_Cab                                 'cabecalho
end sub


Sub CprFabXls_PrpLst 'preparar listagem do documento
'msgbox "","PrpLst"

call Xls_DocIni                                    'inicializar documento
call CprFabXls_Prep                                'preparar
call CprFabXls_Cab                                 'cabecalho
end sub


Sub CprFabXls_DocFim 'terminar documento
'msgbox "","DocFim"
linIni = linBav                                    'linha inicial
linFim = linCnt                                    'linha final

'mostrar
call Xls_DocFim                                    'terminar/mostrar documento
end sub


Sub CprFabXls_Prep 'preparar para listar
res = XlsWks("Valores")                            'activar worksheet

res = XlsIdePsq("PO_BAS")                          'pesquisar posicao base
linBav = XlsIdePsqRes("L")                         'linha da posicao base

xlsLba = linBav                                    'linha base
xlsLin = linBav + 1                                'contador de linhas usadas

'colunas a usar
coTip       = 2                                    'tipo
coCod       = 3                                    'codigo
coCmp       = 4                                    'componente
coDes       = 5                                    'descricao
coTpv       = 6                                    'tipo de valor
coQuv       = 7                                    'quantidade/valor
coVcu       = 8                                    'custo unitario
coVto       = 9                                    'custo total
coObs       = 10                                   'observacoes
end sub


Sub CprFabXls_IncLin 'incrementar linha
call Xls_LinInc                                    'incrementar linha
liUsa =  xlsLsa                                    'linha a usar
end sub


Sub CprFabXls_Cab 'cabecalho
'msgbox "","CAB"

empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
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_Data", lstDt$)                'data
res = XlsIdeLst("Doc_Num",  @ObrDoc)               'obra
res = XlsIdeLst("Doc_Des",  @ObrDes)               'descricao
res = XlsIdeLst("Doc_Cli",  @CliIde)               'ano das avencas

res = XlsIdeLst("Doc_Num", "")               'obra
res = XlsIdeLst("Doc_Des", "")               'descricao
res = XlsIdeLst("Doc_Cli", "")               'ano das avencas


'unidade de producao
unpCod$ = VarCom$("Unp_Cod")                        'codigo
unpIde$ = VarCom$("Unp_Ide")                        'identificacao
unpQua  = VarCom("Unp_Qua")                         'quantidade

res = XlsIdeLst("UNP_Cod", unpCod$)                'codigo
res = XlsIdeLst("UNP_Ide", unpIde$)                'identificacao
res = XlsIdeLst("UNP_Qua", unpQua)                 'quantidade
end sub


Sub CprFabXls_Lin 'linha de valores
'nada a executar
end sub


Sub CprFabXls_LinArt 'linha de artigo
call CprFabXls_IncLin                                 'incrementar linha
liUsa =  xlsLsa                                    'linha a usar

'valores
artCod$ = VarCom$("ArtCod")                        'codigo
artIde$ = VarCom$("ArtIde")                        'identificacao
artAdi$ = VarCom$("ArtAdi")                        'informacao adicional

artQua  = VarCom("ArtQua")                         'quantidade
artTpv$ = VarCom$("ArtTpv")                        'tipo de valor
artQuv  = VarCom("ArtQuv")                         'quantidade/valor
artVcu  = VarCom("ArtVcu")                         'custo unitario
artVto  = VarCom("ArtVto")                         'custo total

'listar
res = XlsLst(liUsa, coTip, artCod$)                'codigo
res = XlsLst(liUsa, coCod, artIde$)                'identificacao
'res = XlsLst(liUsa, coCmp, artQua)                 'quantidade
res = XlsLst(liUsa, coDes, artAdi$)                'informacao adicional

res = XlsLst(liUsa, coTpv, artTpv$)                'tipo de valor
res = XlsLst(liUsa, coQuv, artQuv)                 'quantidade/valor
res = XlsLst(liUsa, coVcu, artVcu)                 'custo unitario
res = XlsLst(liUsa, coVto, artVto)                 'custo total

zon$= XlsZon$(liUsa, coTip, liUsa, coObs)          'zona para border
res = XlsEnvZon(zon$, "T,B", "C", "F", 1)          'desenhar border
end sub


Sub CprFabXls_LinCmp 'linha de componente
call CprFabXls_IncLin                              'incrementar linha
liUsa =  xlsLsa                                    'linha a usar

'valores
cmpTip$ = VarCom$("CmpTip")                        'tipo
cmpCod$ = VarCom$("CmpCod")                        'codigo
cmpCmp$ = VarCom$("CmpCmp")                        'componente
cmpIde$ = VarCom$("CmpIde")                        'identificacao
cmpTpv$ = VarCom$("CmpTpv")                        'tipo de valor
cmpQuv  = VarCom("CmpQuv")                         'quantidade/valor
cmpVcu  = VarCom("CmpVcu")                         'custo unitario
cmpVto  = VarCom("CmpVto")                         'custo total

'listar
res = XlsLst(liUsa, coTip, cmpTip$)                'tipo
res = XlsLst(liUsa, coCod, cmpCod$)                'codigo
res = XlsLst(liUsa, coCmp, cmpCmp$)                'componente
res = XlsLst(liUsa, coDes, cmpIde$)                'identificacao
res = XlsLst(liUsa, coTpv, cmpTpv$)                'tipo de valor
res = XlsLst(liUsa, coQuv, cmpQuv)                 'quantidade/valor
res = XlsLst(liUsa, coVcu, cmpVcu)                 'custo unitario
res = XlsLst(liUsa, coVto, cmpVto)                 'custo total
end sub


'- Terminar/Totais ------------------------------------------------------------
Sub CprFabXls_Fim 'terminar
call Xls_LinFim                                    'fim de linhas

ltoUsa = LinFim                                    'linha para totais

fabMaqCod$ = VarCom$("FabMaqCod")                  'maquina - codigo
fabMaqDes$ = VarCom$("FabMaqDes")                  'maquina - descricao

fabArtVcu  = VarCom("fabArtVcu")                   'custo unitario
fabArtVto  = VarCom("fabArtVto")                   'custo total

'listar
res = XlsLst(ltoUsa, coCod, fabMaqCod$)            'maquina - codigo
res = XlsLst(ltoUsa, coDes, fabMaqDes$)            'maquina - descricao

res = XlsLst(ltoUsa, coVcu, fabArtVcu)             'custo unitario
res = XlsLst(ltoUsa, coVto, fabArtVto)             'custo total

'terminar/mostrar
res = XlsWksAct("A", 1)                            'activar worksheet
end sub

##

