Главная страница
    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.049 c
4-1090776214
Skyhawk
2004-07-25 21:23
2004.09.19
Как программно нажать Alt-Ctrl-Del


1-1094263572
O?O
2004-09-04 06:06
2004.09.19
Адрес E.Mail


3-1093323221
kva
2004-08-24 08:53
2004.09.19
InstallShield и BDE


14-1093953233
lipskiy
2004-08-31 15:53
2004.09.19
На каком максимальном расстоянии срабатывает смарт-карта в метро?


3-1093005881
Wolfram
2004-08-20 16:44
2004.09.19
Про кавычки





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