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