Page 1 of 1

Erro ao montar 2 Browses

PostPosted: Fri Apr 20, 2007 3:08 pm
by Soares289
Estou tendo um erro sempre que tento montar dois browses na mesma janela.

O código basicamente faz o seguinte.
* da use na tabela de cadastro de clientes
* da use na tabela campos
* adiciona no primeiro browse somente as colunas da tabela de cadastro especificadas na tabela campos
* da use na tabela cadastro de fornecedores
* adiciona no browse dois as colunas da tabela de cadastro de fornecedores especificadas na tabela campos
* fecha a tabela campos
* Cria apartir do código os dois browses

Mais quando troco de browse ( as vezes nem chega a carregar ) da um erro.
Eu acredito que seja por que o browse tenta atualizar o conteudo mais a tabela do outro browse está selecionada, mais não concegui achar um evento que ocorre quando o browse recebe o fóco.

A mensagem de erro que aparece é a seguinte.
"Erro BASE/1003 Variable does not exist: ccodcli from errosys,line 158"

e o compilador diz que o erro está na seguinte linha
"oCol:bStrData := { || &wfname }"


Alguém ai já teve esse problema e sabe como resolvelo?

PostPosted: Sat Apr 21, 2007 7:55 am
by Antonio Linares
Donde usas ccodcli en tu programa ?

Es una variable ó es un campo de una DBF ?

PostPosted: Mon Apr 23, 2007 11:47 am
by Soares289
O ccodcli é um campo da tabela cadcli (cadastro de clientes), eu conecto ao banco de dados usando SQLRDD

PostPosted: Mon Apr 23, 2007 2:47 pm
by Soares289
O problema é basicamente que quando o browse recebe o focus, a tabela selecionada é diferente da que estava quando ele foi carregado, então ele tenta atualizar o conteudo das colunas e não encontra os campos que havia quando ela foi criada.

Se tiver um evento que ocorre quando o browse recebe o fóco, eu poderia selecionar de novo a tabela de quando ele foi criado.

PostPosted: Mon Apr 23, 2007 8:21 pm
by Maurilio Viana
E se vc colocar pra selecionar a tabela no GotFocus?
Assim:

oBrow:bGotFocus := {|| select(xxxxxxx) }


[ ]s
Maurilio

PostPosted: Mon Apr 23, 2007 8:53 pm
by Soares289
Eu coloquei no oBrw:bGotFocus o select da tabela usada pelo o browse, mais continua ocorrendo o mesmo erro, como se o campo não existisse, mais na hora em que o Browse está sendo montado isso não acontece, só quando ele recebe o fóco.
Não existe um outro eveto que ocorre antes? ou alguma coisa que possa ser mudada no browse?

Bom, de qualquer forma, muito obrigado pela ajuda.
Um abraço, T+.

PostPosted: Tue Apr 24, 2007 11:07 am
by Maurilio Viana
Tente usar:

oBrw:cAlias := "xxxxx" // xxxxx=alias da sua tabela

E, pelo que vemos, vc está usando macrossubstituição pra montar os campos... Eu não usaria assim, colocaria os campos diretos no bloco de código {|| arq->campo1}, etc etc etc

[ ]'s
Maurilio

PostPosted: Wed Apr 25, 2007 12:18 pm
by Soares289
Bom, Maurilio. Eu tentei fazer dessa forma, mais continua com o problema, eu vou fazer alguns testes sem uasr a subistituição por macro.

Eu só não entendo por que o macro pode vir a interferir? Eu comecei a trabalhar com xHarbour e FiveWi a pouco tempo e não conheço muito a linguagem, e menos ainda o fivewin.
Macro para mim é novidade, meu patrão que pediu para usar, pois ele quer que o browse se ajuste a qualquer tabela que ele quizes :~~, mais acredito que exista outras formas de fazer isso.

Obrigado pela ajuda, T+.

PostPosted: Thu Apr 26, 2007 1:35 pm
by Soares289
:D Eu concegui faze funcionar, eu de vez de selecionar a tabela e depois adicionar o campo, na variavel que anotava o nome do campo já coloquei [Nome da Tabela]->[Nome do campo] com o sinal de macro, agora está funcionando, montei com mais de 4 browses na tela e funcionou.

Obrigado pela ajuda, flw.