22.03.2005, 10:40 | #1 |
Гость
|
SysRecordInfo
Подскажите пожалуйста как вызывается эта форма SysRecordInfo?
где указываются параметры вызова? |
|
22.03.2005, 11:04 | #2 |
Гость
|
смысл вопроса вот в чем - например, если вызывать паспорт записи в InventTable и в InventSum - то они вызываются разные - а где задаются параметры вызова?
|
|
22.03.2005, 11:09 | #3 |
Модератор
|
Ему нужна просто форма, из которой он вызывается.
С Уважением, Георгий. |
|
22.03.2005, 11:31 | #4 |
Гость
|
Уточню, в форму InventTable добавили дерево классификатора, что вызвало нарушение стандартной работы SysRecordInfo, в частности переименование номенклатуры стало недоступно(просто нет в форме). А как сделать, чтобы было возможно переименование?
|
|
22.03.2005, 11:42 | #5 |
Модератор
|
Обрати внимание на код:
PHP код:
|
|
03.07.2006, 13:47 | #6 |
Программер
|
Цитата:
Сообщение от George Nordic
Обрати внимание на код:
PHP код:
|
|
03.07.2006, 13:57 | #7 |
Участник
|
X++: switch (common.tableId) { case tableNum(PurchTable): // таблица закупок break; case tableNum(PurchLine): // строки закупок break; default: break; }
__________________
Axapta v.3.0 sp5 kr2 |
|
03.07.2006, 14:11 | #8 |
Программер
|
Наверное неправильно выразился.
Если открывать паспорт записи через контекстное меню, то оно правильно выводит информацию о записи, на которой у нас стоит курсор. Если сделать вызов паспорта записи через обычный пункт меню, то даже если у нас курсор будет стоять на строке закупки, информация выведется по самой закупке. |
|
03.07.2006, 15:00 | #9 |
Программер
|
Кажется дело в методе docCursor(). Если форма вызывается из контекстного меню, то этот метод возвращает нужную запись, а если форма вызывается по кнопке, тогда берется запись первого источника данных. Почему так?
|
|
03.07.2006, 15:06 | #10 |
Участник
|
Возможно на MenuItem не указано свойство dataSource?
Именно эта строка (которая указана), будет передана как вызывающая |
|
03.07.2006, 15:08 | #11 |
Программер
|
На MenuItem dataSource не указывается, потому как их может быть два, и надо чтобы запись бралась именно текущего.
|
|
03.07.2006, 15:09 | #12 |
Участник
|
А "обычный пункт меню" - это МЕНЮ->КОМАНДА->ПАСПОРТ ЗАПИСИ? У меня в нем все работает нормально
__________________
Axapta v.3.0 sp5 kr2 |
|
03.07.2006, 15:09 | #13 |
Участник
|
Почти у каждого элемента на форме есть свойство DataSource, а если оно пусто, то работает некое соглашение об умолчании ...
C уважением, itfs. |
|
03.07.2006, 15:14 | #14 |
Участник
|
Ну а что вы тогда хотите, по умолчанию подставляется главный датасорс
Попробуйте по clicked MenuItem - закоментить супер и вызывать этот же MenuItem программно с указанием того датасорса который вам нужен в главный момент И что значит из текущего - текущий есть и в том и в том гриде (active) |
|
03.07.2006, 15:16 | #15 |
Программер
|
Обычный пункт меню, это просто меню добавленное в форму. Или можно просто кнопку добавить.
|
|
03.07.2006, 15:18 | #16 |
Программер
|
2 Kashperuk: текущий, грубо говоря куда мы последний раз мышью тыкнули
2 itfs: соглашение не нужно, нужно чтобы текущий При этом надо обойтись без программирования в форме. Т.е. просто кнопку вызова добавить и все. На крайний случай можно на методах кнопки попрограммировать. Но чтобы эти методы были общими. Последний раз редактировалось vasiliy; 03.07.2006 в 15:24. |
|
03.07.2006, 15:26 | #17 |
Участник
|
Пока в голову приходит только одно решение, как определить именно тот датасорс, по кторому кликнули последним - по переходу к контролу (onEnter) - какую-то переменную (boolean firstDataSource) делать true или false, в зависимости от того, какой датасорс кликнули. А потом по clicked кнопки вызывать MenuItem с тем, который последний кликнули.
(можно попробовать это на active datasource повесить - но не уверен что сработает) |
|
03.07.2006, 15:26 | #18 |
Участник
|
Цитата:
Сообщение от kashperuk
Ну а что вы тогда хотите, по умолчанию подставляется главный датасорс
Попробуйте по clicked MenuItem - закоментить супер и вызывать этот же MenuItem программно с указанием того датасорса который вам нужен в главный момент
__________________
Axapta v.3.0 sp5 kr2 |
|
03.07.2006, 15:28 | #19 |
Участник
|
Цитата:
Сообщение от AndyD
Не поможет. Ядро устанавливает датасоурс до вызова Clicked()
А заодно и вопрос: Цитата:
Сообщение от AndyD
Не поможет. Ядро устанавливает датасоурс до вызова Clicked()
|
|
03.07.2006, 15:30 | #20 |
Программер
|
Цитата:
Сообщение от kashperuk
Пока в голову приходит только одно решение, как определить именно тот датасорс, по кторому кликнули последним - по переходу к контролу (onEnter) - какую-то переменную (boolean firstDataSource) делать true или false, в зависимости от того, какой датасорс кликнули. А потом по clicked кнопки вызывать MenuItem с тем, который последний кликнули.
(можно попробовать это на active datasource повесить - но не уверен что сработает) |
|