;** TcAtalho *******************************************************************
;*  Programa p/ Teclas de Atalhos do Menupri                                   *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 09/07/2001 por Anivel Augusto Rodrigues
;Ultima Alteracao: 04/02/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SD_Dialog()

;*******************************************************************************
;* Rotina para Gravar Teclas                                                   *
;*******************************************************************************
Proc Grava_Funcao()
CoEdit NoWindow "\\Sistemas\\Cadastro\\TCAtalho"
Moveto [\Sistemas\Cadastro\TCAtalho->Chapa]
Locate SYS_CHAPA_USUARIO, RTrim(SubStr(VSDGTECLA,5,3))
If Not RetVal
   Then End
        Down
        [\Sistemas\Cadastro\TCAtalho->Chapa]=SYS_CHAPA_USUARIO
        [\Sistemas\Cadastro\TCAtalho->Tecla]=RTrim(SubStr(VSDGTECLA,5,3))
EndIf
[\Sistemas\Cadastro\TCAtalho->Tabela         ]=Tabela
[\Sistemas\Cadastro\TCAtalho->Sequencia      ]=""
If Ltrim(RTrim(Opcao))<>"Principal"
   Then [\Sistemas\Cadastro\TCAtalho->Descricao      ]=Ltrim(RTrim(OPCANT))+"/"+Ltrim(RTrim(Opcao))+" - "+
                                                       LTrim(RTrim(SubStr(Rotina[OT],4,40)))
   Else [\Sistemas\Cadastro\TCAtalho->Descricao      ]=Ltrim(RTrim(Opcao))+" - "+
                                                       LTrim(RTrim(SubStr(Rotina[OT],4,40)))
EndIf

[\Sistemas\Cadastro\TCAtalho->Liberado       ]=""
[\Sistemas\Cadastro\TCAtalho->Comando        ]=Script[OT]
[\Sistemas\Cadastro\TCAtalho->Diretorio      ]=Diretorio[OT]
[\Sistemas\Cadastro\TCAtalho->Tipo de Comando]=TpComando[OT]
[\Sistemas\Cadastro\TCAtalho->Nome do Atalho ]=VSDGNATALHO
Do_It!
Moveto "\\Sistemas\\Cadastro\\TCAtalho"
ClearImage
EndProc  ; (Exclui_Funcao)

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

If Disparo="OPEN"
   Then Campo="TG_ATALHO"
EndIf

If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_ATALHO" : CancelDialog
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          Switch
            Case Campo="TG_ATALHO" :
                 VSDGNATALHO=ControlValue("TG_ATALHO")
                 Campo="YES"
            Case Campo="YES"       : AcceptDialog
            Case Campo="NO"        : CancelDialog
          EndSwitch
   EndSwitch
EndIf

Switch
  Case Campo="TG_ATALHO":
       MSG_CAMPO="Digite o nome do Atalho !"
  Case Campo="YES":
       MSG_CAMPO="Ativar Atalho"
  Case Campo="NO":
       MSG_CAMPO="Cancelar"
EndSwitch
SelectControl Campo

ExibeRodapeSD(MSG_CAMPO)
ExibeRodape(2,"Esc=Retornar  Enter=Avan‡ar  "+TECLA)

RefreshDialog
EndProc  ; (Sd_Dialog)

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
VSDGUSUARIO   =SYS_CHAPA_USUARIO
VSDGNOMUSUARIO=SYS_NOME_USUARIO

VSDGTECLA  ="Alt+"+MSG
VSDGNATALHO=""
If Ltrim(RTrim(Opcao))<>"Principal"
   Then VSDGROTINA1=Ltrim(RTrim(OPCANT))
        VSDGROTINA2=" "+Ltrim(RTrim(Opcao))
        VSDGROTINA3="  "+LTrim(RTrim(SubStr(Rotina[OT],4,40)))
   Else VSDGROTINA1=Ltrim(RTrim(Opcao))
        VSDGROTINA2=" "+LTrim(RTrim(SubStr(Rotina[OT],4,40)))
        VSDGROTINA3=""
EndIf

While True

  ShowDialog " Atalho " Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "ENTER","ESC","ClearArea"
   @ 04,17   Height 13 Width 45

    Label  @ 00,00 "Usuario"  For "TG_USUARIO"
    Accept @ 1,01 Width 07 "A4"  Picture "#*#" Tag "TG_USUARIO" To VSDGUSUARIO
    Accept @ 1,09 Width 33 "A30" Picture "!*!" Tag "TG_NOMUSUARIO" To VSDGNOMUSUARIO

    Label  @ 02,00 "Rotina" For "TG_ROTINA"
    Accept @ 03,01 Width 41 "A40" Picture "!*!" Tag "TG_ROTINA" To VSDGROTINA1
    Accept @ 04,01 Width 41 "A40" Picture "!*!" Tag "TG_ROTINA" To VSDGROTINA2
    Accept @ 05,01 Width 41 "A40" Picture "!*!" Tag "TG_ROTINA" To VSDGROTINA3

    Label  @ 06,00 "Tecla" For "TG_TECLA"
    Accept @ 07,01 Width 10 "A7" Tag "TG_TECLA" To VSDGTECLA
    Label  @ 06,18 "Nome do Atalho" For "TG_ATALHO"
    Accept @ 07,18 Width 12 "A9" Picture "!@*@" Tag "TG_ATALHO" To VSDGNATALHO

    Pushbutton @ 09,05 width 13 "~P~rogramar" OK     Default Value "Programar" Tag "YES" To BottonValue
    Pushbutton @ 09,20 width 13 "~C~ancelar"  CANCEL                           Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If IsBlank(VSDGNATALHO)
     Then Mensagem("Nome do Atalho invalido !")
          Loop
  EndIf
  If IsBlank(VSDGTECLA)
     Then Mensagem("Tecla invalida !")
          Loop
  EndIf
;;VSDGNATALHO=Upper(SubStr(VSDGNATALHO,1,1))+
;;            Lower(SubStr(VSDGNATALHO,2,Len(VSDGNATALHO)))
  Grava_Funcao()
  QuitLoop
EndWhile
Release Vars VSDGUSUARIO,VSDGNOMUSUARIO,VSDGNATALHO, VSDGTECLA,
             VSDGROTINA1,VSDGROTINA2,VSDGROTINA3
Release Procs GRAVA_FUNCAO,EXCLUI_FUNCAO,SD_DIALOG


