;** Rm_3152 ********************************************************************
;* Resumo de Pedidos comparaÆo marca/coleÆo                                  *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 19/07/2012 por Bruno Carvalho
;Ultima Alteracao: 23/07/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes Diret¢rio Ms Fechado
;Ultima Alteracao: 25/07/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes Diret¢rio Ms Fechado
;Ultima Alteracao: 24/06/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado Filtro "Status" 
;Ultima Alteracao: 19/12/2014 por Bruno Carvalho
;Motivo Alteracao: Alterado Modelo de Report de "2" para "R" e de "3" para "1" -> ??? Realizado esta alteraÆo,
;                  pois nÆo havia nenhum ligamento com o relat¢rio e estes modelos anteriores. O "R" e "1" estavam em desuso.
;Ultima Alteracao: 03/07/2015 por Bruno Carvalho
;Motivo Alteracao: Adiconado rotina para exportar para excel na proc Gera_Tabela()
;Ultima Alteracao: 19/04/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustado VSDGSTATUS="3" como padrÆo
;Ultima Alteracao: 20/04/2016 por Anivel Augusto
;Motivo Alteracao: Ajustes na proc Seleciona() p/ otimizaÆo de processo
;Ultima Alteracao: 21/04/2016 por Anivel Augusto
;Motivo Alteracao: Ajustes 18 colunas, adicao e remoÆo de coleäes, logica        
;Ultima Alteracao: 22/04/2016 por Anivel Augusto
;Motivo Alteracao: Ajustes RM_3151 = RM_3152 com parametros                
;Ultima Alteracao: 25/04/2016 por Anivel Augusto
;Motivo Alteracao: Ajustes Logica
;Ultima Alteracao: 05/05/2016 por Bruno Carvalho
;Motivo Alteracao: Desmembrado RM_3152 e RM_3152A -> 18 Colunas / 5 Colunas
;Ultima Alteracao: 13/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 02/02/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtro gerencia, representante
;Ultima Alteracao: 02/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novos modelos 03, 49
;Ultima Alteracao: 05/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Seta_Ordem_Report()                
;Ultima Alteracao: 06/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtro Area                        
;Ultima Alteracao: 07/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 03                          
;Ultima Alteracao: 20/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtrar situacao do pedido         
;Ultima Alteracao: 29/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()
;Ultima Alteracao: 12/12/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desfazer ask com representante nÆo cadastrado
;Ultima Alteracao: 08/01/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado scripts "RM_3152A" (42) neste script "RM_3152" (50)  
;Ultima Alteracao: 10/02/2020 por Bruno Carvalho
;Motivo Alteracao: Ajustes de padronizaÆo nos campos [TG_CIDADE] e [TG_ESTADO]
;Ultima Alteracao: 07/04/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog
;Ultima Alteracao: 20/04/2021 por Bruno Carvalho             
;Motivo Alteracao: Ajustes no processo do filtro "TG_STATUS" na "Bib_Show"     
;Ultima Alteracao: 16/07/2021 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes VSDGSTATUS

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc Seleciona()
ClearAll
            
            
if ORIGEM_RM_3152="PEDIDOS"
   then
        If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC") And
           IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI")
           Then 
                {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
                Moveto [Codigo do Representante] Example "crep"
                Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA.."
                
                {Ask} {\\Sistemas\\Vendas\\Destin}
                Moveto [Codigo da Destinacao  ] Example "cd"
                Moveto [Tipo Movimento Estoque] TypeIn "S"
        
                {Ask} {\\Sistemas\\Cadastro\\Destinat}
                Moveto [Codigo                 ] Example "cli"
                Moveto [Codigo da Area         ] Check TypeIn "~VSDGAREA.."
                Moveto [Descricao da Area      ] Check 
                Switch
                  Case VSDGSTATUS="INATIVO" : Moveto [Inativo] TypeIn "S"
                  Case VSDGSTATUS="ATIVO"   : Moveto [Inativo] TypeIn "Not S"
                EndSwitch     
                {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC" Enter
                Moveto [Numero do Pedido       ] Example "NPed"
                Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2"
                Moveto [Codigo                 ] Check Example "cli"
                Moveto [Razao Social           ] Check
                Moveto [Cidade                 ] Check TypeIn CIDADE
                Moveto [Codigo do Representante] Check TypeIn "_crep, ~VSDGREPRESEN.."
                Moveto [Nome Fantasia Represent] Check
                Moveto [UF                     ] Check TypeIn "~VSDGESTADO.."
                Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                Moveto [Codigo da Destinacao   ] Example "cd"
                Moveto [Descricao da Destinacao] TypeIn "..VEND.."
                Moveto [Situacao do Pedido     ]
                switch
                  case VSDGSITUACAOPEDIDO="JUNTAR ABERTO+SUSPENSO"     : TypeIn "ABERTO or SUSPENSO"
                  case VSDGSITUACAOPEDIDO="IGNORAR CANCELADO+SUSPENSO" : TypeIn "not CANCELADO, not SUSPENSO"
                  case VSDGSITUACAOPEDIDO="IGNORAR CANCELADO"          : TypeIn "not CANCELADO"
                  case VSDGSITUACAOPEDIDO<>"TODAS"                     : TypeIn "~VSDGSITUACAOPEDIDO.."
                endswitch
        
                {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI" Enter
                Moveto [Numero do Pedido       ] Example "NPed"
                Moveto [Codigo do Item         ] Example "codI"
                Moveto [Quantidade             ] Typein "Calc Sum as Quantidade"
                Moveto [Preco Total            ] Typein "Calc Sum as Preco Total"
                Moveto [Valor Desconto Total   ] Typein "Calc Sum as Valor Desconto Total"    
                
                {Ask} TypeIn Tabela_Itens Enter
                Moveto [Codigo do Item         ] Example "codI"
                Moveto [Codigo da Marca        ] Check
                Moveto [Descricao da Marca     ] Check
                Do_It!      
                ClearAll
        EndIf
   else
        If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
           IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
           Then 
           
                {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
                Moveto [Codigo do Representante] Example "crep"
                Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA.."
                   
                {Ask} {\\Sistemas\\Cadastro\\Destinat}
                Moveto [Codigo                 ] Example "cli"
                Moveto [Codigo da Area         ] Check TypeIn "~VSDGAREA.."
                Moveto [Descricao da Area      ] Check 
                Switch
                  Case VSDGSTATUS="INATIVO" : Moveto [Inativo] TypeIn "S"
                  Case VSDGSTATUS="ATIVO"   : Moveto [Inativo] TypeIn "Not S"
                EndSwitch     
                {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
                Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2"
                Moveto [Numero do Documento    ] Example "ndoc"
                Moveto [Serie do Documento     ] Example "sdoc"
                Moveto [Codigo                 ] Check Example "cli"
                Moveto [Razao Social           ] Check    
                Moveto [Cidade                 ] Check TypeIn CIDADE
                Moveto [Codigo do Representante] Check TypeIn "_crep!, ~VSDGREPRESEN.."
                Moveto [Nome Fantasia Represent] Check
                Moveto [UF                     ] Check TypeIn "~VSDGESTADO.."
                Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
                Moveto [Tipo Movimento Estoque ] TypeIn "S"
                Moveto [Situacao               ] TypeIn "Not C"
                {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
                Moveto [Codigo da Empresa      ] Example "cemp"
                Moveto [Numero do Documento    ] Example "ndoc"
                Moveto [Serie do Documento     ] Example "sdoc"
                Moveto [Codigo do Item         ] Example "codI"
                Moveto [Situacao_Item          ] TypeIn "Not C"
                Moveto [Quantidade             ] Typein "Calc Sum as Quantidade"
                Moveto [Preco Total            ] Typein "Calc Sum as Preco Total"
                Moveto [Valor Desconto Total   ] Typein "Calc Sum as Valor Desconto Total"    
        
                {Ask} TypeIn "\\Sistemas\\Estoque\\Itens" Enter
                Moveto [Codigo do Item         ] Example "codI"
                Moveto [Codigo da Marca        ] Check
                Moveto [Descricao da Marca     ] Check 
                Do_It!      
                ClearAll
        EndIf
endif
   
EndProc   ; (Seleciona)

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Adiciona_Dados()

If Not IsTable(TabelaTEMP) Or IsEmpty(TabelaTEMP)
   Then Return
EndIf

Aguarde("Aguarde, adicionando os dados... ")

{Ask} TypeIn TabelaTEMP Enter
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo                 ] Example "ccli"
Moveto [Razao Social           ] Example "ncli"
Moveto [Codigo do Representante] Example "rep"
Moveto [Nome Fantasia Represent] Example "nor"
Moveto [Codigo da Marca        ] Example "CodM" 
Moveto [Descricao da Marca     ] Example "DesM" 
Moveto [Quantidade             ] Example "qtde"
Moveto [Preco Total            ] Example "ptot"
Moveto [Valor Desconto Total   ] Example "vdes"
switch
  case VSDGCODMODELO="03" :
    Moveto [UF                     ] Example "uf"
    Moveto [Descricao da Area      ] Example "cid"
  
  otherwise               :
    Moveto [Cidade                 ] Example "cid"
    Moveto [UF                     ] Example "uf"
endswitch
           
{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo                 ] Example "ccli"
Moveto [Razao Social           ] Example "ncli"
Moveto [Codigo do Representante] Example "rep"
Moveto [Nome Fantasia Represent] Example "nor"
Moveto [Codigo da Marca        ] Example "CodM" 
Moveto [Descricao da Marca     ] Example "DesM" 
Moveto [Vendas_Quantidade      ] Example "qtde"
Moveto [Vendas_Preco Total     ] Example "ptot" TypeIn"-" Example "vdes"
Moveto [Cidade                 ] Example "cid"
Moveto [UF                     ] Example "uf"
Do_It!
ClearAll

EndProc
 
;*******************************************************************************
;* Rotina p/ processar Db temporaria                                           *
;*******************************************************************************
Proc Processa()

;***** Ajusta Dados ************************************
If VSDGEMPRESA="0000"
   Then {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa      ] TypeIn "changeto 0000"
        Moveto [Nome Fantasia Empresa  ] TypeIn "changeto TOTALIZA EMPRESAS"
        Do_It!
        ClearAll
   Else {Ask} {\\Sistemas\\Cadastro\\Empresas}
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Nome Fantasia Empresa  ] Example "nemp"
        {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Nome Fantasia Empresa  ] TypeIn "changeto _nemp"
        Do_It!
        ClearAll
EndIf

switch
  case VSDGCODMODELO="49" :
    {Ask} TypeIn Tabela Enter typein "Fast"
    Moveto [UF                     ] typein "changeto blank"
    Moveto [Cidade                 ] typein "changeto blank" 
    Do_It!
    ClearAll

  case VSDGCODMODELO="03" :
    {Ask} TypeIn Tabela Enter typein "Fast"
    Moveto [Codigo do Representante] typein "changeto blank"
    Moveto [Nome Fantasia Represent] typein "changeto blank" 
    Do_It!
    ClearAll
endswitch   

Switch 
    Case VSDGFINAL=1 :
         ;***** Totaliza Dados ************************************
         {Ask} TypeIn Tabela Enter Check
         Moveto [Vendas_Quantidade      ] Check TypeIn "Calc Sum as VendasQuantidade"
         Moveto [Vendas_Embalagem       ] Check TypeIn "Calc Sum as VendasEmbalagem"
         Moveto [Vendas_Preco Total     ] Check TypeIn "Calc Sum as VendasPreco"
         Do_It!
         ClearAll
                                               
         Empty Tabela
         Add "Answer" Tabela
        
         ;***** Ajustando Quantidade *******************************
         {Ask} {Answer}
         Moveto [Codigo da Empresa      ] Example "CodE"
         Moveto [Codigo                 ] Example "Cod"
         Moveto [Codigo do Representante] Example "CodR"
         Moveto [Codigo da Marca        ] Example "CodM"
         Moveto [VendasQuantidade       ] Example "Qtd"
         {Ask} TypeIn Tabela Enter TypeIn "Fast"
         Moveto [Codigo da Empresa      ] Example "CodE"
         Moveto [Codigo                 ] Example "Cod"
         Moveto [Codigo do Representante] Example "CodR"
         Moveto [Codigo da Marca        ] Example "CodM"
         Moveto [Vendas_Quantidade      ] TypeIn  "Changeto _Qtd"
         Do_It!
         ClearAll
        
         ;***** Totaliza Dados ************************************
         {Ask} TypeIn Tabela Enter
         Moveto [Vendas_Quantidade      ] Example "qtd"
         {Ask} TypeIn Tabela Enter TypeIn "Fast"
         Moveto [Total_Vendas_Empresa   ] TypeIn "changeto _qtd"
         Do_It!
         ClearAll
        
         {Ask} TypeIn Tabela Enter TypeIn "Fast"
         Moveto [Vendas_Embalagem          ] TypeIn "<=0, changeto blank"
         Moveto [Unidade Embalagem         ] TypeIn "changeto Blank"
         Do_It!
         ClearAll
        
         ;*** Totaliza Empresa *****
         {Ask} TypeIn Tabela Enter
         Moveto [Codigo da Empresa      ] Check
         Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
         Do_It!
         ClearAll
        
         {Ask} {Answer}
         Moveto [Codigo da Empresa      ] Example "cemp"
         Moveto [VendasPreco            ] Example "vp"
         {Ask} TypeIn Tabela Enter TypeIn "Fast"
         Moveto [Codigo da Empresa      ] Example "cemp"
         Moveto [Total_Vendas_Empresa   ] TypeIn "changeto _vp"
         Do_It!
         ClearAll
        
         ;***** Totaliza Marca ************************************
         {Ask} TypeIn Tabela Enter
         Moveto [Codigo da Empresa      ] Check
         Moveto [Codigo do Representante] Check
         Moveto [Codigo da Marca        ] Check
         Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
         Do_It!
         ClearAll
        
         {Ask} {Answer}
         Moveto [Codigo da Empresa      ] Example "cemp"
         Moveto [Codigo do Representante] Example "crep"
         Moveto [Codigo da Marca        ] Example "cmar"
         Moveto [VendasPreco            ] Example "vp"
         
         {Ask} TypeIn Tabela Enter TypeIn "Fast"
         Moveto [Codigo da Empresa      ] Example "cemp"
         Moveto [Codigo do Representante] Example "crep"
         Moveto [Codigo da Marca        ] Example "cmar"
         Moveto [Total_Vendas_Marca     ] TypeIn "changeto _vp"
         Do_It!
         ClearAll
        
         CONT=0
         View Colecao
         Scan
           CONT=CONT+1
           If CONT=1
              Then MARCA=[Codigo da Marca]
              Else MARCA=MARCA+" or "+[Codigo da Marca]
           EndIf   
         EndScan
         ClearImage
        
         {Ask} TypeIn Tabela Enter Check
         Moveto [Codigo da Marca] TypeIn MARCA
         Do_It! 
    
    Case VSDGFINAL=2 :
         ;***** Totaliza Dados ************************************
         {Ask} TypeIn Tabela Enter 
         Moveto [Codigo da Empresa      ] Check 
         Moveto [Nome Fantasia Empresa  ] check
         Moveto [Codigo                 ] Check 
         Moveto [Razao Social           ] Check
         Moveto [UF                     ] Check 
         Moveto [Cidade                 ] Check 
         Moveto [Codigo do Representante] Check 
         Moveto [Nome Fantasia Represent] Check
         Moveto [Codigo da Marca        ] Check
         Moveto [Descricao da Marca     ] Check 
         Moveto [Vendas_Quantidade      ] TypeIn "Calc Sum as VendasQuantidade"
         Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
         Do_It!
         ClearAll
        
         {Ask} TypeIn Colecao Enter
         Moveto [Codigo da Marca] TypeIn "_cmarca"
         {Ask} {Answer} Check
         Moveto [Codigo da Marca] TypeIn "_cmarca"
         Do_It!
         ClearAll
        
         Delete Tabela
         Rename "Answer" Tabela                                  
        
         {Ask} TypeIn Tabela Enter
         Moveto [Codigo da Empresa      ] Check
         Moveto [Nome Fantasia Empresa  ] check
         Moveto [Codigo                 ] Check
         Moveto [Razao Social           ] Check
         Moveto [UF                     ] Check
         Moveto [Cidade                 ] Check
         Moveto [Codigo do Representante] Check
         Moveto [Nome Fantasia Represent] Check
         Do_It!
         ClearAll
         
         {Ask} {Answer}
         Moveto [Codigo da Empresa      ] Example "cemp"
         Moveto [Nome Fantasia Empresa  ] Example "nemp"
         Moveto [Codigo                 ] Example "ccli"
         Moveto [Razao Social           ] Example "ncli"
         Moveto [UF                     ] Example "uf"
         Moveto [Cidade                 ] Example "cid"
         Moveto [Codigo do Representante] Example "rep"
         Moveto [Nome Fantasia Represent] Example "nor"
         {Ask} TypeIn Tabela2 Enter TypeIn "Fast Insert"
         Moveto [Codigo da Empresa      ] Example "cemp"
         Moveto [Nome Fantasia Empresa  ] Example "nemp"
         Moveto [Codigo                 ] Example "ccli"
         Moveto [Razao Social           ] Example "ncli"
         Moveto [UF                     ] Example "uf"
         Moveto [Cidade                 ] Example "cid"
         Moveto [Codigo do Representante] Example "rep"
         Moveto [Nome Fantasia Represent] Example "nor"
         Do_It!
         ClearAll
EndSwitch
 
EndProc ;Processa()

;*******************************************************************************
;* Ordena Registros                                                            *
;*******************************************************************************
Proc Ordena_Opcao1()
Release Vars CABECALHO_1,CABECALHO_2,CABECALHO_3,CABECALHO_4,CABECALHO_5

CABECALHO_1 =""
CABECALHO_2 =""
CABECALHO_3 =""
CABECALHO_4 =""
CABECALHO_5 =""

CONT=0
Coedit Colecao
Scan          
  CONT=CONT+1
  [Comissao Consignacao]=CONT
  Switch
    Case CONT=1 : CABECALHO_1=StrVal(CONT)+" "+[Descricao da Marca]
    Case CONT=2 : CABECALHO_2=StrVal(CONT)+" "+[Descricao da Marca]
    Case CONT=3 : CABECALHO_3=StrVal(CONT)+" "+[Descricao da Marca]
    Case CONT=4 : CABECALHO_4=StrVal(CONT)+" "+[Descricao da Marca]
    Case CONT=5 : CABECALHO_5=StrVal(CONT)+" "+[Descricao da Marca]
  EndSwitch
EndScan
Do_It!
ClearAll

Coedit Tabela2,Colecao,Tabela
Scan
  CopyToArray Registro
  VENDAS=[Vendas_Quantidade]
  MARCA =[Codigo da Marca]
  CODIGO=[Codigo]
  Moveto Colecao
  Moveto [Codigo da Marca]
  Locate MARCA
  If RetVal
     Then COLUNA=[Comissao Consignacao]
     Else Moveto Tabela
          Loop
  EndIf
  
  Moveto Tabela2
  Moveto [Codigo]
  Locate CODIGO
  If Not RetVal
     Then End Down
          CopyFromArray Registro  
  EndIf
  Switch
    Case COLUNA=1 : [Coluna_1]=VENDAS
    Case COLUNA=2 : [Coluna_2]=VENDAS
    Case COLUNA=3 : [Coluna_3]=VENDAS
    Case COLUNA=4 : [Coluna_4]=VENDAS
    Case COLUNA=5 : [Coluna_5]=VENDAS
  EndSwitch

  Moveto Tabela

EndScan 
Do_It!
ClearAll

{Ask} TypeIn Tabela2 Enter
Moveto [Coluna_1] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_2] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_3] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_4] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_5] TypeIn "blank, Changeto 0"
Do_It!
ClearAll

