![]() |
#21 |
Участник
|
Может я не понял вопрос
![]() Что имеется в виду под копированием контролов в гриде? |
|
![]() |
#22 |
Участник
|
Посмотрите как реализовано копирование ч/з кнопку "функции/копирование" журнала складских проводок в классе InventJournalCopy, метод run
|
|
![]() |
#23 |
Axapta Retail User
|
PHP код:
но это запись в таблицу. и после этого строки этой таблицы не редактируемы. А скопировать в гриде , я имел ввиду - скопировать строку прямо на форме, отредактировать её и потом уже записать в таблицу. |
|
![]() |
#24 |
Участник
|
Добиться того, чтобы после вставке в датасоурс строк они оставались редактируемы (т.е. оставались в кэше датасоурса и не сохранялись в таблицах) независимо от параметра AlowEdit можно. Для этого достаточно перекрыть метод Write датасоурса формы и не давать вызываться super() этого метода (естественно, если в этом методе организована другая функциональность, связанная с сохранение данных в таблицах то это тоже необходимо обходить).
Только учтите, что при вызове метода Write() датасоурса также происходит вызов validateWrite() на полях таблицы и, соответственно, может возникнуть ситуация, что данные находятся в кэше и видны, а при их сохранении в таблицу будет вызвано исключение. Еще одна проблема - это использование фильтра и сортировки, точнее невозможность их использования, т.к. при этом произойдет сброс кэша. Ну и остается проблема - изучить все подводные камни, связанные с таким использованием датасоурса, да и со складскими журналами необходимо разобраться, как это повлияет на работу классов-обработчиков Не знаю стоит ли овчинка выделки? ;-0 |
|
![]() |
#25 |
Участник
|
Кстати насчет смысла доработки.
![]() Позвольте заметить, но, конечная цель, которую заказчик планирует достич этой доработкой мне не ясна. Может быть стоит уточнить условия? |
|
![]() |
#26 |
Участник
|
Насчет validateWrite на датасоурсе и на таблице я погорячился.
![]() |
|
![]() |
#27 |
Axapta Retail User
|
Вопрос решился пока след образом:
PHP код:
|
|
![]() |
#28 |
Участник
|
И все-таки я бы порекомендовал повнимательнее изучить класс InventJournalCopy
PHP код:
|
|
![]() |
#29 |
Участник
|
И еще
PHP код:
|
|
![]() |
#30 |
Участник
|
Может пойдет такой вариант?
PHP код:
|
|
![]() |
#31 |
Axapta Retail User
|
Да вот этот вариант вполне корректно отрабатывает. Спасибо всем огромное -))
|
|