![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование логики в создании вычисляемых полей [D6, dBase, FoxPro]
Lika_d © (2004-08-20 09:35:00)Ув. Мастера!!!
На форме лежат 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 не найден, как я поняла это из-за датасета
Помогите пожалуйста!!! Как это реализовать?
Если есть другие легкие методы посоветуйте!
Заранее благодарю!!!
Sergey13 (2004-08-20 10:29:00) [1]2[4] Lika_d (20.08.04 10:13)
>я чайник и еще не дошла до запросов куда это писать
Тогда отложи дела в сторону и срочно за книжку. Лучше потратить время с пользой. 8-)
Lika_d (2004-08-20 10:13:00) [2]:))
я чайник и еще не дошла до запросов куда это писать, и откуда потом его доставать и выводит в dbgrid и в quickrep е
46_55_41_44 (2004-08-20 10:08:00) [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 09:56:00) [4]
> 46_55_41_44 © (20.08.04 09:50) [1]
> Солнышко насколько я вижу ты не корректно организовала БД.
Эта програмка нужна мне для подготовки другой программы т.е. для тренировки предпологается что мне дадут другую программу в которой врядли удастся все в одну таблицу слить, там будут несколько справочников и и несколько видов итоговых таблиц связанных между собой
А за совет спасибо я и этот способ учту!!!
46_55_41_44 (2004-08-20 09:50:00) [5]Солнышко насколько я вижу ты не корректно организовала БД. Ну зачем тебе отдельная таблица где должны быть цены и их коды...
Каждый товар имеет цену - это определенно.. То есть твоя 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
и все получаешь все данные, которые нужны!!!