Apresentar campo juros num dbgrid
Olá amigos, tenho um form de consulta genérico, em que nele, chamado através de índice, crio os campos a serem mostrados em run-time. Nessa criação tenho dúvidas de como criar dois tipos de campos:
1) Campo calculado de juros de determinado pagamento;
2) Mostrar no dbgrid, campos em forma de string, conforme conteúdo da tabela. Exemplo: 0 ´Aberto´ ou 1 ´Quitado´
Segue abaixo, um trecho da criação dos campos no form ConsultaGenerica:
Aguardo opinião dos amigos.
Att
Mario
1) Campo calculado de juros de determinado pagamento;
2) Mostrar no dbgrid, campos em forma de string, conforme conteúdo da tabela. Exemplo: 0 ´Aberto´ ou 1 ´Quitado´
Segue abaixo, um trecho da criação dos campos no form ConsultaGenerica:
case ArquivoConsulta of 1: begin Lista.DataSource := DM.DS_Usuarios ; Lista.Columns.Add; Lista.Columns[0].FieldName := ´CODUSU´; Lista.Columns[0].Title.Caption:= ´Código´; Lista.Columns.Add; Lista.Columns[1].FieldName := ´NOMUSU´; Lista.Columns[1].Title.Caption:= ´Usuário´; CampoProcura.MaxLength := DM.CDS_Usuarios.FieldByName(´NOMUSU´).Size-2; end; 2: begin Lista.DataSource := DM.DS_Areceber ; Lista.Columns.Add; Lista.Columns[0].FieldName := ´doci´; Lista.Columns[0].Title.Caption:= ´Documento´; Lista.Columns.Add; Lista.Columns[1].FieldName := ´vencimento´; Lista.Columns[1].FieldName := ´vencimento´; Lista.Columns.Add; Lista.Columns[2].Title.Caption:= VlOriginal´; Lista.Columns[2].Title.Caption:= ´Valor Original´; end;
Aguardo opinião dos amigos.
Att
Mario
Aldus
Curtidas 0
Respostas
Minuto
05/06/2006
eu tenho um form de pesquisa igual:
o unica diferença é q eu deixei a grid limpa então os fields sao adicionados automaticamente ao abrir uma unica query q esta ligada ao grid
repare q eu faço runtime a SQL entao se eu precisar de um campo calculado da pra fazer pela query : ex:
select cod, nome , (valor1 + valor2)total from teste
o unica diferença é q eu deixei a grid limpa então os fields sao adicionados automaticamente ao abrir uma unica query q esta ligada ao grid
repare q eu faço runtime a SQL entao se eu precisar de um campo calculado da pra fazer pela query : ex:
select cod, nome , (valor1 + valor2)total from teste
var
frmproc: Tfrmproc;
implementation
uses udm;
{$R *.dfm}
procedure Tfrmproc.FormShow(Sender: TObject);
begin
cdsproc.Close;
case proc of
1:begin //cargos
dsproc.CommandText:=´select * from cargos´;
cdsproc.Open;
dbgrid.Columns[0].Title.caption:=´Código´;
dbgrid.Columns[1].Title.caption:=´Cargo´;
campo:=´nome´;
end;
2:begin //edital
dsproc.CommandText:=´select edital.codcargo,nome from edital inner join cargos ´ +
´on cargos.codcargo = edital.codcargo where codconc=´+ inttostr(dm.cdsconcursocodconc.Value ) ;
cdsproc.Open;
dbgrid.Columns[0].Title.caption:=´Código´;
dbgrid.Columns[1].Title.caption:=´Cargo´;
campo:=´nome´;
end;
3:begin //bancos
dsproc.CommandText:=´select codban, nomecedente,nomebanco,codcedente from bancos ´;
cdsproc.open;
dbgrid.Columns[0].Title.caption:=´Código´;
dbgrid.Columns[1].Title.caption:=´Cedente´;
dbgrid.Columns[2].Title.caption:=´Banco´;
dbgrid.Columns[3].Title.caption:=´Código Cedente´;
campo:=´nomecedente´;
end;
4:begin //Fornecedores
dsproc.CommandText:=´select codfor,razao,cidade from fornecedor ´;
cdsproc.open;
dbgrid.Columns[0].Title.caption:=´Código´;
dbgrid.Columns[1].Title.caption:=´Razão´;
dbgrid.Columns[2].Title.caption:=´Cidade´;
campo:=´razao´;
end;
5:begin //Apuração
dsproc.CommandText:=´select * from apuracao ´;
cdsproc.open;
dbgrid.Columns[0].Title.caption:=´Código´;
dbgrid.Columns[1].Title.caption:=´Apuração´;
campo:=´apuracao´;
end;
6:begin //pagar
dsproc.CommandText:=´codpag,razao,vencimento,valor,tipo,baixa from pagar ´ +
´inner join fornecedor on pagar.codfor=fornecedor.codfor order by razao asc,vencimento desc´ ;
cdsproc.open;
dbgrid.Columns[0].Title.caption:=´Código´;
dbgrid.Columns[1].Title.caption:=´Razão´;
dbgrid.Columns[2].Title.caption:=´Vencimento´;
dbgrid.Columns[3].Title.caption:=´Valor´;
dbgrid.Columns[4].Title.caption:=´Baixa´;
dbgrid.Columns[5].Title.caption:=´Data´;
campo:=´razao´;
end;
end;
end;
procedure Tfrmproc.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if edit1.Text <>´´ then
cdsproc.Locate(campo,edit1.Text,[loPartialKey,loCaseInsensitive]);
end;
GOSTEI 0
Aldus
05/06/2006
Bom dia Minuto, o segredo está em criar os novos campos (juros/quitado) no sql?
Como ficaria:
O cálculo do juro ficaria dessa forma? E quanto a aparecer Quitado (Sim ou Nâo) (Entre ????), seria assim?
Aí no meu form de consulta, continuo criando os campos normalmente, acrescentando aqueles gerados pela sql, no caso Juros, Totdevido e EstaQuitado?
Aguardo contato.
Att
Mario
Como ficaria:
Select Doc,Pa,Vencimento,VlrOriginal,((DataHoje-Vencimento)*(TaxaJuros/30)) as Juros,VlrOriginal + ((DataHoje-Vencimento)*(TaxaJuros/30)) as TotDevido,???? if Quitado=0,"Sim","Não") as EstaQuitado ???? FROM areceber where CodCli=:vCodCli
O cálculo do juro ficaria dessa forma? E quanto a aparecer Quitado (Sim ou Nâo) (Entre ????), seria assim?
Aí no meu form de consulta, continuo criando os campos normalmente, acrescentando aqueles gerados pela sql, no caso Juros, Totdevido e EstaQuitado?
Aguardo contato.
Att
Mario
GOSTEI 0
Aldus
05/06/2006
Olá amigos, aproveitando a pergunta, como poderia criar uma função que recebesse um parâmetro array multidimensional e como passar o parâmetro?
Função
Chamar a função:
Verifiquem o código pois não estou principalmente passar o parâmetro na função.
Att
Mario
Função
procedure TfConsulta.IncluiCampos(vItens: array of string); var i: integer; begin for i:=0 to High(vItens) do begin Lista.Columns.Add; Lista.Columns[i].FieldName := vItens[i,1]; Lista.Columns[i].Title.Caption := vItens[i,2]; end; end;
Chamar a função:
IncluiCampos([´codusu´,´Código´,´nomusu´,´Usuário´]);
Verifiquem o código pois não estou principalmente passar o parâmetro na função.
Att
Mario
GOSTEI 0
Aldus
05/06/2006
Bom dia amigos, alguma idéia?
GOSTEI 0
Aldus
05/06/2006
Alguma idéia
GOSTEI 0
Aldus
05/06/2006
Alguma idéia amigos
GOSTEI 0