Boa tarde amigos, como faço para pesquisar por código, nome e código de barras. ex: cataflam 50mg ou 000125 ou 78964227897891, no mesmo campo de pesquisa.
mais uma duvida como fazer porcentagem no mesmo, meu cadastro tem o básico e mais uma opção para colocar o valor percentual do produto(como faço para o clipper reconhecer) desde já agradeço ao colaboração de todos que DEUS ajude.
Pesquisa
Moderador: Moderadores
-
Antonio Matheus
- Usuário Nível 1

- Mensagens: 28
- Registrado em: 13 Jul 2010 23:18
- Localização: sao caetano dosul
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Pesquisa
Oi Matheus, os arquivos de índices são exatamente para agilizar a pesquisa (com o comando SEEK). Sem eles, podemos localizar os registros de forma física (com o comando LOCATE) varrendo o arquivo todo e isso pode demorar muito tempo.
Então se você tem necessidade de procurar por:
código
nome
código de barras
Você vai precisar de 3 índices. O que é campo numérico transforme em STRING, seja com str() ou strzero()
Para pesquisar tudo isso, o usuário vai ter que digitar os campos requerido. E terá que ser feito do jeito EXATO de como os dados foram armazenados para que a pesquise seja efetiva. Isto é, se o usuário ao digitar o nome do produto, errar um caracter apenas, não encontrará.
Você não disse como está exibindo os dados. É com o browse ou tipo ficha ? Melhor para localizar itens cadastrados, na minha opinião é com o BROWSE. E a medida que o usuário digitar, faz a pesquisa e a exibição dos produtos que atendam tal condição. Aqui no fórum na seção de Downloads tem rotinas e pelo fórum também tem outros exemplo. Utilize o recurso de pesquisa avançada.
E lembre, quando fazemos questões com relação a dados, seria sempre bom você listar a estrutura do seu banco de dados. Assim fica mais fácil auxiliá-lo nas nossas exemplificações e indicações. Para listar estrutura de dbfs, tem o STRU na seção de Downloads.
Então se você tem necessidade de procurar por:
código
nome
código de barras
Você vai precisar de 3 índices. O que é campo numérico transforme em STRING, seja com str() ou strzero()
Mas creio que pelo que você diz, você quer pesquisar tudo isso na mesma pesquisa. Só tem um porém. Com o código, você obtém o nome e o código de barras consequentemente. Portanto não vejo lógica nessa pesquisa. Poderia explicar melhor a sua necessidade ?Antonio Matheus escreveu:no mesmo campo de pesquisa.
Para pesquisar tudo isso, o usuário vai ter que digitar os campos requerido. E terá que ser feito do jeito EXATO de como os dados foram armazenados para que a pesquise seja efetiva. Isto é, se o usuário ao digitar o nome do produto, errar um caracter apenas, não encontrará.
Você não disse como está exibindo os dados. É com o browse ou tipo ficha ? Melhor para localizar itens cadastrados, na minha opinião é com o BROWSE. E a medida que o usuário digitar, faz a pesquisa e a exibição dos produtos que atendam tal condição. Aqui no fórum na seção de Downloads tem rotinas e pelo fórum também tem outros exemplo. Utilize o recurso de pesquisa avançada.
Você não explicou a qual informação pertence tal valor percentual que você quer. Seria percentual de lucro, percentual de quantidade minimo no estoque, percentual de venda, qual seria ?mais uma duvida como fazer porcentagem no mesmo, meu cadastro tem o básico e mais uma opção para colocar o valor percentual do produto(como faço para o clipper reconhecer)
E lembre, quando fazemos questões com relação a dados, seria sempre bom você listar a estrutura do seu banco de dados. Assim fica mais fácil auxiliá-lo nas nossas exemplificações e indicações. Para listar estrutura de dbfs, tem o STRU na seção de Downloads.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- filizola
- Usuário Nível 3

- Mensagens: 421
- Registrado em: 19 Ago 2003 20:10
- Localização: Belo Horizonte/MG
Pesquisa
crie os indices codigo, nome, barras
crie um campo caracter de 40
depois de preencher em uma funcao teste o seguinte:
crie um campo caracter de 40
depois de preencher em uma funcao teste o seguinte:
Código: Selecionar todos
busca=alltrim(campo)
if isdigit(busca)
if len(busca)>6
set order to barras
else
set order to codigo
endif
else
set order to nome
endif
if !found(dbseek(busca,.f.))
msgdeerro
return(.f.)
endif
return(.t.)
Editado pela última vez por Pablo César em 13 Jun 2013 20:02, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
"Um passo a frente, e já não estará mais no mesmo lugar..."
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Pesquisa
Amiguinhos,
Xô dá meu pitacu!
Se voce pretende usar somente um campo GEt para digitar dados de pesquisa mas deseja pesquisar por ordems variadas que podem ser, ora caracter, ora numérica, ora data, sugiro usar teclas de atalho como F1-Codigo, F2-Descrição, etc para agilizar a troca de indices.
Uma mensagem indicando em algum ponto indicando ao usuario que ordem de pesquisa estará ativa tambem ajuda a saber o que se pode digitar no campo de busca.
Se voce usar um browse com busca incremental fiscará super rápido pois o usuário poderá mudar o formato de pesquisa rápido, em se tratando de medicamentos ele pode´ra procurar rapidamente por descrição, nome alternativo, etc.
Xô dá meu pitacu!
Se voce pretende usar somente um campo GEt para digitar dados de pesquisa mas deseja pesquisar por ordems variadas que podem ser, ora caracter, ora numérica, ora data, sugiro usar teclas de atalho como F1-Codigo, F2-Descrição, etc para agilizar a troca de indices.
Código: Selecionar todos
...
set key F1 to MudaOrdemPara( 1 ) // Codigo
set key F2 to MudaOrdemPara( 2 ) // Descricao
...
Código: Selecionar todos
├─ SISTEMA X ─────────────────────────── ORDEM: Codigo ─ 10/02/13 ─ 09:52:02 ─
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.