Página 1 de 1

Tbrowse

Enviado: 08 Ago 2005 00:22
por negrao
Mocada , no Tbrowse tem como fazer relacionamento ?
No dbedit eu fiz e deu certo, mas como falaram que o Tbrowse é melhor vou usa-lo, mas pra isso preciso saber se tem como fazer relacionamento.

Abaixo esta a funcao que uso, vou dar um exemplo de como esta o array pra montar o Tbrowse:
Tbrow[1,1] := "fin_codi"
Tbrow[1,2] := "C"
Tbrow[1,3] := 10
Tbrow[1,4] := 0
Tbrow[1,5] := "Codigo"

Tbrow[2,1] := "fin_nome"
Tbrow[2,2] := "C"
Tbrow[2,3] := 30
Tbrow[2,4] := 0
Tbrow[2,5] := "Descricao"

no arquivo esta fin_resp(que é o codigo do cliente), gostaria de mostrar o nome do cliente.
Tbrow[3,1] := "cli->nome"
Tbrow[3,2] := "C"
Tbrow[3,3] := 30
Tbrow[3,4] := 0
Tbrow[3,5] := "Nome do cliente"

Qndo mostra o Tbrowse, os 2 primeiros arrays mostra certinho, mas no 3 que seria mostrar o nome do cliente o cursor nao fica com o Foco.
Como posso arrumar isso

Obrigado

/****************************************************/
FUNCTION BROWSETELA(LI,CI,LF,CF)
cli->(dbsetorder(1))
set relation to fin->resp into cli

oB:Freeze = 2 //---> CONGELA A PARTIR DA COLUNA INDICADA
ob:HeadSep:= "Í"
ob:ColSep := "³"
FOR N := 1 TO LEN(TBROW) // ADICIONA UMA COLUNA
OB:ADDCOLUMN(TBCOLUMNNEW(TBROW[N,5]),
FIELDBLOCK(TBROW [N,1])))
NEXT

WHILE .T.
DO WHILE !ob:stabilize() .AND. NEXTKEY() == 0
ENDDO

nKey := InKey(0)
do Case // tratamento do retorno
EndCase
ENDDO
Return (.T.)

Enviado: 08 Ago 2005 10:03
por josenilson
Se o problema está sendo o foco na terceira coluna, basta digitar:


BR:ColPos := 3
DO WHILE !ob:stabilize() .AND. NEXTKEY() == 0
ENDDO

Enviado: 08 Ago 2005 10:06
por josenilson
Correção:

Não é BR:ColPos := 3

e Sim OB:ColPos := 3


( OB é o nome da variável que vc está usando para o objeto TBROWSE)

:)Pos

Enviado: 08 Ago 2005 14:43
por negrao
Pessoal, coloquei o OB:COLPOS := 3 mas ficou na mesma.
Nao consegui fazer o relacionamento das tabelas.

Valeu

Enviado: 08 Ago 2005 16:49
por Dudu_XBase
Boa Tarde.
Tire o Set Relation e Use o Seek conforme abaixo

Tbrow[3,1] := "iif(cli->(dbseek(fin->RESP)),cli->nome," ")"
Tbrow[3,2] := "C"
Tbrow[3,3] := 30
Tbrow[3,4] := 0
Tbrow[3,5] := "Nome do cliente"

Enviado: 08 Ago 2005 17:22
por negrao
Dudu, tb nao deu certo.
A coluna onde deveria mostrar o nome da pessoa esta vindo em branco e a barra que indica qual coluna esta o cursor (deveria ta em verde) esta sem nada.

Obrigado pela ajuda