Página 1 de 1

Nome de campo

Enviado: 29 Ago 2009 15:26
por clebervn
Alguém me refresque a memória por favor.

Estou num browse, teclo enter numa determinada coluna, tenho como saber qual o nome da coluna (campo) q cliquei ???

COMO ???

abc

Re: Nome de campo

Enviado: 30 Ago 2009 20:45
por sygecom
De uma olhada no NG por: FieldName() , acredito que resolve ou lhe de uma luz.

Re: Nome de campo

Enviado: 30 Ago 2009 22:33
por alxsts
Saudações a todos!

Não sei se é isso que voce precisa. Se quiser saber a qual campo do .DBF (nome do campo) se refere a coluna do browser, fica difícil. Para saber o nome da coluna onde o browser está posicionado, use o seguinte código:

Código: Selecionar todos

               oCol := oTb:getColumn(oTb:colPos)
               cColName := oCol:heading
Sabendo o nome da coluna voce pode fazer o tratamento desejado:

Código: Selecionar todos

               DO CASE
                  CASE cColName == "Coluna 1"
                     Rotina1()
                  CASE cColName == "Coluna 2"
                     Rotina2()
                  // etc...
               END CASE   
Para recuperar os dados da coluna use:

Código: Selecionar todos

               oCol := oTb:getColumn(oTb:colPos)
               xVal := Eval( oCol:block )

Re: Nome de campo

Enviado: 31 Ago 2009 00:34
por sygecom
Olá alxsts,
Olha até pensei em perguntar será BROWSE ou TBROWSE, no seu exemplo só vai funcionar se ele tiver usando TBROWSE.

Re: Nome de campo

Enviado: 31 Ago 2009 00:56
por alxsts
Olá Sygecom!

Voce tem razão. O código que postei só funcionará em um TBrowse. É que assumi que o CleberVN esteja usando um TBrowse mesmo. Como voce sabe, a função Browse(), que voce citou, não permite que controlemos as teclas. Ela só reconhece Enter (entra em modo de edição da célula corrente do Browse), Seta Abaixo quando posicionado na última linha (entra no modo append) ou Esc para abandonar a função. Assim, não seria possível construir algum código para tratar esse evento de teclado (a tecla Enter) e recuperar o nome da coluna atual. Nos fontes de exemplo do Clipper 5.xx, vem o fonte dessa função Browse(), com o nome de TBDemo.Prg. Numa instalação padrão do Clipper 5.xx, pode ser encontrado em C:\Clipper5\Source\Sample.

Bom chimarrão!