;** CARTOES ********************************************************************
;*  PROGRAMA DE CADASTRO DE CARTOES                                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/1995 por Anivel Augusto Rodrigues
;Ultima Alteracao: 22/11/2004 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 29/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 11/01/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Sort no final   
;Ultima Alteracao: 14/04/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Exclusao Sort no final, estava bloqueando   
                                                          
;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True
  SetaCorRegistro("Editar")
  End
  Down

  Moveto [Nome do Cartao]

  TECLA=""
  AguardaTeclasPadrao()

  Switch
  Case RetVal=-33 : SemFuncoes()
  Case RetVal="F3": SemFicha()
  Case RetVal=-94 : MsgTeclasPadrao()
  Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
       While True
         PAGINA("Cartoes","MR")
         If EDITAR="S"
            Then CHAVE=0
                 Controla_EdicaoC()
            Else If EXCLUIR="S"
                    Then If QuerExcluir("")
                            Then DEL
                            Else UnLockRecord
                         EndIf
                    Else QuitLoop
                 EndIf
         EndIf
         SetaPosForm()
       EndWhile
  Case Retval="ESC":
       Switch
         Case Field()="Nome do Cartao":
            Del
            CHAVE=9
            Return
         OtherWise:
              Left
         EndSwitch
  Case RetVal="ENTER":    
       If IsBlank([])
         Then del
              loop
       EndIf
       If Field()="Nome do Cartao"
            Then NOME=[]
                 Del
                 Locate NOME
                 If Retval
                    Then CHAVE=0
                    Else CHAVE=1
                         End Down
                         [Nome do Cartao]=NOME
                 EndIf
       EndIf        
       If IsLockRecord()
            Then If CHAVE=1 Then Del EndIf
                 QuitLoop
         EndIf
         Return
  EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()
Moveto [Codigo_Credenciadora]
While True

  TECLA=" Esc=Retornar  "
  If Field()="Codigo_Credenciadora"
     Then TECLA=TECLA+"F1=Tabelas  "
  EndIf

  If CHAVE=0
     Then TECLA=TECLA+"Del=Excluir  "
  EndIf
  
  MSGCAMPO=""
  Switch
     Case Field()="Codigo_Credenciadora" : MSGCAMPO="C¢digo da Credenciadora do CartÆo"
  EndSwitch

  Prompt TECLA
  SetaCorRegistro("Editando")
  Wait Field
       Message MSGCAMPO
       Until "ESC","ENTER","DEL","FIELDVIEW","F35","F1"

  Switch
  Case Retval="F1":
       If Field()="Codigo_Credenciadora"
          Then ConsultaF1()
       EndIf
  Case Retval="ESC":
       Switch
       Case Field()="Codigo_Credenciadora":
            If QuerDesfazer("")
                   Then If CHAVE=1
                          Then Del
                          Else If RecordStatus("Modified")
                                  Then Undo
                               EndIf
                       EndIf
                       CHAVE=9
                       QuitLoop
               EndIf
       Otherwise : Left           
       EndSwitch             
                  
  Case Retval="ENTER":
       Switch
        Case Field() = "Codigo_Credenciadora"   :
          Quitloop
        Otherwise : Right
       EndSwitch
       
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case Retval="DEL":
       If CHAVE=0
          Then If QuerExcluir("")
                  Then DEL
                       QuitLoop
               EndIf
       EndIf
  EndSwitch
EndWhile
EndProc  ; (Digita)

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
DIGITA()
If RecordStatus("Locked") Then UnLockRecord EndIf         
EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"
CoEdit "Cartoes"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!

ClearAll
Release Vars All
Release Procs All
