Amiguinhos,
Faço uso do TbrowseDB() em meus sistemas e sempre que preciso mostrar um campo que não está no DBF eu crio o mesmo. Há alguma forma de buscar este campo em outra tabela e disponibilizar na tabela ativa, evitando assim criar mais campo no banco de dados.
- Exemplo: Faço um TbrowseDB() em uma tabela de pedidos de vendas e neste banco contém o campo codcli que é o código do cliente, entretanto se preciso disponibilizar o nome do cliente, atualmente eu crio este campo no DBF. O que gostaria é de buscar esta informação no banco de clientes e apenas apresentar durante o TbrowseDB(), evitando assim criar mais campos.
Saudações,
Júlio.
Campos Tabela TBROWSEDB()
Moderador: Moderadores
Campos Tabela TBROWSEDB()
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Campos Tabela TBROWSEDB()
Tem como, mas isso depende... esse é um dilema do DBF.
Porque em SQL vem da forma que quisermos, eu acho melhor criar o campo nos DBF´s
No seu caso é possível usar codblock no field.
oBro:addcolumn(tbcolumnnew("Nome Cliente" ,{||funcaoretornanomecliente()}))
ou se usar set relation
oBro:addcolumn(tbcolumnnew("Nome Cliente" ,{||cliente->nome}))
Funcaoretornanomecliente()
Local cStr := "Não localizado"
if cl->(DbSeek(codcli))
cStr := cliente->nome
Endif
Return cStr
Obs.: Pelo tamanho dos HDs e velocidade das CPUs acho que não compensa mais isso.
Saudações,
Itamar M. Lins Jr.
Porque em SQL vem da forma que quisermos, eu acho melhor criar o campo nos DBF´s
No seu caso é possível usar codblock no field.
oBro:addcolumn(tbcolumnnew("Nome Cliente" ,{||funcaoretornanomecliente()}))
ou se usar set relation
oBro:addcolumn(tbcolumnnew("Nome Cliente" ,{||cliente->nome}))
Funcaoretornanomecliente()
Local cStr := "Não localizado"
if cl->(DbSeek(codcli))
cStr := cliente->nome
Endif
Return cStr
Obs.: Pelo tamanho dos HDs e velocidade das CPUs acho que não compensa mais isso.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Campos Tabela TBROWSEDB()
Olá!
Nestes casos, tudo fica fácil usando-se as "aliased expressions" disponíveis tanto no Clipper quanto no [x]Harbour. Com isso, você pode especificar várias ações para um alias. O resultado final será sempre o da última expressão.
Para atender a tua necessidade atual, pode usar:
Se quiser sofisticar, pode usar:
(Editado para ajustar sintaxe do código exemplo)
Nestes casos, tudo fica fácil usando-se as "aliased expressions" disponíveis tanto no Clipper quanto no [x]Harbour. Com isso, você pode especificar várias ações para um alias. O resultado final será sempre o da última expressão.
Para atender a tua necessidade atual, pode usar:
Código: Selecionar todos
oBro:addColumn( tbColumnNew("Nome Cliente", { || Cliente->( DbSeek( CustId), CustName ) } ) )Código: Selecionar todos
oBro:addColumn( tbColumnNew("Nome Cliente", { || If( Empty( Cliente->( DbSeek( CustId ), CustName ) ), "Não cadastrado", CustName ) } ) )[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
