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

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

Moderador: Moderadores

Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

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

Mensagem por Kapiaba »

Código: Selecionar todos

//-> By João Santos - São Paulo - Brazil - kmt_karinha@pop.com.br - 23/11/06
//-> Participação Especial, Vailton Renato - renato@kssoftware.com.br

#Include "FiveWin.Ch"

STATIC oDlgRelog, oTimerRelog, lDesliga := .F., oWnd, oTimerPorta
STATIC oFnt, oSaida

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

FUNCTION RELOGIO()

    LOCAL oBrush
    LOCAL dDataDia

    SET DATE BRIT
    SET CENTURY ON
    SET EPOCH TO YEAR( DATE() ) - 30
    SET EXCLUSIVE OFF
    SET MULTIPLE OFF

    dDataDia := DTOC( DATE() )

    DEFINE BRUSH oBrush    RESOURCE "LOGO2" //-> PEGA A BITMAP DO ARQUIVO.RES(LOGO.BMP)

    DEFINE FONT oFnt      NAME "Arial"         SIZE 08,  20 BOLD

    DEFINE DIALOG oDlgRelog FROM 3, 3 TO 20, 50                               ;
           TITLE ( OemToAnsi( "Gerenciador do Rel¢gio do Sistema - "  +       ;
                              "Data: " + dDataDia ) )                         ;
           BRUSH oBrush TRANSPARENT                                           ;
           STYLE nOR( DS_MODALFRAME )

    oDlgRelog:lHelpIcon := .F.

    @ 005, 010 BUTTON oSaida PROMPT "&Finalizar" OF oDlgRelog                 ;
               SIZE 70, 14                                                    ;
               ACTION ( oDlgRelog:End ) CANCEL

    oSaida:cToolTip := ( OemToAnsi( "Finalizar Gerenciador do Rel¢gio " ) )

    SET FONT OF oSaida   TO oFnt

    ACTIVATE DIALOG oDlgRelog CENTERED RESIZE16                               ;
             ON INIT( ACIONA_TIMER( oWnd ) )

    IF lDesliga  //-> Se For .T., Desligar  o TIMER.
       oTimerRelog:DeActivate()
       oTimerPorta:DeActivate()
    ENDIF

    oFnt:End()
    oBrush:End()
    Release All

RETURN NIL

STATIC FUNCTION ACIONA_TIMER( oWnd )

    DEFINE TIMER oTimerPorta INTERVAL 50  OF oDlgRelog                        ;
           ACTION ACIONA_RELOGIO( oWnd )

    ACTIVATE TIMER oTimerPorta

RETURN NIL

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

STATIC FUNCTION ACIONA_RELOGIO( oWnd )

    LOCAL oFont

    DEFINE FONT oFont NAME "Arial" SIZE  0, -70 BOLD //-> Fonte Para o Relogio
    DEFINE FONT oFnt  NAME "Arial" SIZE 08,  20 BOLD //-> Fonte Para o BotÆo

    //-> Timer Que Ativa o Rel¢gio em Qualquer Lugar do Sistema

    DEFINE TIMER oTimerRelog INTERVAL 50                                      ;
           ACTION ExibeRelogio()

    ACTIVATE TIMER oTimerRelog

    //-> Fonte do Rel¢gio
    SET FONT OF oDlgRelog TO oFont
    SET FONT OF oSaida    TO oFnt

    oFont:End()

    lDesliga := .T.  //-> Para Desligar o Timer do Rel¢gio

    oTimerPorta:DeActivate()

RETURN NIL

//-> Para NÆo Pintar a Tela do Windows, By Vailton Renato - 23/11/2006

STATIC FUNCTION ExibeRelogio()

    IF ISWINDOWVISIBLE( oDlgRelog:hWnd )

        oDlgRelog:Say( 3, 07, TIME(),                                         ;
                  CLR_YELLOW, CLR_BLACK,, .F. )
        // .T. Esquerda - .F. Direita da Dialog.

    ENDIF

