Перейти к содержанию
Fire Monkey от А до Я
  • 0

Master / detail (карточка редактирования товара) и откат в главной форме (списке товаров)


Vitaly X

Вопрос

Опубликовано

Всем привет.

Прошу не понимать буквально мой вопрос, потому что проблема несколько шире.

В двух словах, надо в мастер / деталь форме откатиться если пользователь передумал сохраняться. Это понятно что тут ничего не надо делать, если настроен CachedUpdates.

Нет понимания как это увязать с другой проблемой, которую не могу решить. Есть форма "список товаров" (запрос имеет только минимум полей из таблицы "товар" - номер и название), и есть форма "карточка редактирования товара" (мастер / деталь - деталей много, мастер запрос из таблицы "товар" куда шире - описание, цены и куча всего).

Редактирование существующей записи работает так как и надо.

Но добавление вызывает взрыв мозга, потому не знаю как сделать:

- в форме списке вызвать append / insert (запрос "список" по таблице "товар") 

- в форме редактирования добавить товар (CachedUpdates)

- ролученный id каким то образом обновить в первом запросе, и по нему обновить всю строку

Так чтоли? Я знаю что делать, если и одна форма и вторая используют один и тот же запрос, а тут заклинило.

В первой форме сразу сохоанить запись до редактирования во второй форме - не красиво, а если последует отмена редактирования, что удалять?

Подскажите как реализвать, большое спасибо заранее - чтобы были два разных запроса по таблице "товар" - краткий для списка и полный для карточки редактирования и с возможностью полного отката  при отмене добавления.

 

 

 

Рекомендуемые сообщения

  • 0
Опубликовано

Если разделить создание/редактирование и чтение/запись в хранилище, то вроде все понятней?

Предположим, что в результате каких-то любых действий пользователя у нас есть комплект связанных данных, которые нужно сохранить.

Отдаем их "подсистеме чтения-записи", которая или вызывает REST API, или пишет в базу, или редактирует файлы на диске - что угодно.

Возвращается лишь результат.

  • 0
Опубликовано (изменено)

Да, в теории нет вопросов.

Но как это реализовать на деле - большой вопрос. Я использую FireDac.

Во вложении пример, как я обычно делаю.

Чтобы в форме редактирования получилось использовать другой набор данных, получилось сделать как в статье:

https://www.uweraabe.de/Blog/2020/10/04/tweaking-dfm-loading/

Только разве что после редактирования надо для этой измененной строки вызвать Refresh, чтобы только одну строку и обновить.

Но такой фокус не пройдет с добавленной строкой

Помогите,  заранее спасибо

 

ЗЫ. Добавить строку сращу нельзя, вдруг пользователь откажется добавлять запись.

TweakingDFMLoading.zip

Изменено пользователем Vitaly X
очепятки
  • 0
Опубликовано
4 часа назад, Vitaly X сказал:

Но такой фокус не пройдет с добавленной строкой

   Нажмите nbInsert, введите EmpNo, нажмите nbPost, нажмите Edit Record, редактируйте и будет вам счастье.

4 часа назад, Vitaly X сказал:

Добавить строку сращу нельзя, вдруг пользователь откажется добавлять запись.

Нажмите кнопку nbDelete. 

А если серьёзно, то работать с базами без SQL я считаю моветоном. 

  • 0
Опубликовано

В смысле без SQL??

Делфи 30 уже, пора отказаться от некоторых вещей, которые придумали, чтобы победить FoxPro.

Работа с SQL серверами проводится посредством SQL запросов. Точка

  • 0
Опубликовано
13 часов назад, krapotkin сказал:

Делфи 30 уже, пора отказаться от некоторых вещей, которые придумали, чтобы победить FoxPro.

Работа с SQL серверами проводится посредством SQL запросов. Точка

Так тут про сервера вроде и не спрашивали, а работать с помощью SQL запросов удобно было и с базами FoxPro.

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...