|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.07.2014, 12:01 | #1 |
Пользователь
Регистрация: 24.07.2014
Сообщений: 16
|
Отображение сгрупированных записей БД
Здравствуйте, дорогие форумчане!
Мне нужна ваша помощь. Использую Delphi XE2. В общем, такая ситуация: Посоветуйте, как лучше решить такую задачу. Нужно создать справочник, для вычисления комиссии перевода для определенной суммы. Есть таблица стран, таблица валют. сделал, чтобы комиссия вычислялась по формулам, согласно интервалов(например,0-100,101-200$). Все работает, все отлично. В каждой записи моей таблице тарифов есть: 1)айдишник системы; 2)айдишник страны; 3)айдишник валюты; 4)инрревал(границы тарифа); 5)формула для рассчета; Но так его очень тяжело наполнять и изменять, потому что исходные данные тарифа для сист. переводов имеют вид: Россия, Украина, Белоруссия,Грузия - Доллар, Евро - от1 до100 - 5%; Россия, Украина, Белоруссия,Грузия - Доллар, Евро - от101 до 200 - 6%; и т.д . Выходит, что для данной реализации нужно заводить для каждой страны, валюты, да еще для каждого интервала новую запись и для человека, который будет с ним работа - это ад Думаю, что в бд нужно хранить также по 1 записи, но для пользователя их групировать. Тоесть загружать данные в ДС, а потом в виртуальной таблице отображать уже как одну запись. В общем нужно переделать/доделать, чтобы с ним было проще работать пользователю. Чтобы при создании/редактировании одного тарифа пользователь выбрал в ДБГридах несколько стран, потом несколько валют, интерфал и формулу комиссии - ему все отображалось в таком виде: Россия, Украина, Белоруссия,Грузия - Доллар, Евро - от1 до100 - 5%; а не в таком(хотя в базе буду хранить в таком): Россия - доллар - от1 до100 - 5%; Украина - доллар - от1 до100 - 5%; ... Россия - евро - от1 до100 - 5%; Украина - евро - от1 до100 - 5%; ... И я не знаю как лучше это лучше сделать? Опытные люди, подскажите. П.С.: Сорри, я что-то не так оформил, или вы просто не отвечаете? Последний раз редактировалось activexpoint; 24.07.2014 в 15:09. |
24.07.2014, 15:45 | #2 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
При наполнении списка могу посоветовать отображать все в разных списках ( для ран один дбгрид/дблист, для валют отдельный) и включить выделение нескольких записей, свойство multiselect, если не ошибаюсь. Думаю будет достаточно удобно. Выделил нужные страны, затем валюты, вбил промежуток и сохраняй перебирая выбранное.
пишу код не только за печеньки
|
25.07.2014, 11:25 | #3 |
Пользователь
Регистрация: 24.07.2014
Сообщений: 16
|
Сейчас реализовано так:
В принципе так и сделано. Эти справочники похожи. На форме ДБГрид с записями тарифоф, поля стран и валют редактировать вручную нельзя, при клике на них в режиме редактирования - вываливается новый справочник, но уже уже стран или валют, и там и происходит выбор нужной. Есть нюанс, что в бд хранится айди валюты и страны, а показывать пользователю нужно название. Мультиселект я включил(есть проблема, что активна только 1 запись, но решения в инете есть. найду думаю), тоесть можно выбрать несколько стран, несколько валют. И потом сохранить в бд по отдельности записи для каждой валюты и страны. Это я знаю как сделать, вроде. Вопрос в том, как потом выбрать все эти одиночные записи с базы для того, чтобы вывести пользователю, как группу: Россия, Украина, Белоруссия,Грузия - Доллар, Евро - от1 до100 - 5%; вместо: Россия - доллар - от1 до100 - 5%; Украина - доллар - от1 до100 - 5%; ... Россия - евро - от1 до100 - 5%; Украина - евро - от1 до100 - 5%; ... Последний раз редактировалось activexpoint; 25.07.2014 в 12:00. |
25.07.2014, 11:40 | #4 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
а собирать уже ручками придется в stringgrid к примеру, а в запросе на выборку указывать диапазон и процент, а там уже валюту и страны подтягивать.
по поводу мультиселекта как минимум можно пройтись по всем записям и проверять их "выделенность". И если не ошибаюсь даже есть в DBGrid специальное свойство/метод что бы пробегать исключительно по выделенным записям.
пишу код не только за печеньки
|
25.07.2014, 12:07 | #5 |
Пользователь
Регистрация: 24.07.2014
Сообщений: 16
|
вы имеете в виду, что для того, чтобы отобразить тарифи, например, сист. переводов WU, в таком виде:
Россия, Украина, Белоруссия,Грузия - Доллар, Евро - от1 до100 - 5%; мне нужно выбирать с базы одиночные записи, с одинаковым интервалом? А как потом это все выводить ДБГрид? Обрабатывать и заносить в виртуальную таблицу. а уже оттуда в ДБГрид? |
25.07.2014, 12:18 | #6 | |||
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
Цитата:
Цитата:
Цитата:
работать с собранным списком думаю будет неудобно, не эргономично. Для дальнейшей работы с данной таблице (для расчета взимаемого %) полагаю более удобно будет выбирать уже отдельно страну и валюту, но это лично мое мнение.
пишу код не только за печеньки
Последний раз редактировалось VIK_aka_TOR; 25.07.2014 в 12:21. |
|||
25.07.2014, 12:40 | #7 |
Пользователь
Регистрация: 24.07.2014
Сообщений: 16
|
Спасибо за помощь. Буду делать. Если можете, напишите еще запрос выбора всех записей, у которых одинаковый интервал, не конкретный. И еще, пользователю будет выводится все тарифы с разными интервалами, как быть здесь? Пример:
Россия, Украина, Белоруссия,Грузия - Доллар, Евро - от1 до100 - 5%; Россия, Украина, Белоруссия,Грузия - Доллар, Евро - от101 до200 - 4%; Россия, Украина, Белоруссия,Грузия - Доллар, Евро - от201 до300 - 3%; и т.д. |
25.07.2014, 12:57 | #8 | |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
берете таблицу тарифов в ней у вас согласно описанию :
Цитата:
пишу код не только за печеньки
|
|
28.07.2014, 11:14 | #9 |
Пользователь
Регистрация: 24.07.2014
Сообщений: 16
|
А если без нужного интервала? Получить все записи для данной системы и сгруппировать их по интервалам. Просто не во всех тарифах есть интервал, есть просто процент от суммы.
И Как лучше организовать редактирование? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Часть PDM системы(тиражирование записей номенклатуры и записей техпроцесса) | ankan | Microsoft Office Access | 3 | 06.03.2014 16:15 |
Создать массив записей в соответствии с заданной структурой. Количество записей не больше 10. | zulja | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 21.05.2012 07:50 |
Отображение записей в полях | khvostatyy | Microsoft Office Access | 6 | 28.02.2010 16:56 |
Обновлаение и отображение записей в dbgrideh | artemavd | БД в Delphi | 1 | 18.07.2009 18:18 |
Отображение числа записей БД: вопрос | Evgenii | БД в Delphi | 16 | 26.06.2009 10:04 |