Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Prova De Aptidão Profissional - SoS PeoPleWaRe
12-05-2010, 11:55 (Esta mensagem foi modificada pela última vez a: 12-05-2010 12:21 por jaimetotal.)
Mensagem: #9
RE: Prova De Aptidão Profissional - SoS PeoPleWaRe
Viva,
o código postal está correcto como está, pelos mesmos argumentos que usaste. Muitas pessoas nem sabem correctamente a localidade delas. Mas caso queiras os códigos postais todos, tens isso no site dos CTT, mas é necessário uma limpeza.

Quanto aos clientes, recomendo-te usares um ID automático. Não te esqueças que o NIF são 9 dígitos e pesquisar sempre por eles é complicado, o mesmo para o fornecedor. Não é que esteja mal, mas é standard.

Para vender e comprar, recomendo-te outro tipo de tabela, que é o que se costuma fazer

Código:
Tabela CabecDoc

  NumFactura (Chave automática única com tipo entidade)
  TipoEntidade  (Cliente/Fornecedor) (Chave única com nr factura)
  CodEntidade (ID automático de cada cliente/fornecedor)
  Data
  Tipo de Pagamento
  etc
  ...

Código:
Tabela LinhasDoc (Para comprar mais que um artigo na mesma factura)

  NumCabecDoc (Chave estrangeira de NumFactura) (Chave única com NumLinha)
  NumLinha (Só para ficar na mesma ordem em que foi inserido. Não é propriamente necessário) (Chave únicaNumLinha)
  Cod_Produto (Chave estrangeira)
  Quantidade
  Preço Base
  IVA
  Desconto?
  etc
  ...

A ter em conta:
- A tabela CabecDoc normalmente até é mais elaborada, mas para ficar simples, isto chega.
- Na tabela LinhasDoc, fazes a relação das linhas de artigo com a cabeçalho da factura através do NumCabecDoc e NumLinhasDoc. Se não quiseres NumLinhasDoc, NumCabecDoc não pode ser chave única.
- Convém guardar o preço de cada artigo, porque como é algo dinâmico, tens que saber o preço do dia da factura, não no dia em que vás ver a factura.
- Não é necessário saber o total, porque calcula-se na hora do levantamento.

Quanto ao teu problema concretamenteBig Grin :
- Mostra as queries de consulta, e a que usaste para criar a tabela código postal e clientes. O erro queixa-se basicamente de uma constraint que aplicaste que está a ser violada.
- Conheces SqlDataReader? Usas com o SqlCommand,SqlConnection e são melhores que datasets em muitos casos (até maioria dos casos) e aplicam-se melhor no teu Novo_Cliente_Load.

exemplo:
Código:
dim sqlCmd as new sqlCommand("select codigo from dbo.codigopostal",sqlCon)
dim sqlReader as SqlDatareader
sqlReader=sqlCmd.executereader
if sqlreader.hasrows then
   while sqlreader.read
         Codigo_PostalComboBox.items.add(sqlreader(0))
   end while
end if


- Por último, tenta mudar a maneira que dás nomes às coisas. Primeiro o tipo de objecto txt,cmb,mtxt, e o nome. Exemplo: txtNome,frmCliente. O mesmo para as variáveis: i(nt)CodPostal (só pelo nome vê-se que é inteiro). Embora existam várias maneiras de nomear as coisas, tens que aderir a uma. É mais perceptível o que é e para o que serve, e ajudar-te-á no futuro, caso queiras vir para estes lados.

Cumps.
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - jaimetotal - 12-05-2010 11:55

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)