EndProc ;Ordena_Opcao1()

;*******************************************************************************
;* Ordena Registros                                                            *
;*******************************************************************************
Proc Ordena_Opcao2()       
private regok

CABECALHO_1 =""
CABECALHO_2 =""
CABECALHO_3 =""
CABECALHO_4 =""
CABECALHO_5 =""
CABECALHO_6 =""
CABECALHO_7 =""
CABECALHO_8 =""
CABECALHO_9 =""
CABECALHO_10=""
CABECALHO_11=""
CABECALHO_12=""
CABECALHO_13=""
CABECALHO_14=""
CABECALHO_15=""
CABECALHO_16=""
CABECALHO_17=""
CABECALHO_18=""

CONT=0
Coedit Colecao
Scan          
  CONT=CONT+1
  [Comissao Consignacao]=CONT
  Switch
    Case CONT= 1 : CABECALHO_1 =[Descricao da Marca]
    Case CONT= 2 : CABECALHO_2 =[Descricao da Marca]
    Case CONT= 3 : CABECALHO_3 =[Descricao da Marca]
    Case CONT= 4 : CABECALHO_4 =[Descricao da Marca]
    Case CONT= 5 : CABECALHO_5 =[Descricao da Marca]
    Case CONT= 6 : CABECALHO_6 =[Descricao da Marca]
    Case CONT= 7 : CABECALHO_7 =[Descricao da Marca]
    Case CONT= 8 : CABECALHO_8 =[Descricao da Marca]
    Case CONT= 9 : CABECALHO_9 =[Descricao da Marca]
    Case CONT=10 : CABECALHO_10=[Descricao da Marca]
    Case CONT=11 : CABECALHO_11=[Descricao da Marca]
    Case CONT=12 : CABECALHO_12=[Descricao da Marca]
    Case CONT=13 : CABECALHO_13=[Descricao da Marca]
    Case CONT=14 : CABECALHO_14=[Descricao da Marca]
    Case CONT=15 : CABECALHO_15=[Descricao da Marca]
    Case CONT=16 : CABECALHO_16=[Descricao da Marca]
    Case CONT=17 : CABECALHO_17=[Descricao da Marca]
    Case CONT=18 : CABECALHO_18=[Descricao da Marca]
  EndSwitch
