Sobre SetProperty

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Sobre SetProperty

Mensagem por FFreire »

Prezados...

Será que alguém poderia me ajudar com o SetProperty...eu estou usando e tem funcionado, mas me deparei com algumas dúvidas...vejam...

Antes usava assim:
nCol := IIF( Clientes.ogCli.Value[2] = 0, 2, Clientes.ogCli.Value[2] )

Agora posso passar como parâmetro, o form e a grid e usar assim:

nCol := GetProperty( zform, zgrid, 'Value' )

Dessa forma, consigo fazer uma função para usar no sistema inteiro...Ok...funcionando...

E nesses casos como poderia usar...se é que posso usar...

Clientes.ogCli.DeleteAllItems

Clientes.ogCli.DisableUpdate

Clientes.ogCli.AddItem( aCli[ nCnt ] )

Clientes.ogCli.EnableUpdate

Como ficariam os SetProperty deles...

De antemão, agradeço a atenção !

F.Freire
Editado pela última vez por Toledo em 04 Fev 2015 16:52, em um total de 1 vez.
Razão: O presente tópico foi movido da seção Harbour, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com o [x]Harbour.
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Sobre SetProperty

Mensagem por Toledo »

FFreire escreveu:E nesses casos como poderia usar...se é que posso usar...
Como ficariam os SetProperty deles...
Bom, todos estes casos que você relacionou não são propriedades do Grid e sim métodos, então você teria que usar DoMethod e não SetProperty/GetProperty.

Clientes.ogCli.DeleteAllItems:

Código: Selecionar todos

DoMethod ( "Clientes" , "ogCli" , 'DeleteAllItems' )
Clientes.ogCli.DisableUpdate:

Código: Selecionar todos

Domethod ( "Clientes", "ogCli" , 'DisableUpdate' )
Clientes.ogCli.AddItem( aCli[ nCnt ] ):

Código: Selecionar todos

DoMethod ( "Clientes" , "ogCli" , 'AddItem' , aCli[ nCnt ] )
Clientes.ogCli.EnableUpdate:

Código: Selecionar todos

Domethod ( "Clientes", "ogCli" , 'EnableUpdate' )
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
FFreire
Usuário Nível 3
Usuário Nível 3
Mensagens: 113
Registrado em: 19 Mai 2013 16:16
Localização: Andirá-PR / Itaporanga-SP

Sobre SetProperty

Mensagem por FFreire »

Blz....funcionou certinho, muito obrigado...

Vou postar a função, se alguém quiser usar...

Código: Selecionar todos

//-------------------------------------------------
FUNCTION BuscaGrid(zform,zgrid,zbuscapad,zmatdados)
//-------------------------------------------------

// Definir TEXTBOX eBusca, onde estiver a GRID

// Parametros
// zform = nome do form
// zgrid = nome da grid
// zbuscapad = numero da coluna a ser pesquisada
// zmatdados = matriz com os dados que estão sendo exibidos

LOCAL cTxt, nLen, nCnt
LOCAL nCntItens

// Se não houver seleção de coluna, define a zbuscapad, como padrão
nCol := GetProperty( zform, zgrid, 'Value' )
nCol := IIF( nCol[2] = 0, zbuscapad, nCol[2] )

IF nCol > 0
   nCntItens := GetProperty( zform, zgrid, 'Itemcount' )
   IF nCntItens > 0 .OR. LEN(zmatdados) > 0

      // Armazena o que foi digitado
      cTxt := GetProperty( zform, 'eBusca' , 'Value' )
      nLen := LEN( cTxt )

      // Elimina dados da GRID
      DOMethod( zform, zgrid, 'DeleteAllItems' )

      // Desabilita exibição da GRID
      DOMethod( zform, zgrid, 'DisableUpdate' )

      FOR nCnt := 1 To Len( zmatdados )
         // Verifica se o que foi digitado, e armazena na grid qual elemento contem
         IF UPPER( cTxt ) $ UPPER( zmatdados[ nCnt, nCol ] ) .OR. EMPTY(cTxt)
            // Armazena na GRID
            DOMethod( zform, zgrid, 'AddItem', zmatdados[ nCnt ] )
         END
      NEXT

      // Posiciona na GRID
      SetProperty( zform, zgrid, 'Value', {1,nCol} )

      // Habilita exibição da GRID
      DOMethod( zform, zgrid, 'EnableUpdate' )

   END
ELSEIF !EMPTY(cTxt)
   MsgMenu('Selecione a coluna a ser pesquisada !!!',{'OK'},,IM__ERRO,'ERRO',,,'32 ERR CAN',,,_branco_)
END

RETURN(NIL)
Dessa forma, usa a mesma pesquisa para qualquer grid...estou usando um textbox...e o que for digitado lá,,ele busca/filtra...será que dá para apenas digitar na grid e ja buscar/filtrar usando a mesma função, claro com alguns ajustes, sem term que ter o textbox, eu andei lendo e vi que tinha um tal de ON KEY, mas tentei usar e não deu certo....alguma sugestão ?

Ainda não testei com um volume de dados...

F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
Responder