Página 1 de 1
Dúvida com Tbrowse
Enviado: 03 Out 2014 19:33
por porter
olá pessoal, os dois comandos abaixo, da um refresh no cadastro de mercadorias, monta o Tbrowse, tudo certo, mas eu preciso entrar tambem no cadastro de clientes para selecionar o cliente e fazer a venda, o Tbrowse de cliente monta perfeitamente, mas quando volta para montar o Tbrowse de mercadorias novamente, da esse erro, porque ele procura CLIENTE_NOME e não acha, como faço para contornar esse problema.
Ele procura o CLIENTE_NOME la do cadastro de clientes, mas o refresh abaixo, tem que ser nos campos do cadastro de mercadorias.
Não sei se consegui ser bem claro na minha explicação.
Dentro do Tbrowse de mercadorias eu preciso abrir o Tbrowse de clientes, mas quando volto da o erro.
brw:REFRESHALL() <--- erro aqui Variable does not exist: CLIENTE_NOME
DO WHILE !brw:stabilize() .AND. NEXTKEY() = 0
xHarbour, windows 7, 64 bits
obrigado.
Dúvida com Tbrowse
Enviado: 03 Out 2014 19:56
por Itamar M. Lins Jr.
Ola!
Use DbSelectArea() na função de retorno p/ tBrowse ou use alias!
Por exemplo:
CLIENTE_NOME coloque o alias do DB, tipo: cliente->CLIENTE_NOME
Na função que retorna p/ o tBrowse use:
Local cAlias := DbSelectArea(NovaArea)
...
...Antes do return coloque:
DbSelectArea(cAlias)
Return
Saudações,
Itamar M. Lins Jr.
Dúvida com Tbrowse
Enviado: 03 Out 2014 20:10
por alxsts
Olá!
Use expressões com o
alias operator (->).
Código: Selecionar todos
FUNCTION Teste()
#include "tbrowse.ch"
LOCAL nKey
USE mercadoria SHARED NEW
// cria tBrowse oTbMerc para mercadorias
USE cliente SHARED NEW
// cria tBrowse oTbCli para cliente
Cliente->( oTbCli:goTop() )
WHILE .T.
Cliente->( oTbCli:forceStable() )
Mercadoria->( oTbMerc:forceStable()
nKey := Inkey(0)
IF oTbCli:applyKey( nKey ) == TBR_EXIT
EXIT
ENDIF
// processamento
ENDDO
RETURN NIL
Dúvida com Tbrowse
Enviado: 04 Out 2014 11:22
por porter
o Problema não está em selecionar a area, pois já estou selecionando e sim remontar o TBrowse, quando volto estou tendo que executar novamente essa procedure, e gostaria de saber se existe diferença entre SELECT e DbSelectArea, obrigado a todos.
Código: Selecionar todos
PROCEDURE Remontar_Campos
brw:=TBrowseDB(brw_ls+1,brw_cs+1,brw_li-1,brw_ci-1)
brw:colorspec := "&BCB/&AZ , &MR+/&VD , &CYB/&AZ , &PR/&PR , &VDB/&MR , &VM/&AZB"
brw:headsep:=chr(205)
FOR i_=1 TO LEN(brw_campos)
cp_titu:=brw_campos[i_,3]
cp_masc:=brw_campos[i_,2]
cp_:=brw_campos[i_,1]
brw:addcolumn(tbcolumnnew(cp_titu,&("{||TRAN("+cp_+",["+cp_masc+"])}")))
brw:getcolumn(i_):width := LEN(TRAN(&cp_.,cp_masc))
NEXT
Dúvida com Tbrowse
Enviado: 04 Out 2014 13:42
por Itamar M. Lins Jr.
Veja jovem!
Código: Selecionar todos
PROCEDURE Remontar_Campos
alert(alias()) //quem é o DBF que está aberto agora ? quando retorna da tal função ?
brw:=TBrowseDB(brw_ls+1,brw_cs+1,brw_li-1,brw_ci-1)
brw:colorspec := "&BCB/&AZ , &MR+/&VD , &CYB/&AZ , &PR/&PR , &VDB/&MR , &VM/&AZB"
brw:headsep:=chr(205)
FOR i_=1 TO LEN(brw_campos)
cp_titu:=brw_campos[i_,3]
cp_masc:=brw_campos[i_,2]
cp_:=brw_campos[i_,1]
brw:addcolumn(tbcolumnnew(cp_titu,&("{||TRAN("+cp_+",["+cp_masc+"])}")))
brw:getcolumn(i_):width := LEN(TRAN(&cp_.,cp_masc))
NEXT
Procure no google a diferença de select, select() e DbSelectArea() são bem parecidos...
Saudações,
Itamar M. Lins Jr.
Dúvida com Tbrowse
Enviado: 04 Out 2014 20:20
por JoséQuintas
Se entendi direito...
O TBrowse funciona, mas chama uma função que muda a área atual...
Se é isso, simples, cuide para que sua função retorne à área que estava.
Código: Selecionar todos
FUNCTION Qualquer()
LOCAL nSelect := Select()
...
SELECT ( nSelect )
RETURN NIL
Dúvida com Tbrowse
Enviado: 05 Out 2014 05:50
por Jairo Maia
Olá Pessoal,
Está me parecendo que o problema está na declaração das variáveis. Quando ele consulta o arquivo clientes, os campos desse arquivo é adicionado na matriz, e ao voltar e dar o :refresh(), as variaveis do arquivo clientes não existe no arquivo produtos.
Acho que ele precisa em ambas funções fazer:
Local brw:=TBrowseDB(brw_ls+1,brw_cs+1,brw_li-1,brw_ci-1)
Dúvida com Tbrowse
Enviado: 05 Out 2014 09:00
por porter
bom dia pessoal, é isso mesmo Jairo, além de selecionar a area de trabalho tenho que executar essa rotina abaixo, não sei se é a maneira correta, mas é dessa forma que está dando certo.
Código: Selecionar todos
PROCEDURE Remontar_Campos
brw:=TBrowseDB(brw_ls+1,brw_cs+1,brw_li-1,brw_ci-1)
brw:colorspec := "&BCB/&AZ , &MR+/&VD , &CYB/&AZ , &PR/&PR , &VDB/&MR , &VM/&AZB"
brw:headsep:=chr(205)
FOR i_=1 TO LEN(brw_campos)
cp_titu:=brw_campos[i_,3]
cp_masc:=brw_campos[i_,2]
cp_:=brw_campos[i_,1]
brw:addcolumn(tbcolumnnew(cp_titu,&("{||TRAN("+cp_+",["+cp_masc+"])}")))
brw:getcolumn(i_):width := LEN(TRAN(&cp_.,cp_masc))
NEXT