EndScan
Do_It!
ClearAll

Coedit Tabela2,Colecao,Tabela
Scan
  VENDAS=[VendasQuantidade]
  MARCA =[Codigo da Marca]

  CODIGO=[Codigo]
  REPRES=[Codigo do Representante]

  Moveto Colecao
  Moveto [Codigo da Marca]
  Locate MARCA
  If RetVal
     Then COLUNA=[Comissao Consignacao]
     Else Moveto Tabela
          Loop
  EndIf
  
  regok=false
  
  Moveto Tabela2
  Moveto [Codigo]
  Locate CODIGO
  If RetVal
     then while [Codigo]=CODIGO
            if [Codigo do Representante]=REPRES
               then regok=true
                    quitloop
            endif
            skip
            if eot() then quitloop endif
            Locate Next CODIGO
          endwhile
  endif   
  if not regok
     then moveto Tabela
          Loop
  endif        
  
  Switch
    Case COLUNA= 1 : [Coluna_1 ]=VENDAS
    Case COLUNA= 2 : [Coluna_2 ]=VENDAS
    Case COLUNA= 3 : [Coluna_3 ]=VENDAS
    Case COLUNA= 4 : [Coluna_4 ]=VENDAS
    Case COLUNA= 5 : [Coluna_5 ]=VENDAS
    Case COLUNA= 6 : [Coluna_6 ]=VENDAS
    Case COLUNA= 7 : [Coluna_7 ]=VENDAS
    Case COLUNA= 8 : [Coluna_8 ]=VENDAS
    Case COLUNA= 9 : [Coluna_9 ]=VENDAS
    Case COLUNA=10 : [Coluna_10]=VENDAS
    Case COLUNA=11 : [Coluna_11]=VENDAS
    Case COLUNA=12 : [Coluna_12]=VENDAS
    Case COLUNA=13 : [Coluna_13]=VENDAS
    Case COLUNA=14 : [Coluna_14]=VENDAS
    Case COLUNA=15 : [Coluna_15]=VENDAS
    Case COLUNA=16 : [Coluna_16]=VENDAS
    Case COLUNA=17 : [Coluna_17]=VENDAS
    Case COLUNA=18 : [Coluna_18]=VENDAS
  EndSwitch
  [Coluna_Total] = [Coluna_1 ]+[Coluna_2 ]+[Coluna_3 ]+[Coluna_4 ]+[Coluna_5 ]+
                   [Coluna_6 ]+[Coluna_7 ]+[Coluna_8 ]+[Coluna_9 ]+[Coluna_10]+
                   [Coluna_11]+[Coluna_12]+[Coluna_13]+[Coluna_14]+[Coluna_15]+
                   [Coluna_16]+[Coluna_17]+[Coluna_18]

  Moveto Tabela
