![]() |
#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 |
|