Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marostegan

[Resolvido] contagem

Recommended Posts

pessoal.... olá!! http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

estou com mais um probleminha que não consigo resolver.... :wacko: :wacko: :wacko: :wacko:

 

 

seguinte... preciso fazer uma numeração pros recibos que vãqo se impresso pelo sistema...

 

assim.... 000112

000113

000114

 

e assim sucessivamente, obviamente quando inicial do 000001....

 

só que como que eu faço pra esse valor ficar armazenado em um BD? para quando o sistema for fechador e no outro dia abrir e for emitir outro recibo, ele dar continuidade na contagem?

 

eu até fim um comandinho aqui ó:

 

edtcontador.Text := inttostr(strtoint(.edtcontador.Text)+1);

só que ele só conta assim 1... 2.... 3.... e quando fecha e abre o programa começa tudo outra vez...

 

como eu jogo essa contagem num BD... e depois busco lá pra dar continuidade?

 

ah.... to usando ACCESS!! http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

 

valews galera!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

como eu jogo essa contagem num BD... e depois busco lá pra dar continuidade?

com certeza, e aí você faz um select para pegar o maior e atribui a essa tua variável incremental

 

select max(campo) from tabela

 

você pode jogar o resultado dessa consulta numa variável e jogar para "edtcontador.Text"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode seguir a dica do nosso camarada NaPraia que vai funcionar, ou entao definir o campo da tabela como tipo autoincremento... o proprio ACESS vai ser encarregar de fazer a sequencia... mas acho q no caso de um registro ser deletado, o valor q foi atribuido para ele não será mais usado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia ter uma tabela de PARAMETROS no seu sistema, onde nesta tabela teria campos para informar o nome da empresa, endereço, etc.. e ainda um campo que diga qual é o número do último recibo, sendo assim basta apenas ler o campo antes de imprimir, dar sequência a impressão e depois salvar o último número nesta tabela de parametros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia ter uma tabela de PARAMETROS no seu sistema, onde nesta tabela teria campos para informar o nome da empresa, endereço, etc.. e ainda um campo que diga qual é o número do último recibo, sendo assim basta apenas ler o campo antes de imprimir, dar sequência a impressão e depois salvar o último número nesta tabela de parametros.

 

axo que não entendi essa explicação...

 

em meu sistema fiz um lugar onde eu posso alterar o nome da empresa, logo, endereço, telefone.... que sai impresso no recibo...

 

porém eu quero que a contagem de emissão dos recibos seja automática... (e que tanto o recibo da empresa PAGANDO quanto da empresa RECEBENDO) sejam contados juntos...

 

só que eu não sei como faz esse processo, onde sozinho o delphi joga o numero do ultimo impresso... exemplo... 000001

e quando eu for imprimir outro recibo ele automaticamente vá apra 000002

 

como fazer esse programação... de contagem? gravar no bd? buscar? somar +1 e gravar de volta... e ainda excluir a ultima....

 

valews! http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem alguma tabela nota_fiscal ou similar???

que pode armazenar esse número de nota lá.

ou cria uma tabela com um campo number

 

sempre que você for imprimir uma nota, você faz

 

edtcontador.Text := select max(campo) + 1 from tabela
que aí você joga o número maior que está na tabela e soma 1 e joga na variável que provavelmente você está usando para gerar o relatório para imprir.

 

em seguida insira esse valor na tabela

 

insert into tabela (campo) values (edtcontador.Text)

Compartilhar este post


Link para o post
Compartilhar em outros sites

poxa... nao entendi mto bem ainda!! :wacko:

 

eu vou criar em meu BD uma tabela só pra armazenar essa contagem...

 

tbl_contagem campo contador

 

ai eu quero que ele faça essa contagem quando eu clicar no botao imprimir...

 

ele pegue o ultimo numero gravado some mais 1 e grave novamente esse numero...

 

como faço isso? =///

 

brigadao!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é o mais simples da programação...

 

Basta fazer um SQL, ou usar uma table que pegue este campo, armazene o valor em uma variável, vá incrementando conforme o uso, depois que terminar, faça um SQL ou use a tabela e atualize o valor do campo com o novo número...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ppoxa... deu certo!!!

 

vo posta o código que fiz abaixo!

 

 

var
Numero : Integer;
begin
with dm.q_contagem do begin
close;
SQL.Text:='select contagem from tbl_contagem';
Open;
Numero := dm.q_contagem.FieldbyName('contagem').AsInteger;
f_recibo_receber.numero.Text := IntToStr(Numero);
close;
SQL.Text:='update tbl_contagem set contagem =:contagem';
Parameters.ParamByName('contagem').Value := Numero + 1;
ExecSQL;

não sei se é o melhor jeito, mais funcionou certinho!!!

 

[]´ss

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.