EndScan 
Do_It!
ClearAll

{Ask} TypeIn Tabela2 Enter
Moveto [Coluna_1 ] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_2 ] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_3 ] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_4 ] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_5 ] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_6 ] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_7 ] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_8 ] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_9 ] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_10] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_11] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_12] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_13] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_14] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_15] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_16] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_17] TypeIn "blank, Changeto 0" Down
Moveto [Coluna_18] TypeIn "blank, Changeto 0"
Do_It!
ClearAll

EndProc ;Ordena_Opcao2()

;*******************************************************************************
;* Inclusao ColecÆo                                                            *
;*******************************************************************************
Proc Inclusao_Colecao()

ADICAO=False

Switch
  Case Campo="TG_TABELA1"     : IND=NumVal(ControlValue("TG_TABELA1"))
                                
                                If DynArraySize(Array_Lista1)=0
                                   Then Return
                                EndIf

                                If DynArraySize(Array_Lista2)=18
                                   Then Mensagem(" poss¡vel comparar apenas 18 colees !")
                                        Return
                                EndIf   
                                
                                CodTabela=AlinhM(SubStr(Array_Lista1[IND],1,3),3)
                        
                                View Colecao_Temp
                                Moveto [Codigo da Marca]
                                Locate CodTabela
                                If RetVal
                                   Then CopyToArray TABCOLECAO
                                        Coedit Colecao
                                        End Down
                                        CopyFromArray TABCOLECAO
                                        Do_It!
                                        ClearAll
                                        ADICAO=True
                                        Exclusao_Colecao()
                                EndIf
                            
  Case Campo="TG_TABELA2" And 
       EXCLUSAO = True        : Coedit Colecao_Temp
                                Moveto [Codigo da Marca]
                                End Down                            
                                CopyFromArray TABCOLECAO_REMOVE
                                Do_It!
                                ClearAll
