30.12.2010, 08:12 | #1 |
Участник
|
kamalblogs: Creating Edit methods for DS that don’t allow editing in Dynamics ax
Источник: http://kamalblogs.wordpress.com/2010...n-dynamics-ax/
============== Let’s say we have a Datasource and it is being displayed in the grid. The user has to choose one of it to further proceed. The use case is that you must be able to use a checkbox to select the records but you should not be able to modify rest of the information. Technical implementation: First Thought: Set allow create, allow delete allow edit property on the ds as false. Consequence: when you set allow edit as false you will no more be able to edit the checkbox also which is undesired. Second Thought: Set allowedit false control wise either in the ds or in the formcontrol. Consequence: Too much work/customization. If done at formcontrol level the user can even add a field through the syssteupform and start editing it (Refer here for details: http://wp.me/p298V-2IL) Best Approach: Set allow edit to true in the ds . Override the write method in the ds and comment the super. Consequence: Peaceful solution public void write(){ ; I4C_InventTrans_ds.reread(); I4C_InventTrans_ds.refresh(); //super();} Источник: http://kamalblogs.wordpress.com/2010...n-dynamics-ax/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
30.12.2010, 09:53 | #2 |
Участник
|
Он бы еще рассказал как написать select, который не выбирает записей.
|
|
30.12.2010, 14:25 | #3 |
Мрачный тип
|
greench, зря смеетесь, при реализации мультиселекта с хранением информации о пометке вне таблицы выбираемых данных именно такого рода Edit-методы на DS и делаются. Они не меняют содержимого самой таблицы, но живут на DS и требуют для своего корректного функционирования значения свойства AllowEdit у DS равным true. Однако это означает возможность изменения не только результатов этого Edit-метода, но и всех остальных полей таблицы DS, которые могут быть редактируемы на форме согласно свойств полей этой таблицы в репозитарии, что не всегда желательно. Вот он и решает эту проблему, правда весьма спорным и некрасивым способом (можно творить все что угодно в строке грида, ибо при переходе на другую строку все восстановится).
Мы решали этот вопрос просто - всем полям DS устанавливалось свойство AllowEdit = false, а на DS AllowEdit = true. Пользователь не мог и не пытался что-либо изменить в таких формах, кроме пометки, и у него не было повода задать дурные вопросы типа "Я вот тут менял, а чего оно не сохранилось ?"
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
30.12.2010, 16:10 | #4 |
Участник
|
Я к тому и смеюсь, что комментирование super(), имхо, далеко не самый лучший вариант. Пользователей это будет сбивать с толку.
|
|
31.12.2010, 08:17 | #5 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: mazzy (2), TasmanianDevil (2). |
03.01.2011, 02:07 | #6 |
Участник
|
@Tasmainan Devil: Yes that could be a option but that means you also have a risk. See here for more details http://bit.ly/eV79e2
@belugin: I didn't find that method in global and also in the AOT..is it some where else ? |
|
03.01.2011, 08:16 | #7 |
Участник
|
This is a global method on Russian + Eastern Europe GLS.
|
|
03.01.2011, 10:19 | #8 |
Мрачный тип
|
@casperkamal
It seems like some bug - the field added from datasource does not inherits from datasource his specific edit properties for added field, which does not conflict with edit properies for this field from AOT. At any case the prohibition adding fields on specific form will solve this problem.
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
03.01.2011, 10:48 | #9 |
Участник
|
Справедливочти ради стоит отметить, что функция allowEditFieldsOnFormDS_W работает на уровне источника данных и оперирует свойствами его полей. При таком подходе неучтённым остаются edit-методы, которые также как и обычные поля могут являтьсь частью дизайна. В таком случае запретить редактирование элементов управления, связанных с edit-методами, можно только напрямую, изменив свойства у самого элемента управления.
|
|
|
|