Clipper On Line • Ver Tópico - Ao clicar no botão selecionar o method é chamado duas vezes

Ao clicar no botão selecionar o method é chamado duas vezes

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Ao clicar no botão selecionar o method é chamado duas vezes

Mensagempor Kapiaba » 04 Mai 2016 10:10

Veja uma pequena mexida... Como eu faria...

//----------------------------------------------------------------------------//
   
METHOD BuildMoreButtons() CLASS CadFuncionarios

LOCAL i,x,y,spc,coluna:=1
x := ::xBrw:nTop + ::xBrw:nHeight + 20
y := ::xBrw:nLeft + 10
spc := ((::xBrw:nWidth - 10)/::nColunas)
// espaçamento mínimo é 84

DO WHILE (spc < 84)

   ::nColunas-=1

   spc := ((::xBrw:nWidth - 10)/::nColunas)

   SYSREFRESH()

ENDDO

FOR i:=1 TO 4
  y+=spc
  coluna+=1
  IF coluna>::nColunas
   y:=::xBrw:nLeft + 10
   coluna:=1
   x+=42
  ENDIF

   SYSREFRESH()

NEXT

@ x, y BUTTON ::aBotoes[5] PROMPT "&Rescisão" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION ::Rescisao()

y+=spc
coluna+=1
IF coluna>::nColunas
  y:=::xBrw:nLeft + 10
  coluna:=1
  x+=42
ENDIF
@ x, y BUTTON ::aBotoes[6] PROMPT "&Ferias" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION CadFuncFerias():New(::oChild)
y+=spc
coluna+=1
IF coluna>::nColunas
  y:=::xBrw:nLeft + 10
  coluna:=1
  x+=42
ENDIF
@ x, y BUTTON ::aBotoes[7] PROMPT "Fi&cha" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION IF ( MsgSimNao("Imprime a Ficha?", " Confirmação"), RelFichaFuncionario():New(), )
y+=spc
coluna+=1
IF coluna>::nColunas
  y:=::xBrw:nLeft + 10
  coluna:=1
  x+=42
ENDIF
@ x, y BUTTON ::aBotoes[8] PROMPT "Afas&tamento" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION CadFuncAfast():New(::oChild)
y+=spc
coluna+=1
IF coluna>::nColunas
  y:=::xBrw:nLeft + 10
  coluna:=1
  x+=42
ENDIF
@ x, y BUTTON ::aBotoes[9] PROMPT "&Modalidade" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION ::Modalidade()
y+=spc
coluna+=1
IF coluna>::nColunas
  y:=::xBrw:nLeft + 10
  coluna:=1
  x+=42
ENDIF
@ x, y BUTTON ::aBotoes[10] PROMPT "&Outros Vínculos" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION ::OUTVINC()
y+=spc
coluna+=1
IF coluna>::nColunas
  y:=::xBrw:nLeft + 10
  coluna:=1
  x+=42
ENDIF
@ x, y BUTTON ::aBotoes[11] PROMPT "&Visualizar Ativos" OF ::oChild SIZE 90,22 PIXEL ACTION ::filtrar()
y+=spc+15
coluna+=1
IF coluna>::nColunas
  y:=::xBrw:nLeft + 10
  coluna:=1
  x+=42
ENDIF
::xBrw:SetFocus()
return

//-------------------------------------------------------------------------------------------------

METHOD Rescisao() CLASS CadFuncionarios

local resDlg, btok, aCodSaq, gRESVERBAdesc1, cRESVERBAdesc1, gRESVERBAdesc2,;
cRESVERBAdesc2, gRESVERBAdesc3, cRESVERBAdesc3
 
::bancos:Abrir(14)

::InicializaRescisao()

// OF ::oChild  MESMO??
DEFINE DIALOG resDlg RESOURCE "#1035" OF ::oChild TITLE "Rescisão"

REDEFINE SAY ID 4007 OF resDlg UPDATE
REDEFINE SAY ID 4004 OF resDlg UPDATE
REDEFINE SAY ID 4006 OF resDlg UPDATE
REDEFINE SAY ID 4010 OF resDlg UPDATE
REDEFINE SAY ID 4012 OF resDlg UPDATE
REDEFINE SAY ID 4014 OF resDlg UPDATE
REDEFINE SAY ID 4016 OF resDlg UPDATE
REDEFINE SAY ID 4027 OF resDlg UPDATE

REDEFINE GET ::gDEMISSAO  VAR ::cDEMISSAO  ID 4008 OF resDlg;
  VALID EMPTY(::cDEMISSAO) .OR. ::cDEMISSAO>=::cADMISSAO  UPDATE

REDEFINE GET ::gRESVERBA  VAR ::cRESVERBA  ID 4003 OF resDlg  UPDATE ;
  pict "999999" VALID grupok("1", ::cRESVERBA, @cRESVERBAdesc1, @gRESVERBAdesc1)

REDEFINE SAY gRESVERBAdesc1 VAR cRESVERBAdesc1 ID 4002 OF resDlg  UPDATE

grupok("1", ::cRESVERBA, @cRESVERBAdesc1, @gRESVERBAdesc1)

REDEFINE GET ::gCODMOV  VAR ::cCODMOV  ID 4005 OF resDlg UPDATE ;
VALID ::checkCODMOV()

REDEFINE SAY ::gDescCODMOV VAR ::cDescCODMOV ID 4024 OF resDlg UPDATE

RSCDESLArray = RSCDESLGetArray()  //???

REDEFINE GET ::gRSCDESL  VAR ::cRSCDESL  ID 4009 OF resDlg UPDATE ;
PICT "99" VALID ::chkRSCDESL()

REDEFINE SAY ::gDescRSCDESL VAR ::cDescRSCDESL ID 4025 OF resDlg UPDATE

REDEFINE GET ::gcoddemcag VAR ::ccoddemcag ID 4011 OF resDlg UPDATE ;
  PICT "99" VALID ( ::checkCoddemcag() .and. ::DtCagedDem() )

REDEFINE SAY ::gdesccoddemcag VAR ::cdesccoddemcag ID 4026 OF resDlg UPDATE
 
REDEFINE GET ::gRESCODSAC VAR ::cRESCODSAC ID 4013 OF resDlg UPDATE;
PICT "99" VALID ::ChkCodSaq()

aCodSaq:= {"01 - Dispensa sem justa causa",;
"02 - Dispensa com culpa recíproca ou força maior",;
"03 - Extinção da empresa",;
"04 - Extinção do contrato de trabalho p/prazo determinado",;
"05 - Aposentadoria",;
"06 - Suspensão do trabalho avulso por período igual ou superior a 90 dias",;
"07 - Afastamento de trabalhador avulso portuário",;
"10 - Rescisão com indenização (não optante)",;
"23 - Falecimento do titular da conta",;
"26 - Rescisão s/ pgto. de indenização ou fim de prazo prescricional (Reclamação trabalhista)",;
"27 - Pagamento do depósito de que trata o art. 73 do regulamento do FGTS",;
"50 - Complemento de atualização monetária inferior a R$100,00",;
"70 - Idade igual ou superior a setenta anos",;
"80 - Portador de SIDA/AIDS",;
"81 - Neoplasia Maligna",;
"86 - Sem crédito de depósito por 3 anos, com afastamento a partir de 14/07/90",;
"87 - Sem crédito de depósito por 3 anos, com afastamento até 13/07/90",;
"88 - Determinação judicial"}



REDEFINE SAY ::gDescRESCODSAC VAR ::cDescRESCODSAC ID 4023 OF resDlg UPDATE

REDEFINE GET ::gMULTAFGTS  VAR ::cMULTAFGTS  ID 4015 OF resDlg UPDATE;
  PICT "@EZ 99,999.99" VALID ::cMULTAFGTS>=0

REDEFINE GET ::gDtCagedD  VAR ::cDtCagedD  ID 4028 OF resDlg ;
    pict "99/99/9999"  UPDATE ;
    when(::ccoddemcag = "80") valid(::DtCagedDem()) //Data Caged Demissao

REDEFINE CHECKBOX ::grepoevaga VAR ::crepoevaga ID 4017 OF resDlg

// AREA DOS BOTOES, CADA MAKAKO NO SEU GALHO...

REDEFINE BUTTONBMP ::bGetVerba ID 4019 OF resDlg BITMAP "#7002";
ACTION (JSFltpr():New(resDlg,::gRESVERBA), IF(::gRESVERBA:lValid(), ::gRESCODSAC:setFocus(), ::gRESVERBA:setFocus()))

REDEFINE BUTTONBMP ::bGetCODMOV ID 4020 OF resDlg BITMAP "#7002";
ACTION (JSFltbmv():New(resDlg, "Movimento SEFIP", ::gCODMOV), IF(::gCODMOV:lValid(), ::gRSCDESL:setFocus(), ::gCODMOV:setFocus()))

REDEFINE BUTTONBMP ::bGetRSCDESL ID 4021 OF resDlg BITMAP "#7002";
  ACTION (JanSeletor():New(resDlg, ::gRSCDESL, 760, 300, "Informações do Desligamento", RSCDESLArray), if(::gRSCDESL:lValid(),;
::gcoddemcag:SetFocus(),::gRSCDESL:SetFocus()) )

REDEFINE BUTTONBMP ::bGetCAGED ID 4022 OF resDlg BITMAP "#7002";
  ACTION ( demiscagok(@resDlg, @::gcoddemcag), if(::gcoddemcag:lValid(),;
::grepoevaga:SetFocus(),::gcoddemcag:SetFocus()) )

REDEFINE BUTTONBMP bCodsaq ID 4001 OF resDlg BITMAP "#7002" ;
  ACTION (JanSeletor():New(resDlg,::gRESCODSAC,590, 350,"Saques FGTS",aCodSaq), IF(::gRESCODSAC:lValid(), ::gCODMOV:setFocus(), ::gRESCODSAC:setFocus()))

REDEFINE BUTTON btok ID IDOK OF resDlg ;
    ACTION( ::SalvarRescisao(resDlg) )  ;
    WHEN(::ValidCagedDem()) CANCEL
   
REDEFINE BUTTONBMP ID 4018 OF resDlg ;
    ACTION( ::RestauraRescisao() ) CANCEL

REDEFINE BUTTONBMP ID IDCANCEL ACTION( ::oDlg:End() ) CANCEL UPDATE  // TESTE ASSIM

::gCODMOV:lValid()
::gRSCDESL:lValid()
  ::gcoddemcag:lValid()
::gRESCODSAC:lValid()
::DtCagedDem()

resDlg:bLostFocus := {|| ::bancos:Fechar(14)}

ACTIVATE DIALOG resDlg CENTERED

return NIL


Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Ao clicar no botão selecionar o method é chamado duas vezes

Mensagempor Daiane » 10 Mai 2016 09:27

Olá Kapiaba,obrigada pela ajuda,acabei de fazer as modificações nesta parte do codigo
agora vou fazer no restante que na verdade é muito codigo que vou precisar alterar então fica a pergunta
usarei UPDATE em todos os campos exceto checkbox e combobo né isso?
e nos botões de salvar restaurar ou Cancelar eu uso o CANCEL UPDATE
é isso mesmo?
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Avatar de usuário

Daiane
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 122
Data de registro: 28 Out 2014 15:19
Cidade/Estado: Feira de Santana - BA
Curtiu: 27 vezes
Mens.Curtidas: 13 vezes

Ao clicar no botão selecionar o method é chamado duas vezes

Mensagempor Kapiaba » 10 Mai 2016 10:30

Daiane, a melhor forma de aprender e entender quando se deve usar um comando, é indo na pasta do FIVEWIN the best.

exemplo:

C:\FWH..\INCLUDE\FIVEWIN.CH - Edite e leia os comandos e controles, verás onde o COMANDO UPDATE entra e serve como base de aprendizado.

No caso dos Botões do seus sistema, é mais complexo, pois pode conter ao meu ver, erro de lógica, ou alguma coisa que funcionava em uma versão velha do five e nessa que você usa, não surte o mesmo efeito. Pode ser ou não.

O que você pode fazer, é testar no cliente com CANCEL e com CANCEL UPDATE, para ver a reação do programa, e ai, você decide em qual local ou função, ficará com CANCEL ou com CANCE UPDATE... Só testando.

O ideal, é que se sua versão for antiga, peça para que comprem a última versão do FiveWin, que aliás, está maravilhosa.

Se aprovarem, peça um orçamento junto ao Gilmer no email: gilmer@fivewin.com.br

Skype: gilmerorrotavares

Representante oficial do FiveWin the best no Brasil.

Dúvidas, vá perguntando. Abraços.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Anterior



Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro