Fórum FastReport sem banco de dados #454906
11/09/2013
0
Estou precisando de uma ajuda com o FastReports e Delphi XE4, tenho um form onde não há banco de dados, somente dados em edit's...Preciso gerar um relatório com esses dados do form, mas não sei como fazer.
Achei varias coisas no forum, mas eram todas utilizando banco de dados. Que pro meu caso não serve.
Precisaria que um tuto pra começar, isto é, como chamo o Fast, como imprimo os dados de edit e radio button, e embutir o relatório no programa.
Obrigado.
Junior
Curtir tópico
+ 1Post mais votado
11/09/2013
Eu faço isso, quando meu relatório também não utiliza banco de dados.
Att,
Marcos
Marcos Oliveira
Gostei + 1
Mais Posts
11/09/2013
Junior
Eu faço isso, quando meu relatório também não utiliza banco de dados.
Att,
Marcos
Olá Marcos, vc poderia postar um código de exemplo de como faço a atribuição dos edits no cds? Sempre fiz com banco mesmo essa atribuição.
Gostei + 1
11/09/2013
Marcos Oliveira
Gostei + 1
11/09/2013
Marcos Oliveira
ClientDataSet.Append; // ou ClientDataSet.Edit; Caso queira editar um registro que já existe.
ClientDataSet.FieldByName('Campo1').AsDateTime := Date;
ClientDataSet.FieldByName('Campo2').AsFloat := 2.22;
ClientDataSet.FieldByName('Campo3').AsInteger := 1;
ClientDataSet.FieldByName('Campo4').AsString := Edit1.Text;
ClientDataSet.FieldByName('Campo5').AsString := 'TESTE';
ClientDataSet.FieldByName('Campo6').AsInteger := ClientDataSet.FieldByName('Campo6).AsInteger + 1;
ClientDataSet.Post;
Att,
Marcos
Gostei + 1
11/09/2013
Junior
Verdade dei bobeira agora....Não querendo se aproveitar mas seria possível criar uma rotina pra percorrer todos os componentes do meu form e criá-los no cds. Pra eu não ter que criar todos na mão, pois são uns 60 campos.
Tenho a procedure que percorre os componentes, só não sei como criá-los no CDS e já fazer a atribuição do text dos edits
procedure
var
i: Integer;
begin
for i := 0 to frmExemplo.ComponentCount - 1 do
begin
// Aqui eu teria que criar os campos no CDS certo?
end;
end.
Gostei + 1
12/09/2013
Marcos Oliveira
Se tiver outros tipos de componentes, você vai ter que incluí-los.
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
// Criação dos Campos no ClientDataSet;
ClientDataSet1.FieldDefs.Clear;
for i := 0 to Form1.ComponentCount - 1 do
begin
if Form1.Components[i].ClassType = TEdit then
ClientDataSet1.FieldDefs.Add(Form1.Components[i].Name,ftString,20,False);
end;
ClientDataSet1.CreateDataSet;
// Gravação dos dados no ClientDataSet
ClientDataSet1.Append;
for i := 0 to Form1.ComponentCount - 1 do
begin
if Form1.Components[i].ClassType = TEdit then
ClientDataSet1.FieldByName(Form1.Components[i].Name).AsString := (Form1.Components[i] as TEdit).Text;
end;
ClientDataSet1.Post;
end;
Att,
Marcos
Gostei + 1
12/09/2013
Junior
Agradeço pela atenção.
Att,
Junior
Gostei + 1
12/09/2013
Marcos Oliveira
Gostei + 1
12/09/2013
Deivison Melo
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)