Forum Pplware
Prova De Aptidão Profissional - SoS PeoPleWaRe - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Prova De Aptidão Profissional - SoS PeoPleWaRe (/showthread.php?tid=5988)

Páginas: 1 2 3 4 5 6


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - P3dr0 - 12-05-2010 14:31

Hummm ja esta ^^

eliminei a tabela codigo_postal, e vou meter tudo na altura em que registar, ja que a tabela nao era fundamental...

agora ja consigo adicionar produtos e tudo ^^

Agora vou passar por fazer consultas nas tabelas, podendo consultar e alterar os dados das mesmas, depois disso vou realizar a janela onde será feita a venda de produtos e ai decerteza que vou neccessitar de ajuda, pois para actualizar a BD e utilizar valores de la,ai maezinha xD...

agora peço que deixem o topico aberto, para se eu for tendo duvidas ir colocando aqui ^^


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - jaimetotal - 12-05-2010 14:43

(12-05-2010 14:31)P3dr0 Escreveu:  Hummm ja esta ^^

eliminei a tabela codigo_postal, e vou meter tudo na altura em que registar, ja que a tabela nao era fundamental...

agora ja consigo adicionar produtos e tudo ^^

Agora vou passar por fazer consultas nas tabelas, podendo consultar e alterar os dados das mesmas, depois disso vou realizar a janela onde será feita a venda de produtos e ai decerteza que vou neccessitar de ajuda, pois para actualizar a BD e utilizar valores de la,ai maezinha xD...

agora peço que deixem o topico aberto, para se eu for tendo duvidas ir colocando aqui ^^

Não é propriamente o melhor passo, mas pronto. A tabela é prática. Não para 1 ou 2 registos, mas sim para muitos.
Dá então um jeito à tabela de vendas e depois qualquer coisa, tens aqui o teu post.


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - P3dr0 - 12-05-2010 14:46

(12-05-2010 11:12)crazyman Escreveu:  ontem apenas coloquei aquele post porque estava com pressa e apenas detectei aquele erro Big Grin

Mas agora olhando bem para estas ligaçoes existem aqui alguns erros de coerencia que te vao dar erros no futuro:

tabela vender_produto:

Trata-se de uma tabela intermédia
com o contribuinte como chave primaria e cod_produto como chave estrangeira vai te dar um problema grave.
1 cliente so pode comprar 1 unica vez nessa loja... Sad
Sugestão: Cria um campo nessa tabela como numeração automatica com o titulo por exemplo "cod_ven_prod" e esse sim fica como chave primaria e mantem os outros como chave estrangeira

Tabela Fornecedor_produto

O erro é exactamente o mesmo do anterior.
A solução passa pela mesma Wink

Nesta Situação penso que poderia meter como chave primária o N_TALAO e o N_Factura das respectivas tabelas...


(12-05-2010 11:12)crazyman Escreveu:  Criaria mais 2 tabelas:
Tabela Familia e Tabela Subfamilia
já pensei nisso, mas quando estava a fazer a normalização das mesmas não me batia a coisa certa...


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - crazyman - 12-05-2010 15:17

(12-05-2010 14:46)P3dr0 Escreveu:  Nesta Situação penso que poderia meter como chave primária o N_TALAO e o N_Factura das respectivas tabelas...

Claro que podes, desde que sejam chaves primarias....
Aliás para isso o Jaimetotal já te indicou como é q deves fazer. Retira o exemplo para o teu caso.

(12-05-2010 14:46)P3dr0 Escreveu:  já pensei nisso, mas quando estava a fazer a normalização das mesmas não me batia a coisa certa...

Bem sei q esses prazos para conclusao dos projectos sao demasiado curtos quando nao nos sentimos muito a vontade com aquilo que estamos a mexer, mas se tiveres oportunidade de preocupares-te primeiro com a base e com a coerencia dos dados e só depois arrancares para a programação, vai te dar um terço do trabalho.

Uma sugestão Wink


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - P3dr0 - 12-05-2010 20:56

(12-05-2010 11:55)jaimetotal Escreveu:  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.

mas jaime total vela se isso não e ja o que tenho na tabela vender produto e fornecer produto?

Pois o pior é que isto tem que ser entregue dia 28 de junho Confused


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - jaimetotal - 13-05-2010 09:37

Não é directamente o que tens. O teu só dá para 1 artigo de cada vez. A tabela LinhasDoc serve para comprar mais que um artigo ao mesmo tempo. E tu guardas só o preço final. Como é que sei o IVA? Vais buscar à tabela produtos? O problema é quando ele muda.

Tendo isso em conta, terias que criar LinhasDocVendas e LinhasDocCompras. Mas para quê, se podes juntar os dois?

Até 28 de Junho tens mais do que tempo. Como o crazyman disse, e bem, tens a base de dados correctamente estruturada, tens boa parte do trabalho feito. O resto é palha e é sempre a mesma, só tens que repetir e mudar o nome.

Cumps.


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - P3dr0 - 13-05-2010 12:58

Sim tens razão, mas isso depois tambem devo conseguir inserir mais que um produto no mesmo campo, basta tirar aqueles campos de chave primária ^^

e sinceramente agora não tenho muito tempo para me preocupar com isso, visto que tenho a 2º avaliaçao intermedia ja dia 18 e tenho que apresentar trabalho feito... ja na primeira vez entreguei so a BD e e por muito boa ou má que estivesse a 1º resposta que apanhei foi um "só?"

enfim...

quando chegar ao fim e consiga fazer o basico, seja, adicionar produtos, clientes e fornecedores, fazer consultas as BD´s, conseguir vender produtos(nem que seja 1 de cada vez) ao cliente e compralos ao fornecedor ja me sinto contente, depois ai sim vou pensar em mudar o que ja está feito para melhor ^^

Bem mais uma duvida:

na tabela produtos tenho uma parte que é para inserir a imagem de um produto na BD, na BD tenho o campo Imagem_Produto com a propriadade image, o codigo que tenho é o seguinte:



Dim ImageDialog As New OpenFileDialog()

ImageDialog.InitialDirectory = "c:\"
ImageDialog.Filter = "Image Files|*.jpg;*.gif;*.bmp;*.png;*.jpeg|All Files|*.*"
ImageDialog.FilterIndex = 2
ImageDialog.RestoreDirectory = True

If ImageDialog.ShowDialog() = DialogResult.OK Then
PictureBox1.Image = Image.FromFile(ImageDialog.FileName)

End If


PS: Este tenho no botao para procurar imagem que serve para ir buscar a imagem ao sistema.

Dim ImagemProduto As Image
ImagemProduto = PictureBox1.Image
Const constr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Pedro Fernandes\Desktop\my precious\escola\PRojecto final de curso\Gesturo\Gesturo\GesturoDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Dim db As New SqlConnection(constr)
db.Open()

Dim Varsql As String

Varsql = "INSERT INTO Produto(Imagem_Produto) VALUES(@PictureBox1)"
Dim cmd As New SqlCommand(Varsql, db)
cmd.Parameters.Add("@PictureBox1", SqlDbType.Image).Value = ImagemProduto

cmd.ExecuteNonQuery()
db.Close()
Me.Close()


Bem este aqui é o codigo que tenho no botao para inserir as cenas na tabela produto, não meti aqui o codgio todo(ou seja das outras coisas a inserir na BD porque so ia ocupar espaço) e isto supostamentedeveria inserir a imagem do produto na BD, eu tenho o campo Imagem_produto na BD como allows nulls, e quando não tento inserir nenhuma imagem, não me da qualquer erro, mas quando tento inserir sai isto :

[Imagem: kbrseb.png]

bem eu tive por ai á procura na net, e o que vi foi muitas linhas de código em que pouco ou nada percebi, portanto se alguem conseguir ajudar força Wink


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - jaimetotal - 14-05-2010 14:58

Como é que tens declarado o campo imagem no SQL?
E já viste isto?
(13-05-2010 12:58)P3dr0 Escreveu:  Sim tens razão, mas isso depois tambem devo conseguir inserir mais que um produto no mesmo campo, basta tirar aqueles campos de chave primária ^^

Não é a mesma coisa, porque nesse caso, irás repetir a factura por cada artigo e isso não é bonito. E acredita que é muito mais fácil fazeres isso agora. Perdes 30 min do que estares a mudar o código mais tarde. Pega na tabela vendedores e adapta da maneira que mostrei, que já dá para vendas e compras. Atenção que numa PAP tens que fazer isso direito porque ao contrário do programa, tu pões a base de dados no relatório e eles lêem, enquanto que não pões o código.

Quanto ao teu problema:

Como é que tens declarado o campo imagem no SQL? É que se for do tipo imagem, no Sql isso não é nada mais que uma array de bytes, ou seja, para gravar tens que converter a imagem para array de bytes e o oposto quando lês. Simples.


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - P3dr0 - 18-05-2010 21:17

(14-05-2010 14:58)jaimetotal Escreveu:  Quanto ao teu problema:

Como é que tens declarado o campo imagem no SQL? É que se for do tipo imagem, no Sql isso não é nada mais que uma array de bytes, ou seja, para gravar tens que converter a imagem para array de bytes e o oposto quando lês. Simples.

Pois mas ando aqui ás aranhas com código e código e não chego la...

e tirando isso em todas as tabelas ja fiz inserção de dados, consultas , alterações e eliminação de dados...

depois disso

agora sim posso dizer que estou ás aranhas, agora não sei mesmo o que fazer pois vou para a parte de fazer a venda de produtos ao cliente, e a cena de selecionar o produto, fazer a multiplicação dos valores do preço base, do iva e da margem de lucro para obter o preço final... fazer a selecção do cliente a quem vou fazer a venda, fazer a "impressão" do recibo, e depois disso tudo actualizar varias tabelas e blablabla, tou mesmo as aranhas porque acho que cheguei até aquela parte ao limite dos meus conhecimentos, tal como a minha professora chegou aos dela, e agora recebi a resposta " pois agora tens que procurar por ti! desenrascate"

sinceramente estou completamente as aranhas, a desesperar ^^


RE: Prova De Aptidão Profissional - SoS PeoPleWaRe - crazyman - 19-05-2010 00:42

epá ganda prof. que tens...

Desenrrasca-te??? isso vindo de uma prof é mau... hahaha

Bem entao o pessoal está cá para te ajudar.

Uma coisa de cada vez.

Diz la o que precisas de fazer q o pessoal da uma ajuda.