Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Вниз

Использование логики в создании вычисляемых полей   Найти похожие ветки 

 
Lika_d   (2004-08-20 09:35) [0]

Ув. Мастера!!!
На форме лежат 2 компонента table, Datasource, Dbgrid
table1 - Справочник, table2 - Итоги
Структура табл1:
Kod_s -Код стоимости
stoimost -Стоимость;
Table2:
Kod_pr Код продукта (этот код большого значения не имеет)
Kod_s - Код стоимости
P_k - Потребное количество продукта
sum- Сумма

Так вот Sum:=P_k*stoimost (из табле1)
т.е. мне нужно чтобы значение стоимости была равна той записи которая указана в поле kod_s.
Я пробовала написать в процедуре table2.oncalcfields следующее:

var
x:variant;
begin
x:=table2.AsInteger;
table1.RecNo :=x;
table2.FieldByName("sum").Value :=table1.fieldbyname("stoimost").Value *table2.FieldByName("p_k").Value;
end;
Но выходит ошибка table1.stoimost не найден, как я поняла это из-за датасета
Помогите пожалуйста!!! Как это реализовать?
Если есть другие легкие методы посоветуйте!

Заранее благодарю!!!


 
46_55_41_44 ©   (2004-08-20 09:50) [1]

Солнышко насколько я вижу ты не корректно организовала БД. Ну зачем тебе отдельная таблица где должны быть цены и их коды...
Каждый товар имеет цену - это определенно.. То есть твоя table1 теряет всякий смысл!!!
Прделагая сделать так...
Table2:
Kod_Pr (как раз-таки должен иметь большое значение для дальнейшего использования... ключевое поле!!!)
Можно еще добавить
Naim_Pr - наименование продукта
Stoimost - стоимость
P_k - Потребное количество продукта...

Далее пишем такой вот запрос:
Select Kod_Pr, Naim_pr, Stoimost, P_K, (Stoimost * P_K) as Summa from Table 2
Order By Kod_Pr

и все получаешь все данные, которые нужны!!!


 
Lika_d   (2004-08-20 09:56) [2]


> 46_55_41_44 ©   (20.08.04 09:50) [1]
> Солнышко насколько я вижу ты не корректно организовала БД.

Эта програмка нужна мне для подготовки другой программы т.е. для тренировки предпологается что мне дадут другую программу в которой врядли удастся все в одну таблицу слить, там будут несколько справочников и и несколько видов итоговых таблиц связанных между собой

А за совет спасибо я и этот способ учту!!!


 
46_55_41_44 ©   (2004-08-20 10:08) [3]

Ну я же не предлагаю тебе все сливать в одну таблицу... просто данный случай решить лучше так...

ну, а если ты все-таки хочешь сделать своим путем, то:

Table2:
Kod_pr Код продукта (этот код большого значения не имеет)
Kod_s - Код стоимости
P_k - Потребное количество продукта
sum- Сумма - это поле не нужно!!!!

далее

SELECT Table2.Kod_Pr, Table1.Stoimost, Table2.P_K, ([P_K]*[Stoimost]) AS Summa
FROM Table1 LEFT JOIN Table2 ON Table1.Kod_s = Table2.Kod_S;


 
Lika_d   (2004-08-20 10:13) [4]

:))
я чайник и еще не дошла до запросов куда это писать, и откуда потом его доставать и выводит в dbgrid и в quickrep е


 
Sergey13 ©   (2004-08-20 10:29) [5]

2[4] Lika_d   (20.08.04 10:13)
>я чайник и еще не дошла до запросов куда это писать
Тогда отложи дела в сторону и срочно за книжку. Лучше потратить время с пользой. 8-)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.036 c
3-1093080762
KADAN
2004-08-21 13:32
2004.09.19
MSSQL -> Access


10-1038907331
Nikols
2002-12-03 12:22
2004.09.19
Распределенный DataSet


1-1093687684
Lefan
2004-08-28 14:08
2004.09.19
Как написать плагин к своей программе?


14-1093948712
VID
2004-08-31 14:38
2004.09.19
Регистрация: что для этого нужно ?


6-1087821074
NLO
2004-06-21 16:31
2004.09.19
HTTP ЗАПрос





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский