|
23.04.2020, 19:49 | #1 |
Участник
|
Пропуск значений при сохранении полей в группе
Привет всем.
Обнаружил странную багу. В некоторых случаях при сохранении записи значения не сохраняются в бд. Как правило, это бывает когда датасорс группы полей пустой или отличается от датасорса контролов в группе. Пример приложил. Баг воспроизводится для ax4 - ax2012 Более детальное описание: Баг воспроизводится когда в форме есть несколько датасорсов. Если в контролах используется 1-й датасорс, то все нормально при сохранении значений. Если датасорсов несколько и мы используем 2-й датасорс (датасорсы должны быть несвязаны, т.е. не должно быть джоина или дайналинка между ними), то 1. Если в группе полей стоит тот же датасорс что и контролах, то все сохраняется хорошо и в 4-ке и в 2012-й 2. Если датасорс в группе полей непустой и отличается от датасорса контролов, аксапта просто не сохраняет значения в бд (!!) 3. Если датасорс в группе полей пустой, то в 4-ке не сохраняет значения в бд. В 2012-й сохраняет если это корневая группа в дизайне формы. Если же вложенная в другую группу с другим датасорсом, то опять не сохраняет. Весьма неприятный баг. Особенно для случая когда датасорс группы задан, но отличается от датасорса контролов. Т.е. не всегда можно безболезненно смешать контролы от разных датасорсов в одной группе полей. |
|
|
За это сообщение автора поблагодарили: Pustik (5), gl00mie (5), Товарищ ♂uatr (2). |
23.04.2020, 21:52 | #2 |
Участник
|
Привет!
Проблему можно обойти управляя значением element.defaultDataSource. Управлять значением может слушатель формы, анализируя источник данных текущего выбранного контрола. Конечно это решение следствия... Последний раз редактировалось Товарищ ♂uatr; 23.04.2020 в 22:06. |
|