RETURN NIL

//-> FIM DO PROGRAMA <-------------------------------------------------------//
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

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

Mensagem por Kapiaba »

Para estudar:

http://forums.fivetechsupport.com/viewt ... sc#p181422

Abs e um FELIZ NATAL.
Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

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

Mensagem por Daiane »

Kapiaba,não entendi os codigos que vc mandou,é para eu analisar q parte?
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

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

Mensagem por Kapiaba »

Código: Selecionar todos

CANCEL
Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

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

Mensagem por Daiane »

ja tinha tentando o CANCEL mas n adiantou,depois tentei CANCEL UPDATE,mas ja tirei e deixei so CANCEL e mesmo assim não adiantou.
não sei mais o que fazer :(
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

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

Mensagem por Kapiaba »

Mostre o código(s) para leitura, fica mais fácil identificar o erro. de onde parte e para onde vai.
Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

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

Mensagem por Daiane »

ta certo

Código: Selecionar todos

// Aqui é a chamada do botão buscar
//quando mando buscar ou cancelo a tela de busca a tela abre novamente
METHOD BuildButtons() CLASS CadFuncionarios
	LOCAL i,x,y,spc,coluna:=1,tBotoes:=::nBotoes
	::aBotoes:=array(::nBotoes)
	::nColunas:=5
	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)
	ENDDO
	@ x, y BUTTON ::aBotoes[1] PROMPT "&Incluir" OF ::oChild SIZE 80,22 PIXEL ACTION ::IncOuAlt(.T.) CANCEL
	y+=spc
	coluna+=1
	IF coluna>::nColunas
		y:=::xBrw:nLeft + 10
		coluna:=1
		x+=42
	ENDIF                                                      
	@ x, y BUTTON ::aBotoes[2] PROMPT "&Alterar" OF ::oChild SIZE 80,22 PIXEL WHEN (.NOT. ::vazio) ACTION ::IncOuAlt(.F.) CANCEL
	y+=spc
	coluna+=1
	IF coluna>::nColunas
		y:=::xBrw:nLeft + 10
		coluna:=1
		x+=42
	ENDIF
       // aqui a chamda da tela de busca
	@ x, y BUTTON ::aBotoes[3] PROMPT "&Buscar" OF ::oChild SIZE 80,22 PIXEL WHEN (.NOT. ::vazio) ACTION ::InitSrch() CANCEL
	y+=spc
	coluna+=1
	IF coluna>::nColunas
		y:=::xBrw:nLeft + 10
		coluna:=1
		x+=42
	ENDIF
	@ x, y BUTTON ::aBotoes[4] PROMPT "E&xcluir" OF ::oChild SIZE 80,22 PIXEL WHEN (.NOT. ::vazio) ACTION ::RemoveItem() CANCEL
	IF tBotoes!=nil .AND. tBotoes > 5
		tBotoes-=5
		//msginfo("Produzir espaço para os outros "+cValToStr(tBotoes,'99')+" botões")
		FOR i:=1 TO tBotoes
			y+=spc
			coluna+=1
			IF coluna>::nColunas
				y:=::xBrw:nLeft + 10
				coluna:=1
				x+=42
			ENDIF
		NEXT
	ENDIF
	IF (::nBotoes>5)
		::BuildMoreButtons()
	ENDIF
	// mantendo o botão de sair à direita
	IF coluna>=::nColunas
		x+=42
	ELSE
		y:=((::xBrw:nLeft + ::xBrw:nWidth)-spc)
	ENDIF
	@ x, y BUTTON ::aBotoes[::nBotoes] PROMPT "&Sair" OF ::oChild SIZE 80,22 PIXEL ACTION ::oChild:end()
	x+=42
	IF ::oChild:nHeight < x
		x+=20
		::oChild:nHeight(x)
	ENDIF
	
return nil

//aqui é a tela de busca 
METHOD InitSrch() CLASS CadFuncionarios

 LOCAL ametOrd := {"Nome", "Código", "Pis"} // Incluido por Gilberto 
	
	SELE 1
	
	DEFINE DIALOG dlgBusca RESOURCE "#1244" TITLE "Buscar funcionário"

   ::campo := "Nome"
   ::valor := ""   
   
   REDEFINE SAY ID 4001
   
			//REDEFINE COMBOBOX ::gcampo VAR ::campo ITEMS {"Código", "Nome", "PIS"} ID 4005 VALID ::setIndex2() OF dlgBusca
  	REDEFINE GET      ::gvalor VAR ::valor ID 4003 OF dlgBusca
			REDEFINE COMBOBOX ::gcampo VAR ::campo ITEMS ametOrd ID 4005 VALID ::setIndex2() OF dlgBusca
			
	
	  REDEFINE BUTTON ID IDOK OF dlgBusca ACTION (::Srch(), dlgBusca:End()) CANCEL
	  REDEFINE BUTTON ID IDCANCEL OF dlgBusca ACTION dlgBusca:End() CANCEL  
	
	  ordsetfocus(2) // 2 ///
   ::gvalor:setfocus()

	  ACTIVATE DIALOG dlgBusca CENTERED //ON INIT   // gilberto em outubro / 2013) 
	
RETURN


XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

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

Mensagem por Kapiaba »

Veja o seu código, por outro PRISMA:

Código: Selecionar todos

// Aqui é a chamada do botão buscar
//quando mando buscar ou cancelo a tela de busca a tela abre novamente
METHOD BuildButtons() CLASS CadFuncionarios

   LOCAL i,x,y,spc,coluna:=1,tBotoes:=::nBotoes

   ::aBotoes:=array(::nBotoes)
   ::nColunas:=5

   x := ::xBrw:nTop + ::xBrw:nHeight + 20
   y := ::xBrw:nLeft + 10
   spc := ((::xBrw:nWidth - 10)/::nColunas)

    // espaçamento mínimo é 84
    WHILE (spc < 84)

      ::nColunas-=1

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

      SYSREFRESH()

   ENDDO

   @ x, y BUTTON ::aBotoes[1] PROMPT "&Incluir" OF ::oChild SIZE 80,22 PIXEL ;
          ACTION( ::IncOuAlt(.T.) ) CANCEL

   y+=spc
   coluna+=1

   IF coluna>::nColunas
      y:=::xBrw:nLeft + 10
      coluna:=1
      x+=42
   ENDIF

   @ x, y BUTTON ::aBotoes[2] PROMPT "&Alterar" OF ::oChild SIZE 80,22 PIXEL ;
          WHEN ( .NOT. ::vazio ) ;
          ACTION( ::IncOuAlt(.F.) ) CANCEL

   y+=spc
   coluna+=1

   IF coluna>::nColunas

      y:=::xBrw:nLeft + 10
      coluna:=1
      x+=42

   ENDIF

   // aqui a chamda da tela de busca
   @ x, y BUTTON ::aBotoes[3] PROMPT "&Buscar" OF ::oChild SIZE 80,22 PIXEL ;
          WHEN (.NOT. ::vazio) ;
          ACTION( ::InitSrch() ) CANCEL

   y+=spc
   coluna+=1

   IF coluna>::nColunas

      y:=::xBrw:nLeft + 10
      coluna:=1
      x+=42

   ENDIF

   @ x, y BUTTON ::aBotoes[4] PROMPT "E&xcluir" OF ::oChild SIZE 80,22 PIXEL ;
          WHEN (.NOT. ::vazio) ;
          ACTION( ::RemoveItem() ) CANCEL

   IF tBotoes!=nil .AND. tBotoes > 5

      tBotoes-=5

      //msginfo("Produzir espaço para os outros "+cValToStr(tBotoes,'99')+" botões")
      FOR i:=1 TO tBotoes

         y+=spc

         coluna+=1

         IF coluna>::nColunas

            y:=::xBrw:nLeft + 10

            coluna:=1
            x+=42

         ENDIF

      NEXT

   ENDIF

   IF (::nBotoes>5)
      ::BuildMoreButtons() //??? VERIFIQUE SE ESTA CORRETO
   ENDIF

   // mantendo o botão de sair à direita
   IF coluna>=::nColunas

      x+=42

   ELSE

      y:=((::xBrw:nLeft + ::xBrw:nWidth)-spc)

   ENDIF


   // Voce colocou CANCEL em todos, menos no que deveria, que e o de SAIDA.
   @ x, y BUTTON ::aBotoes[::nBotoes] PROMPT "&Sair" OF ::oChild SIZE 80,22 ;
          PIXEL                                                             ;
          ACTION( ::oChild:end() ) CANCEL

   x+=42

   IF ::oChild:nHeight < x
     x+=20
     ::oChild:nHeight(x)
   ENDIF
 
return nil

//aqui é a tela de busca 
METHOD InitSrch() CLASS CadFuncionarios

   LOCAL ametOrd := {"Nome", "Código", "Pis"} // Incluido por Gilberto
 
   SELE 1
 
   DEFINE DIALOG dlgBusca RESOURCE "#1244" TITLE "Buscar funcionário"

   ::campo := "Nome"
   ::valor := ""
 
   REDEFINE SAY ID 4001
 
   //REDEFINE COMBOBOX ::gcampo VAR ::campo ITEMS {"Código", "Nome", "PIS"} ID 4005 VALID ::setIndex2() OF dlgBusca
   REDEFINE GET   ::gvalor VAR ::valor ID 4003 OF dlgBusca UPDATE //??

   REDEFINE COMBOBOX ::gcampo VAR ::campo ITEMS ametOrd ID 4005 ;
            VALID( ::setIndex2() ) OF dlgBusca // ESSE VALID RETORNA .T. ou .F.??
 
   REDEFINE BUTTON ID IDOK OF dlgBusca ;
            ACTION ( ( ::Srch() ), dlgBusca:End() ) CANCEL  // MUDE ASSIM

   REDEFINE BUTTON ID IDCANCEL OF dlgBusca ACTION( dlgBusca:End() ) CANCEL
 
   ordsetfocus(2) // 2 ///  ???? O QUE E ISSO?? FAZ O QUE VEJA SE NAO TIRA O FOCO DO DIALOGO

   ::gvalor:setfocus()

   ACTIVATE DIALOG dlgBusca CENTERED //ON INIT // gilberto em outubro / 2013)
 
RETURN NIL  //???? nil MESMO?
Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

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

Mensagem por Daiane »

blz,vou dar uma pesquisada nos comentarios que vc colocou,pois não fui que fiz essas rotinas,so fiz implementar com o CANCEL
Mas muito obrigada pela ajuda
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

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

Mensagem por Kapiaba »

Blz. FELIZ NATAL E UM PRÓSPERO ANO NOVO, nos vemos em: 04/01/2016. Abs.
Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

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

Mensagem por Daiane »

Se alguem puder me ajudar, eu nunca consegui resolver esse problema
ja verifiqueis os valid ja inserir cancel nos botões de saida,mas de nada adiantou

Código: Selecionar todos

//----------------------------------------------------------------------------//
      
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)
	ENDDO
	FOR i:=1 TO 4
		y+=spc
		coluna+=1
		IF coluna>::nColunas
			y:=::xBrw:nLeft + 10
			coluna:=1
			x+=42
		ENDIF
	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()
	
	DEFINE DIALOG resDlg RESOURCE "#1035" OF ::oChild TITLE "Rescisão"

	REDEFINE SAY ID 4007 OF resDlg
	REDEFINE SAY ID 4004 OF resDlg
	REDEFINE SAY ID 4006 OF resDlg
	REDEFINE SAY ID 4010 OF resDlg
	REDEFINE SAY ID 4012 OF resDlg
	REDEFINE SAY ID 4014 OF resDlg
	REDEFINE SAY ID 4016 OF resDlg
	REDEFINE SAY ID 4027 OF resDlg
   
 REDEFINE GET ::gDEMISSAO 	VAR ::cDEMISSAO 	ID 4008 OF resDlg;
 	VALID EMPTY(::cDEMISSAO) .OR. ::cDEMISSAO>=::cADMISSAO
 REDEFINE GET ::gRESVERBA 	VAR ::cRESVERBA 	ID 4003 OF resDlg;
 	pict "999999" VALID grupok("1", ::cRESVERBA, @cRESVERBAdesc1, @gRESVERBAdesc1)  		
 REDEFINE BUTTONBMP ::bGetVerba ID 4019 OF resDlg BITMAP "#7002";
	ACTION (JSFltpr():New(resDlg,::gRESVERBA), IF(::gRESVERBA:lValid(), ::gRESCODSAC:setFocus(), ::gRESVERBA:setFocus())) 
	
	REDEFINE SAY gRESVERBAdesc1 VAR cRESVERBAdesc1 ID 4002 OF resDlg

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

 REDEFINE GET ::gCODMOV   	VAR ::cCODMOV   	ID 4005 OF resDlg;
  VALID ::checkCODMOV()       
 REDEFINE BUTTONBMP ::bGetCODMOV  ID 4020 OF resDlg BITMAP "#7002";
	ACTION (JSFltbmv():New(resDlg, "Movimento SEFIP", ::gCODMOV), IF(::gCODMOV:lValid(), ::gRSCDESL:setFocus(), ::gCODMOV:setFocus())) 
	REDEFINE SAY ::gDescCODMOV VAR ::cDescCODMOV ID 4024 OF resDlg
	
	RSCDESLArray = RSCDESLGetArray() 

	REDEFINE GET ::gRSCDESL  	VAR ::cRSCDESL  	ID 4009 OF resDlg;
  PICT "99" VALID ::chkRSCDESL()
 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 SAY ::gDescRSCDESL VAR ::cDescRSCDESL ID 4025 OF resDlg
   
 REDEFINE GET ::gcoddemcag	VAR ::ccoddemcag  ID 4011 OF resDlg;
	 PICT "99" VALID ( ::checkCoddemcag() .and. ::DtCagedDem() )
 REDEFINE BUTTONBMP ::bGetCAGED ID 4022 OF resDlg BITMAP "#7002";
		ACTION ( demiscagok(@resDlg, @::gcoddemcag), if(::gcoddemcag:lValid(),;
	::grepoevaga:SetFocus(),::gcoddemcag:SetFocus()) ) 
	REDEFINE SAY ::gdesccoddemcag VAR ::cdesccoddemcag ID 4026 OF resDlg
  	
 REDEFINE GET ::gRESCODSAC  VAR ::cRESCODSAC  ID 4013 OF resDlg;
  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 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 SAY ::gDescRESCODSAC  VAR ::cDescRESCODSAC ID 4023 OF resDlg
   
	REDEFINE GET ::gMULTAFGTS 	VAR ::cMULTAFGTS 	ID 4015 OF resDlg;
	 PICT "@EZ 99,999.99" VALID ::cMULTAFGTS>=0
	
	REDEFINE GET ::gDtCagedD 	VAR ::cDtCagedD 	ID 4028 OF resDlg pict "99/99/9999" when(::ccoddemcag = "80") valid(::DtCagedDem())  //Data Caged Demissao
	
	REDEFINE CHECKBOX ::grepoevaga VAR ::crepoevaga ID 4017 OF resDlg
	
	REDEFINE BUTTON btok ID IDOK OF resDlg ACTION ::SalvarRescisao(resDlg) WHEN(::ValidCagedDem()) 
			
	REDEFINE BUTTON ID 4018 OF resDlg ACTION ::RestauraRescisao() 
	REDEFINE BUTTON ID IDCANCEL ACTION ::oDlg:End() CANCEL
	::gCODMOV:lValid()
	::gRSCDESL:lValid()
 	::gcoddemcag:lValid()
	::gRESCODSAC:lValid() 
	::DtCagedDem()	
	resDlg:bLostFocus := {|| ::bancos:Fechar(14)}
	ACTIVATE DIALOG resDlg CENTERED
return
Obs: não coloquei as chamadas de CadFuncFerias ou CadFuncAfast pq é chamada a outras classes,mas ja analisei e todos os botões de saida esta com o CANCEL
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

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

Mensagem por Kapiaba »

de mais detalhes, o que ocorre exatamente e onde ocorre?

O que significa isto, qual e a finalidade disto dentro do Looping?

Código: Selecionar todos

 ::gCODMOV:lValid()
 ::gRSCDESL:lValid()
  ::gcoddemcag:lValid()
 ::gRESCODSAC:lValid() 
 ::DtCagedDem() 
 resDlg:bLostFocus := {|| ::bancos:Fechar(14)}

 ACTIVATE DIALOG resDlg CENTERED
 
Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

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

Mensagem por Daiane »

Código: Selecionar todos

METHOD lValid() CLASS TComboBox

   local lRet := .t.

   if ValType( ::bValid ) == "B"
      lRet = Eval( ::bValid, ::oGet, Self  )
   endif

return lRet
//-------------------------------------------------------------------
METHOD DtCagedDem() CLASS CadFuncionarios
//desabilita ou habilita caso condição seja atendida    
        ::gcoddemcag:Refresh()
	  IF ::ccoddemcag = "80" .and. !EMPTY(::cDtCagedD) 
		  ::cDEMISSAO:= ::cDtCagedD
        ::gDEMISSAO:Refresh()
        ::gMULTAFGTS:Disable()
        ::gRESVERBA:Disable()
        ::gRESCODSAC:Disable()
        ::bGetVerba:Disable()
        bCodsaq:Disable()
     ELSE   
        ::gMULTAFGTS:Enable()
        ::gRESVERBA:Enable()
        ::gRESCODSAC:Enable()
        ::bGetVerba:Enable()
        bCodsaq:Enable()
	  ENDIF

RETURN .T. 

essa linhda:
resDlg:bLostFocus := {|| ::bancos:Fechar(14)}
não sei exatamente para que serve pois n fui eu q desenvolvi,
mas oq eu entendi é q o a tabela 14 sera fechada, se esse tiver o focus nesse botão "bLostFocus". acredito que seja isso.


Não sei exatamente o que acontece,pois isso so acontece esporadicamente
na minha maquina não acontece so em alguns clientes.
o que ocorre é que quando eu clico no botão fechar de uma janela, depois que clico ela abre sozinha novamente.
Pensei que fosse o foco que estava voltando para o botão,mas analisei o codigo e não achei nada disso
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

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

Mensagem por Kapiaba »

o que ocorre é que quando eu clico no botão fechar de uma janela, depois que clico ela abre sozinha novamente.

Quando voce diz botão fechar, não é o X da janela, é?

Se a Janela se reinicia sozinha, tem algum VALID que está retornando NULL, pare os VALIDS() e veja qual que não está bem.

Esta lógica, desculpe a honestidade, ta ruim pra karamba, nos GETS e SAYS não tem nem o comando UPDATE, quem programava em Fivewin ai, programava de muita má vontade, ou não entendia lhufas de Fivewin.

Cabe a vc. estudar e melhorar o código. abs.
Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

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

Mensagem por Daiane »

Pode ser no botão fechar que é X ou no botão IDCANCEL, todos os dois ocorre essa situação.

é meu amigo,obrigada pela honestidade.
Foram vários programadores que passaram por aqui e aprendi com ultimo que ficou aqui,mas como vc disse,cabe a mim estudar mais e fazer de forma correta.
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Responder