;** Rm_0051 ********************************************************************
;*  Explosao de Materiais II                                                     *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 24/09/2007 por Anivel Augusto Rodrigues
;Ultima Alteracao: 15/04/2010 por Cleber Alves
;Motivo Alteracao: Explosao por Corte
;Ultima Alteracao: 06/12/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes de criterios
;Ultima Alteracao: 22/06/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro por referˆncia
;Ultima Alteracao: 28/06/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro por Cor_Tecido
;Ultima Alteracao: 26/03/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes calculo formula
;Ultima Alteracao: 14/04/2015 por Luis Gustavo
;Motivo Alteracao: Implementado a Proc Ajusta_Dados para gerar em EXCEL na op‡Æo SINTETICO
;Ultima Alteracao: 25/04/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ShowDialog     
;Ultima Alteracao: 17/05/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ExplosÆo Op‡„o Itens da Formula      
;Ultima Alteracao: 21/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog.                  
;Ultima Alteracao: 29/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 27/01/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes TG_REFERENCIA
;Ultima Alteracao: 09/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Filtro situacaodopedido 

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

ClearAll
{Ask} {FormulaC}
Moveto [Codigo do Produto     ] Example "citem"
Moveto [Quantidade Produzida  ] Check

{Ask} {FormulaI}
Moveto [Codigo do Produto     ] Example "citem"
Moveto [Codigo do Material    ] Check                                            
Moveto [Descricao do Item     ] Check Typein "As Descricao do Material"          
Moveto [Tipo do Item          ] Check Typein "As Tipo do Material"              
Moveto [Unidade Interna       ] Check                                           
Moveto [Quantidade            ] Check Typein "As Quantidadefor"                  
Moveto [Valor Unitario        ] Check                                          

Switch
  Case Isblank(VSDGCORTE):
       {Ask} {\\Sistemas\\Vendas\\Destin}
       Moveto [Codigo da Destinacao  ] Example "cd"
       Moveto [Tipo Movimento Estoque] TypeIn "S"

       {Ask} {\\Sistemas\\Vendas\\PedidoC}
       Moveto [Numero do Pedido      ] Check Example "nped"
       Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA.."
       Moveto [Nome Fantasia Empresa ] Check         
       Moveto [Data de Entrega       ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
       Moveto [Codigo                ] Check 
       Moveto [Nome Fantasia EmitDest] Check 
       Moveto [Codigo da Destinacao  ] Example "cd"
       Moveto [Situacao do Pedido    ]
       switch
         case VSDGSITUACAOPEDIDO="JUNTAR ABERTO+SUSPENSO"     : TypeIn "ABERTO or SUSPENSO"
         otherwise                                            : TypeIn "~VSDGSITUACAOPEDIDO.."
       endswitch
        
       {Ask} {\\Sistemas\\Vendas\\Pedidoi}
       Moveto [Numero do Pedido      ] Example "nped"                     
       If Not IsBlank(VSDGREFERENCIA)
          Then Moveto [Codigo do Item] Check Example "citem"
          Else Moveto [Codigo do Item] Check Example "citem" TypeIn ", ~VSDGITEM.."
       EndIf             
       Moveto [Descricao do Item     ] Check 
       Moveto [Tipo do Item          ] Check 
       Moveto [Quantidade            ] Check TypeIn ">" Example "qf"
       Moveto [Quantidade Faturada   ] Check Example "qf"
       Moveto [Unidade Fiscal        ] Check 
         
       If Not IsBlank(VSDGREFERENCIA)
          Then {Ask} {\\Sistemas\\Estoque\\Itens}
               Moveto [Codigo do Item      ] Example "citem" 
               Moveto [Referencia          ] TypeIn "~VSDGREFERENCIA.."
               Moveto [Codigo da Cor_Tecido] TyPein "~VSDGCORTECIDO.."
       EndIf 
       Do_It!
       ClearAll
      
       {Ask} {Answer}  
       Moveto [Numero do Pedido      ] Example "nped"
       Moveto [Codigo da Empresa     ] Example "cemp" 
       Moveto [Nome Fantasia Empresa ] Example "nemp"
       Moveto [Data de Entrega       ] Example "dte"
       Moveto [Codigo                ] Example "ccli" 
       Moveto [Nome Fantasia EmitDest] Example "ncli"
       Moveto [Codigo do Item        ] Example "citem"
       Moveto [Descricao do Item     ] Example "nitem"
       Moveto [Tipo do Item          ] Example "titem"
       Moveto [Quantidade            ] Example "qp" 
       Moveto [Quantidade Faturada   ] Example "qf"
       Moveto [Unidade Fiscal        ] Example "uitem" 
       Moveto [Codigo do Material    ] Example "cmat"
       Moveto [Descricao do Material ] Example "nmat"
       Moveto [Tipo do Material      ] Example "tmat"
       Moveto [Unidade Interna       ] Example "umat"
       Moveto [Quantidadefor         ] Example "qfor"
       Moveto [Valor Unitario        ] Example "vrmat"
       Moveto [Quantidade Produzida  ] Example "qprod"

       {Ask} TypeIn Tabela Enter TypeIn "Insert"
        Moveto [Numero do Pedido      ] Example "nped"
        Moveto [Codigo da Empresa     ] Example "cemp"
        Moveto [Nome Fantasia Empresa ] Example "nemp"
        Moveto [Data de Entrega       ] Example "dte"
        Moveto [Codigo                ] Example "ccli"
        Moveto [Nome Fantasia EmitDest] Example "ncli"
        Moveto [Quantidade do Item    ] Example "qp" TypeIn "-" Example "qf"
        Moveto [Quantidade Material   ] TypeIn "(_qfor*(_qp-_qf))/_qprod"
        Moveto [Custo Material        ] TypeIN "((_qfor*(_qp-_qf))/_qprod)*_vrmat"          
        Moveto [Codigo do Item        ] Example "citem"
        Moveto [Descricao do Item     ] Example "nitem"
        Moveto [Tipo do Item          ] Example "titem"            
        Moveto [Unidade Fiscal        ] Example "uitem"
        Moveto [Codigo do Material    ] Example "cmat"
        Moveto [Descricao do Material ] Example "nmat"
        Moveto [Tipo do Material      ] Example "tmat"            
        Moveto [Unidade Interna       ] Example "umat"            
        Do_It! 
        ClearAll  
        titulo = "Explosao de Materiais de Pedidos a Entregar de "+STRVAL(VSDGDTINI)+" ate "+STRVAL(VSDGDTFIM) 
          
  Otherwise:
       {Ask} {\\Sistemas\\Faccao\\Cfacc}  
       Moveto [Numero_Corte          ] Example "nped" TypeIn ", ~VSDGCORTE.."
       Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA.."
       
       {Ask} {\\Sistemas\\Faccao\\Cfacri}
       Moveto [Numero_Corte          ] Check Example "nped"
       If Not IsBlank(VSDGREFERENCIA)
          Then Moveto [Codigo do Item] Check Example "citem"
          Else Moveto [Codigo do Item] Check Example "citem" TypeIn ", ~VSDGITEM.."
       EndIf    
       Moveto [Descricao do Item     ] Check 
       Moveto [Tipo do Item          ] Check 
       Moveto [Quantidade Programada ] Check           
       Moveto [Unidade Fiscal        ] Check

       If Not IsBlank(VSDGREFERENCIA)
          Then {Ask} {\\Sistemas\\Estoque\\Itens}
               Moveto [Codigo do Item      ] Example "citem" 
               Moveto [Referencia          ] TypeIn "~VSDGREFERENCIA.."
               Moveto [Codigo da Cor_Tecido] TyPein "~VSDGCORTECIDO.."
       EndIf 
       Do_It!
       ClearAll  

      {Ask} {Answer}  
       Moveto [Numero_Corte          ] Example "nped"
       Moveto [Codigo da Empresa     ] Example "cemp" 
       Moveto [Codigo do Item        ] Example "citem"
       Moveto [Descricao do Item     ] Example "nitem"
       Moveto [Tipo do Item          ] Example "titem"
       Moveto [Quantidadefor         ] Example "qfor"
       Moveto [Quantidade Programada ] Example "qp"
       Moveto [Unidade Fiscal        ] Example "uitem" 
       Moveto [Codigo do Material    ] Example "cmat"
       Moveto [Descricao do Material ] Example "nmat"
       Moveto [Tipo do Material      ] Example "tmat"
       Moveto [Unidade Interna       ] Example "umat"          
       Moveto [Valor Unitario        ] Example "vrmat"
       Moveto [Quantidade Produzida  ] Example "qprod"  
       
       {Ask} TypeIn Tabela Enter TypeIn "Insert"
       Moveto [Numero do Pedido      ] Example "nped"
       Moveto [Codigo da Empresa     ] Example "cemp"
       Moveto [Quantidade do Item    ] Example "qp"
       Moveto [Quantidade Material   ] TypeIn "(_qfor*_qp)/_qprod"
       Moveto [Custo Material        ] TypeIn "((_qfor*_qp)/_qprod)*_vrmat"            
       Moveto [Codigo do Item        ] Example "citem"
       Moveto [Descricao do Item     ] Example "nitem"
       Moveto [Tipo do Item          ] Example "titem"
       Moveto [Unidade Fiscal        ] Example "uitem"
       Moveto [Codigo do Material    ] Example "cmat"
       Moveto [Descricao do Material ] Example "nmat"
       Moveto [Tipo do Material      ] Example "tmat"        
       Moveto [Unidade Interna       ] Example "umat"
       Do_It! 
       ClearAll 
       titulo = "Explosao de Materiais da Programacao de Corte "+STRVAL(VSDGCORTE)
EndSwitch      

{Ask} TypeIn Tabela Enter
Moveto [Numero do Pedido      ] Check
Moveto [Codigo da Empresa     ] Check
Moveto [Codigo do Item        ] Check
Moveto [Quantidade do Item    ] Check
Do_It! 
ClearAll 

{Ask} {Answer}
Moveto [Codigo da Empresa     ] Check
Moveto [Codigo do Item        ] Check
Moveto [Quantidade do Item    ] TypeIn "Calc Sum As Quantidade"
Do_It! 
ClearAll 

{Ask} {Answer}
Moveto [Codigo da Empresa     ] Example "cemp"
Moveto [Codigo do Item        ] Example "citem"
Moveto [Quantidade            ] Example "qtd"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo da Empresa     ] Example "cemp"
Moveto [Codigo do Item        ] Example "citem"
Moveto [Quantidade do Item    ] TypeIn "Changeto _qtd"
Do_It! 
ClearAll 


