|
FastReport .Net: ERROR: Object reference not set to an instance of an object.
|
|||
---|---|---|---|
#18+
Доброго времени суток, коллеги. Столкнулся со странным поведением FastReport .Net Есть Aspx проект. Подключил к нему длл-ки фастрепорта и создал саму страницу. ReportView.aspx: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Тут не особо важно, что делается внутри методов. Там получаются и регистрируются данные для самого отчёта. Это всё хорошо и даже работает. Но вот незадача, если в сам отчёт добавить или таблицу, или код для обработки, то моментально ловим ошибку в компоненте FastReport.WebReport следующего содержания: ERROR: Object reference not set to an instance of an object. at FastReport.Code.AssemblyDescriptor.InitField(String name, Object c) at FastReport.Code.AssemblyDescriptor.InitFields() at FastReport.Code.AssemblyDescriptor.InternalCompile() at FastReport.Report.PreparePhase1() at FastReport.Web.Handlers.WebExport.GetReportHTML(StringBuilder sb, WebReport webReport, HttpContext context) at FastReport.Web.Handlers.WebExport.SendReport(HttpContext context) Если кто сталкивался с подобным поведением и успешно решил эту проблему, то, пожалуйста, будьте милосердны и поделитесь знанием. Также у кого есть какие идеи куда копать тоже не молчите. Сами понимаете, что без таблиц и обработчиков далеко не уедешь. Заранее спасибо за помощь. В техподдержку писал, но они что-то пока молчат. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2014, 12:37 |
|
FastReport .Net: ERROR: Object reference not set to an instance of an object.
|
|||
---|---|---|---|
#18+
Что-то тех. поддержку fastreport'а не слышно и не видно. У них там видимо "всесезонная" спячка. Так мне никто и не ответил на поставленный вопрос. Что ж, не беда. Я нашёл причину такого поведения и напишу её здесь. Дело в том, что у меня не стандартная ситуация и выборка данных происходит через ORM. Т.е. прямого доступа к БД отчёт не имеет. По этому я решил создавать отчёт вручную(базовые элементы и связь с источниками данных). Благо fastreport это позволяет. Так вот, когда создаёшь из кода какие-либо элементы для отчёта, то их нужно именовать. Для этого существует специальный метод в библиотеке fastreport'а - CreateUniqueName(). Пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
И вот вся загвоздка именно в этой функции. Она, то ли не работает, то ли работает, но как-то не так. В общем она не именует элементы и оставляет их свойство Name незаполненным. И это не критично пока вы не начинаете использовать таблицы или внутренний язык fastreport'а. Приходится заполнять это свойство вручную. И тут кроется ещё одна засада. Никогда не используйте пробел в именах элементов. Да и пожалуй спец.знаки тоже не надо. Тут я не уверен. Не проверял. Иначе вылетит точно такая же ошибка. За сим - всё. Надеюсь кому-нибудь пригодится. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2014, 15:58 |
|
|
start [/forum/topic.php?fid=31&fpage=28&tid=1533831]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
others: | 293ms |
total: | 416ms |
0 / 0 |