14.01.2006, 14:14 | #1 |
Участник
|
Добавление новой записи
Каким образом можно реализовать механизм, при котором добавление новой записи по Ctrl+N или кнопке Создать осуществлялось бы на форме в самый конец таблицы, а не над той записью, на которой в данный момент стоит курсор?
|
|
14.01.2006, 14:32 | #2 |
Участник
|
сперва почитайте в BestPractice о LineNum.
Аксапта отслеживает позицию вставляемой записи. Если вы хотите добавить запись именно внизу (как в 1С), то надо проэмулировать переход к последней записи и нажатие кнопки вниз, а не Ctrl+N. Только пожалуйста... разберитесь почему и зачем Аксапта ведет себя так... ДО ТОГО как начнете кодировать. Пожалуйста. |
|
14.01.2006, 14:42 | #3 |
Участник
|
И еще. Разберитесь со свойствами InsertIfEnd, insertIfEmpty в датасорсах формы...
|
|
14.01.2006, 15:27 | #4 |
Участник
|
Перекройте метод Create() датасоурса и вставьте этот код
X++: void create(boolean append = false) { ; MyTable_ds.last(); append = true; super(append); }
__________________
Axapta v.3.0 sp5 kr2 |
|
14.01.2006, 16:26 | #5 |
Участник
|
to AndyD:
Спасибо, все работает, но проблема в том, что такой механизм нужен для всех форм, а добавить такой код во все формы проблематично. to Mazzy: Спасибо, почитаю. Кстати, переход к последней записи и нажатие стрелки вниз почему-то работают не во всех формах, не пойму, почему. Не подскажате, как делается эмуляция нажатия клавиш в Axapta? Нигде про это не нашел |
|
15.01.2006, 10:52 | #6 |
Administrator
|
Решение всех проблем, когда необходимо изменить какой-то механизм для всех форм как правило одно - смириться с тем что Аксапта - это не другая система (в частности 1С). У нее свои особенности - порой на первый взгляд неудобные, порой жутко необходимые.
Эмуляции нажатия клавиш не существует (без подключения внешних DLL или WInAPI). А то, что переход к последней записи и нажатие стрелки вниз работает не везде - так это Mazzy сказал в какой стороне рыть. Можно только добавить, что датасорс также может не допускать добавления записей (в явном виде), т.е. для создания новой строки необходимо нажать отдельную кнопку.
__________________
Возможно сделать все. Вопрос времени |
|
27.09.2006, 08:30 | #7 |
Участник
|
А за что непосредственно отвечает параметр append в методе create?
|
|
27.09.2006, 09:36 | #8 |
Moderator
|
Если append = true, то новая запись добавится сразу после текущей, если false - перед текущей записью.
__________________
Андрей. |
|