EndSwitch

Carrega_Array()

EndProc ;Inclusao_Colecao()

;*******************************************************************************
;* ExclusÆo Tabela de Preo                                                    *
;*******************************************************************************
Proc Exclusao_Colecao()                   
                                   
EXCLUSAO=False                          
                     
Switch                                    
  Case Campo="TG_TABELA1" And
       ADICAO=True            : Coedit Colecao_Temp
                                Moveto [Codigo da Marca]
                                Locate CodTabela
                                If RetVal                 
                                   Then Del
                                EndIf
                                Do_It!   
                                ClearAll

  Case Campo="TG_TABELA2"     : IND=NumVal(ControlValue("TG_TABELA2"))

                                If DynArraySize(Array_Lista2)=0
                                   Then Return         
                                EndIf
                                
                                CodTabela=AlinhM(SubStr(Array_Lista2[IND],5,3),3)
                                
                                Coedit Colecao
                                Moveto [Codigo da Marca]
                                Locate CodTabela
                                If RetVal
                                   Then CopyToArray TABCOLECAO_REMOVE
                                        Del
                                EndIf
                                Do_It!   
                                ClearAll
                                EXCLUSAO=True
                                Inclusao_Colecao()
EndSwitch

Carrega_Array()                    

EndProc ;Exclusao_Colecao()

;*******************************************************************************
;* Carrega Array e Verifica AlteraÆo                                          *
;*******************************************************************************
Proc Carrega_Array()
Private WHI,WHK
WHI=0
WHK=0

Release Vars Array_Lista1
Release Vars Array_Lista2

DynArray Array_Lista2[] 
DynArray Array_Lista1[]                         

If Not IsAssigned(Colecao_Temp)
   Then {Ask} {\\Sistemas\\Estoque\\Marcas} Check
        Do_It!
        ClearAll
       
        Colecao_Temp=Cria_Temp(PrivDir())
        Copy "Answer" Colecao_Temp
EndIf

If Not IsAssigned(Colecao)
   Then Colecao=Cria_Temp(PrivDir())
        Copy Colecao_Temp Colecao
        Empty Colecao
EndIf

If Not IsEmpty(Colecao_Temp)
   Then View Colecao_Temp
        Scan
          WHI=WHI+1
          Array_Lista1[WHI]=Alinhm(StrVal([Codigo da Marca]),3)+Spaces(01)+SubStr([Descricao da Marca],1,30)
        EndScan 
EndIf  

If Not IsEmpty(Colecao)
   Then View Colecao
        Scan
          WHK=WHK+1 
          Array_Lista2[WHK]=AlinhM(StrVal(WHK),2)+"  "+Alinhm(StrVal([Codigo da Marca]),3)+Spaces(01)+SubStr([Descricao da Marca],1,30)   
        EndScan  
EndIf

ClearAll

EndProc ;Carrega_Array() 

;*******************************************************************************
;* Gera Tabela em Excel                                                        *
;*******************************************************************************
Proc Gera_Tabela_Opcao1()

Tabela3=Cria_Temp(PrivDir()) ;---- PARA ARQUIVO EM EXCEL -----
Empty "\\Base\\Sistemas\\Vendas\\RM_3021"
Copy "\\Base\\Sistemas\\Vendas\\RM_3021" Tabela3

{Ask} TypeIn Tabela2 Enter  
Moveto [Codigo da Empresa      ] TypeIn "_CodF"
Moveto [Nome Fantasia Empresa  ] TypeIn "_NomF"
Moveto [Codigo do Representante] TypeIn "_CodR"
Moveto [Nome Fantasia Represent] TypeIn "_NomR"
Moveto [UF                     ] TypeIn "_UF"
Moveto [Cidade                 ] TypeIn "_Cid"
Moveto [Codigo                 ] TypeIn "_CodC"
Moveto [Razao Social           ] TypeIn "_RazS"
Moveto [Coluna_1               ] TypeIn "_Col1"
Moveto [Coluna_2               ] TypeIn "_Col2"
Moveto [Coluna_3               ] TypeIn "_Col3"
Moveto [Coluna_4               ] TypeIn "_Col4"
Moveto [Coluna_5               ] TypeIn "_Col5"
{Ask} TypeIn Tabela3 Enter TypeIn "Fast Insert"  
Moveto [Codigo da Empresa      ] TypeIn "_CodF"
Moveto [Nome Fantasia Empresa  ] TypeIn "_NomF"
Moveto [Codigo do Representante] TypeIn "_CodR"
Moveto [Nome Fantasia Represent] TypeIn "_NomR"
Moveto [UF                     ] TypeIn "_UF"
Moveto [Cidade                 ] TypeIn "_Cid"
Moveto [Codigo                 ] TypeIn "_CodC"
Moveto [Razao Social           ] TypeIn "_RazS"
Moveto [Coluna_1               ] TypeIn "_Col1"
Moveto [Coluna_2               ] TypeIn "_Col2"
Moveto [Coluna_3               ] TypeIn "_Col3"
Moveto [Coluna_4               ] TypeIn "_Col4"
Moveto [Coluna_5               ] TypeIn "_Col5"
Do_It!
ClearAll

Coedit Tabela3
Scan
  [Cabecalho_1] = CABECALHO_1
  [Cabecalho_2] = CABECALHO_2
  [Cabecalho_3] = CABECALHO_3
  [Cabecalho_4] = CABECALHO_4
  [Cabecalho_5] = CABECALHO_5
  [Total      ] = [Coluna_1]+[Coluna_2]+[Coluna_3]+[Coluna_4]+[Coluna_5]
EndScan
Do_It!
ClearAll  

Copy Tabela3 Tabela2
Delete Tabela3

EndProc ;Gera_Tabela_Opcao1()

;*******************************************************************************
;* Gera Tabela em Excel                                                        *
;*******************************************************************************
Proc Gera_Tabela_Opcao2()

Tabela3=Cria_Temp(PrivDir()) ;---- PARA ARQUIVO EM EXCEL -----
Empty "\\Base\\Sistemas\\Vendas\\RM_3020" 
Copy "\\Base\\Sistemas\\Vendas\\RM_3020" Tabela3                                        

{Ask} TypeIn Tabela2 Enter  
Moveto [Codigo da Empresa      ] TypeIn "_CodF"
Moveto [Nome Fantasia Empresa  ] TypeIn "_NomF"
Moveto [Codigo do Representante] TypeIn "_CodR"
Moveto [Nome Fantasia Represent] TypeIn "_NomR"
Moveto [UF                     ] TypeIn "_UF"
Moveto [Cidade                 ] TypeIn "_Cid"
Moveto [Codigo                 ] TypeIn "_CodC"
Moveto [Razao Social           ] TypeIn "_RazS"
Moveto [Coluna_1               ] TypeIn "_Col1"
Moveto [Coluna_2               ] TypeIn "_Col2"
Moveto [Coluna_3               ] TypeIn "_Col3"
Moveto [Coluna_4               ] TypeIn "_Col4"
Moveto [Coluna_5               ] TypeIn "_Col5"
Moveto [Coluna_6               ] TypeIn "_Col6"
Moveto [Coluna_7               ] TypeIn "_Col7"
Moveto [Coluna_8               ] TypeIn "_Col8"
Moveto [Coluna_9               ] TypeIn "_Col9"
Moveto [Coluna_10              ] TypeIn "_Col10"
Moveto [Coluna_11              ] TypeIn "_Col11"
Moveto [Coluna_12              ] TypeIn "_Col12"
Moveto [Coluna_13              ] TypeIn "_Col13"
Moveto [Coluna_14              ] TypeIn "_Col14"
Moveto [Coluna_15              ] TypeIn "_Col15"
Moveto [Coluna_16              ] TypeIn "_Col16"
Moveto [Coluna_17              ] TypeIn "_Col17"
Moveto [Coluna_18              ] TypeIn "_Col18"
{Ask} TypeIn Tabela3 Enter TypeIn "Fast Insert"  
Moveto [Codigo da Empresa      ] TypeIn "_CodF"
Moveto [Nome Fantasia Empresa  ] TypeIn "_NomF"
Moveto [Codigo do Representante] TypeIn "_CodR"
Moveto [Nome Fantasia Represent] TypeIn "_NomR"
Moveto [UF                     ] TypeIn "_UF"
Moveto [Cidade                 ] TypeIn "_Cid"
Moveto [Codigo                 ] TypeIn "_CodC"
Moveto [Razao Social           ] TypeIn "_RazS"
Moveto [Coluna_1               ] TypeIn "_Col1"
Moveto [Coluna_2               ] TypeIn "_Col2"
Moveto [Coluna_3               ] TypeIn "_Col3"
Moveto [Coluna_4               ] TypeIn "_Col4"
Moveto [Coluna_5               ] TypeIn "_Col5"
Moveto [Coluna_6               ] TypeIn "_Col6"
Moveto [Coluna_7               ] TypeIn "_Col7"
Moveto [Coluna_8               ] TypeIn "_Col8"
Moveto [Coluna_9               ] TypeIn "_Col9"
Moveto [Coluna_10              ] TypeIn "_Col10"
Moveto [Coluna_11              ] TypeIn "_Col11"
Moveto [Coluna_12              ] TypeIn "_Col12"
Moveto [Coluna_13              ] TypeIn "_Col13"
Moveto [Coluna_14              ] TypeIn "_Col14"
Moveto [Coluna_15              ] TypeIn "_Col15"
Moveto [Coluna_16              ] TypeIn "_Col16"
Moveto [Coluna_17              ] TypeIn "_Col17"
Moveto [Coluna_18              ] TypeIn "_Col18"
Do_It!
ClearAll
  

Coedit Tabela3
Scan
  [Cabecalho_1 ] = CABECALHO_1
  [Cabecalho_2 ] = CABECALHO_2
  [Cabecalho_3 ] = CABECALHO_3
  [Cabecalho_4 ] = CABECALHO_4
  [Cabecalho_5 ] = CABECALHO_5
  [Cabecalho_6 ] = CABECALHO_6
  [Cabecalho_7 ] = CABECALHO_7
  [Cabecalho_8 ] = CABECALHO_8
  [Cabecalho_9 ] = CABECALHO_9
  [Cabecalho_10] = CABECALHO_10
  [Cabecalho_11] = CABECALHO_11
  [Cabecalho_12] = CABECALHO_12
  [Cabecalho_13] = CABECALHO_13
  [Cabecalho_14] = CABECALHO_14
  [Cabecalho_15] = CABECALHO_15
  [Cabecalho_16] = CABECALHO_16
  [Cabecalho_17] = CABECALHO_17
  [Cabecalho_17] = CABECALHO_18

  [Total      ] = [Coluna_1 ]+[Coluna_2 ]+[Coluna_3 ]+[Coluna_4 ]+[Coluna_5 ]+
                  [Coluna_6 ]+[Coluna_7 ]+[Coluna_8 ]+[Coluna_9 ]+[Coluna_10]+
                  [Coluna_11]+[Coluna_12]+[Coluna_13]+[Coluna_14]+[Coluna_15]+
                  [Coluna_16]+[Coluna_17]+[Coluna_18]
EndScan
Do_It!
ClearAll  

Copy Tabela3 Tabela2
Delete Tabela3

EndProc ;Gera_Tabela_Opcao2()
  
;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Private Disparo,Campo,Evento,Elemento
Temp=True
MSG_CAMPO=""
TECLA=""

If Disparo="OPEN"  
   Then AoCriarShowDialog()
        TiraSombraShowDialog()
EndIf

If Disparo="CLOSE"
   Then Switch
          Case Campo="YES": AcceptDialog
          Case Campo="NO" : CancelDialog
        EndSwitch
        Return Temp
EndIf 

If Disparo="UPDATE"
   Then Switch
          Case Campo="TG_ADICIONA": Temp=True 
                                    Campo="TG_TABELA1"
                                    Inclusao_Colecao()
          Case Campo="TG_REMOVE"  : Temp=True
                                    Campo="TG_TABELA2"
                                    Exclusao_Colecao()
          Case Campo="YES"        : If Checa_TAG()
                                       Then RefreshDialog
                                    EndIf   
          Case Campo="NO"         : If Checa_TAG()
                                       Then RefreshDialog
                                    EndIf   
          OtherWise               : Return Temp
        EndSwitch
EndIf


If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     
     Case Evento["KeyCode"] =-147: 
          Switch
            Case Campo="TG_TABELA1"       : INDICE=ControlValue("TG_TABELA1")
                                            If IsAssigned(Array_Lista1) And DynArraySize(Array_Lista1)<>0 
                                               Then ConfGeral("Confirma a excluso desta coleo ?//"+Array_Lista1[INDICE])
                                                    If OK="S"
                                                       Then Exclusao_Colecao()
                                                    EndIF
                                            EndIf   
         EndSwitch            
     Case Evento["KeyCode"] = -77 and Campo="TG_TABELA1": ;tabela1
          indicelista=ArrayElement1
          Inclusao_Colecao()
          ArrayElement1=indicelista
                   
     Case Evento["KeyCode"] = -75 and Campo="TG_TABELA2": ; tabela2
          indicelista=ArrayElement2
          Exclusao_Colecao()    
          ArrayElement2=indicelista

     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESATE"       : Campo="NO"     
            Case campo="TG_GERENCIA"      : Campo="TG_EMPRESATE"
            Case Campo="TG_REPRESEN"      : Campo="TG_GERENCIA"
            Case Campo="TG_CIDADE"        : Campo="TG_REPRESEN"
            Case Campo="TG_ESTADO"        : Campo="TG_CIDADE"
            Case Campo="TG_AREA"          : Campo="TG_ESTADO"
            Case Campo="TG_DTINI"         : Campo="TG_AREA"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_OPRELCODALF"   : Campo="TG_DTFIM"
            Case Campo="TG_STATUS"        : Campo="TG_OPRELCODALF"
            Case Campo="TG_SITUACAOPEDIDO": Campo="TG_STATUS"
            Case Campo="TG_FINALIDADE"    : Campo="TG_SITUACAOPEDIDO"
            Case Campo="TG_TABELA1"       : Campo="TG_FINALIDADE"
            Case Campo="TG_TABELA2"       : Campo="TG_TABELA1"
            Case Campo="TG_CODMODELO"     : Campo="TG_TABELA2"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESATE"
          EndSwitch
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or 
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESATE"     :Campo="TG_GERENCIA"
                    Case Campo="TG_GERENCIA"    :Campo="TG_REPRESEN"
                    Case Campo="TG_REPRESEN"    :Campo="TG_CIDADE" 
                    Case Campo="TG_CIDADE"       :Campo="TG_ESTADO"
                         If Upper(VSDGCIDADE)="TODAS"
                            Then CIDADE=""
                            Else CIDADE=VSDGCIDADE
                         EndIf       
                    Case Campo="TG_ESTADO"      : Campo="TG_AREA"
                    Case Campo="TG_AREA"        : Campo="TG_DTINI"
                    Case Campo="TG_DTINI"       : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"       : Campo="TG_OPRELCODALF"
                    Case Campo="TG_OPRELCODALF" : Campo="TG_STATUS"
                    Case Campo="TG_STATUS"      :
                         if ORIGEM_RM_3152="PEDIDOS"
                            then Campo="TG_SITUACAOPEDIDO"
                            else Campo="TG_TABELA1"
                                 VSDGSITUACAOPEDIDO=""
                         endif   
                    Case Campo="TG_SITUACAOPEDIDO" : Campo="TG_FINALIDADE"
                    Case Campo="TG_FINALIDADE"     : Campo="TG_TABELA1"
                    Case Campo="TG_TABELA1"        : Campo="TG_TABELA2"
                    Case Campo="TG_TABELA2"        : Campo="TG_CODMODELO"
                    Case Campo="TG_CODMODELO"      : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_EMPRESATE"  :
     MSG_CAMPO="Informa a Empresa"  
  Case Campo="TG_DTFIM":
     MSG_CAMPO="Informe a Data Final"
  Case Campo="TG_TABELA1"    : 
     MSG_CAMPO=" >> Adiciona tabela de preo"
     TECLA=TECLA+" >=Adicionar"
  Case Campo="TG_TABELA2"    : 
     MSG_CAMPO=" << Remove tabela de preo"  
     TECLA=TECLA+" <=Remover"
  Case Campo="TG_FINALIDADE":
     MensagemRadioButtons()       
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ModeloRelatoriosCarregaLista()

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("01  Anal¡tico por Representante/UF/Cidade/Cliente")
ModeloRelatoriosAdd("42  Sinttico por Representante/UF/Cidade/Cliente")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("02  UF/Cidade")
ModeloRelatoriosAdd("03  UF/Area/Cliente")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("49  Representante/Cliente")
ModeloRelatoriosAdd("Fim")
                           
EndProc ;ModeloRelatoriosCarregaLista     

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
LimpAguarde()

If Not IsAssigned(TITTULO_RM_3152) then TITTULO_RM_3152="Pedidos  - ComparaÆo de Marcas 18/Meses" endif
If Not IsAssigned(ORIGEM_RM_3152 ) then ORIGEM_RM_3152 ="PEDIDOS"                                                  endif

EXCLUSAO    =False
VSDGEMPRESA =""
VSDGESTADO  = ""
VSDGCIDADE  =""              
VSDGREPRESEN=""
VSDGAREA    =""
VSDGDTINI   =BlankDate()
VSDGDTFIM   =BlankDate()
VSDGOPRELCODALF=""
VSDGSITUACAOPEDIDO=""

Carrega_Array()

ModeloRelatoriosCarregaLista()

