Pesquisa

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Antonio Matheus
Usuário Nível 1
Usuário Nível 1
Mensagens: 28
Registrado em: 13 Jul 2010 23:18
Localização: sao caetano dosul

Pesquisa

Mensagem por Antonio Matheus »

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.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Pesquisa

Mensagem por Pablo César »

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()
Antonio Matheus escreveu:no mesmo campo de pesquisa.
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 ?

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.
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)
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 ?

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.
Avatar do usuário
filizola
Usuário Nível 3
Usuário Nível 3
Mensagens: 421
Registrado em: 19 Ago 2003 20:10
Localização: Belo Horizonte/MG

Pesquisa

Mensagem por filizola »

crie os indices codigo, nome, barras

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
"Um passo a frente, e já não estará mais no mesmo lugar..."
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Pesquisa

Mensagem por rochinha »

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.

Código: Selecionar todos

    ...
    set key F1 to MudaOrdemPara( 1 ) // Codigo
    set key F2 to MudaOrdemPara( 2 ) // Descricao
    ...
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.

Código: Selecionar todos

 ├─ SISTEMA X ─────────────────────────── ORDEM: Codigo ─ 10/02/13 ─ 09:52:02 ─
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.
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.
Responder