|
|
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Терпеть не могу возиться с лукап - полями, поэтому везде использую какие-нибудь собственные велосипеды. Расскажите, как вы редактируете наборы данных, сформированные из связанных табличек, вроде такого: Код: sql 1. 2. 3. Вопрос про - редактирование значение поля "Город". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:16 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Пардон, забыл. Исходные данные: связанные сущности Город-Улица-Дом: Таблички Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ...данные: связанные Код: sql 1. 2. ... с данными: данные Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:18 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ну, если нужно именно В ГРИДЕ, то альтернативу лукапным полям придумать сложновато. зы: у нас в конторе для редактирования записи обычно везде вызываются специальные диалоговые окна. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:24 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Первый запрос, конечно, очень простой. Вот другой: Код: pascal 1. 2. 3. 4. Хочется не просто выбирать город и улицу из списков. Хочется , чтобы если уже была выбрана Москва, в списке доступных улиц были доступны только улицы Москвы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:24 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Я делаю, чтобы при переходе в ячейку появлялась кнопочка сбоку, усер нажимает на неё и открывается окно, где он выбирает из справочника, что ему надо. P.S. но обычно стараюсь в самом гриде не давать ничего редактировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:25 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийну, если нужно именно В ГРИДЕ, то альтернативу лукапным полям придумать сложновато. зы: у нас в конторе для редактирования записи обычно везде вызываются специальные диалоговые окна. Ну, в общем, несущественно, в окне или в гриде. В последнем случае лишь элемент редактирование нужно каким-то образом в ячейку грида впихнуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:26 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
defecatorЯ делаю, чтобы при переходе в ячейку появлялась кнопочка сбоку, усер нажимает на неё и открывается окно, где он выбирает из справочника, что ему надо. P.S. но обычно стараюсь в самом гриде не давать ничего редактировать Да бог с ним, с гридом. Вопрос был в том, как ты описываешь сценарий редактирования конкретного поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:28 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
я так понимаю, проблема только в фильтрации? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:29 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДdefecatorЯ делаю, чтобы при переходе в ячейку появлялась кнопочка сбоку, усер нажимает на неё и открывается окно, где он выбирает из справочника, что ему надо. P.S. но обычно стараюсь в самом гриде не давать ничего редактировать Да бог с ним, с гридом. Вопрос был в том, как ты описываешь сценарий редактирования конкретного поля. запрос для грида формируется на сервере, оттуда же приходит и служебная информация, какой справочник для какого поля подцепить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:30 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийя так понимаю, проблема только в фильтрации? Нет проблемы :). Когда-то я делал "это" прямо в коде, потом появился простой визуальный редактор, теперь (в новом продукте) хочется "все переделать". Хотелось узнать, кто как делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:33 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
defecator... запрос для грида формируется на сервере, оттуда же приходит и служебная информация, какой справочник для какого поля подцепить. А откуда сервер знает, что, например, для редактирования "лукапного" поля "City" нужно показывать в списке не только название улицы, но и название города (ну, так захотелось разработчику / заказчику)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:35 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДdefecator... запрос для грида формируется на сервере, оттуда же приходит и служебная информация, какой справочник для какого поля подцепить. А откуда сервер знает, что, например, для редактирования "лукапного" поля "City" нужно показывать в списке не только название улицы, но и название города (ну, так захотелось разработчику / заказчику)? Ну если лукапное поле City, то это однозначно City, а не Street ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:43 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
defecatorчччДпропущено... А откуда сервер знает, что, например, для редактирования "лукапного" поля "City" нужно показывать в списке не только название улицы, но и название города (ну, так захотелось разработчику / заказчику)? Ну если лукапное поле City, то это однозначно City, а не Street 1. А если надо ("хочется"), чтобы в лукап -списке было и имя улицы, и имя города (улица ведь в городе, ОК?). 2. А если в улице больше ("информационных") полей, чем в моем примере - ты их в се в лукап - списке показываешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:47 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДdefecator... запрос для грида формируется на сервере, оттуда же приходит и служебная информация, какой справочник для какого поля подцепить. А откуда сервер знает, что, например, для редактирования "лукапного" поля "City" нужно показывать в списке не только название улицы, но и название города (ну, так захотелось разработчику / заказчику)? из дополнительных метаданных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:47 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ViPRosчччДпропущено... А откуда сервер знает, что, например, для редактирования "лукапного" поля "City" нужно показывать в списке не только название улицы, но и название города (ну, так захотелось разработчику / заказчику)? из дополнительных метаданных Каких - "дополнительных"? Как эти метаданные создаются, какую имеют (примерную) структуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 14:54 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДdefecatorпропущено... Ну если лукапное поле City, то это однозначно City, а не Street 1. А если надо ("хочется"), чтобы в лукап -списке было и имя улицы, и имя города (улица ведь в городе, ОК?). 2. А если в улице больше ("информационных") полей, чем в моем примере - ты их в се в лукап - списке показываешь? ну так если было City, а потом заказчику захотелось ещё и улицу, то структуру данных придётся поменять и справочник создавать/расширять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 15:05 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДViPRosпропущено... из дополнительных метаданных Каких - "дополнительных"? Как эти метаданные создаются, какую имеют (примерную) структуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 15:51 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччД1. А если надо ("хочется"), чтобы в лукап -списке было и имя улицы, и имя города (улица ведь в городе, ОК?). Сделай по типу MRUList'а, куда можно подгружать отдельным запросом "склеенные" улицу + город (в котором эта улица гарантированно есть), например после 3-4 введенных символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:04 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
defecatorчччДпропущено... 1. А если надо ("хочется"), чтобы в лукап -списке было и имя улицы, и имя города (улица ведь в городе, ОК?). 2. А если в улице больше ("информационных") полей, чем в моем примере - ты их в се в лукап - списке показываешь? ну так если было City, а потом заказчику захотелось ещё и улицу, то структуру данных придётся поменять и справочник создавать/расширять. Ну вот в схеме 20682788 City и Street - разные таблички. Для лукап-представления, отображающего список значений поля City_Id таблички Building, достаточно их City и Street: Код: sql 1. 2. 3. - без расширения структуры. Твой сервер такие вещи понимает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:07 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДdefecatorпропущено... ну так если было City, а потом заказчику захотелось ещё и улицу, то структуру данных придётся поменять и справочник создавать/расширять. Ну вот в схеме 20682788 City и Street - разные таблички. Для лукап-представления, отображающего список значений поля City_Id таблички Building, достаточно их City и Street: Код: sql 1. 2. 3. - без расширения структуры. Твой сервер такие вещи понимает? у меня есть сущность "адрес", которая (сущность) собирается из разных табличек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:09 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
а в этой сущности "адрес" ты волен уже заполнять её как угодно, хоть только город, хоть город-улица, хоть округ-город-улиа-дом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:10 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ДокчччД1. А если надо ("хочется"), чтобы в лукап -списке было и имя улицы, и имя города (улица ведь в городе, ОК?). Сделай по типу MRUList'а, куда можно подгружать отдельным запросом "склеенные" улицу + город (в котором эта улица гарантированно есть), например после 3-4 введенных символов Не, я спрашиваю про то, каким образом ты сообщаешь своей системе: "вот это поле редактировать нужно вот так". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:11 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
defecator..."адрес"... А в лукап - списке ты отображаешь сразу все атрибуты (поля) сущности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:14 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДвот это поле редактировать нужно вот так расшифруй :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:16 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ДокчччДвот это поле редактировать нужно вот так расшифруй :) Ну вот смотри, запрос: 20682780 Код: sql 1. 2. 3. В гриде получаем примерно такую картинку: Я хочу редактировать поле CITY_NAME, чтобы по клику появился выпадающий список с городами. А результат бы записался sql - предложением: Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:24 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДdefecator..."адрес"... А в лукап - списке ты отображаешь сразу все атрибуты (поля) сущности? лукапа нет. defecatorЯ делаю, чтобы при переходе в ячейку появлялась кнопочка сбоку, усер нажимает на неё и открывается окно, где он выбирает из справочника, что ему надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:25 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
а в самом поле отображается то, что пользователь навводил в сущность "адрес". функция собирает строку и показывает в колонке грида. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:26 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччД> Не, я спрашиваю про то Ты хочешь за рыбалкой новую систему редактирования бизнес-метаданных придумать или какая цель? Потому что у тебя несколько разных вопросов. На которые могут быть (несколько) разные ответы. -- P.S. Указать "что делать" можно лишь тремя способами - - тупо на клиенте (без "своей системы"); - со слоем метаданных, когда есть правила построения запросов (на чтение, на все редактирования, на выборки для различных целей и пр.) - тут могут быть подварианты как и когда эти правила построения формируются - со слоем метаданных (c или без правила построения запросов - не суть), но когда эти запросы можно явно задавать (полностью или кусками, все или не все итдитп). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:27 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Док, т.е., фактически (в данном случае, не в общем случае), при редактировании реализовалась бы функциональность лукап-полей датасета. Это несложно сделать прямо в коде, но утомительно. Хорошо бы описывать в какой-нибудь метаструктуре: понятно ведь, что нужно. Хотелось бы узнать, кто и как сие делает у себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:29 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам... P.S. Указать "что делать" можно лишь тремя способами - - тупо на клиенте (без "своей системы"); - со слоем метаданных, когда есть правила построения запросов (на чтение, на все редактирования, на выборки для различных целей и пр.) - тут могут быть подварианты как и когда эти правила построения формируются - со слоем метаданных (c или без правила построения запросов - не суть), но когда эти запросы можно явно задавать (полностью или кусками, все или не все итдитп). Отлично классифицировал! А хорошо бы примеров... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:32 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
defecator, ОК, я ~ понял, как у тебя визуально. А решение "вот это поле должно быть с кнопочкой, которое создаст вот это окно" - ты как и когда принимаешь? Ты писал выше, что сервер что-то делает, но ведь на основе каких-то данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:35 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Все, я в отпуск пошел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:35 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччД> А хорошо бы примеров... Примеров реализации тоже может быть несколько, каждый же по-разному лисапеды мастерит. Во-втором варианте - одна реализация - это когда есть "поле" city, к нему кроме обычных свойств есть ещё доп.поля "tablename - city", "fieldname - id", "displayfields - name" и т.д. Полей displayfields может быть несколько (для отображения в деталях, для отображения в окнах выборки и т.д.). Ещё вариант реализации - это когда к полю city прилагается лишь поле "entity - city", а все остальные перечисленные настройки - внутри последнего. И таких вариантов тьма. В третьем варианте - это когда у тебя кроме доп.полей есть ещё поля для запросов (много разных), например, "select id, name from city where id = :cityid". И т.д. P.S. Приятного отпуска. Нафоткать не забудь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 16:55 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
мы пользуемся EhLib Dbgrid c Row Detail Panel. В ней сразу производится выборка необходимых значений. Вот пример из демки: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 17:52 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДДокпропущено... Сделай по типу MRUList'а, куда можно подгружать отдельным запросом "склеенные" улицу + город (в котором эта улица гарантированно есть), например после 3-4 введенных символов Не, я спрашиваю про то, каким образом ты сообщаешь своей системе: "вот это поле редактировать нужно вот так". Я пишу кодом. Для каждого нетипичного случая пишется свой нетипичный код. Раньше увлекался метаданными и автоматизацией правил, потом понял, что получившееся автоматом чаще всего выглядит кондово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 18:42 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Для нетипичного-то нетипичный, конечно. А для типичного можно и типичный, автоматом. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 19:24 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
чччДА результат бы записался sql - предложением а-а-а, понял. Тебе надо аналог лукап-комбобокса. Если я правильно помню, у Большакова был DBLookUpCombobox, который, будучи лишенным связи с набором данных, становился почти обычным комбобоксом, но при этом имел KeyField и ListField. Можно было отдельным запросом к табле заполнить ListField любым значением и сопоставить каждому item'у его ID. Посмотри реализацию в сорцах эхлиба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 23:47 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Да не нужен ему лукап-комбобокс, имеющихся хватает. УниверсализЪм ему нужен, чтобы было чем голову на время отпуска забить. Это временно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2017, 23:57 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2017, 05:05 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Простите, что поднимаю старый топик. Прочитал пару раз, но решения так и не понял. Есть набор данных, где одна из колонок Адрес - результат работы функции, которая собирает слова Город, Улица, Дом, Квартира в один стринг. Код: sql 1. 2. Структура такая Код: sql 1. 2. 3. 4. 5. В гриде у этого поля (Address) редактор TcxButtonEdit Пользователь нажимает на кнопку, открывается Дерево городов, раскрывая узел показываются улицы, далее номера домов. Выбирая нужный адрес, возвращаются набор значений (CITY_ID,STREET_ID,HOUS_ID,APPARTMENT_NUMBER), на которые нужно поменять редактирумую строку, и каким то образом нужно изменить текст в колонке Адрес на вновь выбранный. Подскажите, как это сделать. Может нужно какой то другой компонент для редактирования в гриде ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2020, 19:34 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich каким то образом нужно изменить текст в колонке Адрес на вновь выбранный. Подскажите, как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2020, 20:13 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ma1tus Обработчики OnGetDisplayText / OnGetDataText на колонке грида То есть OnGetDisplayText для всего столбца ? То есть с клиента спрашивать у сервера результат для каждой строчки ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2020, 21:09 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich То есть с клиента спрашивать у сервера результат для каждой строчки ? С какого перепугу-то? Ивент вызовется - когда нужно гриду и, когда нужно тебе - проверяй в его обработчике: изменил юзер значение или нет. Если нет - ничего не делай, пусть выводится "значение из датасета"; если да - подставляй новое значение для ячейки в нужной строке / строках на то время, пока запись не зафиксирована / не отправлена на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 03:34 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich, собственно, вообще непонятно в чём трабл. Отправляй изменившиеся данные на сервер и обновляй соответствующую строку в гриде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 03:46 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ma1tus Отправляй изменившиеся данные на сервер и обновляй соответствующую строку в гриде Как обновить одну строку в гриде ? В Гриде 10 строк. Пользователь становится на вторую нажимает на кнопку в ячейке (cxButtonEdit), выбирает из формы новый адрес. Вот мы получили 4 новых значения. Постим их в таблицу, но в ячейке Address по прежнему старый адрес. Изменить его нельзя, так как поле ReadOnly, формируется результатом функции на сервере. Куда мне его запомнить, что бы подставить в OnGetDisplayText ? Потом пользователь становится на третью строчку и тоже меняет адрес, уже нужно помнить два значения, для второй и для третей строки ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 07:45 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich Как обновить одну строку в гриде ? Если говоришь "постим их в таблицу", то обработчики - не нужны, о них было в рамках вопроса о компоненте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 08:57 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ma1tus Если говоришь "постим их в таблицу", то обработчики - не нужны, о них было в рамках вопроса о компоненте. Немного неправильно написал. Записываем в Dataset новые 4 значения. При этом нужно поменять текст в поле Address, на новое. Может пользователю что-то не понравится и он нажмёт Esc и значения вернутся прежние, соответственно и прежний текст вернуться должен. Как это реализовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 10:00 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich ma1tus Если говоришь "постим их в таблицу", то обработчики - не нужны, о них было в рамках вопроса о компоненте. Немного неправильно написал. Записываем в Dataset новые 4 значения. При этом нужно поменять текст в поле Address, на новое. Может пользователю что-то не понравится и он нажмёт Esc и значения вернутся прежние, соответственно и прежний текст вернуться должен. Как это реализовать ? Что "это"? Изменение текста в поле Address, обработку кнопку ESC или откат изменений в датасете? Задавай не более одного вопроса на сообщение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 10:15 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ёёёёё Что "это"? Изменение текста в поле Address, обработку кнопку ESC или откат изменений в датасете? Задавай не более одного вопроса на сообщение. Грид сам делает откат значений. Как отобразить новое значение в поле, в зависимости от новых значений в других полях, причём эти данные на клиенте и на сервере их ещё нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 10:37 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich ёёёёё Что "это"? Изменение текста в поле Address, обработку кнопку ESC или откат изменений в датасете? Задавай не более одного вопроса на сообщение. Грид сам делает откат значений. Как отобразить новое значение в поле, в зависимости от новых значений в других полях, причём эти данные на клиенте и на сервере их ещё нет Ответы обязательно должны учитывать твои заблуждения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 10:56 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ёёёёё Ответы обязательно должны учитывать твои заблуждения? Если вы не можете помочь, то зачем вообще реагировать на топик ? Расскажите как у вас устроено редактирование подобного (составного) поля в гриде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 11:03 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich Потом пользователь становится на третью строчку и тоже меняет адрес, уже нужно помнить два значения, для второй и для третей строки ? Создать на сервере функцию, возвращающую адрес по набору кодов; вызывать с новыми значениями из полей датасета после их изменения / установки; результат, только для отображения, записывать или в поле Address или "в соседнее" (тогда через GetDisplayText). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 11:11 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ma1tus результат, только для отображения, записывать или в поле Address или "в соседнее" (тогда через GetDisplayText). Да как в него записать, если оно ReadOnly ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 11:15 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich Да как в него записать, если оно ReadOnly ? добавь в запрос null as "соседнее_поле" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 11:25 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Del ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 11:25 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ma1tus добавь в запрос null as "соседнее_поле" Добавил, но оно тоже ReadOnly. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 11:30 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich, У вас адрес - Lookup-поле? Или вы его физически протянули в НД? Т.е. грид у вас привязан к одному запросу, в т.ч. и поле "Адрес"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 11:39 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
goldmi45 Т.е. грид у вас привязан к одному запросу, в т.ч. и поле "Адрес"? Грид привязан к датасету, поле Адрес - результат функции которая формирует текст по 4 значениям таблички (CITY_ID,STREET_ID,HOUS_ID,APPARTMENT_NUMBER) Код: sql 1. У вас адрес - Lookup-поле? Классический Лукап - это поле ID в исходном Датасете и отдельный Датасет с перечнем подстановочных значений. У меня 4 поля в датасете и пятое Адрес - текстовая сборка с четырёх справочников. Я на колонке Адрес повесил редактор cxButtonEdit, по нажатию кнопки выбираю новый Адрес, полученные 4 значения присваиваю в Датасет. Теперь нужно как то изменить текст в поле Адрес. Поле ReadOnly так как это результат функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 12:00 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich оно тоже ReadOnly. Что мешает поменять для него эту настройку ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 12:03 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich Код: sql 1. У вас адрес - Lookup-поле? Классический Лукап - это поле ID в исходном Датасете и отдельный Датасет с перечнем подстановочных значений. У меня 4 поля в датасете и пятое Адрес - текстовая сборка с четырёх справочников. Я на колонке Адрес повесил редактор cxButtonEdit, по нажатию кнопки выбираю новый Адрес, полученные 4 значения присваиваю в Датасет. Теперь нужно как то изменить текст в поле Адрес. Поле ReadOnly так как это результат функции. Т.е. на вход функции ReturnAddress передаётся идентификатор человека, а не адрес??? Тогда пока новый адрес не запишется в таблицу, откуда функция берёт значение - никак. Вариант - править ReturnAddress (или делать новую функцию), чтобы она по адресу (идентификатор улицы, номер дома, квартиры) формировала строку, которую можно было вызвать на клиенте, передавая в неё новые данные. Тогда это поле (Адрес) можно сделать Lookup. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 12:14 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ma1tus Что мешает поменять для него эту настройку ? Код: pascal 1. 2. 3. 4. goldmi45Вариант - править ReturnAddress (или делать новую функцию), чтобы она по адресу (идентификатор улицы, номер дома, квартиры) формировала строку, которую можно было вызвать на клиенте, передавая в неё новые данные. Тогда это поле (Адрес) можно сделать Lookup. А Lookup по какому полю ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 12:26 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich Код: pascal 1. 2. 3. 4. Для используемого датасета не существует возможности (путем собственно SQL) задать, какие именно поля полетят на сервер - ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 12:40 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
ma1tus Для используемого датасета не существует возможности (путем собственно SQL) задать, какие именно поля полетят на сервер - ? Не знаю. Используется ADOQuery. Где можно задать какие поля полетят на сервер ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 12:51 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich goldmi45Вариант - править ReturnAddress (или делать новую функцию), чтобы она по адресу (идентификатор улицы, номер дома, квартиры) формировала строку, которую можно было вызвать на клиенте, передавая в неё новые данные. Тогда это поле (Адрес) можно сделать Lookup. А Lookup по какому полю ? При формировании lookup-поля задаются key fields и lookup keys. Т.е. можно по нескольким полям сделать lookup. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 13:05 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich, а вообще, можно сделать поле адрес - вычисляемым (calc) и в событии OnCalcField вычислять его по другим полям. Тогда будет то поведение, которое вы хотите: Вы будете устанавливать 4 поля адреса, эти 4 поля будут передаваться в процедуру, которая по ним будет возвращать строку адреса, и вот эту строку вы и будете отображать в гриде. Тогда при нажатии ESC вернутся старые значения полей. Теоретически такое можно конечно сделать. Но если у вас в гриде будет 100500 человек, то будет 100500 запросов по адресу. И всё это ради того, чтобы пользователь имел возможность нажать ESC, если он увидел, что неправильно ввёл адрес до того, как этот адрес улетел на сервер. И встаёт вопрос "зачем такое поведение"? Сделайте процедуру, которая возвращает людей и их адреса Field type commentEMPLOYEE_ID integer идентификаторEMP_FIO string ФИОCITY_ID integer к справочнику городовSTREET_ID integer к справочнику улицHOUS_ID integer к справочнику домовAPPARTMENT_NUMBER integerADDRESS string адрес В гриде отображаете 2 поля - ФИО и адрес. У поля адрес делаете кнопку "редактировать", по кнопке поднимаете диалог с выбором адреса. Как только пользователь выберет адрес (т.е. будут готовы все 4 поля), вы записываете этот адрес в базу. Потом делаете рефреш данных (или одной записи, если позволяет датасет) и позиционируетесь на запись, которую пользователь редактировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 13:36 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
goldmi45 При формировании lookup-поля задаются key fields и lookup keys. Т.е. можно по нескольким полям сделать lookup. Тогда Датасет для Лукапа нужно построить не по всем возможным адресам, а только по тем которые есть в результирующем наборе ? Получается, открываем запрос из EMPLOYEE, потом пробегаем по всему полученному датасету и складываем в отдельный Датасет для Лукапа поля 1+2+3+4 и Адрес. А на сервере формируем такое же комбинированное поле 1+2+3+4. Код: sql 1. 2. 3. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2020, 13:52 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich Простите, что поднимаю старый топик. Прочитал пару раз, но решения так и не понял. Есть набор данных, где одна из колонок Адрес - результат работы функции, которая собирает слова Город, Улица, Дом, Квартира в один стринг. Код: sql 1. 2. Структура такая Код: sql 1. 2. 3. 4. 5. В гриде у этого поля (Address) редактор TcxButtonEdit Пользователь нажимает на кнопку, открывается Дерево городов, раскрывая узел показываются улицы, далее номера домов. Выбирая нужный адрес, возвращаются набор значений (CITY_ID,STREET_ID,HOUS_ID,APPARTMENT_NUMBER), на которые нужно поменять редактирумую строку, и каким то образом нужно изменить текст в колонке Адрес на вновь выбранный. Подскажите, как это сделать. Может нужно какой то другой компонент для редактирования в гриде ? Я конечно извиняюсь, но у Вас лыжи в гамаке из-за неправильной организации данных в БД. У Вас нарушение 5 нормальной формы, иными словами, судя по Вашему алгоритму действий, атрибуты, которые Вы пытаетесь хранить в таблице взаимозависимы. Если HOUS_ID является последним элементом в Вашей иерархии, то в таблице храните только это значение, если-же последним элементом иерархии является номер комнаты, то достаточно в таблице хранить только уникальный индекс комнаты. Зная уникальный номер комнаты вы всегда можете восстановить (вычислить) и дом, и улицу и город. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2020, 04:50 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
zeon11 Зная уникальный номер комнаты вы всегда можете восстановить (вычислить) и дом, и улицу и город. Хранить квартиры (впрочем как и дома) в отдельной табличке нет необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2020, 08:05 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich, Тогда храни только улицы. После коммита ID улицы на сервер, вычитывай на клиента вычисляемое поле , напр. FullAddress, где будут отражаться "Страна+Область+Город+Улица", ну и отдельными полями, если надо, дом и квартира ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2020, 09:27 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
zeon11 Тогда храни только улицы. После коммита ID улицы на сервер, вычитывай на клиента вычисляемое поле , напр. FullAddress, где будут отражаться "Страна+Область+Город+Улица", ну и отдельными полями, если надо, дом и квартира Не важно что хранить. Важно понять(разработать) методику "составного Лукапа" и способ редактирования его в гриде. Наверняка у каждого есть такой Лукап, но все почему то молчат как у них это реализовано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2020, 09:49 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Ну как уже сказал кто-то выше, редактировать прямо в гриде на определенном жизненном этапе перестает казаться правильным :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2020, 09:52 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich zeon11 Тогда храни только улицы. После коммита ID улицы на сервер, вычитывай на клиента вычисляемое поле , напр. FullAddress, где будут отражаться "Страна+Область+Город+Улица", ну и отдельными полями, если надо, дом и квартира Не важно что хранить. Важно понять(разработать) методику "составного Лукапа" и способ редактирования его в гриде. Наверняка у каждого есть такой Лукап, но все почему то молчат как у них это реализовано У меня такой был, но потом потерялся в 90-х, за ненадобностью. Но если серьёзно хочется, то сделай маленькую формочку, которую вызывай по событию выпадающего списка какого-либо лукапа и передавай туда фокус ввода. Естественно положение этой формочки при отображении надо рассчитывать, чтобы она выглядела по-месту, как выпадающий список. На показ стандартного лукапа надо поставить заглушку. Ну, а в самой показываемой форме делай какие хочешь компоненты отображения, запросы, деревья и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2020, 10:10 |
|
||
|
Расскажите, как вы организуете редактирование связанных табличек (в гриде, например)
|
|||
|---|---|---|---|
|
#18+
Petrashkevich, ещё, как вариант, сделать датасет в памяти, с ним резвиться, накатывать изменения, откатывать, и только когда пользователь созрел, отправлять данные на сервер. А лучше, всё-таки, об этом уже тут говорили, сделать редактируемую карточку записи и пускай пользователь что хочет, то и делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2020, 10:27 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2038531]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
137ms |
get topic data: |
8ms |
get forum data: |
4ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 484ms |

| 0 / 0 |
