Página 1 de 1

Como usar o Column:bValid do Browse

Enviado: 29 Out 2008 15:09
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...

Enviado: 31 Out 2008 15:33
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.

Re: Como usar o Column:bValid do Browse

Enviado: 31 Out 2008 15:56
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

Re: Como usar o Column:bValid do Browse

Enviado: 08 Mar 2009 15:50
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

Re: Como usar o Column:bValid do Browse

Enviado: 09 Mar 2009 11:55
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.

Re: Como usar o Column:bValid do Browse

Enviado: 01 Abr 2009 04:15
por Luciano Bonfim
Caro Basso,

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

Muito Obrigado

Re: Como usar o Column:bValid do Browse

Enviado: 19 Out 2009 15:11
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

Re: Como usar o Column:bValid do Browse

Enviado: 19 Out 2009 15:21
por esbasso
esta usando o browse do cvs?

Re: Como usar o Column:bValid do Browse

Enviado: 19 Out 2009 15:24
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 ?!

Re: Como usar o Column:bValid do Browse

Enviado: 19 Out 2009 15:42
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