;** TcAtalho *******************************************************************
;*  Programa p/ Teclas de Atalhos do Menupri                                   *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 18/06/2001 por Douglas Rodrigues
;Ultima Alteracao: 17/06/2011 por Karina Andrade
;Motivo Alteracao: Ajustes TECLAS
;Ultima Alteracao: 04/02/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SD_Dialog()

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona()

{Ask} {\\Sistemas\\Cadastro\\TcAtalho}
Moveto [Chapa    ] Check TypeIn SYS_CHAPA_USUARIO
Moveto [Tecla    ] Check
Moveto [Descricao] Check
Do_It!
ClearAll

If IsAssigned(Array_Teclas)
   Then Release Vars Array_Teclas
EndIf

Array Array_Teclas[12]

For I From 1 To 12
    Array_Teclas[I]=""
    Array_Teclas[I]="Alt+"+Completa("F"+StrVal(I),3," ")
    If i=4
       Then Array_Teclas[I]=Array_Teclas[I]+" "+"Sair"
    EndIf
EndFor

View "Answer"
Moveto [Chapa]
Scan
  Array_Teclas[NumVal(RTrim(SubStr([Tecla],2,2)))]=Array_Teclas[NumVal(RTrim(SubStr([Tecla],2,2)))]+" "+[Descricao]
EndScan
ClearImage

EndProc ; (Seleciona)

;*******************************************************************************
;* Rotina para Excluir Teclas                                                  *
;*******************************************************************************
Proc Exclui_Funcao()
Private Funcao

Funcao="F"+StrVal(ControlValue("TG_TECLAS"))
CoEdit NoWindow "\\Sistemas\\Cadastro\\TcAtalho"
Moveto [\Sistemas\Cadastro\TcAtalho->Chapa]
Locate VSDGUSUARIO,FUNCAO
If RetVal
   Then Del
EndIf
Do_It!
ClearImage
Seleciona()
EndProc  ; (Exclui_Funcao)

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

If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_TECLAS" : CancelDialog
          EndSwitch
       Case (Evento["KeyCode"] = -6 Or Evento["KeyCode"] = -147):
          Temp=False
          If ControlValue("TG_TECLAS")<>4
             Then ConfGeral("Deseja realmente deletar esta fun‡„o ?")
                  If OK="S"
                     Then Exclui_Funcao()
                  EndIf
          EndIf
   EndSwitch
EndIf

TECLA=" Esc=Retornar  Ctrl+Del=Excluir  "

Switch
  Case Campo="TG_TECLAS":
       TECLA=TECLA+"=Selecionar"
       MSG_CAMPO=""
EndSwitch
SelectControl Campo

ExibeRodapeSD(MSG_CAMPO)
ExibeRodape(2,TECLA)
RefreshDialog

EndProc  ; (Sd_Dialog)

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

Seleciona()

While True

  ShowDialog "Programa‡„o de Teclas de Atalho" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "ENTER","ESC","ClearArea",-147
   @ 02,01   Height 19 Width 76

    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

    PickArray @4,01 Height 12 width 72
     Columns 1
      Array_TECLAS
       Tag "TG_TECLAS"
        To ArrayElement
    Label @ 03,00 "Teclas de Fun‡”es"  For "TG_TECLAS"

  EndDialog
  If Not RetVal Then QuitLoop EndIf

EndWhile
If IsTable("Answer")
   Then Delete "Answer"
EndIf
Message("")
Release Vars VSDGUSUARIO,VSDGNOMUSUARIO,TG_TECLAS,ARRAY_TECLAS,FUNCAO,TECLA,MSG_CAMPO
Release Procs SELECIONA,EXCLUI_FUNCAO,SD_DIALOG