While True

  ShowDialog TITTULO_RM_3152 Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE","UPDATE","CLOSE","SELECT"
  Key "F1","ENTER","ESC","TAB",
      -75, -77, -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140, -147  
    @ 01,00 Height 22 Width 80

    Label  @ 00,00 "Empresa"  For "TG_EMPRESATE"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESATE"    To VSDGEMPRESA
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 02,00 "Gerncia " For "TG_GERENCIA"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_GERENCIA" To VSDGGERENCIA
    Accept @ 03,09 Width 25 "A10"  Picture "!*!" Tag "TG_DESCGERENCIA" To VSDGDESCGERENCIA

    Label  @ 04,00 "Representante"  For "TG_REPRESEN"
    Accept @ 05,01 Width 07 "A4"  Picture "#*#" Tag "TG_REPRESEN"   To VSDGREPRESEN
    Accept @ 05,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMREPR"    To VSDGNOMREPR

    Label  @ 06,00 "Cidade"  For "TG_CIDADE"
    Accept @ 07,01 Width 27 "A20"  Picture "!*!" Tag "TG_CIDADE"  To VSDGCIDADE

    Label  @ 06,27 "Estado"  For "TG_ESTADO"
    Accept @ 07,28 Width 06 "A2"  Picture "!*!" Tag "TG_ESTADO" To VSDGESTADO                         
   
    Label  @ 08,00 "Area"  For "TG_AREA"
    Accept @ 09,01 Width 07 "A2"  Picture "#*#" Tag "TG_AREA"     To VSDGAREA
    Accept @ 09,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMAREA"  To VSDGNOMAREA    
                        
    Label  @ 00,35 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 01,38 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 01,51 "at" For "TG_DTFIM"
    Accept @ 01,56 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM
   
    Label  @ 02,35 "Opo de Ordem" For "TG_OPRELCODALF"
    Accept @ 03,39 Width 04 "A1"  Picture "1,2" Tag "TG_OPRELCODALF" To VSDGOPRELCODALF
    Accept @ 03,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPRELCODALF" To VSDGNOMOPRELCODALF

    Label  @ 04,35 "Status Cliente"  For "TG_STATUS"
    Accept @ 05,36 Width 33 "A12" Picture "ATIVO,INATIVO,TODOS" Tag "TG_STATUS" To VSDGSTATUS

    Label  @ 06,35 "Situacao do Pedido"  For "TG_SITUACAOPEDIDO"
    Accept @ 07,36 Width 33 "A30"  Picture "ABERTO,SUSPENSO,CANCELADO,FATURADO,TODAS,!*!" Tag "TG_SITUACAOPEDIDO"  To VSDGSITUACAOPEDIDO

    RadioButtons @ 09,35 Height 2 Width 37
    "~1~ ComparaÆo de Marcas  5/Meses",
    "~2~ ComparaÆo de Marcas 18/Meses"
    Tag "TG_FINALIDADE"
    To VSDGFINAL

    @ 12,00 ?? " Colees Dispon¡veis" 
    @ 12,40 ?? " Seq Colees a Comparar"         
      
    PickDynArray @13,01 Height 4 width 27 ;58
    Columns 1
     Array_Lista1
      Tag "TG_TABELA1"
       To ArrayElement1

    PickDynArray @13,41 Height 4 width 27 ;58
    Columns 1
     Array_Lista2
      Tag "TG_TABELA2"
       To ArrayElement2

    Pushbutton @ 13,31 width 8 "~>~>"   Tag "TG_ADICIONA"  To BottonValue
    Pushbutton @ 15,31 width 8 "~<~<"   Tag "TG_REMOVE"    To BottonValue

    Label  @ 17,00  "Modelo de ~R~elat¢rio"  For "TG_CODMODELO"
    Accept @ 18,01  Width 06 "A3"  Picture "!*!" Tag "TG_CODMODELO" To VSDGCODMODELO
    Accept @ 18,06  Width 47 "A60"  Picture "!*!" Tag "TG_MODELO" To VSDGMODELO        

    Pushbutton @ 18,54 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 18,66 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop EndIf
  If Not ValidarModelosRelatorios() Then Loop EndIf         

  If IsBlank(VSDGDTFIM)
     Then Mensagem("Data Final Invalida !")
          Loop
  EndIf
 
  If IsEmpty(Colecao)
     Then MENSAGEM("Informe pelo menos uma coleo para prosseguir !")
          Loop
  EndIf

  If VSDGEMPRESA="0000"
     Then VSDGEMPRESA2=""
     Else VSDGEMPRESA2=VSDGEMPRESA
  EndIf

  ClearAll
  DISPOSITIVO()
  If OK=""  Then Loop EndIf
  
  AGUARDE("Aguarde, gerando o relat¢rio")
  Tabela=Cria_Temp(PrivDir())
  
  Switch 
    Case VSDGFINAL=1 : Empty "\\Base\\Sistemas\\Vendas\\RM_3115"
                       Copy "\\Base\\Sistemas\\Vendas\\RM_3115" Tabela
                      
                       Tabela2=Cria_Temp(PrivDir())
                       Empty "\\Base\\Sistemas\\Vendas\\RM_3115A"
                       Copy "\\Base\\Sistemas\\Vendas\\RM_3115A" Tabela2
                       
    Case VSDGFINAL=2 : Empty "\\Base\\Sistemas\\Vendas\\RM_3102"
                       Copy "\\Base\\Sistemas\\Vendas\\RM_3102" Tabela
                       
                       Tabela2=Cria_Temp(PrivDir())
                       Empty "\\Base\\Sistemas\\Vendas\\RM_3102a"
                       Copy "\\Base\\Sistemas\\Vendas\\RM_3102a" Tabela2
  EndSwitch
  
  Aguarde("Gerando Tabela dos Itens... ")
  {Ask} TypeIn "\\Sistemas\\Estoque\\Itens" Enter
  Moveto [Codigo do Item         ] Check
  Moveto [Codigo da Marca        ] Check
  Moveto [Descricao da Marca     ] Check
  Do_It!
  ClearAll
  Tabela_Itens=Cria_Temp(PrivDir())
  Copy "Answer" Tabela_Itens      
  
  TabelaTEMP=Cria_Temp("\\Sistemas\\Vendas\\")
  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    If IsTable("Answer") Then Delete "Answer" EndIf
    Seleciona()
    If Not IsTable("Answer") Then Loop EndIf
    If IsTable(TabelaTEMP)
       Then Add "Answer" TabelaTEMP
       Else Rename "Answer" TabelaTEMP
    EndIf
  EndWhile  
  
  Adiciona_Dados()
  Processa()
  Switch 
    Case VSDGFINAL=1 : Ordena_Opcao1()
    Case VSDGFINAL=2 : Ordena_Opcao2()
  EndSwitch   
                     
  If IsEmpty(Tabela2)
     Then MENSAGEM("No existem registros a processar")
          Delete Tabela
          Delete Tabela2 
          Delete Tabela_Itens
          Loop
  EndIf
  
  If VSDGFINAL=2
     Then Impressao_Orientacao="Paisagem"
  EndIf
  
  Switch 
    Case DISPOSITIVO_OPCAO="A" : Switch
                                   Case VSDGFINAL=1 : Gera_Tabela_Opcao1()  
                                   Case VSDGFINAL=1 : Gera_Tabela_Opcao2()
                                 EndSwitch            
                                 IMPRIREL(Tabela2,"R")
    
    case VSDGCODMODELO="01" :
         If VSDGOPRELCODALF="1"
            Then Seta_Ordem_Report(Tabela2,"R","Codigo","Codigo","")
            Else Seta_Ordem_Report(Tabela2,"R","Codigo","Razao Social","")
         EndIf
         IMPRIREL(Tabela2,"R")

    Case VSDGCODMODELO="42"    :
         Seta_Ordem_Report(Tabela2,"1","Codigo","Codigo","")
         IMPRIREL(Tabela2,"1")

    case VSDGCODMODELO="02" :
         IMPRIREL(Tabela2,"1")

    case VSDGCODMODELO="03" :
         If VSDGOPRELCODALF="1"
            Then Seta_Ordem_Report(Tabela2,"7","Codigo","Codigo","")
            Else Seta_Ordem_Report(Tabela2,"7","Codigo","Razao Social","")
         EndIf
         IMPRIREL(Tabela2,"7")

    case VSDGCODMODELO="49" :
         If VSDGOPRELCODALF="1"
            Then Seta_Ordem_Report(Tabela2,"6","Codigo","Codigo","")
            Else Seta_Ordem_Report(Tabela2,"6","Codigo","Razao Social","")
         EndIf
         IMPRIREL(Tabela2,"6")
  EndSwitch
  Delete Tabela
  Delete Tabela2
  Delete Tabela_Itens
EndWhile
ClearAll
Release Vars All
Release Procs All
