|
|
#1 |
|
Гость
|
Попытка исправить глюк в форме SysConView, 3.0 sp4 kr2
Описание проблемы
Есть форма (в моём случае - LedgetBudget), на которой в ClassDeclaration прописано: Код: class FormRun extends ObjectRun
{
Dimension dimension;
#define.CurrentVersion(7)
#localmacro.CurrentList
dimension,
#endmacro
//(всё лишнее покусано)
}Далее открываем эту форму, делаем настройки, закрываем форму. Идём в Администрирование-Пользователи-Настройки пользователя-Использование данных, закладка: выбор на формах Открываем настройки формы, они не открываются |
|
|
|
|
#2 |
|
Гость
|
Теперь моделируем эту ситуацию:
зайдём сюда: \Forms\SysConView\Methods\init добавим следующие строчки: Код: real arr[3];
;
arr[1] = 1;
arr[2] = 2;
arr[3] = 3;Код: containerToShow = [1,2.2,arr,"@SYS76534",4\4\1944,[1,2,["@SYS22523",["@SYS76531","@SYS76532"],"@SYS22525"],4,5],"@SYS76533"]; Ищем причину: в методе \Forms\SysConView\Methods\fillTree падает вот это Код: item.text(strfmt('%1', conPeek(_container,i)));Код: int j;
....
itemType = typeOf(conPeek(_container,i));
j = itemType;В базовом енуме types 15 значений Последний раз редактировалось Shakr; 07.11.2008 в 12:35. |
|
|
|
|
#3 |
|
Гость
|
попробовал исправить так:
\Forms\SysConView\Methods\setContainer Код: void setContainer(container _container)
{
//<<kvl CUS-Modification on 07/11/08 by kvl
int len = conLen(_container);
Container con;
int cnt;
AnyType any[1000];
DictEnum DictTypes = new DictEnum(EnumName2Id('types'));
int i;
int j;
int subLen;
common common;
types itemType;
FormTreeItem item;
;
for (i=1;i<=len;i++)
{
itemType = typeOf(conPeek(_container,i));
j = itemType;
if (j>DictTypes.values())
{
any = conPeek(_container, i);
cnt = dimof(conPeek(_container, i));
for (j = 1; j<= cnt; j++)
con += [any[j]];
_container = conPoke(_container,i,con);
}
}
//>>kvl CUS-Modification on 07/11/08 by kvl
containerToShow = _container;
}Последний раз редактировалось Shakr; 07.11.2008 в 12:39. |
|
|