'Nome       : CobRme.std
'Tipo       : LST
'Data       : 2006/07/04
'Versao     : 1.0
'Descricao  : Resumo de medicoes

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


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


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


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=ObrRme
Nome                       [DocNom]=ObrRme,Resumo de Medições

'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]=ObrRme_Cab
Listar linhas               [FxLIN]=ObrRme_Lin
Listar fim                  [FxFIM]=ObrRme_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=ObrRme
Nome                       [DocNom]=RmeXls,Resumo de Medições (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]=RmeXls
Listar cabecalho            [FxCAB]=RmeXls_Cab
Listar linhas               [FxLIN]=RmeXls_Lin, 0
Listar fim                  [FxFIM]=RmeXls_Fim

Matriz auxiliar            [DocMat]=CobRme.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

'valores
vRubCod = VarCom$("RubCod")                                 'rubrica - codigo
vRubIde = VarCom$("RubIde")                                 'rubrica - identificacao
vRubIdr = left$(VarCom$("RubIde"),30)                       'rubrica - identificacao reduzida

vOrcVto = FrmNum$(07.2,VarCom("OrcVto"))                    'valor do orcamento
vMedVto = FrmNum$(07.2,VarCom("MedVto"))                    'valor da medicao
vDesVto = FrmNum$(07.2,VarCom("DesVto"))                    'valor do desvio

'totais
tOrcVto = FrmNum$(07.2,VarCom("OrcVto"))                    'valor do orcamento
tMedVto = FrmNum$(07.2,VarCom("MedVto"))                    'valor da medicao
tDesVto = FrmNum$(07.2,VarCom("DesVto"))                    'valor do desvio
##


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


'==============================================================================
'= COM = Funcoes comuns =======================================================
'==============================================================================
Sub Lst_AJT
'nada a executar
end sub


Sub ComRmePrpVal 'preparar valores
rubCod$ = VarCom$("RubCod")                        'rubrica - codigo
rubIde$ = VarCom$("RubIde")                        'rubrica - identificacao

orcMaQu = VarCom("OrcMaQu")                        'orcamento - material - quantidade
orcMaVt = VarCom("OrcMaVt")                        'orcamento - material - valor
orcMoQu = VarCom("OrcMoQu")                        'orcamento - mao de obra - quantidade
orcMoVt = VarCom("OrcMoVt")                        'orcamento - mao de obra - valor
orcDiVt = VarCom("OrcDiVt")                        'orcamento - valores diversos
orcVto  = VarCom("OrcVto")                         'orcamento - valor total

medNrg  = VarCom("MedNrg")                         'medicao - numero de registos/documentos
medMaQu = VarCom("MedMaQu")                        'medicao - material - quantidade
medMaVt = VarCom("MedMaVt")                        'medicao - material - valor
medMoQu = VarCom("MedMoQu")                        'medicao - mao de obra - quantidade
medMoVt = VarCom("MedMoVt")                        'medicao - mao de obra - valor
medDiVt = VarCom("MedDiVt")                        'medicao - valores diversos
medVto  = VarCom("MedVto")                         'medicao - valor total

desMaQu = VarCom("DesMaQu")                        'desvio - material - quantidade
desMaVt = VarCom("DesMaVt")                        'desvio - material - valor
desMoQu = VarCom("DesMoQu")                        'desvio - mao de obra - quantidade
desMoVt = VarCom("DesMoVt")                        'desvio - mao de obra - valor
desDiVt = VarCom("DesDiVt")                        'desvio - valores diversos
desVto  = VarCom("DesVto")                         'desvio - valor total
end sub


'==============================================================================
'= XLS - Funcoes comuns para listagem em EXCEL ================================
'==============================================================================
Sub Xls_DocIni 'inicializar documento
dfi$ = FicEmp$("EMP","Ext","dExcel",cmo$)          'directorio de documentos EXCEL
nfi$ = "RND:CobRme.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


'==============================================================================
'= LST - Listar ===============================================================
'==============================================================================
'------------------------------------------------------------------------------
' Resumo de medicoes
'------------------------------------------------------------------------------
SUB ObrRme_Cab 'cabecalho
FxDiv LstIde,16CPI,0
?@Tit080                                                                        #
?Data : @DataExt                                                  Folha No: @Pag#
?================================================================================
?  Rubrica       Descricao                        Orcamento   Medicão    Desvio #
'123456789.12345 123456789.123456789.123456789.  123,456.00 123,456.00 123,456.00
?================================================================================

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


Sub ObrRme_Lin 'linha
'123456789.12345 123456789.123456789.123456789.  123,456.00 123,456.00 123,456.00

call ComRmePrpVal                               'preparar valores
?@vRubCod        @vRubIdr                        @vOrcVto   @vMedVto   @vDesVto #
end sub


Sub ObrRme_Fim
'call ComRmePrpVal                               'preparar valores

?================================================================================
?                  Totais:                       @tOrcVto   @tMedVto   @tDesVto #
?================================================================================
FxDiv LstPer,SP
end sub


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

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

'call Xls_DocIni                                    'inicializar documento
'call RmeXls_Prep                                   'preparar
'call RmeXls_Cab                                    'cabecalho
end sub


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

call Xls_DocIni                                    'inicializar documento
call RmeXls_Prep                                   'preparar
call RmeXls_Cab                                    'cabecalho
end sub


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

'mostrar
call Xls_DocFim                                    'terminar/mostrar documento
end sub


Sub RmeXls_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
coRubCod  = 2                                      'rubrica - codigo
coRubIde  = 3                                      'rubrica - identificacao

coOrcMaQu = 4                                      'orcamento - material - quantidade
coOrcMaVt = 5                                      'orcamento - material - valor
coOrcMoQu = 6                                      'orcamento - mao de obra - quantidade
coOrcMoVt = 7                                      'orcamento - mao de obra - valor
coOrcDiVt = 8                                      'orcamento - valores diversos
coOrcVto  = 9                                      'orcamento - valor total

coMedNrg  = 10                                     'medicao - numero de registos/documentos
coMedMaQu = 11                                     'medicao - material - quantidade
coMedMaVt = 12                                     'medicao - material - valor
coMedMoQu = 13                                     'medicao - mao de obra - quantidade
coMedMoVt = 14                                     'medicao - mao de obra - valor
coMedDiVt = 15                                     'medicao - valores diversos
coMedVto  = 16                                     'medicao - valor total

coDesMaQu = 17                                     'desvio - material - quantidade
coDesMaVt = 18                                     'desvio - material - valor
coDesMoQu = 19                                     'desvio - mao de obra - quantidade
coDesMoVt = 20                                     'desvio - mao de obra - valor
coDesDiVt = 21                                     'desvio - valores diversos
coDesVto  = 22                                     'desvio - valor total

coRubObs  = 23                                     'observacoes
end sub


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


Sub RmeXls_Cab 'cabecalho
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("Obr_Doc",  @ObrDoc)               'obra
res = XlsIdeLst("Obr_Des",  @ObrDes)               'descricao
res = XlsIdeLst("Obr_Cli",  @CliIde)               'ano das avencas
end sub


Sub RmeXls_Lin 'linha de valores
call RmeXls_IncLin                                 'incrementar linha
liUsa =  xlsLsa                                    'linha a usar

call ComRmePrpVal                                  'preparar valores


'listar
res = XlsLst(liUsa, coRubCod, rubCod$)             'rubrica - codigo
res = XlsLst(liUsa, coRubIde, rubIde$)             'rubrica - identificacao

res = XlsLst(liUsa, coOrcMaQu, orcMaQu)            'orcamento - material - quantidade
res = XlsLst(liUsa, coOrcMaVt, orcMaVt)            'orcamento - material - valor
res = XlsLst(liUsa, coOrcMoQu, orcMoQu)            'orcamento - mao de obra - quantidade
res = XlsLst(liUsa, coOrcMoVt, orcMoVt)            'orcamento - mao de obra - valor
res = XlsLst(liUsa, coOrcDiVt, orcDiVt)            'orcamento - valores diversos
res = XlsLst(liUsa, coOrcVto,  orcVto)             'orcamento - valor total

res = XlsLst(liUsa, coMedNrg,  medNrg)             'medicao - numero de registos/documentos
res = XlsLst(liUsa, coMedMaQu, medMaQu)            'medicao - material - quantidade
res = XlsLst(liUsa, coMedMaVt, medMaVt)            'medicao - material - valor
res = XlsLst(liUsa, coMedMoQu, medMoQu)            'medicao - mao de obra - quantidade
res = XlsLst(liUsa, coMedMoVt, medMoVt)            'medicao - mao de obra - valor
res = XlsLst(liUsa, coMedDiVt, medDiVt)            'medicao - valores diversos
res = XlsLst(liUsa, coMedVto,  medVto)             'medicao - valor total

res = XlsLst(liUsa, coDesMaQu, desMaQu)            'desvio - material - quantidade
res = XlsLst(liUsa, coDesMaVt, desMaVt)            'desvio - material - valor
res = XlsLst(liUsa, coDesMoQu, desMoQu)            'desvio - mao de obra - quantidade
res = XlsLst(liUsa, coDesMoVt, desMoVt)            'desvio - mao de obra - valor
res = XlsLst(liUsa, coDesDiVt, desDiVt)            'desvio - valores diversos
res = XlsLst(liUsa, coDesVto,  desVto)             'desvio - valor total
end sub


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

ltoUsa = LinFim                                    'linha para totais
liUsa  = ltoUsa                                    'linha a usar
call ComRmePrpVal                                  'preparar valores


'res = XlsLst(liUsa, coOrcMaQu, orcMaQu)            'orcamento - material - quantidade
res = XlsLst(liUsa, coOrcMaVt, orcMaVt)            'orcamento - material - valor
'res = XlsLst(liUsa, coOrcMoQu, orcMoQu)            'orcamento - mao de obra - quantidade
res = XlsLst(liUsa, coOrcMoVt, orcMoVt)            'orcamento - mao de obra - valor
res = XlsLst(liUsa, coOrcDiVt, orcDiVt)            'orcamento - valores diversos
res = XlsLst(liUsa, coOrcVto,  orcVto)             'orcamento - valor total

'res = XlsLst(liUsa, coMedNrg,  medNrg)             'medicao - numero de registos/documentos
'res = XlsLst(liUsa, coMedMaQu, medMaQu)            'medicao - material - quantidade
res = XlsLst(liUsa, coMedMaVt, medMaVt)            'medicao - material - valor
'res = XlsLst(liUsa, coMedMoQu, medMoQu)            'medicao - mao de obra - quantidade
res = XlsLst(liUsa, coMedMoVt, medMoVt)            'medicao - mao de obra - valor
res = XlsLst(liUsa, coMedDiVt, medDiVt)            'medicao - valores diversos
res = XlsLst(liUsa, coMedVto,  medVto)             'medicao - valor total

'res = XlsLst(liUsa, coDesMaQu, desMaQu)            'desvio - material - quantidade
res = XlsLst(liUsa, coDesMaVt, desMaVt)            'desvio - material - valor
'res = XlsLst(liUsa, coDesMoQu, desMoQu)            'desvio - mao de obra - quantidade
res = XlsLst(liUsa, coDesMoVt, desMoVt)            'desvio - mao de obra - valor
res = XlsLst(liUsa, coDesDiVt, desDiVt)            'desvio - valores diversos
res = XlsLst(liUsa, coDesVto,  desVto)             'desvio - valor total

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

##

