Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

Вопрос по 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.022 c
14-1090583108
Andrey
2004-07-23 15:45
2004.08.08
Разовая удаленная работа для Delphi программиста


3-1089724430
STM
2004-07-13 17:13
2004.08.08
НЕ ИСПОЛЬЗУЯ сторонних библиотек Pack dbf


4-1088181167
m2003
2004-06-25 20:32
2004.08.08
Блокировка Windows


6-1086101138
Sword
2004-06-01 18:45
2004.08.08
IP по MAC


14-1090399797
Max Ivanych
2004-07-21 12:49
2004.08.08
А вот если пытаться открыть свою фирму?