Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.149.230.44] |
|
Сообщ.
#1
,
|
|
|
Всем привет,
у меня есть очень много отчетов Crystal Reports ввиде rpt-файлов. Для работы с этими файлами, я хочу частично автоматизировать свои действия. Например, я хочу выгрузить все SQL-скрипты из отчетов в один текстовый файл. Поэтому я сделал и протестировал программулину, которая выгружает SQL в отдельный файл. По началу все было ОК. Но потом обнаружилось, что программа падает (crash) на определенных rpt-файлах, именно в момент открытия файла: Цитата CrystalDecisions.CrystalReports.Engine.ReportDocument doc; doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); try { doc.Load("D:\\Temp_01\\Test.rpt"); } catch (Exception ex) { MessageBox.Show("ErrorTest"); return; } catch { MessageBox.Show("ErrorTest"); return; } отчеты, на которых падает программа, содержат невалидные CR ф-ции. Эти отчеты нормально открываются в самой среде CR. И в них нет нечего плохого, они просто имеют невалидный статус, в процессе разработки. Мне бы хотелось обойти эти отчеты и продолжить обрабатывать следующие rpt-файлы, но прога полсе таких вот отчетов просто прекращает свою работу. Блок try{}catch{} в этом случае просто бесполезен. Действие doc.Load останавливает работу основной программы, даже если я эти отчеты обрабатываю в отдельном потоке. Я почти уверен, что это баг Crystal Report-а, так как считаю что rpt-файлы могут быть и поврежденными, и невалидными, а могут просто содержать другой формат файла, но это состояние файлов не должно останавливать работу основной программмы. Как можно в данной ситуации пропустить невалидные rpt-файлы, так чтоб прога не спотыкалась, а пропускала их и записывала информацию в лог? Я также этот вопрос задавал на офф. сайте SAP, но что то там не особо стараются отвечать за свой продукт |
Сообщ.
#2
,
|
|
|
Ищу "правильную" версию отчетов для С#: XtraReports, Stimul Reports или, если есть, какие-нибудь другие.
|