|
|
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Чисто концептуальный вопрос. Хотелось поинтересоваться кто как делает. На extjs есть окно. В нем форма. И детальная таблица. Если документ создается, то при открытии окна дергается с сервера генератор ид документа. Тогда форма уже знает свой ид в базе. И выставляется у окна флаг, что запись мастера еще не отправлена на сервер. Далее добавляется в детальную таблицу строка. Перед добавлением в деталь проверяется у окна флаг коммита. Если false, то отправляется на сервер форма и если успешно все— ставится флаг коммита в true. Ну или можно при создании окна не дергать генератор с сайта, а просто текущий ид документа ставить в —1. И при коммите с сервера возвращать ид мастера. Теперь можно добавлять в деталь. Мастер запись уже в базе уже существует. При добавлении в деталь запись отправляется на сервер сразу. Благо мастер уже существует и ошибок возникнуть не должно. Есть «подводные камни»? Или взлетит ? Смущает, что открыл окно, ломанулся в деталь добавлять, а оно сразу ругаться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2018, 23:52 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
Swv, Если по бизнесу нужно сохранять черновики, то сразу сохраняешь даже незаконченный документ в таблу черновики. Если не нужно, то с сервера не надо запрашивать новый ld. Поставь абстрактное -1. При сохранении, уже сервер сам должен все разобрать и зоа 0,1сек. записать мастера и пото детали. Поиск на слово ОРМ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 07:41 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
Petro123, Можно и через —1. Только вырисовывается одна проблемка. Если в форме редактирования детали одни textbox, то добавить из средствами extjs в store детали не проблема. Все делается практически автоматом. А вот если в окне редактировани детали есть combobox, то в store детали попадает только ид выбранного в сомбо значения, а само значение нет. Собственно и логично, но непрактично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 17:52 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
SwvА вот если в окне редактировани детали есть combobox, то в store детали попадает только ид выбранного в сомбо значения, а само значение нет. Собственно и логично, но непрактичнотут я не врубился в проблему. Если комбобокс, то это справочник напр.городов. Через FK субд. Справочник заполнен заранее. Если сохранение то и нужен id города для insert или update. Но никак не название города. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 18:43 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
SwvА вот если в окне редактировани детали есть combobox, то в store детали попадает только ид выбранного в сомбо значения, а само значение нет. Собственно и логично, но непрактичноне надо путать отображение с хранением. для хранения и работы - достаточно только id. а для отображения - значение/имя/название. но при этом всё равно присутствует id. хоть и не видимое пользователю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 18:53 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
Petro123SwvА вот если в окне редактировани детали есть combobox, то в store детали попадает только ид выбранного в сомбо значения, а само значение нет. Собственно и логично, но непрактичнотут я не врубился в проблему. Если комбобокс, то это справочник напр.городов. Через FK субд. Справочник заполнен заранее. Если сохранение то и нужен id города для insert или update. Но никак не название города. тут разобрался ) оказалось просто все. смысл был в том, что название города выбирается из базы через join. а combo в extjs стандартно отправлял в запись только ид. ну и соответственно в таблице при ручном изменении записи без отправки на сервер и получения ответа просто наименование города не отображалось но по пути возникло пара вопросов. Если все изменения хранятся в store от extjs. и потом скопом отправляются на сервер. 1. что делать с пейджером? который разбивает все данные на страницы по х частей. допустим есть у меня в таблице на сервере 100 записей. пейджер показывает 5 по 20. постраничная навигация работает. те получается при смене страницы пейджера надо будет при наличии измененных записей ругаться пользователю на то, что надо бы прежде сохранить данные. 2. уникальность в пределах детали. да еще и с учетом того, что есть пейджер. тут просто в store не сохранишь. по любому перед добавлением в store надо на сервере проверять на уникальность. те получается без разницы сразу после изменения отправить данные на сервер или копить изменения в store, а потом отправлять скопом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2018, 00:37 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
Swv, а кто мешает сразу сохранять введённое/изменённое значение? что проверять на уникальность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2018, 07:12 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
Swv, 1. Прочти про MVC. Представление отдельно, правка отдельно. В одном окне пагинация, в другом правка. Листай сколько угодно страницы. В этом форуме на одной вкладке ты читаешь топик, на второй пишешь ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2018, 07:38 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
вадяSwv, а кто мешает сразу сохранять введённое/изменённое значение? что проверять на уникальность? если сразу сохранять на сервер измененные значения например детали, то как быть, если пользователь передумал и закрыл документ не сохраняя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2018, 21:11 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
Petro123Swv, 1. Прочти про MVC. Представление отдельно, правка отдельно. В одном окне пагинация, в другом правка. Листай сколько угодно страницы. В этом форуме на одной вкладке ты читаешь топик, на второй пишешь ответ. Понятно, что в одном окне пагинация, а в другом редактирование. Но.данные то хранятся в store. В случае использования extjs. А при смене страницы store очищается. И подгружаются данные второй страницы. Можно конечно перед сменой страницы ругнуться и предложить сохранить измененные данные. Но тогда не получится закрыть документ и не сохранять данные. тк при смене страницы часть данных уже ушла в базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2018, 21:35 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
SwvвадяSwv, а кто мешает сразу сохранять введённое/изменённое значение? что проверять на уникальность? если сразу сохранять на сервер измененные значения например детали, то как быть, если пользователь передумал и закрыл документ не сохраняя удалить к чертям все черновые записи, то есть состояние ввести: Черновик (Draft) и удалять черновики со временем зато можно будет восстановить работу пользователя, если инет вдруг упал, питание отрубилось, случайно был закрыт браузер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2018, 22:28 |
|
||
|
Мастер деталь
|
|||
|---|---|---|---|
|
#18+
Swv, По теории, если веб проект публичный веб сайт, то обычно короткие транзакции на сервере. А это собираем длинной цепочкой всю сущность. Без разницы, со сменой страницы или нет. Храните на клиенте. Потом коротко выстреливаете в субд. Если корпоратив, то можно длинные транзакции db.beginTransaction. Тогда клиент проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2018, 07:36 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39696922&tid=1444060]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 426ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...