Switch
  Case VSDGOPFORMULA="2": 
      {Ask} TypeIn Tabela Enter TypeIn "Fast Delete"
      Moveto [Tipo do Material  ] TypeIn "Not C"
      Do_It! 
      ClearAll 
      
  Case VSDGOPFORMULA="3": 
      {Ask} TypeIn Tabela Enter TypeIn "Fast Delete"
      Moveto [Tipo do Material  ] TypeIn "C"
      Do_It! 
      ClearAll 
EndSwitch  

EndProc

;*******************************************************************************
; Ajustar os dados para exporta‡Æo para EXCEL                                  *
;*******************************************************************************
Proc Ajusta_Dados()

{Ask} TypeIn Tabela Enter
Moveto [Tipo do Material      ] Check
Moveto [Codigo do Material    ] Check
Moveto [Descricao do Material ] Check
Moveto [Unidade Interna       ] Check
Moveto [Quantidade Material   ] TypeIn "Calc Sum as Quantidade do Material"
Do_It!
ClearAll

Rename "Answer" Tabela

EndProc   ;Ajusta_Dados()

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

If Disparo="OPEN"  Then AoCriarShowDialog() 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_REFERENCIA"     : Campo="TG_EMPRESA"
             Case Campo="TG_COR_TECIDO"    : Campo="TG_REFERENCIA" 
            Case Campo="TG_ITEM"           : Campo="TG_REFERENCIA"
            Case Campo="TG_CORTE"          : 
                 If Not IsBlank(VSDGREFERENCIA)
                    Then Campo="TG_REFERENCIA"
                    Else Campo="TG_ITEM"
                  EndIf   
            Case Campo="TG_DTINI"          : Campo="TG_CORTE"
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
            Case Campo="TG_SITUACAOPEDIDOAS" : Campo="TG_DTFIM"
            Case Campo="TG_OPFORMULA"      :
                 If IsBlank(VSDGCORTE) 
                    then Campo="TG_SITUACAOPEDIDOAS"
                    Else Campo="TG_CORTE"
                 EndIf   
            Case Campo="TG_OPMODEL"        : Campo="TG_OPFORMULA"
            Case Campo="TG_OPCUST"         : Campo="TG_OPMODEL"
            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_REFERENCIA"
                    Case Campo="TG_REFERENCIA" : 
                         If IsBlank(VSDGREFERENCIA)
                            Then VSDGCORTECIDO    = "" 
                                 VSDGNOMCORTECIDO = ""
                                 Campo="TG_ITEM"
                            Else Campo="TG_COR_TECIDO"
                         EndIf   
                    Case Campo="TG_COR_TECIDO" : 
                         If IsBlank(VSDGCORTECIDO)
                            Then VSDGNOMCORTECIDO=""
                         EndIf   
                         VSDGITEM   =""
                         VSDGNOMITEM="" 
                         Campo="TG_CORTE"                       
                    Case Campo="TG_ITEM"       : Campo="TG_CORTE"
                    Case Campo="TG_CORTE"      :
                         If IsBlank (VSDGCORTE)
                            Then Campo="TG_DTINI"
                            Else VSDGDTINI = BlankDate()
                                 VSDGDTFIM = BlankDate()
                                 Campo="TG_SITUACAOPEDIDOAS"
                         EndIf                         
                    Case Campo="TG_DTINI"    :
                         If Not VSDGDTINI=BlankDate()
                            Then Campo="TG_DTFIM"
                         EndIf
                    Case Campo="TG_DTFIM"    :
                         If Not VSDGDTFIM=BlankDate()
                            Then Campo="TG_SITUACAOPEDIDOAS"
                         EndIf
                    Case Campo="TG_SITUACAOPEDIDOAS" : Campo="TG_OPFORMULA"
                         
                    Case Campo="TG_OPFORMULA"      :
                         VSDGOPFORMULA=ControlValue("TG_OPFORMULA")
                         Switch
                           Case VSDGOPFORMULA="2": VSDGNOMOPFORMULA="SO SERVICOS"
                           Case VSDGOPFORMULA="3": VSDGNOMOPFORMULA="SEM SERVICOS"
                           OtherWise         : VSDGNOMOPFORMULA="TODOS"
                                               VSDGOPFORMULA="1"
                         EndSwitch
                         Campo="TG_OPMODEL"
                    Case Campo="TG_OPMODEL"    :
                         VSDGOPMODEL=ControlValue("TG_OPMODEL")
                         If IsBlank(VSDGOPMODEL)
                            Then VSDGOPMODEL="1"
                         EndIf   
                         Switch
                           Case VSDGOPMODEL="1": VSDGNOMOPMODEL="Anal¡tico"
                           Case VSDGOPMODEL="2": VSDGNOMOPMODEL="Sintetico"
                         EndSwitch
                         Campo="TG_OPCUST"
                    Case Campo="TG_OPCUST"      :
                         VSDGOPCUST=ControlValue("TG_OPCUST")
                         Switch
                           Case VSDGOPCUST="C": VSDGNOMOPCUST="COM CUSTO"
                           OtherWise         : VSDGNOMOPCUST="SEM CUSTO"
                                               VSDGOPCUST   ="S"
                         EndSwitch
                         Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_DTINI":
       MSG_CAMPO="Informe a Data Inicial"
  Case Campo="TG_OPFORMULA":
       MSG_CAMPO="1=Todos  2=So Servi‡os  3=Sem Servi‡os"
  Case Campo="TG_OPMODEL":
     MSG_CAMPO="Op‡„o: 1=Anal¡tico  2=Sintetico"
  Case Campo="TG_OPCUST":
       MSG_CAMPO="C=Com Custo  S=Sem Custo"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc
;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
If Not IsAssigned(SYS_CODIGO_CLIENTE) Then SYS_CODIGO_CLIENTE="" EndIf 
LimpAguarde()

VSDGEMPRESA      = ""
VSDGITEM         = ""
VSDGNOMITEM      = ""
VSDGCORTE        = ""
VSDGDTINI        = BlankDate()
VSDGDTFIM        = BlankDate()
VSDGOPFORMULA    = ""
VSDGNOMOPFORMULA = ""
VSDGOPCUST       = ""
VSDGNOMOPCUST    = ""
VSDGREFERENCIA   = ""
VSDGOPMODEL      = ""
VSDGNOMOPMODEL   = ""  
VSDGCORTECIDO    = "" 
VSDGNOMCORTECIDO = ""
VSDGSITUACAOPEDIDO=""

While True

  ShowDialog "Explos„o de Materiais II" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
  @ 06,10   Height 18 Width 72

    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_NOMEMP" To VSDGNOMEMP

    Label  @ 02,00 "Referˆncia"  For "TG_REFERENCIA"
    Accept @ 03,01 Width 33 "A20" Picture "!*!" Tag "TG_REFERENCIA" To VSDGREFERENCIA

    Label  @ 04,00 "Cor" For "TG_COR_TECIDO"
    Accept @ 05,01 Width 07 "A4"  Picture "#*#" Tag "TG_COR_TECIDO"    To VSDGCORTECIDO
    Accept @ 05,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMCOR_TECIDO" To VSDGNOMCORTECIDO

    Label  @ 06,00 "Item"  For "TG_ITEM"
    Accept @ 07,01 Width 33 "A10" Picture "#*#" Tag "TG_ITEM"    To VSDGITEM
    Accept @ 08,01 Width 33 "A35" Picture "!*!" Tag "TG_NOMITEM" To VSDGNOMITEM
    
    Label  @ 09,00 "Corte"  For "TG_CORTE"
    Accept @ 10,01 Width 09 "A6"  Picture "[&,#][#*#]" Tag "TG_CORTE"    To VSDGCORTE
    Accept @ 10,09 Width 25 "A25" Picture "!*!"        Tag "TG_NOMCORTE" To VSDGNOMCORTE
    
    Label  @ 11,00 "Per¡odo de Entrega de" For "TG_DTINI"
    Accept @ 12,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 12,16 "at‚" For "TG_DTFIM"
    Accept @ 12,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Label  @ 00,35 "Situacao do Pedido"  For "TG_SITUACAOPEDIDOAS"
    Accept @ 01,36 Width 33 "A30"  Picture "ABERTO,SUSPENSO,TODAS,!*!" Tag "TG_SITUACAOPEDIDOAS"  To VSDGSITUACAOPEDIDO

    Label  @ 02,35 "Op‡„o Itens da Formula" For "TG_OPFORMULA"
    Accept @ 03,39 Width 04 "A1"  Picture "1,2,3" Tag "TG_OPFORMULA" To VSDGOPFORMULA
    Accept @ 03,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPFORMULA" To VSDGNOMOPFORMULA

    Label  @ 04,35 "Op‡Æo de Relat¢rio" For "TG_OPMODEL"
    Accept @ 05,39 Width 04 "A1"  Picture "1,2" Tag "TG_OPMODEL" To VSDGOPMODEL
    Accept @ 05,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPMODEL" To VSDGNOMOPMODEL

    Label  @ 06,35 "Op‡„o Custo" For "TG_OPCUST"
    Accept @ 07,39 Width 04 "A1"  Picture "S,C" Tag "TG_OPCUST" To VSDGOPCUST
    Accept @ 07,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPCUST" To VSDGNOMOPCUST

    Pushbutton @ 14,22 width 11 "~O~k"      OK     Default Value "Ok"  Tag "YES" To BottonValue
    Pushbutton @ 14,36 width 11 "~C~ancela" CANCEL                     Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  DISPOSITIVO()
  If OK="" Then Loop EndIf

  AGUARDE("Aguarde, Gerando Relat¢rio")
  Tabela=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Producao\\Rm_0051" Tabela
  Empty(Tabela) 
  
  SELECIONA()

  If IsEmpty(Tabela)
     Then MENSAGEM("N„o existem registros a processar!")
          Delete Tabela
          Loop
  EndIf
  
  If VSDGOPMODEL="2" And Dispositivo = 4
     Then Ajusta_Dados() 
  EndIf   

  Switch
    Case VSDGOPMODEL="1":
         If VSDGOPCUST="S"
            Then IMPRIREL(Tabela,"2")
            Else IMPRIREL(Tabela,"1")
         EndIf
    Case VSDGOPMODEL="2":
         If VSDGOPCUST="S"
            Then IMPRIREL(Tabela,"4")
            Else IMPRIREL(Tabela,"3")
         EndIf
  EndSwitch

  Delete Tabela

EndWhile
ClearAll
Release Vars All
Release Procs All
