CADZM1 - Copia.prw 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. #include 'protheus.ch'
  2. #include 'parmtype.ch'
  3. #include 'rwmake.ch'
  4. #include "topconn.ch"
  5. #INCLUDE "font.ch"
  6. #INCLUDE "colors.ch"
  7. /*__________________________________________________________________________
  8. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  9. ¦¦+-----------------------------------------------------------------------+¦¦
  10. ¦¦¦Funçäo ¦ CADZM1 ¦ Autor ¦ Lucilene Mendes ¦ Data ¦05.02.24 ¦¦¦
  11. ¦¦+----------+------------------------------------------------------------¦¦¦
  12. ¦¦¦Descriçäo ¦ Cadastro de usuários do portal ¦¦¦
  13. ¦¦+-----------------------------------------------------------------------+¦¦
  14. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  15. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
  16. User Function CadZM1()
  17. Local cAlias := "ZYG"
  18. Private aRotina := {}
  19. Private oBrowse
  20. Private cCadastro := "Usuários Portal SMS"
  21. //Opções de menu disponíveis
  22. aAdd(aRotina, {"Visualizar" , "u_MntZM1(2)", 0, 2})
  23. aAdd(aRotina, {"Incluir", "u_MntZM1(3)", 0, 3})
  24. aAdd(aRotina, {"Alterar", "u_MntZM1(4)", 0, 4})
  25. //aAdd(aRotina, {"Excluir", "AxDeleta", 0, 5})
  26. //Monta o browse
  27. oBrowse := FWmBrowse():New()
  28. oBrowse:SetAlias(cAlias)
  29. oBrowse:SetDescription( cCadastro )
  30. oBrowse:DisableDetails()
  31. //Abre a tela
  32. oBrowse:Activate()
  33. Return
  34. /*__________________________________________________________________________
  35. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  36. ¦¦+-----------------------------------------------------------------------+¦¦
  37. ¦¦¦Funçäo ¦ MntZM1 ¦ Autor ¦ Lucilene Mendes ¦ Data ¦05.02.24 ¦¦¦
  38. ¦¦+----------+------------------------------------------------------------¦¦¦
  39. ¦¦¦Descriçäo ¦ Manutenção de usuários do portal ¦¦¦
  40. ¦¦+-----------------------------------------------------------------------+¦¦
  41. ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
  42. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/
  43. User Function MntZM1(nOpc)
  44. // Variaveis que controlam a interface
  45. Local nSuperior := 020
  46. Local nEsquerda := 005
  47. Local nInferior := 150
  48. Local nDireita := 389
  49. Local nX := 0
  50. Local cLinOk := "AllwaysTrue"
  51. Local cTudoOk := "AllwaysTrue"
  52. Local cDelOk := "AllwaysFalse"
  53. Local cFieldOk := "AllwaysTrue"
  54. Local cItem := "000"
  55. Local nStyle := Iif(nOpc = 2,0,(GD_INSERT + GD_UPDATE + GD_DELETE))
  56. Local oDlg1
  57. Local oSay1
  58. Local bRefresh := {|| oDlg1:Refresh() }
  59. Local bGDRefresh := {|| oGetDad:oBrowse:Refresh() }
  60. Local aHeader := {}
  61. Local aFields := {"ZYG_ITEM","ZYG_EST","ZYG_CODIGO"}
  62. Local aAlter := {}
  63. Local aCols := {}
  64. Private oGetDad
  65. Private cCodigo := space(6)
  66. Private cNome := space(30)
  67. Private cPerfil := ""
  68. Private cStatus := ""
  69. Private cRegional := space(6)
  70. Private cDescri := space(20)
  71. Private cSenha := space(10)
  72. dbSelectArea("ZM1")
  73. dbSelectArea("SX3")
  74. SX3->(dbSetOrder(2))
  75. //Monta o aHeader buscando na SX3 as propriedades dos campos do array aFields
  76. For nX := 1 to 5
  77. SX3->(dbSeek("ZM1_CLIENT"))
  78. Do Case
  79. Case nX = 1
  80. cTitulo:= "Rotina"
  81. Case nX = 2
  82. cTitulo:= "Incluir"
  83. Case nX = 3
  84. cTitulo:= "Alterar"
  85. Case nX = 4
  86. cTitulo:= "Excluir"
  87. Case nX = 5
  88. cTitulo:= "Copiar"
  89. Case nX = 6
  90. cTitulo:= "Revisar"
  91. Case nX = 7
  92. cTitulo:= "Efetivar"
  93. Case nX = 8
  94. cTitulo:= "Cancelar"
  95. Case nX = 9
  96. cTitulo:= "Todos"
  97. End Case
  98. Aadd(aHeader,{cTitulo,SX3->X3_CAMPO,SX3->X3_PICTURE,SX3->X3_TAMANHO,SX3->X3_DECIMAL,SX3->X3_VALID,; //"AllwaysTrue()"
  99. SX3->X3_USADO,SX3->X3_TIPO,SX3->X3_F3,SX3->X3_CONTEXT,SX3->X3_CBOX,SX3->X3_RELACAO})
  100. Next nX
  101. If nOpc = 4 .or. nOpc = 2
  102. cCodigo:= ZM1->ZM1_CODIGO
  103. cDescri:= ZM1->ZM1_NOME
  104. cQry:= " Select ZYG.R_E_C_N_O_ RECZYG, ZYG.* "
  105. cQry+= " From "+RetSqlName("ZYG")+" ZYG "
  106. cQry+= " Where ZYG_FILIAL = '"+ZYG->ZYG_FILIAL+"' "
  107. cQry+= " And ZYG_CODIGO = '"+ZYG->ZYG_CODIGO+"' "
  108. cQry+= " And ZYG.D_E_L_E_T_ = ' ' "
  109. If Select("QZYG") > 0
  110. QZYG->(dbCloseArea())
  111. Endif
  112. TcQuery cQry New Alias "QZYG"
  113. //Preenche o array com os itens
  114. While QZYG->(!Eof())
  115. //Monta o aCols
  116. aAdd(aCols, {QZYG->ZYG_ITEM,QZYG->ZYG_EST,QZYG->RECZYG, .F.})
  117. QZYG->(dbSkip())
  118. End
  119. Else
  120. aAdd(aCols,Array(Len(aHeader)+1))
  121. For nX := 1 To Len(aHeader)
  122. aCols[Len(aCols)][nX]:= CriaVar(aHeader[nX][2])
  123. Next nX
  124. aCols[Len(aCols)][Len(aHeader)+1]:= .F.
  125. Endif
  126. DEFINE FONT oBold NAME "Arial" SIZE 0, -12 BOLD
  127. //Monta a tela
  128. DEFINE MSDIALOG oDlg1 TITLE "Usuários Portal SMS" FROM 000, 000 TO 350, 780 COLORS 0,16777215 PIXEL Style 128//retira o [x] da janela
  129. @ 005,005 SAY oSay1 PROMPT "Código: "+ cCodigo F3 US2 SIZE 250, 030 OF oDlg1 FONT oBold COLORS CLR_BLUE, 16777215 PIXEL
  130. @ 005,070 Say "Nome:" SIZE 040, 010 OF oDlg1 COLORS 0, 16777215 PIXEL
  131. @ 005,100 MsGet cNome Picture "@!" SIZE 200, 008 Valid NaoVazio() When nOpc = 3 OF oDlg1 COLORS CLR_BLUE, 16777215 PIXEL
  132. @ 005,005 SAY oSay2 PROMPT "Perfil: "+ cPerfil SIZE 250, 030 OF oDlg1 FONT oBold COLORS CLR_BLUE, 16777215 PIXEL
  133. @ 005,070 Say oSay3 PROMPT "Status:" SIZE 040, 010 OF oDlg1 COLORS 0, 16777215 PIXEL
  134. // Ação a ser executada nos botões OK ou CANCELA
  135. @ 157,280 BUTTON oButton1 PROMPT "Confirmar" SIZE 037, 012 ACTION(u_GRVZM1(nOpc,aCols),oDlg1:End()) OF oDlg1 PIXEL
  136. @ 157,340 BUTTON oButton1 PROMPT "Fechar" SIZE 037, 012 ACTION(oDlg1:End()) OF oDlg1 PIXEL
  137. //Criação do Grid
  138. oGetDad := MsNewGetDados():New(nSuperior, nEsquerda, nInferior, nDireita, nStyle, cLinOk, cTudoOk,, aAlter,, 30, "AllwaysTrue", "", "AllwaysTrue", oDlg1, aHeader, aCols)
  139. Eval(bGDRefresh)//Atualiza Grid
  140. Eval(bRefresh) //Atualiza Tela
  141. ACTIVATE MSDIALOG oDlg1 CENTERED
  142. Return
  143. User Function GrvZM1(nOpc,aCols)
  144. Local aColsGrv:= oGetDad:aCols
  145. Local lInc:= .T.
  146. Local i:= 0
  147. For i:= 1 to Len(aColsGrv)
  148. lInc:= .T.
  149. If !aColsGrv[i,len(aColsGrv[i])] // se não estiver deletado em tela
  150. If !Empty(aColsGrv[i,len(aColsGrv[i])-1])
  151. ZYG->(dbGoto(aColsGrv[i,len(aColsGrv[i])-1]))
  152. lInc:= .F.
  153. Endif
  154. RecLock("ZYG", lInc)
  155. ZYG->ZYG_FILIAL:= xFilial("ZYG")
  156. ZYG->ZYG_CODIGO:= cCodigo
  157. ZYG->ZYG_DESCRI:= cDescri
  158. ZYG->ZYG_ITEM:= aColsGrv[i,1]
  159. ZYG->ZYG_EST:= aColsGrv[i,2]
  160. MsUnlock()
  161. Else
  162. If !Empty(aColsGrv[i,len(aColsGrv[i])-1])
  163. ZYG->(dbGoto(aColsGrv[i,len(aColsGrv[i])-1]))
  164. RecLock("ZYG", .F.)
  165. dbDelete()
  166. MsUnlock()
  167. Endif
  168. Endif
  169. Next
  170. Return