Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизВопрос по SQL Найти похожие ветки
← →
Newuser © (2004-07-13 11:56) [0]Это продолжение вопроса заданного вчера. Структура БД такова: в запросе использованы три таблицы-dbf: m_s0401-файл остатков (04-год, 01-месяц), m_nc-файл наименований, c_kei-единицы измерений. Соединяю таблицы 1 и 2 по nn-номенклатурный номер, 2 и 3 по (kei=kod) коду.
← →
Newuser © (2004-07-13 12:03) [1]Соловьев ©
Или нужно описать все поля?
← →
Ильш © (2004-07-13 12:07) [2]очень смешно.. очень
а вопрос то сам хде? опять мысли читать?
← →
Соловьев © (2004-07-13 12:08) [3]
> m_s0401-файл остатков (04-год, 01-месяц), m_nc-файл наименований,
> c_kei-единицы измерений. Соединяю таблицы 1 и 2 по nn-номенклатурный
> номер, 2 и 3 по (kei=kod) коду.
все поля покажи
← →
Newuser © (2004-07-13 12:20) [4][3]
>все поля покажи
m_s0401: 1.NS С 8, 2.TN С 5, 3.SS С 6, 4.NN С 8, 5.CENA N 15 2, Q1 N 15 4, 6.SUM1 N 15 2
m_nc: 1.SS C 6, 2.NN C 8, 3.NAMEM C 45, 4.KEI N 3 0.
c_kei: 1.TEXT_ C 10, 2.KOD N 3 0
← →
Newuser © (2004-07-13 12:38) [5]Ильш © (13.07.04 12:07) [2]
>а вопрос то сам хде? опять мысли читать?
Извини, вопрос был такой:
Здравствуйте, уважаемые мастера! Помогите пожалуйста. Вопрос связан с использованием SQL-запроса. На форме разместил два RadioGroup-а и два ComboBox-а, в каждом из которых (в Items-ах) много значений. В DBGrid-е данные должны изменяться после именения в каждом из вышеуказанных компоненте. Подскажите, как в коде поступить, перебирать SQL по каждому значению? Или можно по-проще. Извините, если не правильно объяснил.
← →
HSolo © (2004-07-13 14:15) [6]Вариант 1: запрос с параметрами, при изменении в RadioGroup / ComboBox переоткрыть запрос
Вариант 2: фильтрация (OnFilterRecord + св-во Filtered)
← →
Newuser © (2004-07-13 14:27) [7][6]
>Вариант 1: запрос с параметрами, при изменении в RadioGroup / ComboBox переоткрыть запрос
Для первого выбора по выбору первого пункта в каждом компоненте я пишу:
procedure TFm_ostatView.Button2Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:
case RadioGroup2.ItemIndex of
0:
case ComboBox1.ItemIndex of
0:
case ComboBox2.ItemIndex of
0:
with Query1 do begin
SQL.Clear;
SQL.Add("select a.ns, ss, cena, q1, sum1, qt, sumt, data, b.namem, c.text_");
SQL.Add("from m_s0401 a, m_nc b, c_kei c");
SQL.Add("where a.nn=b.nn and b.kei=c.kod and ns="00000001" and ss="11100"");
SQL.Add("order by ss");
Open;
Меня интересует, эту часть:
case RadioGroup1.ItemIndex of
0:
case RadioGroup2.ItemIndex of
0:
case ComboBox1.ItemIndex of
0:
case ComboBox2.ItemIndex of
0:
все время нужно будет писать? Ну естественно менять после of 1 2 3 и т.д.
А может вообще все по-другому?
← →
Соловьев © (2004-07-13 14:29) [8]
> SQL.Add("where a.nn=b.nn and b.kei=c.kod and ns="00000001"
> and ss="11100"");
какая логика этого where? можешь расписать?
← →
Newuser © (2004-07-13 14:36) [9][8]
>какая логика этого where? можешь расписать?
Здесь a.nn=b.nn and b.kei=c.kod, думаю, понятно. А ns="00000001" - это выбор склада ("00000001" - склад №1), ss="11100" - это выбор группы материала ("11100" - Другие необоротные материальные активы 11100). 11100 - это в плане счетов, балансовый счет.
← →
Соловьев © (2004-07-13 14:40) [10]а как играет роль здесь год и месяц?
← →
Newuser © (2004-07-13 14:47) [11][10]
>а как играет роль здесь год и месяц?
Да, будешь наверно смеяться, но пока что год и месяц выбирается от сюда "from m_s0401...", то есть у нас файлы m_s0401, m_s0402, m_s0403, m_s0404 и т.д. Здесь год и месяц. (Ну база придумана не мной, я использую то, что дали).
← →
Newuser © (2004-07-13 14:59) [12]Еще, - Во "from" при следующем варианте выбора (месяца) будет - from m_s0402 (2004 год, февраль)
← →
Соловьев © (2004-07-13 15:01) [13]
> Да, будешь наверно смеяться,
тут плакать надо...
тогда еще надо формировать и строку from тоже функция в которую передаются RadioGroup1, RadioGroup2 , а в другую функцию, которая строит where - ComboBox1, ComboBox2.
> ns="00000001" - это выбор склада ("00000001" - склад №1),
> ss="11100" - это выбор группы материала ("11100" - Другие
> необоротные материальные активы 11100). 11100 - это в плане
> счетов, балансовый счет.
т.е. основная тут трабла из-за того что в комбобоксах хранится строка. используй DBLookUpCombobox - тут подключи наборы данных по счетам и складам, и передавай параметр не строку, а код склада и код счета.
← →
Newuser © (2004-07-13 15:02) [14]Соловьев © (13.07.04 14:40) [10]
Скажешь наверно головоломку придумал, сам понимаю, а сделать как лучше... в общем "затупился".
← →
Соловьев © (2004-07-13 15:02) [15]
> т.е. основная тут трабла из-за того что в комбобоксах хранится
> строка. используй DBLookUpCombobox - тут подключи наборы
> данных по счетам и складам, и передавай параметр не строку,
> а код склада и код счета.
и не надо функции построения where
← →
Newuser © (2004-07-13 15:06) [16][15]
Огромное спасибо!
Постараюсь дальше не "тупить", знаю, мне еще многому нужно учиться.
Желаю удачи!!!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c