[Logo] Форум ПАРУС
Обучение по созданию отчетов  XML
Индекс форума » Разработка на платформе Парус-Торнадо
Автор Сообщение
NADEZHDA_K
Новичок
[Avatar]

Зарегистрирован: 02.11.2012 18:54:33
Сообщений: 22
Оффлайн

SKIV wrote:По второму вопросу о часах, так никто не подскажет?


а не могли бы Вы выложить шаблон? я попробую его отладить)))) а то не очень понимаю: какие колонки добавлены и т.д. а так всё сразу наглядно будет)))

Надежда) Можно на ты)))
[Email]
M_USHAKOV
Пользователь
[Avatar]

Зарегистрирован: 14.01.2013 15:49:52
Сообщений: 680
От: Парус
Оффлайн

Шаблон тут вряд ли поможет - дело в базе данных - где то при подготовке данных для отчета используется слишком большое или слишком малое число не влезающее в разрядность представления decimal.
NADEZHDA_K
Новичок
[Avatar]

Зарегистрирован: 02.11.2012 18:54:33
Сообщений: 22
Оффлайн

M_USHAKOV wrote:Шаблон тут вряд ли поможет - дело в базе данных - где то при подготовке данных для отчета используется слишком большое или слишком малое число не влезающее в разрядность представления decimal.


да я что, я ж ничего... на шаблон натолкнула фраза
SKIV wrote:самое интересное: откатил все изменения в источнике данных (скопировал код обратно из стандартного шаблона), но ошибка не пропала!


вот и подумала, что если сначала работало, а после внесения/отмены изменений перестало, значит, дело в шаблоне. Стандартный табель открыла, а там четыре листа. вот и не пойму, куда именно колонки добавлялись(

Надежда) Можно на ты)))
[Email]
SKIV
Пользователь

Зарегистрирован: 07.11.2012 13:17:29
Сообщений: 634
Оффлайн

четыре листа

на второй, в конец таблицы, пришлось все дни чуть поджать чтобы влезло

выложить шаблон

попозже, пока занят

SHIBANOV, большое спасибо, буду пробовать отладку!

Это сообщение было изменено 1 раз. Последнее изменение было в 19.08.2013 08:57:06

[Email]
SKIV
Пользователь

Зарегистрирован: 07.11.2012 13:17:29
Сообщений: 634
Оффлайн

либо запустится отладчик, либо (если он уже подключен к серверу приложений) произойдет останов выполнения


настроил конфиг, добавил в начало процедуры указанный код, получил сообщение:

Не указан зарегистрированный отладчик JIT
Нажмите кнопку Повторить, чтобы процесс находился в состоянии ожидания во время подключения отладчика вручную
Нажмите кнопку Отмена для прекращения запроса на JIT отладку


Если жать повтор, процесс зависает, как подключить отладчик вручную не знаю.
Если жать отмена вылезает ошибка про decimal

В папке C:\Documents and Settings\All Users\Application Data\Parus.TornadoServer\Reports
создаются следующие файлы:
fmv1xn0o.out
Reportde5f279_CodeBehind.dll
Reportde5f279_CodeBehind.pdb
fmv1xn0o.0.cs
fmv1xn0o.cmdline
fmv1xn0o.err
fmv1xn0o.tmp

err и tmp пустые, куда смотреть?

Это сообщение было изменено 1 раз. Последнее изменение было в 20.08.2013 09:25:06

[Email]
SHIBANOV
Пользователь

Зарегистрирован: 06.11.2012 10:30:16
Сообщений: 514
От: Алексей Шибанов
Оффлайн

Отладку смотреть можно, например, в Visual Studio.

Это сообщение было изменено 1 раз. Последнее изменение было в 20.08.2013 11:08:04

[Email] [ICQ]
SKIV
Пользователь

Зарегистрирован: 07.11.2012 13:17:29
Сообщений: 634
Оффлайн

Не вижу сообщений об ошибках в out, только одно предупреждение:



весь код источника данных обернут в execption, я пробовал вывести номер строки вот так:



но пока безуспешно...

Это сообщение было изменено 1 раз. Последнее изменение было в 20.08.2013 09:55:19

[Email]
M_USHAKOV
Пользователь
[Avatar]

Зарегистрирован: 14.01.2013 15:49:52
Сообщений: 680
От: Парус
Оффлайн

out файл это результат компиляции файла отчета в сборку - рантайм ошибок там не найдешь.
Для отладки необходим отладчик - например VisualStudio.

SKIV
Пользователь

Зарегистрирован: 07.11.2012 13:17:29
Сообщений: 634
Оффлайн

VisualStudio нету

убрал из кода обертку exception, поставил исключение прямо перед возвратом ds:



исключение успешно отработало, выдало 0, т.е. вся программа до него ошибок не вызвала

приложил шаблон, если не сложно, посмотрите в чем проблема...
 Имя файла Ф0504421 Табель копия2.zip [Disk] Скачать
 Описание Описание отсутствует
 Размер файла 25 Kbytes
 Загружено:  4 раз(а)

Это сообщение было изменено 2 раз. Последнее изменение было в 20.08.2013 10:45:48

[Email]
SKIV
Пользователь

Зарегистрирован: 07.11.2012 13:17:29
Сообщений: 634
Оффлайн

В общем взял снова стандартный отчет, проделал все манипуляции с нуля, при сборе данных вместо

planCounter = planCounter + day.HoursNumbers.Value

написал

planCounter = planCounter + day.HoursNumbers

заработало

кому интересно, отчет в аттаче
 Имя файла Ф0504421 Табель копия.zip [Disk] Скачать
 Описание Описание отсутствует
 Размер файла 25 Kbytes
 Загружено:  14 раз(а)

[Email]
SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

M_USHAKOV wrote:
Переходить на устаревший офис? Или ждать, пока дизайнер будет 2010 офис поддерживать?

Тормошите диллеров и Москву чтоб включили в планы поддержку 2010 оффиса + . На данный момент поддерживается 2003 и 2007

действительно поддерживается TornadoReportDesigner в Excelе 2003?
в документации написано, что поддерживается только в 2007

так поддерживается в 2003 или нет,
и если поддерживается, то как его заставить работать в 2003 ?!
потому что в 2007 он есть и работает,
а в 2003 при этом его не видно в надстройках

Это сообщение было изменено 1 раз. Последнее изменение было в 26.10.2013 14:51:04

SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

http://support.parus.ru/forum/posts/list/79806.page#437385

SAMOROKOVSKIY wrote:Устанавливаю TornadoExcelReportDesignerSetup.exe из (2012-12), он сообщает, что у меня не установлен Office 2007. Это действительно так, т.к. у меня Office 2010, что делать? Переходить на устаревший офис? Или ждать, пока дизайнер будет 2010 офис поддерживать? Сколько примерно?


можно ведь просто установить на компьютере и тот, и другой Office
на компе сейчас 4 офиса стоят: 97, 2000, 2003 и 2007
и все нужны так или иначе
и ничё, не падает

Некоторые неудобства конечно есть: нужную версию Excel приходится выбирать руками, то есть запускать сначала нужный Excel с ярлыка, потому что по расширению файла запускается всегда 2007й Excel
M_USHAKOV
Пользователь
[Avatar]

Зарегистрирован: 14.01.2013 15:49:52
Сообщений: 680
От: Парус
Оффлайн

SARGEANT wrote:
так поддерживается в 2003 или нет,

Уже не поддерживатеся.

Это сообщение было изменено 1 раз. Последнее изменение было в 30.10.2013 14:41:27

SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

Для отладки скрипта источника данных в отчете пытаюсь использовать метод разметки кода MessageBox’ами. То есть чтоб в нужных местах выдавало те или иные сообщения, по которым можно судить куда пошло выполнение.

MessageBox ищу по справке Visual Studio, нахожу
System.Windows.Forms.MessageBox

Вставляю в скрипт строку типа:
System.Windows.Forms.MessageBox.Show("место 1", "this is caption", System.Windows.Forms.MessageBoxButtons.OKCancel, System.Windows.Forms.MessageBoxIcon.Asterisk);

Оно жалуется:
Ошибка компиляции скриптов отчёта!
d:\Documents and Settings\All Users\Application Data\Parus.TornadoServer\Reports\cj2rn2kw.0.cs(596,13) : error CS0234: The type or namespace name 'Windows' does not exist in the namespace 'System' (are you missing an assembly reference?)

1) Как заставить ее кушать System.Windows.Forms.MessageBox? судя по документации «Прикладное программирование в системе торнадо.docx», ссылки добавляются через свойство Usings. Но там оно предлагает выбрать файл пакета, а пакеты здесь похоже ни при чем. Какой пакет выбирать-то?

2) Или может можно решить по-другому: может есть другой какой-нибудь MessageBox, родной из платформы, который можно использовать для данной цели? как его вызывать?

3) Как всё-таки применять в скрипте все возможности из System.Windows.Forms и других подобных мест?
SHIBANOV
Пользователь

Зарегистрирован: 06.11.2012 10:30:16
Сообщений: 514
От: Алексей Шибанов
Оффлайн

Первое. Отчет формируется на сервере, и скрипты отчета выполняются там же.
Второе. Для показа сообщений в целях отладки можно использовать исключения.
В нужном месте вставьте

Это сообщение было изменено 1 раз. Последнее изменение было в 04.11.2013 20:26:38

[Email] [ICQ]
SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

Спасибо!
а третье?

Хорошо, в принципе оно же и первое. То есть "скрипты выполняются на сервере". Предположим, из-за этого MessageBox, выдаваемый сервером, то есть службой, нельзя увидеть пользователю. Но это уже дело десятое. Главное третье - то есть как заставить ее кушать в скрипте все возможности из System.Windows.Forms и других подобных мест? ведь они же нужны! Функционал парусных пакетов хотя и большой, но по сравнению со всей библиотекой Майкрософта - всё равно же мал.
?
SHIBANOV
Пользователь

Зарегистрирован: 06.11.2012 10:30:16
Сообщений: 514
От: Алексей Шибанов
Оффлайн

Здесь надо понимать, что сервер приложений Торнадо кроссплатформенный.
Чего Вам не хватает в функционале парусных пакетов?

Это сообщение было изменено 1 раз. Последнее изменение было в 05.11.2013 11:19:06

[Email] [ICQ]
SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

1) Не хватало MessageBox'а - чего же еще?
Чего еще не хватает - пока не знаю. Но поскольку библиотека Майкрософт больше, то по закону больших чисел - в скором времени обязательно найдется чего не хватает. Надеюсь, эта теорема не сильно нуждается в формальном доказательстве

2) Как минимум не хватает документации. Парусные дела недостаточно документированы, а майкрософтовские - слава богу, документированы нормально. Поэтому ими и приходится пользоваться, вместо чтоб искать нивесть где, как это делается по-парусному. Такая же ситуация сплошь и рядом была в Парус7 и 8 - многие заново писали многочисленный мелкий функционал, не зная о родных московских вещах. В Парус7 можно было чего угодно написать, в Парус8 - тоже почти что угодно. Хорошего в этом мало, но за неимением лучшего - сойдет. Но увы - в Парус10 эта свобода не работает. Вот и вопрос - как сделать чтоб работала
SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

а что меняет тот факт что "сервер Торнадо кросплатформенный"? не понятно
M_USHAKOV
Пользователь
[Avatar]

Зарегистрирован: 14.01.2013 15:49:52
Сообщений: 680
От: Парус
Оффлайн

Мда.
1. Вы что и отчеты из службы отлаживать собрались?
2. Запускайте сервер консольно.
3. Порядок настройки сервера для отладки отчетов в изложен выше
4. Кроссплатформенность сервера означает что многи евещи из WindowsForms. могут работать по разному на разных платформах.
5. Сомнительно что в подготовке данных для отчета нужно использовать UI а уж тем более MessageBox. так как процедуры подготовки данных запускаются в разных потоках можно схлопотать много чего интересного из за однопоточности Windows.Forms/
6. Используйте отладчик.
SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

1) Отчеты отлаживать мы собирались из того же, из чего они печатаются в программе. Если из службы — значит из службы. Ведь запускать в консольном режиме и использовать отладчик Visual Studio — это дополнительные трудозатраты, без которых, естественно, хотелось по возможности обойтись

4) По-прежнему не понятно, при чем здесь кроссплатформенность сервера. Разумеется «многие вещи из Windows.Forms могут работать по разному на разных платформах». Ну и что?
Речь у нас идет о том, что в скрипте отчета — вообще не работают. Ни «по-разному», ни как-либо еще

Как заставить чтобы работали? пусть это будет в конечном результате «по-разному, со схлопотанием многого чего интересного», ради бога, это уже проблемы другого порядка, — но чтоб работали. Почему не работают-то?!
SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

еще раз подчеркиваю, что речь идет не только и столько об именно System.Windows.Forms!

мало что ли в .NET других, не юзер-интерфейсных наворотов, которые могут понадобиться. Как заставить чтобы они работали из скрипта?

То есть если это специально ограничено - то почему? А если ограничено технологией - то какой именно, каким именно местом?!
SHIBANOV
Пользователь

Зарегистрирован: 06.11.2012 10:30:16
Сообщений: 514
От: Алексей Шибанов
Оффлайн

В скриптах отчета Add Assembly Reference, на вкладке System Assemblies выбираете нужную сборку. По идее после этого можете использовать типы из этой сборки.
[Email] [ICQ]
M_USHAKOV
Пользователь
[Avatar]

Зарегистрирован: 14.01.2013 15:49:52
Сообщений: 680
От: Парус
Оффлайн

SARGEANT wrote:1) Отчеты отлаживать мы собирались из того же, из чего они печатаются в программе. Если из службы — значит из службы. Ведь запускать в консольном режиме и использовать отладчик Visual Studio — это дополнительные трудозатраты, без которых, естественно, хотелось по возможности обойтись


Странная позиция.
Вы что на боевом сервере собрались поупражняться?
Еще раз не создавайте себе трудностей на ровном месте. В конечном итоге ваше "хотелось по возможности обойтись" как бы не дороже будет


Это сообщение было изменено 1 раз. Последнее изменение было в 05.11.2013 15:57:11

SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

SHIBANOV wrote:В скриптах отчета Add Assembly Reference, на вкладке System Assemblies выбираете нужную сборку. По идее после этого можете использовать типы из этой сборки.

Спасибо!
будем надеяться, что это работает

M_USHAKOV wrote:Вы что на боевом сервере собрались поупражняться?

на том, который есть, на том и собрался, не задумываясь о том боевой он или нет, кросплатформенный или нет. Что еще я должен был делать?!

Вы, когда сдаете машину в автосервис и Вам говорят: «Вы что, на эти диски эту резину собрались натянуть» — что можете ответить? если эта запаска прилагалась в комплекте с машиной, и диски тоже. Я ничего не собирался — я собирался стертую резину поменять, и всё!

Это сообщение было изменено 1 раз. Последнее изменение было в 05.11.2013 16:43:25

M_USHAKOV
Пользователь
[Avatar]

Зарегистрирован: 14.01.2013 15:49:52
Сообщений: 680
От: Парус
Оффлайн

SARGEANT wrote:
на том, который есть, на том и собрался, не задумываясь о том боевой он или нет, кросплатформенный или нет. Что еще я должен был делать?!

Вы, когда сдаете машину в автосервис и Вам говорят: «Вы что, на эти диски эту резину собрались натянуть» — что можете ответить? если эта запаска прилагалась в комплекте с машиной, и диски тоже. Я ничего не собирался — я собирался стертую резину поменять, и всё!

ЖЖэсть, а ваш пример поправлю - просто когда вы в сервис сдаете машину и прикладываете к ней рессоры от трактора Беларусь - ставьте сервисмены.
То же самое, Вам пытаются разжевать как сделать без лишних проблем, а вы же хотите перанально гланды вырезать..

Это сообщение было изменено 1 раз. Последнее изменение было в 05.11.2013 16:58:09

KORYAVCHENKO_A_V
Новичок

Зарегистрирован: 16.11.2012 19:26:47
Сообщений: 28
Оффлайн

SHIBANOV wrote:Второе. Для показа сообщений в целях отладки можно использовать исключения.
В нужном месте вставьте


В новой версии платформы лучше для этого использовать сервис ILogger
M_USHAKOV
Пользователь
[Avatar]

Зарегистрирован: 14.01.2013 15:49:52
Сообщений: 680
От: Парус
Оффлайн

KORYAVCHENKO_A_V wrote:
В новой версии платформы лучше для этого использовать сервис ILogger

Или для вызова отладчика System.Diagnostics.Debugger.Break()

Это сообщение было изменено 1 раз. Последнее изменение было в 05.11.2013 17:18:46

SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

Спасибо, господа, вот это ближе к делу. Очень полезные методы

M_USHAKOV wrote:ЖЖэсть, а ваш пример поправлю - просто когда вы в сервис сдаете машину и прикладываете к ней рессоры от трактора Беларусь - ставьте сервисмены.

хорошо, видимо мой пример требует разъяснений

Я сдаю в сервис то, что получил от продавца. Не получал я от него рессор от Беларуси (надеюсь, их Москва в комплект к Торнадо всё же не включает?), а получал диски и шины

То есть сервер в виде службы я от него получал, и отчеты в виде отчетов.
А сервер, оказывается, для отладки отчетов надо запускать не в виде службы.
Ну не в виде — так не в виде, но с чего претензия, что я должен был это считать само собой разумеющимся?
тем более что ни в 1Се, ни в Парусе7 и 8 ничего перезапускать не требуется.

M_USHAKOV wrote:То же самое, Вам пытаются разжевать как сделать без лишних проблем, а вы же хотите перанально гланды вырезать..

спасибо, но:
- я разве отказывался от Ваших предложений по использованию отладчика? нет, не отказывался. Я просто еще и спрашивал, как заставить чтобы работали майкрософтовские библиотеки
- не корректно оправдывать заботой о нашем благополучии уходы от ответа на вопросы. На вопрос «как заставить чтобы майкрософтовские библиотеки работали в скрипте» вынужден был почему-то отвечать Шибанов.

Это сообщение было изменено 2 раз. Последнее изменение было в 06.11.2013 08:04:29

SARGEANT
Опытный пользователь

Зарегистрирован: 01.02.2013 14:12:25
Сообщений: 1981
Оффлайн

SHIBANOV wrote:В скриптах отчета Add Assembly Reference, на вкладке System Assemblies выбираете нужную сборку. По идее после этого можете использовать типы из этой сборки.

нет, не работает это. Так же жалуется, как и без.

Например, добавил первую по порядку в списке ссылку, то есть Accessibility. Тем не менее при попытке использовать в скрипте жалуется:
The type or namespace name 'Accessibility' could not be found (are you missing a using directive or an assembly reference?

то есть это место - в Торнадо игнорируется.
Плохо, господа!

Это сообщение было изменено 1 раз. Последнее изменение было в 07.11.2013 11:32:38

 
Индекс форума » Разработка на платформе Парус-Торнадо
Перейти: