Busca Item pelo Codigo de Barras ou pela Descrição
Moderador: Moderadores
-
gilsonpaulo
- Usuário Nível 3

- Mensagens: 135
- Registrado em: 02 Fev 2008 11:30
- Localização: Quatro Barras
Busca Item pelo Codigo de Barras ou pela Descrição
Estou com um problema. Na tela de de vendas preciso que o sistema identifique automaticamente se a busca tem que ser por codigo de barras ou descricao.
Se comecar com numero ele procura pelo codigo de barras, mas se for letra, procura pela descrição do produto.
Desde ja agradeço a ajuda.
Se comecar com numero ele procura pelo codigo de barras, mas se for letra, procura pela descrição do produto.
Desde ja agradeço a ajuda.
Seja bem-vindo ao fórum. 
Se o código do produto começa sempre com números, acho que basta você, antes da pesquisa, analisar o primeiro dígito, direcionando a pesquisa para o código, se for número ou para a descrição, se não for.
Se o código do produto começa sempre com números, acho que basta você, antes da pesquisa, analisar o primeiro dígito, direcionando a pesquisa para o código, se for número ou para a descrição, se não for.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
gilsonpaulo
- Usuário Nível 3

- Mensagens: 135
- Registrado em: 02 Fev 2008 11:30
- Localização: Quatro Barras
Existem n formas de se fazer isso. Depende muito de como você implementou o seu programas e os banco de dados. Mas, num exemplo bem simples:
Havia um erro na posição de um parêntese no teste do dígito.
Agora está certo.
Código: Selecionar todos
@ 1,2 say "Código:" get CODIGO valid Teste()
READ
function Teste()
local lRet := .F.
if !Empty(CODIGO)
if Left(LTrim(CODIGO),1) $ "1234567890"
// buscar pelo número
lRet := // resultado da busca
else
// buscar pela descrição
lRet := // resultado da busca
end
end
return lRetAgora está certo.
Editado pela última vez por Maligno em 04 Fev 2008 10:15, em um total de 2 vezes.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
gilsonpaulo
- Usuário Nível 3

- Mensagens: 135
- Registrado em: 02 Fev 2008 11:30
- Localização: Quatro Barras
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Código: Selecionar todos
.....
case tempo == K_PGDN
Tb3:PageDown()
tb3:refreshall()
case tempo == K_PGUP
Tb3:PageUp()
tb3:refreshall()
case isalpha(Chr(lastkey())) .OR. lastkey() > 48 .AND. lastkey() < 58
if (lastkey() > 48 .AND. lastkey() < 58)
OrdSetFocus("indpre01")
Ord:= 1
else
OrdSetFocus("indpre02")
Ord:= 2
endif
Keyboard Upper(Chr(lastkey()))
pesquisa(ord)
Destaca()
Tb3:RefreshAll()Assumindo que vc trabalhe com tbrowse, eis aí o fragmento de código que uso.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Ei Junior !
Não complica não !
Tbrowse() !!! Vai dar um nó na cabeça do amigo, ele é novato...
Brincadeirinha...
)
Até logo.
Marcelo
Não complica não !
Tbrowse() !!! Vai dar um nó na cabeça do amigo, ele é novato...
Brincadeirinha...
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Mamão com açucar então...
Mas, pelo amor de Deus, estude o tbrowse pelo menos o básico, senão não vai adiantar nada, e o Hitler vai te pegar.
Código: Selecionar todos
Function Autor
Local fo1,fo2:=Select(),fo3:=OrdSetFocus(),fo4:=savenv(00,00,maxrow(),maxcol()),fo5:= str(clicod,7)
select cdcli002
ordsetfocus("indcli01")
if !dbseek(fo5)
wvt_messagebox("Nenhum autorizado cadastrado !","ATENCAO",48)
inkey(3)
select(Fo2)
ordsetfocus(Fo3)
RstEnv(Fo4)
return
endif
medsetscpe(0,fo5)
medsetscpe(1,fo5)
//ordscope(0,fo5)
//ordscope(1,fo5)
dbgotop()
fo1 = "Autorizado Identidade Nasc. Parentesco"
Win(05,05,17,75,cdcli000->clinom,"gr+/g","g/b")
aTb4:= tbcolumnnew(fo1, { || cliaut +space(1)+ cliide +space(1)+ dtoc(clidat) +space(1)+ clipar})
aTb3:= TbrowseDB(06,06,16,74)
aTb3:headsep:= chr(196)
aTb3:footsep:= chr(196)
aTb3:colorspec:= "w/b,gr+/b,w/b,gr+/n,g+/b"
aTb4:defcolor:= {5}
aTb4:colorblock:= {|aTb3| iif(clicod = " ", {3,4},{1,2})}
aTb3:addcolumn(aTb4)
do while .t.
do while !aTb3:stabilize()
enddo
medrfsrecc()
tempo:= inkey(60)
do case
case tempo = K_ESC
medsetscpe(0,nil)
medsetscpe(1,nil)
//ordscope(0,nil)
//ordscope(1,nil)
select(Fo2)
ordsetfocus(Fo3)
RstEnv(Fo4)
exit
case tempo = 0
aTb3:refreshall()
loop
case tempo == K_DOWN
aTb3:down()
atb3:refreshcurrent()
case tempo == K_UP
aTb3:up()
atb3:refreshcurrent()
case tempo == K_PGDN
aTb3:PageDown()
aTb3:refreshall()
case tempo == K_PGUP
aTb3:PageUp()
aTb3:refreshall()
case tempo == K_ENTER .and. onde
oraut:= cliaut
medsetscpe(0,nil)
medsetscpe(1,nil)
//ordscope(0,nil)
//ordscope(1,nil)
select(Fo2)
ordsetfocus(Fo3)
RstEnv(Fo4)
return
endcase
enddoCompilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Talvez o colega não queria fazer a pesquisa pelo TBrowse. Aliás, eu próprio só faço pesquisa pelo TBrowse em raras situações. A não ser a pesquisa incremental.
E, realmente, esparramar um monte de código pro colega, sem explicar os detalhes dele, não ajuda muito pra quem está se perdendo em algo simples como uma pesquisa.
Além do quê, seu exemplo não contém o código básico do Clipper, mas de algumas bibliotecas que possuem funções bem diferentes, o que também atrapalha o aprendizado.
E, realmente, esparramar um monte de código pro colega, sem explicar os detalhes dele, não ajuda muito pra quem está se perdendo em algo simples como uma pesquisa.
Além do quê, seu exemplo não contém o código básico do Clipper, mas de algumas bibliotecas que possuem funções bem diferentes, o que também atrapalha o aprendizado.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
gilsonpaulo
- Usuário Nível 3

- Mensagens: 135
- Registrado em: 02 Fev 2008 11:30
- Localização: Quatro Barras
Uma boa pergunta para o seu contador. Ele é obrigado a saber. Se alguém disser que não precisa de nada, é sua obrigação não confiar na informação obtida num fórum de programação. Não é o lugar certo pra isso, entende? Se a pessoa estiver errada, não adianta dizer "ah, mas o fulano do fórum me disse que não precisava.". Você vai se ferrar do mesmo jeito.
A informação certa tem que vir da fonte certa, de forma que essa fonte pode ser responsabilizada amanhã ou depois pela informação errada que tenha dado.
Mas, a título de curiosidade apenas,... No Paraná, a empresa que emite nota fiscal pelo computador é obrigada a informar o SINTEGRA mensalmente. O programador tem que se cadastrar na Receita Estadual, senão a AIDF da empresa não será autorizada.
A informação certa tem que vir da fonte certa, de forma que essa fonte pode ser responsabilizada amanhã ou depois pela informação errada que tenha dado.
Mas, a título de curiosidade apenas,... No Paraná, a empresa que emite nota fiscal pelo computador é obrigada a informar o SINTEGRA mensalmente. O programador tem que se cadastrar na Receita Estadual, senão a AIDF da empresa não será autorizada.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
