BROWSE - erro ao clicar no cabeçalho

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

BROWSE - erro ao clicar no cabeçalho

Mensagem por clebervn »

Em qq browse do meu sistema, ao clicar no cabeçalho da erro no método BUTTONDOWN do browse, alguém sabe como posso evitar isso ???


Obg
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: BROWSE - erro ao clicar no cabeçalho

Mensagem por sygecom »

Post um pequeno exemplo de como esta usando seu browse.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: BROWSE - erro ao clicar no cabeçalho

Mensagem por clebervn »

Após sucessivos travamentos do site... lá vai :

Código: Selecionar todos

/////////////////////////////////////////////////////////////////////
FUNCTION RHCADVT()
PRIVATE oLabel1, oBrowse1
PRIVATE gPes,vPes:="",keyAnt:=0, keyend := .f.

// NOME DA BASE
PRIVATE vNomeBase := "valetr", nCodigo := 0, nTamTela := 600, nAltTela := 268

SELE &vNomeBase
SET ORDER TO 1
GO TOP

// CRIAÇÃO DA TELA DO GRID
INIT DIALOG oDlg1 TITLE "Meios de Transporte" ;
     ICON oIcon ;
     AT 344,223 SIZE nTamTela,nAltTela NOEXIT  ;
     STYLE WS_DLGFRAME+DS_CENTER+WS_SYSMENU 
   
Thisform := oDlg1

// MENSAGEM FINAL DA TELA
@ 0,nAltTela-43 SAY oLabel1 CAPTION "<INS> Incluir novo transporte   <ENTER> Alterar   <DEL> Excluir"  SIZE nTamTela,20 ;
        STYLE SS_CENTER;
        FONT oFontNorm

// BROWSE DA TABELA
@ 0, 0 BROWSE oBrowse1 DATABASE SIZE nTamTela,nAltTela-48 STYLE WS_VSCROLL ;
       FONT oFontNorm ;
       ON KEYDOWN {|o,key| BrowseKey(o, key) } ;
       ON CLICK {|o,key| BrowseKey(o, key)} ;
       ON POSCHANGE {|| SetFocus(oBrowse1:handle ) }

oBrowse1:alias    := vNomeBase
oBrowse1:aColumns := {}

oBrw_CreateColumn( oBrowse1, "CODIGO","Código"     , vNomeBase,1,"N", 2,0,,,DT_RIGHT,DT_RIGHT )
oBrw_CreateColumn( oBrowse1, "REF"   ," Referência", vNomeBase,2,"C",40,0)
oBrw_CreateColumn( oBrowse1, "VALOR" ,"Valor "     , vNomeBase,3,"N",15,2,,"@E 999,999,999.99",DT_RIGHT,DT_RIGHT)

ACTIVATE DIALOG oDlg1

RETURN oDlg1:lresult



*---------------------------------------------------------------------
* FUNÇÃO : TRATAMENTO DAS TECLAS DO GRID
*---------------------------------------------------------------------
static FUNCTION BrowseKey( oBrowse1, key )
DO CASE
     CASE key == K_INS // inclusão de novo transporte
          F_RHVT(0,"I")
          oBrowse1:REFRESH()
     CASE key == K_ENTER  // alterar preço
          nCodigo := &vNomeBase->CODIGO
          F_RHVT(nCodigo,"A")
          oBrowse1:REFRESH()
          oBrowse1:SETFOCUS()
     CASE key == K_DEL // exclusão de registro
          SELECT &vNomeBase
          IF Answer(2,"Confirma a exclusão ?") = 1
             IF RLOCK()
                DELETE
                UNLOCK
                SKIP -1
             ELSE
                FMsgErro("Registro indisponível, exclusão não realizada")
             ENDIF
          ENDIF
          oBrowse1:REFRESH()
          oBrowse1:SETFOCUS()
     CASE key == K_UP .OR. key == K_DOWN .OR. key == K_PGUP .OR. key == K_PGDN .OR. ;
          key == K_HOME .OR. key == K_END
          IF key == K_HOME
             oBrowse1:TOP()
             oBrowse1:REFRESH()
          ENDIF
          IF key == K_END
             oBrowse1:BOTTOM(.T.)
             oBrowse1:REFRESH()
          ENDIF
     CASE key == K_ESC // fechar janela
          EndDialog()
          oBrowse1:REFRESH()
ENDCASE
RETURN .T.
------------------------------------
Nota da Moderação(Sygecom): Topico editado para colocar a TAG [ CODE ]
Veja como inserir a TAG [ CODE ]
faq.php?mode=bbcode#f21
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: BROWSE - erro ao clicar no cabeçalho

Mensagem por sygecom »

Que função é essa oBrw_CreateColumn()?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: BROWSE - erro ao clicar no cabeçalho

Mensagem por sygecom »

Dei uma procurada nos source da Hwgui pela função oBrw_CreateColumn() e não achei, deve ser uma função sua mesmo, post ela aqui, talvez o erro estaja nela !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: BROWSE - erro ao clicar no cabeçalho

Mensagem por clebervn »

Sim é uma função minha para criação das colunas do grid.

Código: Selecionar todos

*---------------------------------------------------------------------
* FUNÇÃO : CRIAÇÃO DAS COLUNAS DO GRID
*---------------------------------------------------------------------
//                          01         02         03          04        05           06     07
FUNCTION oBrw_CreateColumn( wBrowse  , wCampo   , wCabecalho, wBase   , wSequencial, wTipo, wTamanho, ;
                            wDecimais, wEditavel, wPicture  , wJusHead, wJusLin    , wColorBlock)
//                          08         09         10          11        12           13

LOCAL i
LOCAL nArea := &wBase->(SELECT())

IF wEditavel == NIL
   wEditavel = .F.
ENDIF
IF wPicture == NIL
   wPicture = ""
ENDIF
IF wJusHead == NIL
   wJusHead = DT_LEFT
ENDIF
IF wJusLin == NIL
   wJusLin = DT_LEFT
ENDIF
IF wColorBlock == NIL
   wColorBlock =  {|| {x_BLACK, x_WHITE , x_WHITE, x_DARKBLUE} }
ENDIF   

// CONTEUDO DOS PARAMETROS PASSADOS - SOMENTE PARA TESTE
/*
MSGINFO("campo:"+WCAMPO)
MSGINFO("cabecalho:"+WCABECALHO)
MSGINFO("base:"+WBASE)
MSGINFO("sequencial:"+STR(WSEQUENCIAL))
MSGINFO("tipo C:"+WTIPO)
MSGINFO("tamanho:"+STR(WTAMANHO))
MSGINFO("decimais:"+STR(WDECIMAIS))
IF WEDITAVEL
   MSGINFO("EDITAVEL")
ELSE
   MSGINFO("NAO EDITAVEL")
ENDIF      
MSGINFO("picture:"+WPICTURE)
MSGINFO("alinhamento cab:"+STR(WJUSHEAD))
MSGINFO("alinhamento reg:"+STR(WJUSLIN))
*/
// PARAMETROS
// ========== 
// (A) cHeading    = (03) wCabecalho          => cabecalho do campo
// (B) Block       = (02) wCampo e (04) nArea => arquivo em uso e nome do campo
// (C) Type        = (06) wTipo               => tipo do campo (C,D,N)
// (D) Length      = (07) wTamanho            => tamanho do campo
// (E) Dec         = (08) wDecimais           => qtdade de casas decimais
// (F) lEditable   = (09) wEditavel           => indica se campo permite edição ou não no browse
// (G) nJusHead    = (11) wJusHead            => posicionamento do cabeçalho no browse 
//                                              (left, center, right)
// (H) nJustLin    = (12) wJusLin             => posiconamento do campor no browse 
//                                              (left, center, right)
// (I) cPict       = (10) wPicture            => máscara do campo
// (J) bValid      = (--) wValid              => validação do campo
// (K) bWhen       = (--) wWhen               => condição do campo
// (L) aItem       = (--) wItem               => ???
// (M) bColorBlock = (13) wColorBlock         => cor do registro selecionado e demais registros
// (N) bHeadClick  = (--) wHeadClick          => execução de comandos qdo clicar no cabeçalho

// não utilizados, declarados aqui
wValid    := ""
wWhen     := ""
wItem     := ""
wHeadClick:= ""

wBrowse:AddColumn( HColumn():New( wCabecalho , FieldWBlock( wCampo, nArea ), wTipo , wTamanho, ;
                                  wDecimais, wEditavel, wJusHead, wJuslin, wPicture, wValid,  ;
                                  wWhen, wItem, wColorBlock, wHeadClick ) )
wBrowse:REFRESH()
RETURN Nil
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: BROWSE - erro ao clicar no cabeçalho

Mensagem por clebervn »

Seria algo naquela variável "wHeadClick" ????
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: BROWSE - erro ao clicar no cabeçalho

Mensagem por clebervn »

Descobri sem querer... hehehe

é sé eu definir o tal "wHeadClick" como NIL... ai da certo....

abc
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: BROWSE - erro ao clicar no cabeçalho

Mensagem por sygecom »

Menos mal que resolveu....flw.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder