Главная страница
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.033 c
1-1094232418
Андрей2
2004-09-03 21:26
2004.09.19
Как сделать неактивной строчку в CheckListBox-e?


1-1094298121
dr Tr0jan
2004-09-04 15:42
2004.09.19
Хранение и передача массива из DLL в программу


1-1094032448
Anderson
2004-09-01 13:54
2004.09.19
Уменьшение/увеличение прозрачности отдельных цветов формы


3-1092906175
Карелин Артем
2004-08-19 13:02
2004.09.19
Доступ по к базе IB c использованием NamedPipe


1-1094267367
Aono4ever
2004-09-04 07:09
2004.09.19
Переход к фиксированному значению через текущее