Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Alterar componente


Douglas Soares

Pergunta

Boa tarde, estou usando o componente QuickReport 5.02 para delphi 7, ele tem uns componentes na guia QReport que servem para salvar em pdf, word, excel, txt, e muito mais... porem tenho muuuuuuuuitos relatórios, e para adicionar esses componentes em todos seria mt dificil... teria um jeito de deixar isso padrão para todos os q tem esse quickreport neles???

Obrigado

Editado por Douglas_Soares
Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Resolvi 90% do que eu precisava... só que tem mais uma coisa, quando clico em salvar, vem como padrão o formato, quick report file, *.qrp, porem queria que saisse dali esse formato ou viesse um outro por cima, o Pdf, *.pdf, como devo proceder?

Link para o comentário
Compartilhar em outros sites

  • 0
Resolvi 90% do que eu precisava... só que tem mais uma coisa, quando clico em salvar, vem como padrão o formato, quick report file, *.qrp, porem queria que saisse dali esse formato ou viesse um outro por cima, o Pdf, *.pdf, como devo proceder?

Veja este post

http://scriptbrasil.com.br/forum/index.php...st&p=498006

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Olha só, ele tem uma variavel sdialog que é um savedialog, dai eu botei nesse form qrprev 3 componentes, o QRPDFFilter1, QRHTMLFilter1, QRRTFFilter1, dai quando to num relatório e clico em salvar, os tipos de arquivos aparecem assim:

qrps.jpg

Percebe-se que no começo é .PDF e dps QuickReport File (*.QRP), PDF Document (*.PDF) e RTF File (*.RTF)...

o que não consigo tirar é esse .PDF do começo e deixar que a primeira opção seja o PDF Document (*.PDF)..... e se possivel, remover tambem a opção QuickReport File (*.QRP)...

Como devo proceder?

Obrigado

Editado por Douglas_Soares
Link para o comentário
Compartilhar em outros sites

  • 0

Opa, agora foi 95%, troquei isso:

sdialog.Filter := QRSaveExtensions[FParentreport.PreviewDefaultSaveType]+'|*'
                                   + QRSaveExtensions[FParentreport.PreviewDefaultSaveType]+'|'
                                   + QRExportFilterLibrary.SaveDialogFilterString;
por isso:
sdialog.Filter := QRExportFilterLibrary.SaveDialogFilterString;

dai só não aparece aquele .PDF la no começo....... agora o que preciso é que ele troque a extensão quando eu selecionar outra, por exemplo, ele carrega o nome padrão como Relatorio, ou seja, Relatorio.qrp, se eu trocar a extensão deveria trocar pra Relatorio.pdf, ou Relatorio.rtf.... e assim vai.... porem ele não está trocando o nome, e assim ele não está salvando corretamente.... o que fazer?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Segue o código do botão Salvar para análise:

procedure TQRStandardPreview.SaveClick(Sender: TObject);
var
  aExportFilter : TQRExportFilter;
  filtLibEntry : TQRExportFilterLibraryEntry;
  sdialog : TSaveDialog;
  sext, savefile : string;
  findx : integer;
begin
  eventHandled := false;
  if assigned(FParentReport.OnStandPrevEvent) then
                 FParentReport.OnStandPrevEvent( self, spSave, 'Save',eventHandled);
  if eventHandled then exit;

  aExportFilter := nil;
  sdialog := TSaveDialog.Create(Application);
  try
    sdialog.Title := SqrSaveReport;
    sdialog.Filter := QRExportFilterLibrary.SaveDialogFilterString;
    //sdialog.DefaultExt := QRSaveExtensions[FParentreport.PreviewDefaultSaveType];
    sdialog.Filename := 'Relatorio' + QRSaveExtensions[FParentreport.PreviewDefaultSaveType];
    if not sdialog.Execute then exit;
    sext := ExtractFileExt( sdialog.FileName);
    savefile := sdialog.FileName;
    sext := upperCase( sext);
    // enforce an extension
    if sext = '' then
    begin
        findx := sdialog.FilterIndex-1;
        if findx = 0 then
           sext := QRSaveExtensions[FParentreport.PreviewDefaultSaveType]
        else if findx = 1 then
           sext := 'QRP'
        else
        begin
         try
           sext := TQRExportFilterLibraryEntry( QRExportFilterLibrary.Filters[findx - 2]).Extension;
         except
           sext := QRSaveExtensions[FParentreport.PreviewDefaultSaveType]
         end;
        end;
        if sext[1] = '.' then sext := copy( sext, 2, 3 );
        savefile := savefile + '.' + sext;
    end;
    if sext[1] = '.' then sext := copy( sext, 2, 3 );
    if sext='QRP' then
    begin
        QRPrinter.Save(savefile);
        exit;
    end;
    filtLibEntry := QRExportFilterLibrary.GetFilterByExtension(sext);
    if filtLibEntry=nil then exit;
    try
      aExportFilter := filtLibEntry.ExportFilterClass.Create(savefile);
      if FParentreport.ParentComposite <> nil then
         TQRCompositeReport( FParentreport.ParentComposite).ExportToFilter(aExportFilter)
      else
         FParentreport.ExportToFilter(aExportFilter);
    finally
      aExportFilter.Free
    end
  finally
    sdialog.Free;
  end;
end;

Link para o comentário
Compartilhar em outros sites

  • 0

99% agora meu caro Jhonas... o questão de salvar no formato correto eu resolvi assim:

procedure TQRStandardPreview.SaveClick(Sender: TObject);
var
  aExportFilter : TQRExportFilter;
  filtLibEntry : TQRExportFilterLibraryEntry;
  sext, savefile : string;
  findx : integer;
begin
  eventHandled := false;
  if assigned(FParentReport.OnStandPrevEvent) then
                 FParentReport.OnStandPrevEvent( self, spSave, 'Save',eventHandled);
  if eventHandled then exit;

  aExportFilter := nil;
  sdialog := TSaveDialog.Create(Application);
  try
    sdialog.Title := SqrSaveReport;
    sdialog.Filter := QRExportFilterLibrary.SaveDialogFilterString;
    //sdialog.DefaultExt := QRSaveExtensions[FParentreport.PreviewDefaultSaveType];
    sdialog.FilterIndex := 2;
    sdialog.Filename := 'Relatorio';

    if not sdialog.Execute then exit;

        if sdialog.FilterIndex = 1 then
    sdialog.Filename := sdialog.FileName + '.qrp';

    if sdialog.FilterIndex = 2 then
    sdialog.Filename := sdialog.FileName + '.pdf';

    if sdialog.FilterIndex = 3 then
    sdialog.Filename := sdialog.FileName + '.htm';

    if sdialog.FilterIndex = 4 then
    sdialog.Filename := sdialog.FileName + '.rtf';

    sext := ExtractFileExt( sdialog.FileName);
    savefile := sdialog.FileName;
    sext := upperCase( sext);
    // enforce an extension
    if sext = '' then
    begin
        findx := sdialog.FilterIndex-1;
        if findx = 0 then
           sext := QRSaveExtensions[FParentreport.PreviewDefaultSaveType]
        else if findx = 1 then
           sext := 'QRP'
        else
        begin
         try
           sext := TQRExportFilterLibraryEntry( QRExportFilterLibrary.Filters[findx - 2]).Extension;
         except
           sext := QRSaveExtensions[FParentreport.PreviewDefaultSaveType]
         end;
        end;
        if sext[1] = '.' then sext := copy( sext, 2, 3 );
        savefile := savefile + '.' + sext;
    end;
    if sext[1] = '.' then sext := copy( sext, 2, 3 );
    if sext='QRP' then
    begin
        QRPrinter.Save(savefile);
        exit;
    end;
    filtLibEntry := QRExportFilterLibrary.GetFilterByExtension(sext);
    if filtLibEntry=nil then exit;
    try
      aExportFilter := filtLibEntry.ExportFilterClass.Create(savefile);
      if FParentreport.ParentComposite <> nil then
         TQRCompositeReport( FParentreport.ParentComposite).ExportToFilter(aExportFilter)
      else
         FParentreport.ExportToFilter(aExportFilter);
    finally
      aExportFilter.Free
    end
  finally
    sdialog.Free;
  end;
end;

Alterei o Onclick do btnSalvar do qrPrev.pas, fiz uma gambi rsrsrs, na hora de salvar eu pego nome do arquivo, e checo se sdialog.filterindex = 1 dai é qrp, 2 = pdf, 3 = htm, e 4 = rtf, porem tenho que deixar sómente Nome do arquivo, se eu digitar Relatorio.pdf e no tipo de arquivo tiver escrito htm, ele ira salvar como Relatorio.pdf.htm, q é o correto, porem eu gostaria que ficasse o nome do arquivo + extensão.... se ngm puder ajudar não tem problema, assim já fica bom, é só questão de luxo, rsrsrsrs

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Aqui Jhonas, um Export Filter Library totalmente Free... baixa a versão 1.2 se quiser confirmar!

http://usuarios.lycos.es/isma/expack.htm

Agora... depois de ter adicionado o componente no Form eu peguei e fiz uma edição no salvar porem está dando erro...

procedure TQRStandardPreview.SaveClick(Sender: TObject);
var
  aExportFilter : TQRExportFilter;
  filtLibEntry : TQRExportFilterLibraryEntry;
  sext, savefile : string;
  findx : integer;
  caminho, arquivo : string;
begin
  eventHandled := false;
  if assigned(FParentReport.OnStandPrevEvent) then
                 FParentReport.OnStandPrevEvent( self, spSave, 'Save',eventHandled);
  if eventHandled then exit;

  aExportFilter := nil;
  sdialog := TSaveDialog.Create(Application);
  try
    sdialog.Title := SqrSaveReport;
    sdialog.Filter := QRExportFilterLibrary.SaveDialogFilterString;    //sdialog.DefaultExt := QRSaveExtensions[FParentreport.PreviewDefaultSaveType];
    sdialog.FilterIndex := 2;
    sdialog.Filter := sdialog.Filter + '|Imagem Jpg(*.JPG)|*.jpg|Imagem Bmp(*.BMP)|*.bmp';
    sdialog.Filename := 'Relatorio';

    if not sdialog.Execute then exit;

    if sdialog.FilterIndex = 1 then
    sdialog.Filename := sdialog.FileName + '.qrp';

    if sdialog.FilterIndex = 2 then
    sdialog.Filename := sdialog.FileName + '.pdf';

    if sdialog.FilterIndex = 3 then
    sdialog.Filename := sdialog.FileName + '.htm';

    if sdialog.FilterIndex = 4 then
    sdialog.Filename := sdialog.FileName + '.doc';

    if sdialog.FilterIndex = 5 then
    begin
    sdialog.Filename := sdialog.FileName + '.jpg';
    caminho := ExtractFilePath(sdialog.FileName);
    arquivo := ExtractFileName(sdialog.FileName);
    ExportQR1.ExportQRJPG(caminho + arquivo);
    Exit;
    end;

    if sdialog.FilterIndex = 6 then
    begin
    sdialog.Filename := sdialog.FileName + '.bmp';
    caminho := ExtractFilePath(sdialog.FileName);
    arquivo := ExtractFileName(sdialog.FileName);
    ExportQR1.ExportQRBMP(caminho + arquivo);
    Exit;
    end;

    sext := ExtractFileExt( sdialog.FileName);
    savefile := sdialog.FileName;
    sext := upperCase( sext);
    // enforce an extension
    if sext = '' then
    begin
        findx := sdialog.FilterIndex-1;
        if findx = 0 then
           sext := QRSaveExtensions[FParentreport.PreviewDefaultSaveType]
        else if findx = 1 then
           sext := 'PDF'
        else
        begin
         try
           sext := TQRExportFilterLibraryEntry( QRExportFilterLibrary.Filters[findx - 2]).Extension;
         except
           sext := QRSaveExtensions[FParentreport.PreviewDefaultSaveType]
         end;
        end;
        if sext[1] = '.' then sext := copy( sext, 2, 3 );
        savefile := savefile + '.' + sext;
    end;
    if sext[1] = '.' then sext := copy( sext, 2, 3 );
    if sext='PDF' then
    begin
        QRPrinter.Save(savefile);
        exit;
    end;
    filtLibEntry := QRExportFilterLibrary.GetFilterByExtension(sext);
    if filtLibEntry=nil then exit;
    try
      aExportFilter := filtLibEntry.ExportFilterClass.Create(savefile);
      if FParentreport.ParentComposite <> nil then
         TQRCompositeReport( FParentreport.ParentComposite).ExportToFilter(aExportFilter)
      else
         FParentreport.ExportToFilter(aExportFilter);
    finally
      aExportFilter.Free
    end
  finally
    sdialog.Free;
  end;
end;

Mas não consigo salvar como JPG ou BMP sendo que acabei de adicionar a opção pra ver se funciona!.............

O que fazer?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Graças a Deus... fucei fucei, peguei os codigos do ExportPack.pas, coloquei o de JPG e BMP no QRPrev.pas e fui editando conforme as necessidades, e então... Eureka!!!... perfeito... vlw as dicas Jhonas, eu sou seu Fã numero 1!!! :lol:

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...