Ir para conteúdo
  • Cadastre-se

dev botao

Pegar o valor de um Memo do FastReport no código do Delphi em tempo de execução


  • Este tópico foi criado há 862 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

while not (MasterData.dataset.Eof) do
begin
  for Col := 0 to MasterData.AllObjects.Count - 1 do
  begin
     Pasta.Cells[Lin, Col + 1] := TfrxMemoView(MasterData.Objects.Items[Col]).Text);
  end;
end;

Olá pessoal, eu tenho esse código para que percorre o masterdata do meu relatório em fast e pego os memos que estão dentro dele porem eu queria pegar o valor do memo e não o texto já tentei o .Value mas me retorna em branco. Alguém saberia como eu posso acessar essa informação?

Memo1.png

memo2.png

Link para o comentário
Compartilhar em outros sites

  • Moderadores
26 minutos atrás, Lucas Emanuel Silva disse:

Olá pessoal, eu tenho esse código para que percorre o masterdata do meu relatório em fast e pego os memos que estão dentro dele porem eu queria pegar o valor do memo e não o texto já tentei o .Value mas me retorna em branco. Alguém saberia como eu posso acessar essa informação?

Em que momento você está chamando essa rotina?

Se o relatório não está em execução creio que vai retornar em branco mesmo.

Me parece que o correto nesse caso seria implementar o OnBeforePrint da banda.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Eu chamo ele depois que o relatório esta na tela, eu estou criando um exportador em CSV direto no relatório, por que o do fast não me agradou. Só preciso pegar o valor do Memo e não o texto que eu passo pra ele acessar o valor da base. 

Ex: [frxDBDataset1."NOME"] hoje eu tenho acesso a essa informação, porém eu quero o retorno dela no caso "Lucas Silva"

Link para o comentário
Compartilhar em outros sites

  • Moderadores
4 minutos atrás, Lucas Emanuel Silva disse:

Eu chamo ele depois que o relatório esta na tela, eu estou criando um exportador em CSV direto no relatório, por que o do fast não me agradou. Só preciso pegar o valor do Memo e não o texto que eu passo pra ele acessar o valor da base. 

Entendi, mas o código que postou a meu ver não vai surtir efeito, não é porque mudou o cursor no dataset que a banda vai refletir o conteúdo automaticamente, o relatório já foi preparado.

Se você tem os fontes (eu não tenho), pode estudar os métodos de exportação padrão.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
33 minutos atrás, Lucas Emanuel Silva disse:

Fiz o código dentro do relatório no onAfterPrint com .Value e me retornou os dados, sera que tem como eu fazer o código fora do relatório no onAfterPrint? 

Tente usar o OnAfterPrint do componente TfrxReport.

procedure TForm1.frxReport1AfterPrint(Sender: TfrxReportComponent);
begin
  if Sender.Name = 'MasterData1' then
    ShowMessage('Hello');
end;

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Fiz assim mas mesmo assim não retorna nada vem em branco o value

procedure TDMFast.frxReport1AfterPrint(Sender: TfrxReportComponent);
var
  MasterData : TfrxMasterData;
  Col: integer;
begin
  MasterData := frxReport1.FindObject('MasterData1') as TfrxMasterData;

  MasterData.DataSet.Close;
  MasterData.DataSet.Open;

  MasterData.DataSet.First;
  while not (MasterData.DataSet.Eof) do
  begin
    for Col := 0 to MasterData.AllObjects.Count - 1 do
    begin
      ShowMessage(TfrxMemoView(MasterData.Objects.Items[Col]).Value);
    end;
    MasterData.dataset.Next;
  end;
end;

 

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • Este tópico foi criado há 862 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.