Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
9 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 9 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
Últimos assuntos
» Alterar uma palavra num arquivo de texto
Ontem à(s) 12:02 por Teseu

» Buscar endereço por CEP
3/12/2016, 19:59 por pedrossian

» USAR WEBSERVICE NO VFP9
2/12/2016, 09:50 por AJC

» BANIMENTO DE USUARIO
17/11/2016, 08:31 por FAF

» Impressora Ticket
15/11/2016, 09:20 por clima238

» Gráfico
9/11/2016, 10:43 por hidroluz

» TRANSPOR TABELA
9/11/2016, 10:34 por hidroluz

» MUDANÇA DO .DBF PARA POTSGREE
9/11/2016, 09:12 por AJC

» Website com videoaulas sobre linguagens de programação
8/11/2016, 09:56 por JLDR

» Parceria para desenvolvimento de template em Wordpress
7/11/2016, 19:15 por mindix

» Data fica invertida na planilha que é gerada via programa.
27/10/2016, 11:00 por Linghston

» Maximizar report direto do menu
21/10/2016, 20:48 por Rosangela Pires

» Fechar form com tempo
21/10/2016, 10:15 por Rosangela Pires

» URGENTE: Ajuda com impressora ELGIN-L42
14/10/2016, 09:53 por megasoft

» Opções para gerar NF-e
10/10/2016, 09:07 por mavsinfo

» Google Maps
8/10/2016, 15:08 por Rosangela Pires

» Mysql
5/10/2016, 11:22 por Marcos Guedes

» Acessando Banco em MYSQL de um projeto WORDPRESS
3/10/2016, 10:58 por Marcos Guedes

» OPTION SELECT MOSTRAR CAMPOS QUASE PRONTO
26/9/2016, 21:09 por BobKuspe

» Pesquisa em grid
14/9/2016, 09:24 por AJC

Alterar uma palavra num arquivo de texto

5/12/2016, 12:02 por Teseu

Olá prezados colegas de programação!

Este é eu primeiro post no fórum e gostaria de poder …

Comentários: 0

Buscar endereço por CEP

3/12/2016, 19:59 por pedrossian

Caros amigos, meu código para buscar endereço pelo CEP não funciona mais.
Alguém pode me …

Comentários: 0

USAR WEBSERVICE NO VFP9

2/12/2016, 09:50 por AJC

Pessoal, preciso de um material ou livro que me traga instruções como
usar a consumação de …

Comentários: 0

BANIMENTO DE USUARIO

13/11/2016, 16:21 por FAF

A usuária ROSANGELA PIRES ao tentar acessar o Forum obtem sempre a mensagem de BANIMENTO.
A mesma …

Comentários: 3

Impressora Ticket

15/11/2016, 09:20 por clima238

Bom dia,
Por favor alguém me explique porque o código abaixo imprime no ecrã em vez do printer: …

Comentários: 0

Estatísticas
Temos 6960 usuários registrados
O último usuário registrado atende pelo nome de Maycon Hersing

Os nossos membros postaram um total de 17118 mensagens em 2576 assuntos

Sistema de gestao de armazens

Página 2 de 5 Anterior  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

Relembrando a primeira mensagem :

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 JDoria em 15/9/2009, 07:25

Ja apaguei os registos todos e ja fiz uns testes.
Alterei o codigo mas o erro mantem-se.
alterei:
Código:

UPDATE movimentos SET quantidade = m.quantidade WHERE idMovimentos = m.numeroproduto

Por:
Código:

INSERT INTO movimentos (  tipomov,data, idproduto, id_utilizador, nome, quantidade ) VALUES ;
  (  "saida", m.data, m.numeroproduto, m.numeroutilizador, m.nome, m.quantidade)

E o resultado foi quase o pretendido. Neste momento, o novo movimento é efectuado no final da tabela "movimento" (tal como é pretendido) MAS é efectuado tambem um update ao primeiro movimento da tabela. Isso provoca com que seja retirado/adicionado 2 vezes o produto pretendido na tabela "produto" visto o movimento estar a ser adicionado duas vezes.

Vou enviar o codigo inteiro, estou desconfiado de que a culpa seja de estar a mandar abrir mal o banco de dados ou as prorpias tabelas mas nao encontro o verdadeiro problema....Poderia ajudar?



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
LOCAL tipomov

*!* Recebe os valores inseridos
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

OPEN DATABASE data1 SHARED


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


INSERT INTO movimentos (  tipomov,data, idproduto, id_utilizador, nome, quantidade ) VALUES ;
  (  "saida", m.data, m.numeroproduto, m.numeroutilizador, m.nome, m.quantidade)


USE IN SELECT("movimentos")

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

*!* Retira  à 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")


CLOSE DATABASES


JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 15/9/2009, 07:32

Descubri uma coisa, utilizei outro codigo e deu um resultado demasiado estranho:

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
LOCAL tipomov

*!* Recebe os valores inseridos
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

OPEN DATABASE data1 SHARED


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


INSERT INTO movimentos (  tipomov,data, idproduto, id_utilizador, nome, quantidade ) VALUES ;
  (  "saida", m.data, m.numeroproduto, m.numeroutilizador, m.nome, m.quantidade)

CLOSE DATABASES

E o resultado foi exactamente o mesmo!
Ou seja, esta a ser inserido na tabela "movimento" todos os dados pedidos, no ultimo registo (correctamente) e altera o primeiro movimento (erradamente)
Será que é algum problema com a tabela movimentos?
Muito obrigado

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 15/9/2009, 17:37

Segue o exemplo que lhe prometi ao conversarmos no CHAT:
[Você precisa estar registrado e conectado para ver este link.]

Obs: Está bem simples, mas acredito que poderá lhe ajudar.
Smile

Qualquer dúvida é só 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 15/9/2009, 18:30

Aqui mando um projecto com o problema que eu tenho.
O problema esta no adicionar novo produto na tabela. Ele esta adicionando e ao mesmo tempo esta alterando o primeiro produto da tabela :S
Ora vejam:

[Você precisa estar registrado e conectado para ver este link.]

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 16/9/2009, 13:02

[Você precisa estar registrado e conectado para ver este link.] escreveu:Ele esta adicionando e ao mesmo tempo esta alterando o primeiro produto da tabela
Isto está acontecendo pela maneira como você está abastecendo os controles de seu form.

O campo "txtNomep", por exemplo, está com a propriedade "ControlSource=produto2.nomep".

Ao fazer isto, você está criando uma relação direta entre o controle e o campo na tabela!
Então ao editar o valor do controle, você automaticamente estará editando o campo na tabela.
Logo em seguida você clica em guardar, então a alteração no registro já foi feita, e você está incluindo mais um registro.

Espero ter conseguido explicar!
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 16/9/2009, 13:14

Ja tirei todos os control source agora esta a dar erro:

"Data type mismatch"
Que significa isso?

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 16/9/2009, 13:22

Data type mismatch = "Incompatibilidade tipo de dados".
Você está tentando incluir dados que não corresponde aos respectivos tipos na tabela.

O tipo de dados padrão de um textbox é caracter, a menos que você mude a propriedade format do mesmo.

Então se queres incluir um valor de um textox no campo númerico de sua tabela, deverias converter a string para número, assim como se pretendes abastecer um campo data, converta a string pra data.

Dê uma olhada no exemplo que postei pois aborda tudo isto!

_________________
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 17/9/2009, 11:54

boas tardes!

Segui o seu concelho e alterei os format das textbox como mostro na imagem.
[Você precisa estar registrado e conectado para ver este link.]

Mas o erro continua sera que eu nao entendi bem e estou a fazer mal?

Dê uma olhada no exemplo que postei pois aborda tudo isto!
Pode-me enviar o link disso? eu andei a procura mas nao encontrei :S
Obrigado

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 17/9/2009, 12:29

[Você precisa estar registrado e conectado para ver este link.] escreveu:Mas o erro continua sera que eu nao entendi bem e estou a fazer mal?
Você compreendeu errado!
Na imagem abaixo segue a tabela (retirada do Help do VFP) demonstrando como mudar a propriedade dos controles.

Clique na imagem para ampliar!
[Você precisa estar registrado e conectado para ver esta imagem.]
Para que o seu textbox aceite apenas números, você pode colocar a propriedade "value=0" ou definir a partir da propriedade InputMask (Olhe no help do fox para mais detalhes).

[Você precisa estar registrado e conectado para ver este link.] escreveu:Pode-me enviar o link disso? eu andei a procura mas nao encontrei
[Você precisa estar registrado e conectado para ver este link.]

_________________
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 17/9/2009, 13:03

Hoje estou um pouco perdido.....Mas onde e mudado, onde insiro isso do value=0 ou imoutMask? É no codigo?, nas propriedades das texbox? no banco de dados?
Sad
Ainda sou muito "verde" neste programa

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

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

onde insiro isso do value=0 ou imoutMask? É no codigo?, nas propriedades das texbox? no banco de dados?
Propriedade do texbox!
A propriedade VALUE lhe permitirá atribuir um valor default para o seu textbox, então se você coloca 0 (ZERO), o VFP compreenderá que se trata de um campo numérico e permitirá que o usuário digite apenas números.

A propriedade InputMask, permite inserir máscaras para o textbox.
Se pretendes que o usuário digite no máximo 5 números, então ficaria da seguinte forma:
"InputMask=99999".
O numeral 9 especifica que o mesmo deverá receber números.
Digamos que você queira definir um formato de data, então ficaria da seguinte forma:
"InputMask=99/99/9999", onde o usuário deverá digitar 2 números, uma barra, 2 números, uma barra e mais 4 números.

Espero ter esclarecido!
Qualquer dúvida é só perguntar.
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 17/9/2009, 14:21

Fiz entao como disse, utilizei o inputmask para as textbox utilizadas para numeros e aqueles que quero que estejam em caracter nao fiz nada, deixei em default como me indicou e como vi no exemplo.
Mas o erro continua:
Data type mismatch

Esquecime de fazer mais alguma coisa?

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 17/9/2009, 14:44

Isto é por que você está tentando adicionar dados com tipos não correspondentes aos campos na tabela.

Se não conseguir resolver, poste a atualização.

_________________
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 17/9/2009, 14:55

continuo a nao conseguir

[Você precisa estar registrado e conectado para ver este link.]

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 17/9/2009, 15:07

jDoria, ao utilizar a propriedade InputMask você NÃO está definindo o tipo de valor que o textbox irá suportar, mas sim, o "modelo" de como será escrito, ou seja, você atribuindo uma máscara ao seu textbox.

Para você corrigir o erro de seu formulário, poderás fazer uma das seguintes formas:
- Adicionao ao textbox "txtStock_min" e "txtQuant_stock" a propriedade value=0.
- Ou no código fonte substitua as seguintes linhas:
Código:
m.stock_min = thisform.txtstock_min.value
m.quant_stock = thisform.txtquant_stock.value
Por estas:
Código:
m.stock_min = val(thisform.txtstock_min.value)
m.quant_stock = val(thisform.txtquant_stock.value)

Estou lhe enviando o modelo com as alterações:
[Você precisa estar registrado e conectado para ver este link.]

_________________
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 17/9/2009, 15:22

Era mesmo isso, erro de principiante... vou alterar no meu projecto

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 17/9/2009, 17:01

Bem agora estou alterando a form dos movimentos com tudo o que me ensinaste, de maneira a que guarde um movimento na tabela movimento e altere a quantidade da tabela produto. O codigo e esse:


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
LOCAL tipomov

*!* Recebe os valores inseridos
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




OPEN DATABASE data1 SHARED
*!* Abre a tabela
USE "movimentos" IN SELECT("movimentos") SHARED
*!* Insere dados na tabela

INSERT INTO movimentos (  tipomov,data, idproduto, id_utilizador, nome, quantidade ) VALUES ;
  (  "saida", m.data, m.numeroproduto, m.numeroutilizador, m.nome, m.quantidade)


*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 idMovimentos = m.numeroproduto


USE IN SELECT("movimentos")
*!* Seleciona o Banco
SET DATABASE TO "data1"
*!* Fecha o banco selecionado
CLOSE DATABASES




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

*!* Retira  à 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")

Esta a dar erro, poderia dar uma olhada e ver se o codigo esta correcto?
obrigado

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por JDoria em 17/9/2009, 17:02

O que esta comentado nao entra no codigo

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 17/9/2009, 17:03

Qual a mensagem de erro?

_________________
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 17/9/2009, 17:09

A mesma de sempre, Data type mismatch ... mas desta vez coloquei tudo bem... acho.
A data pode ser feito da mesma maneira mas com inputmask=99/99/9999?

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 17/9/2009, 17:13

[Você precisa estar registrado e conectado para ver este link.] escreveu:A mesma de sempre, Data type mismatch ... mas desta vez coloquei tudo bem... acho.
Para este erro, o ideal é que você disponibilize o form com as alterações
pois dependerá de como estais utilizando as propriedades do controle.

[Você precisa estar registrado e conectado para ver este link.] escreveu:A data pode ser feito da mesma maneira mas com inputmask=99/99/9999?
Sim!
Mas neste caso você ainda precirará setar a propriedade "Format=D" ou escrever o código no seguinte modelo:
Código:
dataDigitada = CTOD(thisform.txtSeuTextbox.value)

_________________
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 22/9/2009, 12:23

Boas tardes! Tudo bem?
Agora sim, ja esta tudo a gravar os dados perfeitamente!
Agora tenho uma outra duvida, para variar Razz
Neste momento estou a ver se consigo fazer com que, durante os movimentos de saida, o produto nao fique com quantidade negativa...
Como poderei fazer isso? É com funçoes IF?

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 22/9/2009, 12:42

[Você precisa estar registrado e conectado para ver este link.] escreveu:Neste momento estou a ver se consigo fazer com que, durante os movimentos de saida, o produto nao fique com quantidade negativa...
Como poderei fazer isso? É com funçoes IF?
Dê uma olhada no último exemplo que disponibilizei para estudares.
Deixei pronto um exemplo que impede um valor negativo ao retirar um produto do estoque.

[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 24/9/2009, 13:19

JA olhei o seu codigo e tentei fazer algo parecido mas nao fucionou...
Pode dar uma olhadela? Obrigado

Código:

LOCAL movimento AS INTEGER
LOCAL DATA AS DATE
LOCAL numeroproduto AS INTEGER
LOCAL numeroutilizador AS INTEGER
LOCAL NOME AS STRING
LOCAL quantidade AS INTEGER
LOCAL tipomov
LOCAL quant_stock as Integer
 

*!* Recebe os valores inseridos
m.movimento = THISFORM.txtidmovimentos.VALUE
m.data = CTOD(THISFORM.txtdata.VALUE)
m.numeroproduto = THISFORM.txtidproduto.VALUE
m.numeroutilizador = THISFORM.txtid_utilizador.VALUE
m.nome = THISFORM.txtnome.VALUE
m.quantidade = THISFORM.txtquantidade.VALUE




OPEN DATABASE data1 SHARED
*!* Abre a tabela
USE "movimentos" IN SELECT("movimentos") SHARED
*!* Insere dados na tabela

INSERT INTO movimentos (  tipomov, data, idproduto, id_utilizador, nome, quantidade ) VALUES ;
  (  "saida", m.data, m.numeroproduto, m.numeroutilizador, m.nome, m.quantidade)



USE IN SELECT("movimentos")
*!* Seleciona a BD
SET DATABASE TO "data1"
*!* Fecha a BD seleccionada
CLOSE DATABASES


LOCAL quantstock as Integer

m.quantstock= quant_stock-m.quantidade

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


DO case
   CASE (m.quantstock>0)
*!* Retira  à quantidadestock existente na tabela produto.
UPDATE produto SET quant_stock = quant_stock-m.quantidade WHERE idproduto = m.numeroproduto


OTHERWISE
            MESSAGEBOX("O limite de produtos foi ultrapassado!")

ENDCASE

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

USE IN SELECT("produto")

  MESSAGEBOX("Movimento de saida guardado!")

JDoria
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Marcos Guedes em 24/9/2009, 13:54

Segue os comentários de seu código:

CLOSE DATABASES
...
USE "produto" IN SELECT("produto") SHARED
Observe que você está fechando o Banco de Dados e em seguida fechando a Tabela.
Se a tabela é pertence ao banco que você fechou, como irás utilizá-la depois (Se você fechou o banco antes...).

LOCAL quantstock AS INTEGER
m.quantstock= quant_stock-m.quantidade
Você siquer localizou o registro, para obter o valor no banco.

DO CASE
CASE (m.quantstock>0)
*!* Retira à quantidadestock existente na tabela produto.
UPDATE produto SET quant_stock = quant_stock-m.quantidade WHERE idproduto = m.numeroproduto


OTHERWISE
MESSAGEBOX("O limite de produtos foi ultrapassado!")

ENDCASE
Não precisarás deste DO CASE!
O IF é mais que o suficiente.

Segue uma solução para verificar se a quantidade especificada poderá ser subtraída no estoque:
  1. Armazene numa variável a quantidade que será subtraída
  2. Localize o registro na tabela (Poderás utilizar o LOCATE FOR para isto)
  3. Encontrando o registro, guarde em outra variável a quantidade existente no estoque
  4. Verifique se a substração entre a quantidade existente no banco e a nova quantidade é maior ou igual a zero
  5. Em caso positivo, realize a ateração na tabela com a nova quantidade.
Espero ter esclarecido!
Smile

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Sistema de gestao de armazens

Mensagem por Conteúdo patrocinado Hoje à(s) 05:09


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Página 2 de 5 Anterior  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