|
|
#1 |
|
Злыдни
|
Для облегчения жизни в SysSetupForm был добавлен код для вывода наименования DataSource, полей и т.п.
В одной из форм (чужой) форма валится в стек по причине того, что не найден DataSource в AOT dataSource = Form...Control.dataSource(); - возвращает значение 17539 dataSourceName = formRun.Form().dataSource(dataSource).Name(); - благополучно падает в стек ![]() Как можно найти ссылку на отсутствующий в AOT DataSource в дизайне формы?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
|
|
#2 |
|
Участник
|
А табакс на ней не валится? Функция определения поля?
|
|
|
|
|
#3 |
|
Microsoft Dynamics
|
Как я понимаю, датасорс был динамически добавлен.
Можно попробовать перебором, я когда-то над этой проблемкой работала и ничего другого не нашла. X++: int dataSourceNo; int ds_id; int i; FormBuildDatasource fbds; ; id = fc.dataSource(); dataSourceNo = element.form().dataSourceCount(); for (i = 1; i <= dataSourceNo; i++) { fbds = element.form().dataSource(i); ds_id = fbds.id(); if (ds_id == id) info(fbds.name()); } |
|
|
|
|
#4 |
|
Злыдни
|
У меня Tabax не установлен. Я же не программирую, мое дело анализ. Можно ради эксперимента установить, но мне придется сначала его освоить ))
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
|
|
#5 |
|
Участник
|
Благодаря Ивану, в табаксе есть код, выводящий истоячник для текущего поля. Вот он:
X++: Object formControlEditField;
TreeNode runTreeNode;
TreeNode getDataSourceNode()
{
int dataSourceId;
int fieldExtId;
str dataMethodName;
TreeNode fieldNode;
;
dataSourceId = formControlEditField.dataSource();
fieldExtId = formControlEditField.dataField();
dataMethodName = formControlEditField.dataMethod();
if (dataSourceId)
{
if (fieldExtId)
{
fieldNode = TreeNode::findNode(#TablesPath + #AOTRootPath + tableId2Name(currentForm.form().dataSource(dataSourceId).table()) + "\\Fields");
if (fieldNode)
fieldNode = fieldNode.AOTfindChild(fieldId2Name(currentForm.form().dataSource(dataSourceId).table(), fieldExt2Id(fieldExtId)));
if (fieldNode)
fieldNode.AOTnewWindow();
return fieldNode;
}
else
{
if (dataMethodName)
{
fieldNode = TreeNode::findNode(strFmt(#DataSourceMethodPath, #FormsPath + #AOTRootPath + currentForm.name(), currentForm.form().dataSource(dataSourceId).name(), dataMethodName));
if (fieldNode)
fieldNode.AOTedit();
else
{
fieldNode = TreeNode::findNode(strFmt(#MethodPath, #TablesPath + #AOTRootPath + tableId2Name(currentForm.form().dataSource(dataSourceId).table()), dataMethodName));
if (fieldNode)
fieldNode.AOTedit();
}
}
}
}
return null;
} |
|
|
|
|
#6 |
|
Участник
|
Хотя навреное, для данного случая работать не будет - в дизайне-то нет...
|
|
|
|
|
#7 |
|
Участник
|
но и RunTime error по идее не будет
|
|
|
|
|
#8 |
|
Злыдни
|
Знать бы поле в дизайне? А так строится дерево по дизайну и в каком-то узле все падает. А перебирать все узлы упаришься. Хотя, скорее всего, так и придется сделать ((
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
|
|
#9 |
|
Участник
|
Цитата:
Знать бы поле в дизайне
- там спецкнопка, которая открывает текущее поле в дизайние
|
|
|
|
|
#10 |
|
Участник
|
Цитата:
Я своим провел детальную презентацию, так после этого форма Tabax - первая, которую они открывают в системе.
|
|
|
|
|
#11 |
|
Участник
|
запиши флешик
|
|
|
|
|
#12 |
|
Злыдни
|
Так форма-то сама открывается. А вот при вызове SysSetupForm по этой форме все и происходит.
Т.е. я стою на форме, нажимаю правую кнопку, выбираю "Настройка" и падаю в стек
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
|
|
#13 |
|
Злыдни
|
Установка Tabax не спасла. Удобная в некоторых случаях штука, но в моем случае финт с переходом к последнему полю не помогает.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Поиск в Grid по полю DataMethod | 20 | |||
| Ошибки при разноске в ГК | 16 | |||
| Поиск источника ошибки | 11 | |||
| Поиск по подстроке | 8 | |||
| Поиск по полю временной таблицы | 2 | |||
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|