;** RM_0100 ********************************************************************
;*  Posicao de Ordens de Compra                                                *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 09/06/2017 por Rafael Matos
;Ultima Alteracao: 28/09/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao:  Ajustes filtro situacao, calculo pendente
;Ultima Alteracao: 29/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()
;Ultima Alteracao: 15/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustesm itens sem codigo da OC, pegar descricao do item da OC
;Ultima Alteracao: 19/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Novo campo Tipo da Operacao OC
;Ultima Alteracao: 10/02/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes layout TG_REFERENCIA   
;Ultima Alteracao: 08/04/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog     

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona()

AGUARDE("Aguarde, selecionando ordens de compra 1/8")

If IsTable("\\Sistemas\\Compras\\OcC") And
   IsTable("\\Sistemas\\Compras\\OcI")
   then
        {Ask} TypeIn "\\Sistemas\\Compras\\OcC" Enter
        Moveto [Numero da OC           ] Check TypeIn "~VSDGOC.."
        Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
        Moveto [Nome Fantasia Empresa  ] Check
        Moveto [Data de Emissao        ] Check
        Moveto [Data de Entrega        ] Check
        Moveto [Codigo                 ] Check TypeIn "~VSDGDESTINAT.."
        Moveto [Razao Social           ] Check
        Moveto [UF                     ] Check
        Moveto [Cidade                 ] Check
        Moveto [Codigo do Comprador    ] Check
        Moveto [Nome do Comprador      ] Check
        Moveto [Descricao CondPagto    ] Check
        Moveto [Situacao da OC         ] Check
        switch
          case VSDGSITUACAOOC="JUNTAR ABERTO+SUSPENSO"     : TypeIn "ABERTO or SUSPENSO"
          case VSDGSITUACAOOC="IGNORAR CANCELADO+SUSPENSO" : TypeIn "not CANCELADO, not SUSPENSO"
          case VSDGSITUACAOOC="IGNORAR CANCELADO"          : TypeIn "not CANCELADO"
          case VSDGSITUACAOOC<>"TODAS"                     : TypeIn "~VSDGSITUACAOOC.."
        endswitch
        If IsBlank(VSDGOC)
           Then 
                if VSDGOPDTEMISENTR="1" Then Moveto [Data de Entrega ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" endif
                If VSDGOPDTEMISENTR="2" Then Moveto [Data de Emissao ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" endif
        EndIf   
        Moveto [Tipo da Operacao OC     ] Check TypeIn "~VSDGTPOPEROC.."
        Moveto [Descricao da Operacao OC] Check
        Do_It!
        ClearAll
   else return     
endif

{Modify} {Restructure} {Answer}
Ins Moveto [Field Name] TypeIn "Numero da OC" Right " "
Do_It! 
ClearAll

TabelaOC=Cria_Temp(PrivDir())
Rename "Answer" TabelaOC
ClearAll

;-------------------------------------------------------------------------------
AGUARDE("Aguarde, selecionando ordens de compra 2/8")

{Ask} TypeIn TabelaOC Enter 
Moveto [Numero da OC       ] Check 
Do_It!
ClearAll

{Modify} {Restructure} {Answer}
Ins Moveto [Field Name] TypeIn "Numero da OC" Right " "
Do_It! 
ClearAll

TabelaRP=Cria_Temp(PrivDir())
Rename "Answer" TabelaRP
ClearAll

;-------------------------------------------------------------------------------
AGUARDE("Aguarde, selecionando ordens de compra 3/8")

If IsTable("\\Sistemas\\Compras\\OcI")
   then
        {Ask} TypeIn TabelaRP Enter 
        Moveto [Numero da OC           ]       Example "OC"
        {Ask} TypeIn "\\Sistemas\\Compras\\OCI" Enter
        Moveto [Numero da OC           ]       Example "OC"
        Moveto [Codigo do Item         ] Check TypeIn "~VSDGITEM.."
        Do_It!
        ClearAll
        
        {Ask} {Answer}
        Moveto [Codigo do Item         ]       Example "item"
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item         ] Check Example "item"
        Moveto [Codigo da Marca        ] Check TypeIn "~VSDGMARCA.."
        Moveto [Descricao da Marca     ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Codigo da Familia      ]       TypeIn "~VSDGFAMI.."
        Moveto [Codigo do Grupo        ]       TypeIn "~VSDGGRP.."
        Moveto [Referencia             ] Check TypeIn "~VSDGREFERENCIA.."
        Do_It!
        ClearAll
        
        {Modify} {Restructure} {Answer}
        Ins Moveto [Field Name] TypeIn "Codigo do Item" Right " "
        Do_It! 
        ClearAll
        
        TabelaRI=Cria_Temp(PrivDir())
        Rename "Answer" TabelaRI
        ClearAll
        
        ;-------------------------------------------------------------------------------
        AGUARDE("Aguarde, selecionando ordens de compra 4/8")
        
        {Ask} TypeIn TabelaRP Enter 
        Moveto [Numero da OC           ]       Example "OC"
        {Ask} TypeIn "\\Sistemas\\Compras\\OcI" Enter
        Moveto [Numero da OC           ] Check Example "OC"
        Moveto [Item da OC             ] Check
        Moveto [Codigo do Item         ] Check  
        Moveto [Descricao do Item      ] Check ; adicionado
        Moveto [Tipo do Item           ] Check
        Switch
          Case VSDGOPQUANTIDADE="1" :                   ;Unidade de Compra
               Moveto [Unidade Fiscal      ] Check
               Moveto [Quantidade          ] Check
               Moveto [Quantidade Entregue ] Check
          Case VSDGOPQUANTIDADE="2" :                   ;Unidade Interna
               Moveto [Unidade Interna     ] Check TypeIn "As Unidade Fiscal"
               Moveto [Quantidade          ] TypeIn "_qtd, calc _qtd*_fconv As Quantidade"          
               Moveto [Fator de Conversao  ] TypeIn "_fconv"
               Moveto [Quantidade Entregue ] TypeIn "_qtde, calc _qtde*_fconv As Quantidade Entregue"
        EndSwitch        
        
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Do_It!
        ClearAll  
        
        {Ask} {Answer} Check
        Moveto [Codigo do Item         ] typein "_item!" 
        {Ask} TypeIn TabelaRI Enter 
        Moveto [Codigo do Item         ] typein "_item"
     ;;;Moveto [Descricao do Item      ] Check
        Moveto [Referencia             ] Check
        Moveto [Codigo da Marca        ] Check 
        Moveto [Descricao da Marca     ] Check 
        Do_It!
        ClearAll
        
        TabelaRIP=Cria_Temp(PrivDir())
        Rename "Answer" TabelaRIP
        ClearAll
endif

;-------------------------------------------------------------------------------
AGUARDE("Aguarde, selecionando pedidos de venda 7/8")

{Ask} TypeIn TabelaRIP Enter
Moveto [Quantidade             ]       TypeIn "_qtd"
Moveto [Preco Total            ]       TypeIn "_prt"
Moveto [Valor Desconto Total   ]       TypeIn "_vdt"
Moveto [Preco Unitario         ]       TypeIn "changeto (_prt-_vdt)/_qtd"
Do_It!
ClearAll

{Ask} TypeIn TabelaRIP Enter
Moveto [Preco Total            ]       TypeIn "_prt, changeto (_prt-_vdt)"
Moveto [Valor Desconto Total   ]       TypeIn "_vdt"
Do_It!
ClearAll

{Ask} TypeIn TabelaRIP Enter Check
Moveto [Quantidade             ]       TypeIn "_qtd"
Moveto [Quantidade Entregue    ]       TypeIn "_qtdaf, calc (_qtd-_qtdaf) As \"Qtde_AEntregar\""
Do_It!
ClearAll

{Ask} {Answer} Check
Moveto [Preco Unitario         ]       TypeIn "_pru"
Moveto [Quantidade Entregue    ]       TypeIn "_qtdf, calc (_qtdf*_pru) As \"Preco Total_Entregue\""
Do_It!
ClearAll

{Ask} {Answer} Check
Moveto [Preco Unitario         ]       TypeIn "_pru"
Moveto [Qtde_AEntregar         ]       TypeIn "_qtdaf, calc (_qtdaf*_pru) As \"Preco Total_AEntregar\""
Do_It!
ClearAll

{Ask} {Answer}  

Moveto [Qtde_AEntregar         ]       TypeIn "<=0"
Moveto [Preco Total_AEntregar  ]       TypeIn      "Changeto blank"
down

Moveto [Quantidade Entregue    ]       TypeIn " =0, Changeto blank"
down

Moveto [Quantidade Entregue    ]       TypeIn "<=0"
Moveto [Preco Total_Entregue   ]       TypeIn      "Changeto blank"
down

Moveto [Qtde_AEntregar         ]       TypeIn " =0, Changeto blank"
Moveto [Preco Total_AEntregar  ]       TypeIn      "Changeto blank"
down

Do_It!
ClearAll


{Modify} {Restructure} {Answer}
Ins Moveto [Field Name] TypeIn "Numero da OC" Right " " Down
Ins Moveto [Field Name] TypeIn "Item da OC"   Right " " Down
Do_It! 
ClearAll

TabelaRIP=Cria_Temp(PrivDir())
Rename "Answer" TabelaRIP
ClearAll

;-------------------------------------------------------------------------------
AGUARDE("Aguarde, selecionando ordens de compra 8/8")

{Ask} TypeIn TabelaOC Enter Check 
Moveto [Numero da OC      ]       Example "OC"
{Ask} TypeIn TabelaRIP Enter Check 
Moveto [Numero da OC       ] Check Example "OC" 
Do_It!
ClearAll

If VSDGSITUACAOOC<>"SUSPENSO"  And
   VSDGSITUACAOOC<>"CANCELADO" AND
   VSDGSITUACAOOC<>"ENTREGUE"
   then
        {Ask} {Answer} typein "Fast"
        Moveto [Situacao da OC         ]       TypeIn "CANCELADO or ENTREGUE"
        Moveto [Qtde_AEntregar         ]       TypeIn      "Changeto blank"
        Moveto [Preco Total_AEntregar  ]       TypeIn      "Changeto blank"
        Do_It!
        ClearAll
endif

If IsAssigned(TabelaOC)  And IsTable(TabelaOC)  Then Delete TabelaOC EndIf
If IsAssigned(TabelaRP)  And IsTable(TabelaRP)  Then Delete TabelaRP  EndIf
If IsAssigned(TabelaRI)  And IsTable(TabelaRI)  Then Delete TabelaRI  EndIf
If IsAssigned(TabelaRIP) And IsTable(TabelaRIP) Then Delete TabelaRIP EndIf

EndProc  ; (Seleciona)

;*******************************************************************************
;* Rotina para contegens de pedidos e clientes                                 *
;*******************************************************************************
Proc Contagens()
private vrold


{Modify} {Restructure} TypeIn Tabela Enter
end Down Moveto [Field Name] TypeIn "NumeroDeOC"  Right "S"
end Down Moveto [Field Name] TypeIn "NumeroDeClientes" Right "S"
Do_It! 
ClearAll

Sort Tabela On "Numero da OC" 

vrold="????"
EditKey
scan
  if [Numero da OC]<>vrold
     then vrold=[Numero da OC]
          [NumeroDeOC ]=1
  endif        
endscan
do_It!
ClearAll


Sort Tabela On "Codigo"

vrold="????"
EditKey
scan
  if [Codigo          ]<>vrold
     then vrold=[Codigo          ]
          [NumeroDeClientes]=1
  endif        
endscan
do_It!
ClearAll

EndProc

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

If Disparo="OPEN"  
   Then AoCriarShowDialog()
        TiraSombraShowDialog()
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"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"        : Campo="NO"
            Case Campo="TG_OC"             : Campo="TG_EMPRESA"
            Case Campo="TG_TPOPEROC"       : Campo="TG_OC"
            Case Campo="TG_DESTINAT"       : Campo="TG_TPOPEROC" 
            Case Campo="TG_SITUACAOOC"     : Campo="TG_DESTINAT"
            Case Campo="TG_OPDTEMISENTR"   : Campo="TG_SITUACAOOC"
            Case Campo="TG_DTINI"          : Campo="TG_OPDTEMISENTR"
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
            Case Campo="TG_OPQUANTIDADE"   : Campo="TG_OC" 
            Case Campo="TG_FAMI"           : Campo="TG_OPQUANTIDADE" 
            Case Campo="TG_GRP"            : Campo="TG_FAMI" 
            Case Campo="TG_MARCA"          : Campo="TG_GRP"
            Case Campo="TG_ITEM"           : Campo="TG_MARCA"
            Case Campo="TG_REFERENCIA"     : Campo="TG_ITEM"
            Case Campo="TG_CODMODELO"      : Campo="TG_REFERENCIA"
            Case Campo="YES" Or Campo="NO" : Campo="TG_EMPRESA"
          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_EMPRESA" : Campo="TG_OC"
                    Case Campo="TG_OC"      : 
                      If Not IsBlank(VSDGOC)
                         Then Campo="TG_OPQUANTIDADE"

                              VSDGTPOPEROC=""                    
                              VSDGNOMTPOPEROC=""
                                                  
                              VSDGDESTINAT=""
                              VSDGNOMDEST=""

                              VSDGSITUACAOOC=""

                              VSDGOPDTEMISENTR=""
                              VSDGNOMOPDTEMISENTR=""

                              VSDGDTINI=BlankDate()
                              VSDGDTFIM=BlankDate()

                         Else Campo="TG_TPOPEROC"
                      EndIf     
                    Case Campo="TG_TPOPEROC"       : Campo="TG_DESTINAT"
                    Case Campo="TG_DESTINAT"       : Campo="TG_SITUACAOOC"
                    Case Campo="TG_SITUACAOOC"     : Campo="TG_OPDTEMISENTR"
                    Case Campo="TG_OPDTEMISENTR"   : Campo="TG_DTINI"
                    Case Campo="TG_DTINI"          : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"          : Campo="TG_OPQUANTIDADE"
                    Case Campo="TG_OPQUANTIDADE"   : Campo="TG_FAMI"
                        VSDGOPQUANTIDADE=ControlValue("TG_OPQUANTIDADE")
                        Switch
                          Case VSDGOPQUANTIDADE="1"  : VSDGNOMOPQUANTIDADE="UNIDADE DE COMPRA"
                          Case VSDGOPQUANTIDADE="2"  : VSDGNOMOPQUANTIDADE="UNIDADE INTERNA"
                          Otherwise                  : VSDGOPQUANTIDADE="1"  
                                                       VSDGNOMOPQUANTIDADE="UNIDADE DE COMPRA"
                        endswitch                    
                    Case Campo="TG_FAMI"           : Campo="TG_GRP"   
                    Case Campo="TG_GRP"            : Campo="TG_ITEM"                                
                    Case Campo="TG_MARCA"          : Campo="TG_ITEM"
                    Case Campo="TG_ITEM"           : Campo="TG_REFERENCIA"
                    Case Campo="TG_REFERENCIA"     : Campo="TG_CODMODELO"
                    Case Campo="TG_CODMODELO"      : Campo="YES"
                  EndSwitch
          EndIf
   EndSwitch
EndIf
Switch
  Case Campo="":
       MSG_CAMPO=""
  Case Campo="TG_OPQUANTIDADE":
       MSG_CAMPO="1-UNIDADE DE COMPRA   2-UNIDADE INTERNA"    
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 Ordem de Compra [06]")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("03  Sint‚tico por Ordem de Compra [07]")
ModeloRelatoriosAdd("04  Sint‚tico por Item [02]")
ModeloRelatoriosAdd("05  Sint‚tico por Fornecedor/Ordem de Compra [03]")
ModeloRelatoriosAdd("Fim")
                           
EndProc ;ModeloRelatoriosCarregaLista


;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""  EndIf
If Not IsAssigned(SYS_CLIENTE_CONFEC)  Then SYS_CLIENTE_CONFEC=""  EndIf
LimpAguarde()

sys_Valor()

VSDGEMPRESA =""
VSDGOC  =""
VSDGDESTINAT=""
VSDGTPOPEROC=""
VSDGOPDTEMISENTR  =""
VSDGDTINI   =BlankDate()
VSDGDTFIM   =BlankDate()
VSDGMARCA   =""
VSDGFAMI    =""
VSDGGRP     =""
VSDGITEM    =""
VSDGREFERENCIA    =""
VSDGSITUACAOOC=""

ModeloRelatoriosCarregaLista()

While True

  ShowDialog "Posi‡Æo das Ordens de Compra" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140,-68
    @ 01,00 Height 22 Width 80

    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP
    
    Label  @ 02,00 "Ordem de Compra"  For "TG_OC"
    Accept @ 03,01 Width 33 "A6"  Picture "#*#" Tag "TG_OC" To VSDGOC
    Accept @ 03,09 Width 25 "A22" Picture "#*#" Tag "TG_NOMOC" To VSDGNOMOC

    Label  @ 04,00 "Tipo da Opera‡Æo" For "TG_TPOPEROC"
    Accept @ 05,04 Width 04 "A1"  Picture "!*!"  Tag "TG_TPOPEROC"       To VSDGTPOPEROC
    Accept @ 05,09 Width 25 "A20" Picture "!*!"  Tag "TG_NOMNOMTPOPEROC" To VSDGNOMTPOPEROC

    Label  @ 06,00 "Pessoa"  For "TG_DESTINAT"
    Accept @ 07,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINAT" To VSDGDESTINAT
    Accept @ 07,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMCLI" To VSDGNOMDEST

    Label  @ 08,00 "Situa‡Æo"  For "TG_SITUACAOOC"
    Accept @ 09,01 Width 33 "A30"  Picture "ABERTO,SUSPENSO,CANCELADO,ENTREGUE,TODAS,!*!" Tag "TG_SITUACAOOC"  To VSDGSITUACAOOC

    Label  @ 10,00 "Op‡äes de Datas" For "TG_OPDTEMISENTR"
    Accept @ 11,04 Width 04 "A1"  Picture "1,2"  Tag "TG_OPDTEMISENTR"    To VSDGOPDTEMISENTR
    Accept @ 11,09 Width 25 "A20" Picture "!*!"      Tag "TG_NOMOPDTEMISENTR" To VSDGNOMOPDTEMISENTR

    Label  @ 12,00 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 13,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 13,16 "at‚" For "TG_DTFIM"
    Accept @ 13,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM
    
    Label  @ 14,00 "Op‡äes de Quantidade" For "TG_OPQUANTIDADE"
    Accept @ 15,04 Width 04 "A1"  Picture "1,2"  Tag "TG_OPQUANTIDADE"    To VSDGOPQUANTIDADE
    Accept @ 15,09 Width 25 "A20" Picture "!*!"      Tag "TG_NOMOPQUANTIDADE" To VSDGNOMOPQUANTIDADE

    Label  @ 00,35 "Familia"  For "TG_FAMI"
    Accept @ 01,37 Width 06 "A3"  Picture "#*#" Tag "TG_FAMI"    To VSDGFAMI
    Accept @ 01,44 Width 25 "A20" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI

    Label  @ 02,35 "Grupo"  For "TG_GRP"
    Accept @ 03,37 Width 06 "A3"  Picture "#*#" Tag "TG_GRP"    To VSDGGRP
    Accept @ 03,44 Width 25 "A20" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP

    Label  @ 04,35 "Marca"  For "TG_MARCA"
    Accept @ 05,37 Width 06 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 05,44 Width 25 "A20" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

    Label  @ 06,35 "Item"  For "TG_ITEM"
    Accept @ 07,36 Width 13 "A10" Picture "#*#" Tag "TG_ITEM"     To VSDGITEM
    Accept @ 08,36 Width 33 "A35" Picture "!*!" Tag "TG_NOMITEM" To VSDGNOMITEM

    Label  @ 06,48 "Referˆncia"  For "TG_REFERENCIA"
    Accept @ 07,48 Width 21 "A20" Picture "!*!" Tag "TG_REFERENCIA"     To VSDGREFERENCIA

    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

    @ 18,40 ?? ""

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop EndIf
  if not ValidarModelosRelatorios() then loop endif         
  
  DISPOSITIVO()
  If OK="" Then Loop EndIf
  
  If Ok="A" Then IMPRIME_ARQUIVO = True Else IMPRIME_ARQUIVO=False EndIf

  AGUARDE("Aguarde, gerando o relat¢rio")
  Tabela=Cria_Temp(PrivDir())
 
  If IsTable("Answer") Then Delete "Answer" EndIf
  Seleciona()
  If Not IsTable("Answer") Then Loop EndIf
  If IsTable(Tabela)
     Then Add "Answer" Tabela
     Else Rename "Answer" Tabela
  EndIf
  
  If IsEmpty(Tabela)
     Then MENSAGEM("N„o existem registros a processar")
          Loop
  EndIf
  
  Contagens()

  Impressao_Orientacao="Paisagem"
  Switch
    case VSDGCODMODELO="01" : copyreport "\\base\\Sistemas\\Compras\\rm_0100" "R"  Tabela "R"
    case VSDGCODMODELO="03" : copyreport "\\base\\Sistemas\\Compras\\rm_0100" "2"  Tabela "R"
    case VSDGCODMODELO="04" : copyreport "\\base\\Sistemas\\Compras\\rm_0100" "3"  Tabela "R"
    case VSDGCODMODELO="05" : copyreport "\\base\\Sistemas\\Compras\\rm_0100" "4"  Tabela "R"    
  EndSwitch

  ;If IMPRIME_ARQUIVO
  ;   Then If VSDGCODMODELO="03" Or
  ;           VSDGCODMODELO="04" Or
  ;           VSDGCODMODELO="06" Or
  ;           VSDGCODMODELO="07" Or
  ;           VSDGCODMODELO="10" Or
  ;           VSDGCODMODELO="11"
  ;           Then Gera_Arquivo()
  ;        endif    
  ;EndIf   
  IMPRIREL(Tabela,"R")
                            
  LimpAguarde()
  If IsAssigned(Tabela)    And IsTable(Tabela)    Then Delete Tabela    EndIf
  
EndWhile
ClearAll
Release Vars All
Release Procs All
