'Nome       : OrcDesv.std
'Tipo       : LST WIN
'Data       : 2010/01/14
'Versao     : 3.0
'Descricao  : Listagem de Desvios

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 3.0  2010/01/14 ---------------------------------------------------
'listagem em Excel

'- Versao : 2.0  2008/09/02 ---------------------------------------------------
'modo grafico

'- Versao : 1.0  2000/09/29 ---------------------------------------------------
'Versao base


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


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


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=OrcDesv
Nome                       [DocNom]=OrcDesv,Desvios
Vias                       [DocVia]=
Personalizacao             [DocPer]=

'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    [DocEsp]=XXX=Xyz

'funcoes de listagem
Listar cabecalho            [FxCAB]=OrcDesv_Cab
Listar linhas               [FxLIN]=OrcDesv_Lin;Inf
Listar fim                  [FxFIM]=OrcDesv_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=OrcDesv
Nome                       [DocNom]=OrcDesv_G,Desvios
Vias                       [DocVia]=
Personalizacao             [DocPer]=

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=XXX=Xyz

'funcoes de listagem
Listar cabecalho            [FxCAB]=OrcDesvG_Cab
Listar linhas               [FxLIN]=OrcDesvG_Lin;Inf
Listar fim                  [FxFIM]=OrcDesvG_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=OrcDesv
Nome                       [DocNom]=OrcDesv_XLS,Desvios (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]=LstTot=0
                           [DocEsp]=LstTit=0

'funcoes de listagem
Base para documento         [FxDOC]=XlsOrcDesv
Listar cabecalho            [FxCAB]=XlsOrcDesv_Cab
Listar linhas               [FxLIN]=XlsOrcDesv_Lin,0; Inf,0
Listar fim                  [FxFIM]=XlsOrcDesv_Fim

Matriz auxiliar            [DocMat]=OrcDesv.xls
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
'LstMemTxt(51)	   - codigo da rubrica
'LstMemTxt(52)	   - nome da rubrica
'LstMemTxt(53)	   - codigo da rubrica formatado
'LstMemTxt(54)     - desvio em percentagem
'LstMemTxt(55)	   - tipo de acumulados
'LstMemTxt(56)	   - periodo de acumulados
'LstMemTxt(57)	   - tipo de acumulados base
'LstMemTxt(58)	   - tipo de acumulados de comparacao
'LstMemTxt(59)	   - texto juntando tipo de acumulados base e comparacao
'LstMemNum(51)	   - valor base
'LstMemNum(52)	   - valor de comparacao
'LstMemNum(53)	   - total anual para a rubrica
'LstMemNum(54)     - total periodico para a rubrica
'LstMemNum(55:66)  - total periodico para a rubrica em cada mes do ano(Janeiro:Dezembro)

'------------------------------------------------------------------------------
'Formatacao de valores
'------------------------------------------------------------------------------
Tipo     =MemTxt$(1)
Pag      =Doc_CntPag
DataExt  =FrmVal$(Sig_DtHoje,45,0)

'variaveis a listar
Cod      =Orc_Mst_Cod$                
Nom      =Orc_Mst_Nome$
CodF     =left$(OrcFrmCod$(Orc_Mst_Cod$),15)
CodF2    =MemTxt$(53)                
'TotPer   =FrmVal$(OrcTotAn(LstMemTxt(61), FrmDt$("A", Sig_DtHoje), Orc_Mst_Cod$, ),21,11.2)
Per      =MemTxt$(56)
TipAcm   =MemTxt$(59)
TipAcmB  =MemTxt$(57)
TipAcmC  =MemTxt$(58)

Vlr1     =FrmVal$(MemNum(51),21,10.2)
Vlr2     =FrmVal$(MemNum(52),21,10.2)
Desv     =MemTxt$(54)

TotAno   =FrmVal$(MemNum(53),21,10.2)
TotPer   =FrmVal$(MemNum(54),21,10.2)

