|
![]() |
#1 |
Участник
|
DAX2009
\Classes\GanttVcWorkdayCollection сравниваем методы: X++: public GanttVcWorkday createWorkday(str _workdayName, // Type: str (up to 1000 chars) boolean _makeAllDayNonWorking = false) { ... ... ... } X++: public GanttVcWorkday findWorkdayName(Name _workdayName, // Type: Name (str 60 - max- 60 chars) boolean _throwErrorIfNotFound = false) { ... ... ... } - createCalendar(str _calendarName) - findCalendarName(Name _calendarName) P.S.: Возможно в стандарте ошибка и не проявляется, у нас проявилась при использовании классов посторения диаграм Ганта из нашего кода. Последний раз редактировалось petr; 20.10.2008 в 16:57. |
|
![]() |
#2 |
Участник
|
Петр, правильно ли я понял, что вы при создании диаграмм указывали имена Calendar/Workday длиной больше, чем 60 символов? (Причина ошибки, собственно)
|
|
![]() |
#3 |
Участник
|
Цитата:
Я в своем коде (если быть полностью точным то он был написан не мной под четверку, я переносил его на пятерку) работаем только с классов GanttClient (ну и его подклассами). При инициализации нашей формы через load() методы классов GanttClient -> GanttData вызывается в итоге метод createWorkday. Далее пользователь в форме выбирает рабочий центр (WkrCtrId) и период планирования. Соответвенно эти новые данные передаются класс GanttClient, затем вызывается метод load(), который пересчитывает все внутренне содержимое. Значение "проблемной" переменной workdayName формируется внутри стандарного функционала и для некоторых работ (ProdRouteJob) формируется из наименований первичного (Primary) рабочего центра плюс последовательно все вторичные (secondary). В нашем случае для одной операции (или работы ProdRouteJob) сформированный идентификатор календаря (workdayName) превысил заданные 60 символов. В итоге получилось так, что вначале, при инициализации формы, GanttVcWorkday был создан, а при выборе в форме рабочего центра содержащего определеную операцию, метод findWorkdayName() не находил GanttVcWorkday. Далее система пыталась создать его заново, но при создании второго GanttVcWorkday с одинаковым именем COM объект живущий внутри GanttVcWorkday выдавал ошибку. Вообщем немного коряво получилось описать. На конкретном примере все будет более понятно. Попробую на днях более четко описать проблемы - хотя самое важное и так понятно - хотелось бы, чтобы функции были симметричными - или обо обрезали до 60 символов или обе не обрезали. Инече конструкция из кода, когда вызывается: If (! aa.findWorkdayName(x)) { aa.createWorkday(x); } Если переменная x имеет длину более 60 символов. |
|
|
За это сообщение автора поблагодарили: kashperuk (5). |
Теги |
bug report, баг, ошибка, dynamics |
|
|