Página 1 de 1

alguma dica por favor

Enviado: 16 Nov 2015 19:48
por pena
Boa noite, eu tinha no meu sistema, um campo no cliente, onde dizia se o tipo de cliente era, "C"-Cliente "F'-Fornecedor "T"-Transporte e assim por diante, porem estou mudando a forma, pq assim, teria que cadastrar 3x caso o mesmo fosse cliente, fornecedor e transporte ao mesmo tempo, portanto na hora de gravar pensei em fazer + ou - assim.

Código: Selecionar todos

oClientes:Tipo          := if(Frm_Clientes.chCliente.Value,"C",' ')+if(Frm_Clientes.chFornecedor.Value,"F",' ')+if(Frm_Clientes.chTransporte.Value,"T",' ')
mas isto pensando bem acho que pode ocorrer falhas, precisava de algo mais dinamico, não sei bem, mas estava pensando em limpar sempre o oClientes:Tipo antes,seria uma solução, mas to bem confuso quanto a isso mas acho que funcionaria.
Alguem poderia trocar uma ideia.
:))

alguma dica por favor

Enviado: 16 Nov 2015 21:00
por JoséQuintas
Fazia o mesmo, com códigos diferentes.

Depois unifiquei a codificação, seja qual for o tipo, não existe código repetido. Facilita DEMAIS.

Deixei clientes/fornecedores com tipo=1, e transportadoras com tipo=3

Com código único, é pegar o código na movimentação e pesquisar, sem se importar do que se trata.

Quanto ao tipo, talvez 1 ou 3 campos com sim ou não, em tela e arquivo.
"SNN" significando cliente=sim, fornecedor=não, transportadora=não
Ou mais prático, 3 campos.

Nota:
No meu caso são telas diferentes, uma pra cada tipo de cadastro.
Mesmo assim, o código é único pra todos.
O mesmo pra entrada/saída de estoque, contas a pagar/receber, fiscal entrada/saída, etc.

alguma dica por favor

Enviado: 16 Nov 2015 21:17
por Eolo
Uma forma é, usando DBF, ter campos separados para cada condição, os quais vão conter “X” ou “ “ (ou .T. e .F., o que seja):

(nome, cliente, funcionário, fornecedor)
NOME=”José”, CLI=”X”, FUNC=” “, FORN=”X”
NOME=”Maria”, CLI=”X”, FUNC=X” “, FORN=” ”
NOME=”João”, CLI=” ”, FUNC=”X“, FORN=” ”
etc.

É só criar um índice para cada campo, com a cláusula FOR:
1. index on nome tag geral...
2. index on nome tag cliente for cli=”X”...
3. index on nome tag funcionario for func=”X”…
4. index on nome tag fornecedor for forn=”X”…

Dependendo do SET ORDER, o browse vai mostrar:
1. todos os nomes
2. os clientes José e Maria
3. os funcionários João e Maria
4. só o fornecedor José

alguma dica por favor

Enviado: 17 Nov 2015 12:12
por asimoes
Uma idéia seria criar um campo chamado tipo caracter com tamanho 3

Que poderia receber os 3 tipos : CFT ou CF ou C ou F ou T .. várias combinações depois seria testar o campo;

If tabela->Tipo $ "CF"
if tabela->Tipo $ "CFT"