|
12.07.2007, 13:35 | #1 |
Злыдни
|
Поиск источника ошибки в SysSetupForm
Для облегчения жизни в SysSetupForm был добавлен код для вывода наименования DataSource, полей и т.п.
В одной из форм (чужой) форма валится в стек по причине того, что не найден DataSource в AOT dataSource = Form...Control.dataSource(); - возвращает значение 17539 dataSourceName = formRun.Form().dataSource(dataSource).Name(); - благополучно падает в стек Как можно найти ссылку на отсутствующий в AOT DataSource в дизайне формы?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
12.07.2007, 14:28 | #2 |
Участник
|
А табакс на ней не валится? Функция определения поля?
|
|
12.07.2007, 14:49 | #3 |
Злыдни
|
У меня Tabax не установлен. Я же не программирую, мое дело анализ. Можно ради эксперимента установить, но мне придется сначала его освоить ))
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
12.07.2007, 14:31 | #4 |
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()); } |
|
12.07.2007, 14:52 | #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; } |
|
12.07.2007, 14:58 | #6 |
Участник
|
Хотя навреное, для данного случая работать не будет - в дизайне-то нет...
|
|
12.07.2007, 15:10 | #7 |
Злыдни
|
Знать бы поле в дизайне? А так строится дерево по дизайну и в каком-то узле все падает. А перебирать все узлы упаришься. Хотя, скорее всего, так и придется сделать ((
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
12.07.2007, 15:04 | #8 |
Участник
|
но и RunTime error по идее не будет
|
|
12.07.2007, 15:21 | #9 |
Участник
|
Цитата:
Знать бы поле в дизайне
|
|
12.07.2007, 15:30 | #10 |
Участник
|
Цитата:
Я своим провел детальную презентацию, так после этого форма Tabax - первая, которую они открывают в системе. |
|
12.07.2007, 15:35 | #11 |
Участник
|
запиши флешик
|
|
12.07.2007, 15:39 | #12 |
Злыдни
|
Так форма-то сама открывается. А вот при вызове SysSetupForm по этой форме все и происходит.
Т.е. я стою на форме, нажимаю правую кнопку, выбираю "Настройка" и падаю в стек
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
12.07.2007, 17:23 | #13 |
Злыдни
|
Установка Tabax не спасла. Удобная в некоторых случаях штука, но в моем случае финт с переходом к последнему полю не помогает.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Поиск в Grid по полю DataMethod | 20 | |||
Ошибки при разноске в ГК | 16 | |||
Поиск источника ошибки | 11 | |||
Поиск по подстроке | 8 | |||
Поиск по полю временной таблицы | 2 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|