Ir para conteúdo

POWERED BY:

Arquivado

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

g_informatica

Como fazer uma contagem de dados em um campo da tabela

Recommended Posts

Boa Tarde, amigos!!!

 

Estou fazendo um sistema escolar, e agora estou na parte financeira da escola... Tenho q gerar as mensalidades dos alunos dependendo da escola (fundamental/medio),serie e ano q são escolhidos pelo usuário... Não sei como fazer, mas acho q de inicio tem q ser feito uma contagem de alunos p/ aquela determinada escola,serie e ano... logo após gerar as mensalidades p/ os alunos encontrados na pesquisa...

 

Eu acho q a lógica seria + ou - assim, mas se alguém tiver outra dica e quizer colocar exemplos, eu agradeço muito...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi marcio.theis obg pela atenção,

 

CODE
Mas no caso as mensalidades não são calculadas sobre um valor fixo ?

E então divididas pelo número de vezes que se deseja pagar ?[/

 

Sim, é exatamente assim q funciona... Mas após ter dividido o valor fixo pelo número de vezes a pagar, preciso inserir no banco essas parcelas para gerar um carnê...

 

Ex.

-O usuário digita o ano, informa a sére e a escola (fundamental/médio)

-Logo após informa a qtd de parcelas

-Em seguida informa o valor das mensalidades (já dividido pelo valor fixo)

 

Após obter todas essas informações, gostaria q fosse gerado para todos os alunos daquela série/escola essa qtd de parcelas c/ o valor informado acima.

 

Espero ter explicado melhor o q preciso...

 

Desde já agradeço!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi marcio.theis obg pela atenção,

 

CODE
Mas no caso as mensalidades não são calculadas sobre um valor fixo ?

E então divididas pelo número de vezes que se deseja pagar ?[/

Sim, é exatamente assim q funciona... Mas após ter dividido o valor fixo pelo número de vezes a pagar, preciso inserir no banco essas parcelas para gerar um carnê...

 

Ex.

-O usuário digita o ano, informa a sére e a escola (fundamental/médio)

-Logo após informa a qtd de parcelas

-Em seguida informa o valor das mensalidades (já dividido pelo valor fixo)

 

Após obter todas essas informações, gostaria q fosse gerado para todos os alunos daquela série/escola essa qtd de parcelas c/ o valor informado acima.

 

Espero ter explicado melhor o q preciso...

 

Desde já agradeço!!!!

Tive um problema parecido, e consegui resolver, que tipo de banco de dados você usa, pois foi feito um procedimento colocando esse campo, é só passa os dados da tabela para min, mas eu uso o Firebird e IbExpert

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi robinhocne, boa tarde!!!

 

Uso SQL 2000 como banco e utilizo adoquery para conexão c/ o bd.

 

A tabela p/ gerar mensalidades está assim:

 

CREATE TABLE [dbo].[GERAR_PARCELAS] (

[ANO] [int] NOT NULL ,

[codeSCOLA] [int] NOT NULL ,

[CODALUNO] [char] (10) NOT NULL ,

[PARCELA_INI] [float] NOT NULL ,

[PARCELA_FIM] [float] NOT NULL ,

[VALOR] [float] NULL , (valor das mensalidades)

[DESCONTO] [float] NULL ,

[JUROS] [float] NULL ,

[MULTA] [float] NULL ,

[VENCIMENTO] [float] NULL ,

) ON [PRIMARY]

GO

 

Em relação ao campo parcela_ini e parcel_fim... são os campos onde serão colocados a qtd de parcelas... Eu fiz como um exemplo q vi onde na programação o valor_ini era pré-definido como 1 e o valor_fim com o valor q usuário colocar... a lógica seria p/ caso o usuário fosse gerar uma qtd menor q 12 parcelas... mas isso são exceções.

 

Se você puder me ajudar, eu agradeço muito...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde G..

 

Olha tive uma questão parecida com a sua, e resolvi desta forma..

 

espero que este código possa lhe ser útil..

 

Mas de inicio te adianto, essas parcelas você deverá colocar dentro de um while.

 

Ve se te serve, se servir, poste aí suas dúvidas..

abs

 

 

procedure TcContasPagar.pSubDivideConta;
var
   vNumeroInserts: integer;
   vDataParcela : Tdate;
begin
   pValorParcela;
   vNumeroInserts := 1;

   while vNumeroInserts <= qryPlanoPagamentoView.FieldByName('XNUMERO_PARCELAS').AsInteger do
   begin
	  with frmPrincipal.qryExec do
	  begin
		 sql.Clear;

		 if vNumeroInserts = 1 then
			vDataParcela := StrToDate(FormatDateTime('dd/MM/yyyy', edtDtVencimento.Date))
		 else
			vDataParcela := vDataParcela + 31;


		 sql.Add(' Insert into TB_CONTAS_PAGAR ');
		 sql.Add(' (XCD_INT_NF,		XCD_INT_PLANO_PAG,	  XCD_INT_FORMA_TRANS,  XNUMERO_DOCUMENTO,  XCD_INT_FORNECEDOR, ');
		 sql.Add('  XSITUACAO,		 XNUMERO_PARCELA,		XVALOR_ORIGINAL,	  XVALOR_ENTRADA,	 XHISTORICO,		 ');
		 sql.Add('  XTAXA_JUROS,	   XPERCENTUAL_DESCONTO,   XVALOR_DESCONTO,	  XVALOR_PARCELA,	 XDT_VENCIMENTO)	 ');

		 sql.Add('  values ');

		 sql.Add(' ( :XCD_INT_NF,	  :XCD_INT_PLANO_PAG,	 :XCD_INT_FORMA_TRANS, :XNUMERO_DOCUMENTO, :XCD_INT_FORNECEDOR,');
		 sql.Add('   :XSITUACAO,	   :XNUMERO_PARCELA,	   :XVALOR_ORIGINAL,	 :XVALOR_ENTRADA,	:XHISTORICO,		');
		 sql.Add('   :XTAXA_JUROS,	 :XPERCENTUAL_DESCONTO,  :XVALOR_DESCONTO,	 :XVALOR_PARCELA,						');
		 sql.Add(' ''' + FormatDateTime('yyyy-mm-dd', vDataParcela)  + ''' )');

		 Parameters.ParamByName('XCD_INT_NF').Value		   := cEntrada.qryEntradaEdit.fieldByName('XCD_INT_NF').AsInteger;
		 Parameters.ParamByName('XCD_INT_PLANO_PAG').Value	:= qryContasPagarEdit.fieldByName('XCD_INT_PLANO_PAG').AsInteger;
		 Parameters.ParamByName('XCD_INT_FORNECEDOR').Value   := cEntrada.qryFornecedorView.fieldByName('XCD_INT_FORNECEDOR').AsInteger;
		 Parameters.ParamByName('XCD_INT_FORMA_TRANS').Value  := qryContasPagarEdit.fieldByName('XCD_INT_FORMA_TRANS').AsInteger;
		 Parameters.ParamByName('XNUMERO_DOCUMENTO').Value	:= qryContasPagarEdit.fieldByName('XNUMERO_DOCUMENTO').AsString;
		 Parameters.ParamByName('XVALOR_ORIGINAL').Value	  := qryContasPagarEdit.fieldByName('XVALOR_ORIGINAL').AsFloat;
		 Parameters.ParamByName('XTAXA_JUROS').Value		  := qryContasPagarEdit.fieldByName('XTAXA_JUROS').AsFloat;
		 Parameters.ParamByName('XPERCENTUAL_DESCONTO').Value := qryContasPagarEdit.fieldByName('XPERCENTUAL_DESCONTO').AsFloat;
		 Parameters.ParamByName('XVALOR_DESCONTO').Value	  := qryContasPagarEdit.fieldByName('XVALOR_DESCONTO').AsFloat;
		 Parameters.ParamByName('XVALOR_ENTRADA').Value	   := qryContasPagarEdit.fieldByName('XVALOR_ENTRADA').AsFloat;
		 Parameters.ParamByName('XHISTORICO').Value		   := qryContasPagarEdit.fieldByName('XHISTORICO').AsString;
		 Parameters.ParamByName('XSITUACAO').Value			:= 'P';
		 Parameters.ParamByName('XNUMERO_PARCELA').Value	  := vNumeroInserts;
		 Parameters.ParamByName('XVALOR_PARCELA').Value	   := vValorParcelas;
		 ExecSQL;
		 vNumeroInserts := vNumeroInserts + 1;
	  end;
   end;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde, Aprendizporumavida!!!

 

Só passei p/ agradecer a ajuda... No início não entendi muito bem pq começei a programar a pouco tempo, mas dei uma pesquisada na internet e consegui adaptar seu código p/ minha necessidade... Vlw pela ajuda amigo!!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.