Página 1 de 1

Sobre SetProperty

Enviado: 04 Fev 2015 16:40
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

Sobre SetProperty

Enviado: 04 Fev 2015 17:29
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,

Sobre SetProperty

Enviado: 04 Fev 2015 23:28
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