Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-1090417137
Johnmen
2004-07-21 17:38
2004.08.08
Ночной позор


6-1086544697
Prankster.
2004-06-06 21:58
2004.08.08
Проверка на живость


6-1086871978
Softal
2004-06-10 16:52
2004.08.08
Сеть в DOS


14-1090332362
Piter
2004-07-20 18:06
2004.08.08
Как определить поддержку Unicode системой?


14-1090344974
DiamondShark
2004-07-20 21:36
2004.08.08
Задачи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский