Como usar o Column:bValid do Browse

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
gralak
Usuário Nível 3
Usuário Nível 3
Mensagens: 233
Registrado em: 21 Mar 2007 13:28
Localização: Cianorte/PR

Como usar o Column:bValid do Browse

Mensagem por gralak »

Ai galera será que alguém poderia me ajudar com o Column:bValid do Browse eu preciso validar um campo do browse depois de editado se aguém soube e puder me ajudar agradeço...
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Mensagem por Itamar M. Lins Jr. »

Vê se serve.

Código: Selecionar todos

/*
 * $Id: browse_1.prg,v 1.2 2008/09/19 23:27:59 mlacecilia Exp $
 */
 
#include "windows.ch"
#include "guilib.ch"

Static nCount := 0
Static oBrowse

Function Main
        Local oMain
        
        CreateDB()
        
        INIT WINDOW oMain MAIN TITLE "Browse Example - Database" ;
             AT 0,0 ;
             SIZE GetDesktopWidth(), GetDesktopHeight() - 28

                MENU OF oMain
                        MENUITEM "&Exit"   ACTION oMain:Close()
                        MENUITEM "&Browse" ACTION BrowseTest()
                        MENUITEM "&Count"  ACTION MsgInfo(str(nCount))
                ENDMENU

        ACTIVATE WINDOW oMain
Return Nil

Function BrowseTest()
        Local oForm, oFont

        SetToolTipBalloon(.t.)

        PREPARE FONT oFont NAME "Courier New" WIDTH 0 HEIGHT -11
             
        INIT DIALOG oForm CLIPPER NOEXIT TITLE "Browse Database";
             FONT oFont ;
             AT 0, 0 SIZE 700, 425 ;
             STYLE DS_CENTER + WS_POPUP + WS_VISIBLE + WS_CAPTION + WS_SYSMENU
                            
                @  5, 5 BROWSE oBrowse DATABASE OF oForm SIZE 690,375 STYLE WS_VSCROLL + WS_HSCROLL ;
                        AUTOEDIT ;
                        APPEND ;
                        ON KEYDOWN {|o,key| BrowseKey(o, key) } ;
                        ON UPDATE {|oBrow, Colpos| BrowseUpdate(oBrow, colpos) } ;
                        ON POSCHANGE {|| BrowseMove() } 
                PUBLIC TENTA:=1
                ADD COLUMN FieldBlock(Fieldname(1) ) TO oBrowse ;
                    HEADER 'Code';
                    TYPE 'N';
                    LENGTH 6 ;
                    DEC 0 ;
                    EDITABLE ;
                    PICTURE "@E 999,999";
                    JUSTIFY HEAD DT_CENTER ;
                    JUSTIFY LINE DT_RIGHT ;
                    VALID BrowseValid() ;
                    WHEN  BrowseWhen()
                    
                ADD COLUMN FieldBlock(Fieldname(2) ) TO oBrowse ;
                    HEADER 'Description' ;
                    EDITABLE ;
                    PICTURE "@!" ;
                    JUSTIFY HEAD DT_CENTER ;
                    JUSTIFY LINE DT_LEFT 

                ADD COLUMN FieldBlock(Fieldname(3)) TO oBrowse ;
                    HEADER "List Code" ;
                    EDITABLE ;
                    ITEMS {"Code 1", "Code 2", "Code 3"}
                    
                ADD COLUMN FieldBlock(Fieldname(4)) TO oBrowse ;
                    HEADER "Creation Date" ;
                    EDITABLE 
                    
                ADD COLUMN FieldBlock(Fieldname(5)) TO oBrowse ;
                    HEADER "Bool Status" ;
                    EDITABLE 
                    
                ADD COLUMN FieldBlock(Fieldname(6)) TO oBrowse ;
                    HEADER "Price" ;
                    EDITABLE ;
                    PICTURE "@E 999,999.99"
                            
        ACTIVATE DIALOG oForm
Return Nil

Static Function BrowseWhen()
        MsgExclamation("When Event")
Return .T.

Static Function BrowseValid()
        MsgExclamation("Valid Event"+STR(TENTA))
        ++TENTA
Return .T.

Static Function BrowseMove()
        MsgInfo("Going to record " + ltrim(str(recno())))
return Nil
        
