![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Помогите пожалуйста кто-нибудь сделать вычисляемое поле!!!! Никто не может мне помоч, а курсовую уже пора сдавать(( Вся надежда только на форум!!! Если кто-то согласится мне помочь, я расскажу что там нужно, даже могу базу выслать, что б понятней было. Для меня всё это оч сложно, не могу сама сделать (((((((((((
|
#2
|
|||
|
|||
![]() помочь можно но задание надо излагать сразу же за просьбой
![]() |
#3
|
|||
|
|||
![]() Не знаю смогу ли понятно объяснить........Вобщем, у меня крсач по автосервису.....оформление заказов. И мне нужно чтобы он подсчитывал сумму заказа. У мен есть отдельно табличка с деталям где указано их наименование и стоимоть, есть табличка где перечислены виды работ и их стоимость. Вот, а когда идёт оформление заказа я допустим выбираю конкретную работу, ниже в гриде выскакивает какие к этой работе необходимы детали. Ниже идёт DBLookupComboBox в котором ещё нужно выбрать чья будет детать клиента или автосервиса. если деталь клиента то стоимость заказа = только стоимоти работы, а если деталь автосервиса, то нужно к стоимости заказа прибавить ещё и стоимость всех необходимых деталей. НО в одном заказе может быть ещё и несколько видов работ ( у меня мах в одном заказе 3 работы можно) вот....так что если работ несколько то их ещё между собой потом надо сложить и в конце вывести итоговую сумму...вот..............
|
#4
|
|||
|
|||
![]() Цитата:
Тогда только через триггер или программно высчитывать Итого: Если используете grid-компонент EhLib, то он автоматом может это делать :-) |
#5
|
|||
|
|||
![]() если честно ничё в этом не понимаю и ни слова не поняла что вы сказали))
|
#6
|
|||
|
|||
![]() Цитата:
Вы запросами пользоваться умеете? (Query) |
#7
|
|||
|
|||
![]() Цитата:
Какая база? MSSQL? Interbase? 1. Вычисляемое поле делается при объявлении базы 2. Второй вариант обыкновенное поле, но с расчетом по триггеру. |
#8
|
|||
|
|||
![]() а тут тебя не интересует другие таблицы, за исключением основных.
Тут надо считать на корневых, в которых храняться именно строки заказа (бо как там указаны все интересующие тебя данные). Как бы делал я. Я бы сделал 2 основных таблички: Orders - заголовки заказов, OrderItems - строки заказов. Естественно, в OrderItems есть поля: OrderID - ид заказа Itemtype - тип записи (деталь/работа) JobID - ид работы PartID - ид детали ClientsPart - деталь клиента (флаг = [0,1]) Measure - ед. изм. Quantity - кол-во Cost - стоимость 1 шт ItemSum - стоимость кол-ва (можно делать не физическим, а виртуальным). Соответсвенно, в процессе работы заполняется таблица OrderItems. Сумма по ней считается либо одним запросом (:OID - параметр ид заказа) SELECT SUM(ItemSum) AS OrderSum WHERE OrderID = :OID And ClientsPart = 0 Или, если ItemSum виртуальное, то SELECT SUM(Cost * Quantity) AS OrderSum WHERE OrderID = :OID And ClientsPart = 0 Если считаем внутри клиентского приложения - то так, как я писал в предыдущем посте, т.к. у тебя уже есть все позиции текущего заказа. Кстати, запрос на вычисление суммы заказа в указанном выше виде можно воткнуть в триггер и просто заполнять поле таблички Orders. Вот. А как ты заполняешь собственно табличку позиций заказа никого не волнует. Фактически, пользователь может ввести как отдельные детали/работы, так и создать несколько записей при выборе какой-то предопределенной операции. |