2009-09-28 3 views
1

Я использую Delphi 7. У меня есть механизм отчетности, реализованный с использованием Rave. Также используется экспорт в HTML, PDF и TXT. Существует проблема: если пользователь сохраняет отчет в файл напрямую (без предварительного просмотра его), расширение файла не добавляется в имя файла с помощью Rave. Таким образом, созданный файл выглядит как Report (вместо Report.pdf), и пользователю необходимо указать приложение для просмотра этого отчета вручную. Для того, чтобы решить эту проблему, я написал следующий код RvSystem1 BeforeRrint события:Rave Reports - Как найти, какой пользователь формата файла выбирает во время настройки?

procedure TRepAllForm.RvSystem1BeforePrint(Sender: TObject); 
begin 
    if RvSystem1.ReportDest=rdFile then 
     RVSystem1.OutputFileName:=RVSystem1.OutputFileName+'.pdf'; 
End; 

Но проблема в том, что если пользователь выбирает другой формат? Кто-нибудь знает, как определить, какой пользователь рендеринга выбирает? то есть HTML, PDF или TXT?

Спасибо, Тофик Гасанов

ответ

1

Кажется, что я нашел Раствор себя) я использовал RenderObject свойство RVSystem. Адрес:

процедура TRepAllForm.RvSystem1BeforePrint (Отправитель: TObject);

начинает

if RvSystem1.ReportDest=rdFile then 
Begin 
    if RVSystem1.RenderObject=RvRenderPDF1 then 
     RvSystem1.OutputFileName:=RvSystem1.OutputFileName+'.pdf' 
    else if RvSystem1.RenderObject=RvRenderHTML1 then 
     RvSystem1.OutputFileName:=RvSystem1.OutputFileName+'.html' 
    else if RvSystem1.RenderObject=RvRenderText1 then 
     RvSystem1.OutputFileName:=RvSystem1.OutputFileName+'.txt'; 

End; 

конца;