Показать сообщение отдельно
Старый 23.04.2020, 19:49   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,972 / 3268 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Пропуск значений при сохранении полей в группе
Привет всем.

Обнаружил странную багу.
В некоторых случаях при сохранении записи значения не сохраняются в бд. Как правило, это бывает когда датасорс группы полей пустой или отличается от датасорса контролов в группе.

Пример приложил. Баг воспроизводится для ax4 - ax2012

Более детальное описание:
Баг воспроизводится когда в форме есть несколько датасорсов.

Если в контролах используется 1-й датасорс, то все нормально при сохранении значений.
Если датасорсов несколько и мы используем 2-й датасорс (датасорсы должны быть несвязаны, т.е. не должно быть джоина или дайналинка между ними), то

1. Если в группе полей стоит тот же датасорс что и контролах, то все сохраняется хорошо и в 4-ке и в 2012-й
2. Если датасорс в группе полей непустой и отличается от датасорса контролов, аксапта просто не сохраняет значения в бд (!!)
3. Если датасорс в группе полей пустой, то в 4-ке не сохраняет значения в бд. В 2012-й сохраняет если это корневая группа в дизайне формы. Если же вложенная в другую группу с другим датасорсом, то опять не сохраняет.

Весьма неприятный баг. Особенно для случая когда датасорс группы задан, но отличается от датасорса контролов. Т.е. не всегда можно безболезненно смешать контролы от разных датасорсов в одной группе полей.
Вложения
Тип файла: zip ax2012_ax4.zip (4.9 Кб, 61 просмотров)
За это сообщение автора поблагодарили: Pustik (5), gl00mie (5), Товарищ ♂uatr (2).