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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
1-1094476911
low
2004-09-06 17:21
2004.09.19
WebBrowser


1-1094476579
pavelgr
2004-09-06 17:16
2004.09.19
tmemo


1-1094047174
Slaga
2004-09-01 17:59
2004.09.19
Как прочитать строку с определенным порядковым номер ...


14-1093610510
ИМХО
2004-08-27 16:41
2004.09.19
Тем, кто занимается бодибилдингом (и сочувствующим)


9-1073679215
Stalker_23b
2004-01-09 23:13
2004.09.19
РЕАЛИСТИЧНАЯ Физика в игре.