;** AC_S_FAC *******************************************************************
;* Programa de Acerto p/ refazer todas as tabelas da Faccao                    *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 29/05/2018 por Bruno Carvalho
;Ultima Alteracao:   /  /     por                                        
;Motivo Alteracao:

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot"

ConfGeral("Rotina p/ refazer as tabelas do FACCAO, continuar com esse processo?")
If Ok<>"S"
   Then Return
EndIf

Array Tabela_Faccao[14]
Tabela_Faccao[1]= "CFACC"
Tabela_Faccao[2]= "CFACP"
Tabela_Faccao[3]= "CFACRI"
Tabela_Faccao[4]= "CFACRIG"
Tabela_Faccao[5]= "PCFACC"
Tabela_Faccao[6]= "PCFACRI"
Tabela_Faccao[7]= "PCFACRIG"
Tabela_Faccao[8]="PFACC"
Tabela_Faccao[9]="PFACRI"
Tabela_Faccao[10]="PFACRIG"
Tabela_Faccao[11]="RFACC"
Tabela_Faccao[12]="RFACRI"
Tabela_Faccao[13]="RFACRIG"
Tabela_Faccao[14]="RFACRIR"

SetDir "\\Sistemas\\Faccao"
ConfGeral("Deseja efetuar o backup dos arquivos do FACCAO envolvidos?")

If Ok="S"
   Then For i From 1 To ArraySize(Tabela_Faccao)
          Switch
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="CF" : AUX_TAB="CF"
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="PC" : AUX_TAB="PC"
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="PF" : AUX_TAB="PF"
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="RF" : AUX_TAB="RF"
          EndSwitch
          AUX = Rtrim(SubStr(Tabela_Faccao[i],Len(Tabela_Faccao[i])-1,2))
          
          TAB_REN = "BK_"+AUX_TAB+AUX
          Aguarde("Realizando o Backup "+Tabela_Faccao[i])
          Copy Tabela_Faccao[i] TAB_REN
        EndFor      
EndIf

For i From 1 To ArraySize(Tabela_Faccao)
  If Istable(Tabela_Faccao[i])
     Then Aguarde("Refazendo a Tabela "+Tabela_Faccao[i])
          Switch
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="CF" : AUX_TAB="CF"
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="PC" : AUX_TAB="PC"
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="PF" : AUX_TAB="PF"
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="RF" : AUX_TAB="RF"
          EndSwitch
          {Ask} TypeIn Tabela_Faccao[i] Enter Check
          Switch
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="CF" : Moveto [Numero_Corte         ] TypeIn "Not Blank" 
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="PC" : Moveto [Numero_Producao_Corte] TypeIn "Not Blank" 
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="PF" : Moveto [Numero_Programacao   ] TypeIn "Not Blank" 
            Case Rtrim(SubStr(Tabela_Faccao[i],1,2))="RF" : Moveto [Numero_Producao      ] TypeIn "Not Blank" 
          EndSwitch
          Do_It!
          ClearAll
          AUX = Rtrim(SubStr(Tabela_Faccao[i],Len(Tabela_Faccao[i])-1,2))
                    
          TAB_REN = AUX_TAB+AUX
          Rename "Answer" TAB_REN
          
          If IsEmpty(TAB_REN)
             Then Copy "\\Base\\Sistemas\\Faccao\\"+Tabela_Faccao[i] Tabela_Faccao[i]
                  Delete TAB_REN
                  Loop
          EndIf   
          
          Tabela=Cria_Temp(PrivDir())
          Create Tabela Like "\\Base\\Sistemas\\Faccao\\"+Tabela_Faccao[i]
          
          CONTADOR = 0
          View Tabela
          CoEdit TAB_REN
          Scan
            Barra(NRecords(TAB_REN), RecNo())
            Aguarde("Refazendo a Tabela "+Tabela_Faccao[i]+" "+BARRA_STRING)
            
            CopyToArray REG_FAC
            CONTADOR = CONTADOR + 1
            Moveto Tabela
            If CONTADOR=1
               Then End
               Else End Down
            EndIf
            CopyFromArray REG_FAC
            UnLockRecord   
            
            Moveto TAB_REN
          EndScan
          Do_it!
          ClearAll
          
          ;---- Excluindo a Tabela de Origem p/ ser realizado o processo -------
          Delete Tabela_Faccao[i]
          
          Copy Tabela "\\Sistemas\\Faccao\\"+Tabela_Faccao[i]
          {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Faccao\\"+Tabela_Faccao[i] Enter TypeIn Tabela_Faccao[i] Enter {Replace}
          
          ;--- Add = Problema com muitos Registros -----------------------------
          ;Add Tabela Tabela_Faccao[i]          
          
          Delete TAB_REN
          Delete Tabela
          
     Else Mensagem("Tabela no encontrado no Faccao: "+Tabela_Faccao[i])
  EndIf   
EndFor 
SetDir "\\Sistemas\\Cadastro"

Mensagem("Processo ConcluĦdo//Todas as tabelas do FACCAO foram refeitas!")

Release Vars All
Release Procs All
