Ativar/Desativar edição de celula no BROWSE HWGUI

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Ativar/Desativar edição de celula no BROWSE HWGUI

Mensagem por Fernando queiroz »

Código: Selecionar todos

        @ 2,240 BROWSE oBrowse1 ARRAY SIZE 1021,278 STYLE WS_BORDER + WS_VSCROLL;
                ON UPDATE {|| ::editaItens( oDlg )}  

                oBrowse1:nHeadRows := 2
                oBrowse1:oStyleHead := BrowseStyleHead 
                oBrowse1:headColor := 16777215
                oBrowse1:oFont := HFont():Add( '',0,-15,700,,,)
                oBrowse1:aArray :={}
                oBrowse1:freeze := 7
                
                oBrowse1:AddColumn( HColumn():New('ITEM', hwg_ColumnArBlock() ,'C',6, 0 ,.F.,1,2,,,,,,,,,,))
                oBrowse1:AddColumn( HColumn():New('ID', hwg_ColumnArBlock() ,'N',11, 0 ,.F.,1,2,,,,,,,,,,))
                oBrowse1:AddColumn( HColumn():New('DESCRICAO', hwg_ColumnArBlock() ,'C',62, 0 ,.F.,0,,,,,,,,,,,))	
                oBrowse1:AddColumn( HColumn():New('UNID', hwg_ColumnArBlock() ,'C',9, 0 ,.F.,0,,,,,,,,,,,))	
                oBrowse1:AddColumn( HColumn():New('QUANT', hwg_ColumnArBlock() ,'N',12, 4 ,.F.,2,2,'@E 999999.9999',,,,,,,,,))	
                oBrowse1:AddColumn( HColumn():New('VLR.UNITARIO', hwg_ColumnArBlock() ,'N',17,10 ,.F.,2,2,'@E 9999.9999999999',,,,,,,,,))	  
                oBrowse1:AddColumn( HColumn():New('TOTAL ITEM', hwg_ColumnArBlock() ,'N',17, 2 ,.F.,2,2,'@E 99999,999,999.99',,,,,,,,,))
                oBrowse1:AddColumn( HColumn():New('DESCRICAO;BK', hwg_ColumnArBlock() ,'C',55, 0 ,.F.,0,,,,,,,,,,,))	
                oBrowse1:AddColumn( HColumn():New('UNID;BK', hwg_ColumnArBlock() ,'C',9, 0 ,.F.,0,,,,,,,,,,,))	 
                oBrowse1:AddColumn( HColumn():New('ID;BK', hwg_ColumnArBlock() ,'N',9, 0 ,.F.,1,2,,,,,,,,,,))     
                oBrowse1:AddColumn( HColumn():New('ID;ITENS', hwg_ColumnArBlock() ,'N',9, 0 ,.F.,1,2,,,,,,,,,,))            
                FOR EACH oColuna IN oBrowse1:aColumns
                    oColuna:bColorBlock := {|| BrowseBarColorPrimary }
                    IF oColuna:heading == "QUANT"
                        oColuna:lEditable := .T.  // importante: ativa edição se o bWhen permitir
                        oColuna:bWhen := { || oBrowse1:aArray[ oBrowse1:rowPos ][5]  > 1 }
                    ELSE
                        oColuna:lEditable := .F.
                    ENDIF
                NEXT
IF oColuna:heading == "QUANT"
oColuna:lEditable := .T. // importante: ativa edição se o bWhen permitir
oColuna:bWhen := { || oBrowse1:aArray[ oBrowse1:rowPos ][5] > 1 }
ELSE
oColuna:lEditable := .F.
ENDIF

com esse recurso eu edito ou nao cada linha de acordo com a condição, muito legal resolveu um problemas que eu so queria ativar a edição da celula se fosse maior que 1
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Ativar/Desativar edição de celula no BROWSE HWGUI

Mensagem por JoséQuintas »

Muito bom.

Só comentário:
Não sei se colocou pra lembrar que tem mais opções, mas as vírgulas do final não precisa.
É assumido Nil, colocando ou não.


Veja se acha interessante:

Código: Selecionar todos

aList := { ;
   { 'ITEM'         ,, 'C', 6,  0 ,.F., 1, 2 }, ;
   { 'ID'           ,, 'N', 11, 0 ,.F., 1, 2 }, ;
   { 'DESCRICAO'    ,, 'C', 62, 0 ,.F., 0 }, ;
   { 'UNID'         ,, 'C', 9,  0 ,.F., 0 }, ;
   { 'QUANT'        ,, 'N', 12, 4 ,.F., 2, 2, '@E 999999.9999' }, ;
   { 'VLR.UNITARIO' ,, 'N', 17,10 ,.F., 2, 2, '@E 9999.9999999999' }, ;
   { 'TOTAL ITEM'   ,, 'N', 17, 2 ,.F., 2, 2, '@E 99999,999,999.99' }, ;
   { 'DESCRICAO;BK' ,, 'C', 55, 0 ,.F., 0 }, ;
   { 'UNID;BK'      ,, 'C', 9,  0 ,.F., 0 }, ;
   { 'ID;BK'        ,, 'N', 9,  0 ,.F., 1, 2 }, ;
   { 'ID;ITENS'     ,, 'N', 9,  0 ,.F., 1, 2 } }

FOR EACH aItem IN aList
   aItem[ 3 ] := hwg_ColumArBlock()
   oCol := HColumn():New( hb_ArrayAsParam( aItem ) )
   oCol:bColorBlock := {|| BrowseBarColorPrimary }
   IF oCol:heading == "QUANT"
      oCol:lEditable := .T.  // importante: ativa edição se o bWhen permitir
      oCol:bWhen := { || oBrowse1:aArray[ oBrowse1:rowPos ][ 5 ] > 1 }
   ELSE
      oCol:lEditable := .F.
   ENDIF
   oBrowse1:AddColumn( oCol )
NEXT
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder