Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
11 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 11 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
TRY BEGIN E FLOCK()

17/4/2017, 10:32 por AJC

Pessoal estou tendo alguns problemas de gravação em rede, estou usando
try begin, mas vi algo na …

Comentários: 0

Exportar Dados Campo Memo Tabela DBF

10/4/2017, 10:28 por fcampos

Olá bom dia.

Estou tentando exportar os dados de algumas tabelas em formato dbf pelo foxpro.
O …

Comentários: 2

Função EVL()

8/4/2017, 12:18 por Clebervfp

Bom dia a todos.
Vim compartilhar de uma Função do próprio VFP que me benefício muito.
Função …

Comentários: 0

COMO BLOQUEAR REGISTRO OU TABELA NO VISUAL FOXPRO PARA GRAVAÇÃO EM REDE

3/4/2017, 10:29 por AJC

Pessoal estou tendo um problema que acontece sempre busco na minha tabela de clientes o ultimo …

Comentários: 2

Controlar Scanner Twain

31/3/2017, 17:31 por Kleber R Bento

Estou usando o EZTW32.DLL para criar uma ferramenta que escaneia e gera PDF. Porém com esses …

Comentários: 0

Estatísticas
Temos 7064 usuários registrados
O último usuário registrado atende pelo nome de Rpedrozo

Os nossos membros postaram um total de 48 mensagens em 25 assuntos

Sistema de gestao de armazens

Página 1 de 5 1, 2, 3, 4, 5  Seguinte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 12:10

Estou a fazer um projecto que se baseia em gestao de armazens, neste momento e muito graças à ajuda que tenho recebido neste forum ja possuo um sistema de login e ja consigo guardar produtos e movimentos que possam acontecer no armazem.

Entre outros problemas ainda por resolver, resta-me fazer com que o programa some ou subtraia a quantidade do produto inserido ou retirado
Passando à pratica, eu possuo duas tabelas, a tabela movimento (que tem entre outros valores, a quantidade e o nome do produto) e tenho uma outra tabela chamada produto(que tem alem de outros valores, o valor chamado nomedeproduto e quantidadestock) O meu objectivo é que na form Movimento de Entrada, ao guardar o novo movimento, a quantidade seja somada à quantidade de stock existente na tabela dos produtos.
Como é isso possivel?
Obrigado

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 10/9/2009, 12:24

Não ficou muito claro pra mim!
Você quer adicionar um item à tabela "movimento", sendo que o campo "quantidade" da tabela "movimento" deverá ser igual soma do valor existente no campo "quantidadestock" da tabela "produto" + a "quantidade" do novo item?

Você tem algum campo comum às duas tabelas, o qual sirva como referência para o produto?
Ex: idProduto

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 12:27

tenho sim, e esse mesmo, chama-se IDProduto, que é a chave primaria da tabela produto

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 12:33

Eu quero adicionar a um item ja existente.
Por exemplo tenho 20 aspirinas(idproduto=001) no armazem, na form movimentoEntrada adiciono mais 30 aspirinas (na Quantidade) e eu kero que some essas 20 as 30
Sendo que 20 (tabela produto,campo quantidadestock) +30 (tabela movimento,campo quantidade)
Vai dar 50 que ficaram guardadas na tabela produto, campo quantidadeStock.

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 10/9/2009, 13:00

Não sei se compreendi bem tua necessidade, mas veja se este exemplo lhe ajuda:
Código:
LOCAL idproduto
LOCAL nomeproduto
LOCAL novaquantidade
LOCAL quantidadeexistente

m.idproduto = "001" && Id do Produto (Entrada do usuário)
m.nomeproduto = "Aspirina" && Nome do Produto (Entrada do usuário)
m.novaquantidade = 20 && Nova quantidade  (Entrada do usuário)

*!* Exemplo com INSERT
INSERT INTO movimento (idproduto, nomeproduto, quantidade) ;
   SELECT m.idproduto, m.nomeproduto, quantidadestock+m.novaquantidade ;
   FROM produto WHERE idproduto=m.idproduto


*!* Exemplo com UPDATE
SELECT produto
LOCATE FOR idproduto = m.idproduto && Verifica se o produto existe.

IF FOUND() THEN
   m.quantidadeexistente = produto.quantidadestock
ELSE
   m.quantidadeexistente = 0
ENDIF

UPDATE movimento SET ;
   idproduto = m.idproduto ,;
   nomeproduto = m.nomeproduto ,;
   quantidade = m.novaquantidade + m.quantidadeexistente
Qualquer dúvida, é só postar!
Smile

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 13:51

Continua a nao funcionar... Sad
vou-lhe mandar o codigo feito na form de Movimento de entrada e respectivas tabelas usadas:

Código:


LOCAL idMovimentos
LOCAL idUtilizador
LOCAL data
LOCAL idProduto
LOCAL nome
LOCAL quantidade
LOCAL tipomov
LOCAL quant_stock



m.idMovimentos = thisform.txtidmovimentos.value
m.idUtilizador = thisform.txtid_utilizador.value
m.data = thisform.txtdata.value
m.idProduto = thisform.txtidproduto.value
m.nome = thisform.txtnome.value
m.quantidade = thisform.txtquantidade.value

*!* Abre o Banco de Dados
OPEN DATABASE data1 SHARED
*!* Abre a tabela
USE "movimentos" IN SELECT("movimentos") SHARED
*!* Insere dados na tabela
INSERT INTO movimentos ( tipomov, id_utilizador, DATA, idproduto, NOME, quantidade) VALUES ;
  ( "Saida", m.idUtilizador, m.data, m.idProduto, m.nome, m.quantidade)

 


*LOCAL idproduto
*LOCAL nomeproduto
*LOCAL novaquantidade

*m.idproduto = "001" && Id do Produto (Entrada do usuário)
*m.nome = "Aspirina" && Nome do Produto (Entrada do usuário)
*m.novaquantidade = 20 && Nova quantidade  (Entrada do usuário)

*!* Exemplo com INSERT
*INSERT INTO movimento (idproduto, nomeproduto, quantidade) ;
  SELECT m.idproduto, m.nomeproduto, quantidadestock+m.novaquantidade ;
  FROM produto WHERE idproduto=m.idproduto
 
 

USE "produto" IN SELECT("produto") SHARED
*!* Exemplo com UPDATE
SELECT produto
LOCATE FOR idproduto = m.idproduto && Verifica se o produto existe.

IF FOUND() THEN
  m.quant_stock= produto.quant_stock
ELSE
  m.quant_stock= 0
ENDIF

UPDATE movimento SET ;
  idproduto = m.idproduto ,;
  nome = m.nome ,;
  quantidade = m.quantidade + m.quant_stock
*!* Fecha a tabela
USE IN SELECT("produto")
*!* Fecha a tabela
USE IN SELECT("movimentos") 

*!* Seleciona o Banco
SET DATABASE TO "data1"
*!* Fecha o banco selecionado
CLOSE DATABASES 


As tabelas usadas sao:
Movimentos:
-data
-idmovimentos
-idproduto
-id_utilizador
-nome
-quantidade
-tipomov

Tabela Produto
-descricao
-fornecedor
-idproduto
-nome
-quantidade
-quant_stock
-id_tipoprod
-stock_min

PS: O que esta comentado no codigo, esta comentado no programa tambem

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 10/9/2009, 14:16

Tens como postar uma parte do projeto, apenas para termos idéia de como estais organizando?
Se possível, não esqueça das tabelas, no anexo.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 10/9/2009, 15:33

[Você precisa estar registrado e conectado para ver este link.] escreveu:Continua a nao funcionar...
O que exatamente não está funcionando?
Ocorreu alguma mensagem de erro, é isto?

Ao analisar seu projeto, percebi que os campos "quantidade" e "quantidadestock" estão como varchar, mas deveria estar como integer.
Veja se não é este o problema.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 16:28

Ja mudei e ao carregar no botao de guardar da form movimentosaida e ele abreme um quadro para escolher a tabela de base de dados, e depois guarda mas a quantidade de stock nao mua para 50...

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 10/9/2009, 16:37

Vamos tentar entender o que realmente queremos fazer...

1. Estamos tentando fazer funcionar o form "movimentsaida.scx", correto?!
2. O que este form faz, exatamente?

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 16:43

1.Correcto
2. quero que ele guarde um movimento de saida, ou seja, quero introduzir um objecto, por exemplo agulhas e dizer que retirei 10 unidades (por exemplo) entao coloco 10 na quantidade e depois quando carregar no botao guardar ele teria de guardar o movimento na tabela movimentos e teria de retirar 10 agulhas à quantidadestock existente na tabela produto.
A form movimententrada seria a mesma coisa mas em vez de subtrair somava a quantidadestock da tabela produto.

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 10/9/2009, 17:16

Faça um backup do código contido em seu botão guardar.
Em seguida coloque este código e veja se resolve..
Não resolvendo, analise o código para ver se é o que pretendes, e se estou mechendo nos campos corretos, pois a idéia é basicamente esta.
Qualquer dúvida, é só postar!
Código:
LOCAL movimento AS INTEGER
LOCAL DATA AS DATETIME
LOCAL numeroproduto AS INTEGER
LOCAL numeroutilizador AS INTEGER
LOCAL NOME AS STRING
LOCAL quantidade AS INTEGER

*!* Recebendo os valores digitados
m.movimento = THISFORM.txtidmovimentos.VALUE
m.data = THISFORM.txtdata.VALUE
m.numeroproduto = THISFORM.txtidproduto.VALUE
m.numeroutilizador = THISFORM.txtid_utilizador.VALUE
m.nome = THISFORM.txtnome.VALUE
m.quantidade = THISFORM.txtquantidade.VALUE

USE "movimentos" IN SELECT("movimentos") SHARED

*!* Altera a quantidade na tabela movimentos
*!* Guarda o movimento na tabela movimentos
UPDATE movimentos SET quantidade = m.quantidade WHERE idproduto = m.numeroproduto

USE IN SELECT("movimentos")

USE "produto" IN SELECT("produto") SHARED

*!* Retira 10 agulhas à quantidadestock existente na tabela produto.
UPDATE produto SET quant_stock = quant_stock-m.quantidade WHERE idproduto = m.numeroproduto

SELECT("produto")
LOCATE FOR idproduto = m.numeroproduto

USE IN SELECT("produto")

Obs: Não utilizei todas as variáveis declaradas pois não sei ao certo para quê pretendes utilizá-las.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 17:31

Esta quase, ja guarda a informaçao correcta na tabela produto mas a tabela movimentos, o campo quantidade esta a ser mudado em todos os movimentos, por exemplo se eu faço um movimento e meto 100 garrafas de soro ele altera todos os movimentos para 100!
Outra coisa, como faço para as saidas para nao ter quantidades negativas?

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 10/9/2009, 17:39

[Você precisa estar registrado e conectado para ver este link.] escreveu:o campo quantidade esta a ser mudado em todos os movimentos, por exemplo se eu faço um movimento e meto 100 garrafas de soro ele altera todos os movimentos para 100!
O correto é alterar todos ou apenas um? Observe que se estão mudando todos é porque todos têm o mesmo "id".
Dê uma olhada na condição do SELECT pois é lá que você define quais registros serão alterados.

[Você precisa estar registrado e conectado para ver este link.] escreveu:Outra coisa, como faço para as saidas para nao ter quantidades negativas?
Verifique a quantidade - antes de alterá-la - então utilize uma condição "IF" para verificar se será possível, ou não, diminuir a quantidad estoque.
Se for possível, diminua, senão, exiba uma mensagem para o usuário notificando, por exemplo, quantos registros contém na tabela.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 17:50

Mas o "id" esta como integer(autoinc) nao devia de mudar automaticamente?
Na tabela movimento esta a incrementar mas o ultimo movimento que é feito passa a 1 e eu keria que passa-se para o ultimo... :S

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 10/9/2009, 17:59

[Você precisa estar registrado e conectado para ver este link.] escreveu:Mas o "id" esta como integer(autoinc) nao devia de mudar automaticamente?
Sim! Sem sombra de dúvidas!

Como eu havia dito na mensagem anterior, dê uma olhada na condição "WHERE" pois ela define qual/quais registros será(ão) alterado(s).

Acredito que se você mudar a seguinte linha:
Código:
UPDATE movimentos SET quantidade = m.quantidade WHERE idproduto  = m.numeroproduto

Por esta, resolverá o problema:
Código:
UPDATE movimentos SET quantidade = m.quantidade WHERE idMovimentos = m.numeroproduto

se ainda houver dúvidas, sinta-se a vontade em perguntar.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 18:19

Este esta complicado.... agora a quantidade na tabela movimento muda mas nao soma na tabela produto....

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 18:22

Ja vi o que tenho mal, foi burrice minha, peço desculpa

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 19:03

Falta-me so adicionar um dado no form movimentsaida, que se chama tipomov que neste form tem o valor de "saida" entao fiz o seguinte codigo no fim:

Código:

OPEN DATABASE data1 SHARED
USE "movimentos" IN SELECT("movimentos") SHARED
INSERT INTO movimentos ( tipomov) VALUES ;
  ( "Saida")
USE IN SELECT("movimentos")
SET DATABASE TO "data1"
CLOSE DATABASES

Mas nao esta a funcionar... porque?
obrigado

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 10/9/2009, 19:08

Espere agora apercebime de uma coisa!
O tipomov vai para o ultimo da tabela mas o resto mantem-se na primeira linha da tabela movimento... porque?
muito obrigado mais uma vez e agradeço sua paciencia

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 11/9/2009, 09:57

Olá JDoria!
Recaptulando, qual está sendo a dificuldade agora?
scratch

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 11/9/2009, 11:59

Boas! Peço desculpa so responder agora, tive uma emergencia familiar...

O que esta a acontecer agora é que como disse adicionei na form movimententrada um novo dado que se chama tipomov, somente para depois poder fazer uma outra form que mostre todos os dados da tabela de movimentos fazendo a diferença entre os movimentos de entrada e de saida.
utilizei entao o codigo que eu disse em cima e funcionou mas reparei numa pequena falha! É que o quando faço um novo movimento (de Entrada), o tal dado tipomov é guardado correctamente no ultimo "id" da tabela mas outros dados como e o exemplo da data, sao guardados no primeiro id da tabela!
Pergunta: tenho de fazer o UPDATE para todos os dados?

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 12/9/2009, 18:30

[Você precisa estar registrado e conectado para ver este link.] escreveu:Pergunta: tenho de fazer o UPDATE para todos os dados?
Você tentou utilizar o UPDATE para ver se resolve?
Ser possível disponibilize a versão mais atual de te projeto (já com as alterações) e explique o que está dando errado.
Ficará mais fácil de compreender sua dificuldade.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 12/9/2009, 18:46

Acho que nao devo fazer o update.
O que me esta a acontecer é que a tabela produto esta a gravar os dados correctamente, mas a tabela movimento, onde deveria adicionar um movimento novo, isso nao esta a acontecer, ele esta a "gravar por cima" de um movimento ja existente.
Vou mandar o projecto por MP.

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 14/9/2009, 12:15

Tente limpar as tabelas e recomeçar os testes!
Então verifique as possíveis falhas que poderão ocorrer.
Dependendo da forma como você projetou seu projeto, você precisará de um campo que definirá uma identidade específica para cada elemento.

Uma sugestão seria criar um campo chamado "protocolo" com 10 caracteres, por exemplo, e utilizá-lo como referência ao fazer INSERTS e UPDATES.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Página 1 de 5 1, 2, 3, 4, 5  Seguinte

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum