FastReport sem banco de dados
Caros amigos,
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.
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
Curtidas 1
Melhor post
Marcos Oliveira
11/09/2013
Junior, porque você não cria um ClientDataSet pra armazenar esses dados, e vincula ele com o FastReport?
Eu faço isso, quando meu relatório também não utiliza banco de dados.
Att,
Marcos
Eu faço isso, quando meu relatório também não utiliza banco de dados.
Att,
Marcos
GOSTEI 1
Mais Respostas
Junior
11/09/2013
Junior, porque você não cria um ClientDataSet pra armazenar esses dados, e vincula ele com o FastReport?
Eu faço isso, quando meu relatório também não utiliza banco de dados.
Att,
Marcos
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
Marcos Oliveira
11/09/2013
GOSTEI 1
Marcos Oliveira
11/09/2013
Junior, segue abaixo um exemplo com vários tipos de campos... Deu erro na página durante a postagem anterior, então estou enviando novamente.
Att,
Marcos
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
Junior
11/09/2013
Junior, segue abaixo um exemplo com vários tipos de campos.
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
Marcos Oliveira
11/09/2013
Junior, segue abaixo um exemplo. Fiz o exemplo pra pegar somente os componentes TEdit.
Se tiver outros tipos de componentes, você vai ter que incluí-los.
Att,
Marcos
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
Junior
11/09/2013
Muito obrigado mesmo Marcos, perfeito.
Agradeço pela atenção.
Att,
Junior
Agradeço pela atenção.
Att,
Junior
GOSTEI 1
Marcos Oliveira
11/09/2013
Por nada! Abraço!
GOSTEI 1
Deivison Melo
11/09/2013
Finalizando o tópico!
GOSTEI 1