Ir para conteúdo
  • Cadastre-se

dev botao

Como fazer o defaultfilter do FortesReport voltar para Padrão?


Ver Solução Respondido por EMBarbosa,
  • Este tópico foi criado há 1792 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Olá Tudo Bem

Uso a versão mais recente do FortesReport CE, e não consigo fazer a propriedade defaultfilter voltar par ao PADRÃO?

Eu altero assim:  RLRcobapea.defaultfilter:=DMSistema.Matricial; //draftfilter

Já tentei de tudo a única que compila mas não funciona è:

RLRcobapea.defaultfilter :=nil; 

Alguém já passou por isso? 

Desde já Muito Obrigado pela Atenção!!

Link para o comentário
Compartilhar em outros sites

  • Consultores

Olá,

   A princípio, seria melhor você explicar o que deseja conseguir, o que já tentou, e o que está acontecendo para que a gente conseguisse te ajudar melhor.

   Vou responder sua pergunta diretamente, embora talvez isso não seja o mais indicado. Por isso esse aviso...

   Você precisa armazenar o valor e retornar o valor posteriormente.

var
  oldFilter: TRLCustomPrintFilter;
begin
  //Armazena valor atual...
  oldFilter := RLRcobapea.DefaultFilter;
  try
    RLRcobapea.DefaultFilter := DMSistema.Matricial;
    ...
    ...imprimir...
    ...
  finally
    //Retorna valor anterior...
    RLRcobapea.DefaultFilter := oldFilter;
  end;

 

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Obrigado EMBARBOSA por me ajudar!!

2 horas atrás, EMBarbosa disse:

Olá,

   A princípio, seria melhor você explicar o que deseja conseguir, o que já tentou, e o que está acontecendo para que a gente conseguisse te ajudar melhor.

   Vou responder sua pergunta diretamente, embora talvez isso não seja o mais indicado. Por isso esse aviso...

   Você precisa armazenar o valor e retornar o valor posteriormente.


var
  oldFilter: TRLCustomPrintFilter;
begin
  //Armazena valor atual...
  oldFilter := RLRcobapea.DefaultFilter;
  try
    RLRcobapea.DefaultFilter := DMSistema.Matricial;
    ...
    ...imprimir...
    ...
  finally
    //Retorna valor anterior...
    RLRcobapea.DefaultFilter := oldFilter;
  end;

 

Então desculpa a dúvida mal formulada, e que como tava tentando resolver isso e tudo que tento não dá certo e com o cliente buzinando na orelha acabei formulando mal a dúvida. Não vai mais acontecer.

Mas você entendeu  corretamente era essa minha dúvida como voltar ao valor anterior do defaultfilter.

Fiz do jeito que você fez até comemorei ao ver a sua solução mas ele pega o valor anterior que nil ae depois de imprimir retorno o valor mas também não funcionou, acho que algum bug do próprio fortes.

Tentei também o RLRcobapea.defaultfilter.destroy mas da erro  acces violation.

Tentei também atribuir dessa forma:

RLRcobapea.defaultfilter:=''; //não compila

RLRcobapea.defaultfilter:=null; //também não compila

E acho que é algum bug mesmo no fortes nessa parte do default filter 

Vou continuar buscando uma solução se encontrar posto aqui.

Muito Obrigado EMBARBOSA! E mais uma  vez desculpa pela questão mal formulada.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution
Em 29/04/2019 at 18:17, Mauricio Elias disse:

Mas você entendeu  corretamente era essa minha dúvida como voltar ao valor anterior do defaultfilter.

Fiz do jeito que você fez até comemorei ao ver a sua solução mas ele pega o valor anterior que nil ae depois de imprimir retorno o valor mas também não funcionou, acho que algum bug do próprio fortes. 

Eu entendi o que você perguntou, só não entendi o que você precisa e nem o porquê você precisa.

Acho difícil ser um bug. Provavelmente a lógica está mal formulada em algum ponto.

O código que eu passei vai voltar o valor sempre para o anterior, mesmo que ele seja nil. Talvez não seja isso que você quer...

Sugiro você partir desse código e debugar para entender o que está acontecendo..

Em 29/04/2019 at 18:17, Mauricio Elias disse:

Tentei também o RLRcobapea.defaultfilter.destroy mas da erro  acces violation.

Sim. Esse código vai dar access violation.

Em 29/04/2019 at 18:17, Mauricio Elias disse:

RLRcobapea.defaultfilter:=''; //não compila 

Não compila porque defaultfilter não é string. Isso me parece código vindo de VB...

Em 29/04/2019 at 18:17, Mauricio Elias disse:

RLRcobapea.defaultfilter:=null; //também não compila

Não compila porque null é Variant e defaultfilter não é variant.

Se você está querendo atribuir uma referência com valor nulo, você quer o valor NIL.

Em 29/04/2019 at 18:17, Mauricio Elias disse:

Vou continuar buscando uma solução se encontrar posto aqui.

Muito Obrigado EMBARBOSA! E mais uma  vez desculpa pela questão mal formulada.

Então, só coloquei aquele aviso porque acho que estamos tratando do problema XY.

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom Dia Obrigado por me Ajudar.

Em 30/04/2019 at 10:06, EMBarbosa disse:

Eu entendi o que você perguntou, só não entendi o que você precisa e nem o porquê você precisa.

Acho difícil ser um bug. Provavelmente a lógica está mal formulada em algum ponto.

O código que eu passei vai voltar o valor sempre para o anterior, mesmo que ele seja nil. Talvez não seja isso que você quer...

Sugiro você partir desse código e debugar para entender o que está acontecendo..

Sim. Esse código vai dar access violation.

Não compila porque defaultfilter não é string. Isso me parece código vindo de VB...

Não compila porque null é Variant e defaultfilter não é variant.

Se você está querendo comparar um referência com valor nulo, você quer comparar com NIL.

Então, só coloquei aquele aviso porque acho que estamos tratando do problema XY.

Consegui resolver o problema.

O problema era o seguinte no cliente ele usa dois tipos de impressora uma a laser e um matricial da epson, em um determinado relatório que ele só tira na matricial, e como ele sempre esquece de mudar o filtro para matricial então eu forço a mudança só nesse relatório, mas problema e que quando saia desse relatório todos os relatórios assume a essa configuração deixando como default o filtro matricial(não entendi o porque isso acontece já forço no relatório especifico essa mudança mas os outros assumem essa configuração), mas então vem o que eu precisava que era voltar o relatório para o filtro padrão, para não interferi nós outros relatórios.

Consegui resolver o problema fazendo da seguinte forma(essa solução consegui em um fórum do fortesreport no yahoo):              

           try
                    //muda para matricial
                    RLRcobapea.defaultfilter:=DMSistema.Matricial;
                    RLRcobapea.previewmodal;
                finally
                    //volta para o padrão
                    RLFilters.SelectedFilter := nil;
                end;

pra mudar para matricial faço assim:  RLRcobapea.defaultfilter:=DMSistema.Matricial;

e pra voltar o filtro para o modo padrão só deu certo assim:  RLFilters.SelectedFilter := nil;

Tem que declarar no uses RLfilters.

Então pra que tiver com esse problema essa solução corretamente.

Problema resolvido.

Muito Obrigado EMBarbosa e a Todos!!

Obrigado!!

Editado por Mauricio Elias
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1792 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.