Jan      =FrmVal$(MemNum(55),21,10.2)
Fev      =FrmVal$(MemNum(56),21,10.2)
Mar      =FrmVal$(MemNum(57),21,10.2)
Abr      =FrmVal$(MemNum(58),21,10.2)
Mai      =FrmVal$(MemNum(59),21,10.2)
Jun      =FrmVal$(MemNum(60),21,10.2)
Jul      =FrmVal$(MemNum(61),21,10.2)
Ago      =FrmVal$(MemNum(62),21,10.2)
Set      =FrmVal$(MemNum(63),21,10.2)
Out      =FrmVal$(MemNum(64),21,10.2)
Nov      =FrmVal$(MemNum(65),21,10.2)
Dez      =FrmVal$(MemNum(66),21,10.2)

Tco      =FrmNum$(5.0,TotCnt("CodF",0))

##


'==============================================================================
#INC - Inclusao de funcoes
'==============================================================================
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


'-----------------------------------------------------------------------------
' Funcoes para inicializacao
'-----------------------------------------------------------------------------
SUB FxIni 'funcao de inicializacao
Call SigLstIni
end sub


SUB FxFim 'funcao de finalizacao
end sub


'====================================================================================
'- Modo Texto ======================================================================
'====================================================================================
SUB OrcDesv_Cab
FxDiv LstIde,16CPI,0
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI","Listagem de Desvios de Acumulados")
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI","por Periodo")
?Desvio entre : @TipAcm                                           #
?Período      : @Per                                              #
?Data         : @DataExt                                   Folha No : @Pag#
?================================================================================
?Codigo          Nome                           @TipAcmB      @TipAcmC     Desvio                     
?================================================================================
end sub


SUB OrcDesv_Lin
?@CodF           @Nom                           @Vlr1         @Vlr2         @Desv
end sub


SUB OrcDesv_Fim
?================================================================================
?@Tco  rubricas                                                                 #
?================================================================================
FxDiv LstPer,SP
end sub


'====================================================================================
'- Modo Grafico =====================================================================
'====================================================================================
Sub OrcDesvG_Cab 'cabecalho
Titulo$="Listagem de Desvios de Acumulados por Período"

PrWIN COR_F, 15                                    'cor de fundo
PrWIN AJT_B ,  Margem, 11                          'posicao base
PrWin COR_T ,  CorTit
PrWIN FON   ,       9,  1                          'activar fonte
PrWIN TX_N  ,       0,  0,SigLstInf$("EMPIDE")     'nome da empresa
PrWIN FON   ,      12,  1                          'activar fonte
PrWin FON, "BOLD+"                                 'desactivar bold
PrWIN TX_CTR,       0,  5, MargemD, 5,Titulo$      'titulo centrado
PrWin FON, "BOLD-"                                 'desactivar bold

PrWIN FON  ,    9                                  'activar fonte
PrWIN TX_N ,    0, 10,"Desvio entre :"             'titulo
PrWIN TX_N ,    0, 14,"Período :"                  'titulo

PrWIN TX_N ,    0, 18,"Data :"                     'data
PrWIN TX_N ,  170, 18,"Folha No :"                 'folha

PrWin COR_T ,  CorLin
PrWIN TX_N,   22, 10,@TipAcm                       'tipo de acumulados
PrWIN TX_N,   15, 14,@Per                          'periodo
PrWIN TX_N,   11, 18,@DataExt                      'listar data
PrWIN TX_N,  185, 18,@Pag                          'numero da folha

Col1=  2
Col2= 60
Col3=130
Col4=150
Col5=178

PrWIN AJT_B,  Margem, 34                            'posicao base
PrWIN FON  ,   10                                   'fonte para texto

PrWIN COR_T,   CorTraco                             'cor para titulos
PrWIN GR_LI, 0, 0, MargemD-10, 0                    'linha
PrWIN GR_LI, 0, 5, MargemD-10, 5                    'linha

PrWIN COR_T,   CorTit                               'cor para titulos
PrWin FON,"BOLD+"                                   'activar bold
PrWIN TX_N,      Col1,  0.5, "Código"
PrWIN TX_N,      Col2,  0.5, "Nome"
PrWIN TX_N,      Col3,  0.5, @TipAcmB
PrWIN TX_N,      Col4,  0.5, @TipAcmC
PrWIN TX_N,      Col5,  0.5, "Desvio"

InicioEscrita=36
PrWIN COR_T,   CorLin                               'cor para linhas
PrWin FON,"BOLD-"                                   'desactivar bold
end sub


Sub OrcDesvG_Lin 'linha
LCol1=  2
LCol2= 40
LCol3=122
LCol4=148
LCol5=179

PrWIN AJT_B, Margem, InicioEscrita+Doc_CntLin*4     'posicao base
PrWIN TX_N, LCol1, 0,@CodF
PrWIN TX_N, LCol2, 0,@Nom
PrWIN TX_NP,LCol3, 0,"N", @Vlr1
PrWIN TX_NP,LCol4, 0,"N", @Vlr2
PrWIN TX_N, LCol5, 0,@Desv
end sub


Sub OrcDesvG_Fim 'fim de listagem
PrWIN COR_T,   CorTraco                            'cor para titulos
PrWIN AJT_B,Margem,267                 		   'posicao base
PrWIN GR_LI,     0, 0, MargemD-10, 0              'linha
PrWIN TX_N,      0, 0.5, @Tco
PrWIN TX_N,     10, 0.5, "Rubricas"

PrWIN AJT_B,Margem,272                 		   'posicao base
PrWIN GR_LI,     0,  0, MargemD-10, 0              'linha
call SigLstRod
PrWin FP
end sub


'=============================================================================
'XLS - Desvios (EXCEL)
'=============================================================================
Sub XlsOrcDesv_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:OrcDesv.xls"                    'nome do ficheiro a gerar
xlsOpcWks$ = ""                                   'nome da woorksheet

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
  
txTit$ = "Listagem de Desvios de Acumulados por Período"             'texto para titulo
'- (70) ------------------------------------------------------------>'Comentario

lstTit$ = TxTit$                                   'titulo da listagem
lstTip$ = MemTxt$(2)                               'tipo da listagem

lstPer$ = MemTxt$(56)                              'periodo
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_Per", lstPer$)                'período
res = XlsIdeLst("Lst_Data",lstDt$)                 'data

call XlsComLin_Ini                                 'iniciar linhas

'definicao das colunas
coCod = 2                                          'codigo
coNom = 3                                          'nome
coVl1 = 4                                          'valor 1
coVl2 = 5                                          'valor 2
coDsv = 6                                          'desvio
end sub


Sub XlsOrcDesv_DocFim 'terminar documento
call XlsComDoc_Fim                                 'terminar/mostrar documento
end sub


Sub XlsOrcDesv_Cab 'cabecalho do documento
'- (55) --------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario

Tit1$   = MemTxt$(57)                                 'titulo coluna valor 1
Tit2$   = MemTxt$(58)                                 'titulo coluna valor 2
lstTds$ = MemTxt$(59)                                 'tipo de desvio

res = XlsIdeLst("TitVl1", Tit1$)                      'titulo para coluna de valor 1
res = XlsIdeLst("TitVl2", Tit2$)                      'titulo para coluna de valor 2
res = XlsIdeLst("Lst_Tds", lstTds$)                   'tipo de desvio
end sub


Sub XlsOrcDesv_Fim 'terminar
call XlsComLin_Fim                                    'fim de linhas

'valores a listar
nRub = TotCnt("CodF",0)                               'numero de rubricas

'listar
liUsa = linFim                                        'linha a usar
res = XlsLst(liUsa, coCod, nRub)                      'total rubricas
end sub


Sub XlsOrcDesv_IncLin 'incrementar linha	
call XlsComLin_IncRep                                 'incrementar linha + repor formato normal
end sub


'--------------------------------------------------------- LINHA VALORES ------------
Sub XlsOrcDesv_Lin 'linha de valores
call XlsOrcDesv_IncLin                                'incrementar linha	


'valores a listar
Cod$     = Orc_Mst_Cod$                               'codigo
Nom$     = Orc_Mst_Nome$                              'nome
Vlr1     = MemNum(51)                                 'valor 1
Vlr2     = MemNum(52)                                 'valor 2
Desv$    = MemTxt$(54)                                'desvio


'listar
res = XlsLst(liUsa, coCod, Cod$)                     'codigo
res = XlsLst(liUsa, coNom, Nom$)                     'nome
res = XlsLst(liUsa, coVl1, Vlr1)                     'valor 1
res = XlsLst(liUsa, coVl2, Vlr2)                     'valor 2
res = XlsLst(liUsa, coDsv, Desv$)                    'desvio

'acumular
res = AcmExe("Codf", 1)                               'acumular numero de rubricas
end sub

##


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