Static Function BrowseUpdate( oBrow, colpos)
        MsgExclamation("Column " + ltrim(str(colpos)) + " Changed")
        
        if colpos == 2
                oBrow:Append()
        else                
                oBrow:DoHScroll( SB_LINERIGHT )
                oBrow:Edit()
        end                
                
        oBrowse:RefreshLine()
Return Nil

Static Function BrowseKey( oBrowse, key )   
   IF key == VK_INSERT 
      oBrowse:Append()
   END
Return .T.

Static Function CreateDB()
        if file('browse_1.dbf')
                FErase('browse_1.dbf')
        end
        
        DBCreate('browse_1', {{'code', 'N', 6, 0},;
                              {'desc', 'C', 40, 0},;
                              {'list', 'N', 1, 0},;
                              {'creation', 'D', 8, 0},;
                              {'status', 'L', 1, 0},;
                              {'price', 'N', 10, 2}})
                              
        USE browse_1 EXCLUSIVE                   
        
        APPEND BLANK
        REPLACE Code WITH 1
        REPLACE Desc WITH "Testing code"           
        REPLACE list WITH 1
        REPLACE creation WITH Date()
        REPLACE Status WITH .T.
        REPLACE Price WITH 150.31        
Return Nil

 
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
gralak
Usuário Nível 3
Usuário Nível 3
Mensagens: 233
Registrado em: 21 Mar 2007 13:28
Localização: Cianorte/PR

Re: Como usar o Column:bValid do Browse

Mensagem por gralak »

Caro Amigo agradeço desde já pela Atenção
mas o meu problema é que eu preciso usar esse Valid quando uso o Browse com o ARRAY ...
:-Y
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Re: Como usar o Column:bValid do Browse

Mensagem por Luciano Bonfim »

Caro Gralak,

Estou com o mesmo problema que vc, pois estou usando um BROWSE com array e nao estou sabendo como validar nem colocar PICTURE nas colunas que serao editadas....

vc conseguiu resolver esse problema? pode me dizer como?

Muito Obrigado

Luciano Bonfim de Azevedo
esbasso
Colaborador
Colaborador
Mensagens: 325
Registrado em: 24 Jan 2007 17:49
Localização: CHAPECO/SC

Re: Como usar o Column:bValid do Browse

Mensagem por esbasso »

ATUALMENTE O VALID da coluna apenas executa o bloco de codigo proposto mas não valida a mesma.
Estou fazendo as alterações no hbrowse PARA haver a validação NO VALID E no WHEN.
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Re: Como usar o Column:bValid do Browse

Mensagem por Luciano Bonfim »

Caro Basso,

esse alteracao da validaca do browse com array já existe na ultima versao do CVS?

Muito Obrigado
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
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: Como usar o Column:bValid do Browse

Mensagem por clebervn »

Sobre esse assunto ainda....

Fiz um grid com validação no ON UPDATE {....} e ficou certinho, gostaria de saber somente uma coisa....

Quando vou alterar uma coluna, no me caso tenho 3 colunas e só permito alterar a última coluna e somente nela acontece isso, abre o campo pra que eu possa editar mas ele é menor do q o apresentado na tela, ai parece q fica uma "sujeirinha" por trás, tem como tirar isso ?
porque já dimensionei a máscara para um numero enorme mas mesmo assim continua.

abc
esbasso
Colaborador
Colaborador
Mensagens: 325
Registrado em: 24 Jan 2007 17:49
Localização: CHAPECO/SC

Re: Como usar o Column:bValid do Browse

Mensagem por esbasso »

esta usando o browse do cvs?
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
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: Como usar o Column:bValid do Browse

Mensagem por clebervn »

Olha eu uso o q baixei faz 1 ano atrás, to com xharbour 1.0 e hwgui 2.16

Tava vendo exatamente isso agora, como baixar pelo CVS !

Será isso ?!
esbasso
Colaborador
Colaborador
Mensagens: 325
Registrado em: 24 Jan 2007 17:49
Localização: CHAPECO/SC

Re: Como usar o Column:bValid do Browse

Mensagem por esbasso »

com certeza, atualiza que voce tera melhorias na LIB E NO BROWSE inclusive validação do campo bloqueando a saida se retornar .F. , poder esconder colunas e mostra novamente, e outras melhorias
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
Responder