Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2010, 12:45   #1
Dimka_89
 
Аватар для Dimka_89
 
Регистрация: 07.07.2010
Сообщений: 6
По умолчанию редактирование поля Boolean

Доброго времени суток!
Проблема заключается в следующем есть связка
ADOConnection->ADODataDriverEh->MemTableEh->DataSource->DBGridEh

Набор данных формируется запросом

Код:
SELECT goods.Goodsname,
           goods.unitid,
           unit.UnitName,
           (If(groupid<3,'1', Round(SUM(Number*Factor),3)-0.0))-0.0 as Kol,
           (If(groupid<3,'0', PricePrih)-0.0) as PricePrih,
           tovnakl.firmid,
           firms.FirmName,
           tovnakl.storeOutId,
           stores.StoreName,
           tovnakl.Goodsid,
            goods.groupid,
           (IF(Currency=0,'Руб', 'У.е.')) as Currency,
          Goodsid*storeOutId*storeoutid/RAND() as Unic,
          tovnakl.vib
FROM tovnakl LEFT JOIN goods LEFT JOIN unit ON goods.unitid=unit.ID ON  tovnakl.GoodsId=Goods.Id
                   LEFT JOIN firms ON tovnakl.firmid=firms.ID
                   LEFT JOIN stores ON tovnakl.storeOutId=stores.ID
GROUP BY Goodsid, PricePrih, firmid, storeoutid
HAVING kol>:par
Order by goods.Goodsname
Необходимо добавить поле типа Boolean не хранимое в БД
При добавление Calculated нет возможности его редактировать в Run-time.
Поле необходимо для того чтоб пользователь мог отметить товары для формирования заказа

БД - MySQL чарез ODBS
Dimka_89 вне форума Ответить с цитированием
Старый 19.10.2010, 13:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Поле необходимо для того чтоб пользователь мог отметить товары для формирования заказа
У-у-у... ИМХО это не так делается...
На каждого пользователя заводится корзина, куда он складывает товар. Если он отменяет товар - он из корзины удаляется. И никакое поле вычисляемое с этим лучше корзины не справится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.10.2010, 17:19   #3
Dimka_89
 
Аватар для Dimka_89
 
Регистрация: 07.07.2010
Сообщений: 6
По умолчанию

Под пользователем понимается кладовщица которая формирует приходные накладные, корзина тут вариант не уместный поскольку в нее товары заносятся по одному а необходимо выделить сразу пачку и занести в приходную накладную.
Dimka_89 вне форума Ответить с цитированием
Старый 19.10.2010, 17:32   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
не хранимое в БД
Почему поле не хранимое в БД? Создай обычное поле и кликом в гриде меняй либо 0, либо 1. Потом отфильтруешь. Сохранять данные все равно нужно. Чтобы можно было продолжить выбор и после перезапуска программы. Имхо. Не то кладовщица тебя съест :=))
_SERGEYX_ вне форума Ответить с цитированием
Старый 19.10.2010, 18:43   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
поскольку в нее товары заносятся по одному
Кто сказал? Покажи мне этого умного человека.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.10.2010, 22:19   #6
Dimka_89
 
Аватар для Dimka_89
 
Регистрация: 07.07.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Почему поле не хранимое в БД? Создай обычное поле и кликом в гриде меняй либо 0, либо 1. :=))
В этом суть вопроса, если поле сделать хранимым то оно на будет реагировать на нажатие если не обратил внимание то запрос идет с группировкой и фильтрацией, как ты себе представляешь хранить "0" Для товара группы записей , изменять у всей группы? поэтому предпочтительней не хранить а сразу обработать к тому же приложение многопользовательское т.е. несколько кладовщиц могут работать одновременно. Что касается сделать поле с кликом на изменение эт меня и интересует как.

Цитата:
Сообщение от Stilet Посмотреть сообщение
Кто сказал? Покажи мне этого умного человека.
корзина работает по принципу создается клиентская таблица в которую добавляются записи, которые в последствии обрабатываются. т.е. надо тыкать все товары по очереди (Добавлять по одному), надо выделить группу и занести в таблицу.

Последний раз редактировалось Stilet; 20.10.2010 в 11:57.
Dimka_89 вне форума Ответить с цитированием
Старый 20.10.2010, 09:41   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
надо выделить группу и занести в таблицу
Ну и сделай в Гриде MultiSelect. И пусть выбирают.
_SERGEYX_ вне форума Ответить с цитированием
Старый 20.10.2010, 09:41   #8
Dimka_89
 
Аватар для Dimka_89
 
Регистрация: 07.07.2010
Сообщений: 6
По умолчанию Всем спасибо проблема решена добавлением поля в запрос

Такой запрос возвращает лишний столбец со значением 0

Цитата:
SELECT goods.Goodsname,
goods.unitid,
unit.UnitName,
(If(groupid<3,'1', Round(SUM(Number*Factor),3)-0.0))-0.0 as Kol,
(If(groupid<3,'0', PricePrih)-0.0) as PricePrih,
tovnakl.firmid,
firms.FirmName,
tovnakl.storeOutId,
stores.StoreName,
tovnakl.Goodsid,
goods.groupid,
(IF(Currency=0,'Руб', 'У.е.')) as Currency,
Goodsid*storeOutId*storeoutid/RAND() as Unic,
tovnakl.vib,
(0) as Vibr
FROM tovnakl LEFT JOIN goods LEFT JOIN unit ON goods.unitid=unit.ID ON tovnakl.GoodsId=Goods.Id
LEFT JOIN firms ON tovnakl.firmid=firms.ID
LEFT JOIN stores ON tovnakl.storeOutId=stores.ID
GROUP BY Goodsid, PricePrih, firmid, storeoutid
HAVING kol>ar
Order by goods.Goodsname
Dimka_89 вне форума Ответить с цитированием
Старый 20.10.2010, 12:01   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
надо тыкать все товары по очереди
Ерунда какая-то...
Я пометил товары а уж потом нажал на "Положить в корзину"...
НУ спорить не буду хозяин - барин.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Boolean korzunmaria Паскаль, Turbo Pascal, PascalABC.NET 2 19.05.2010 22:13
Измененние цвета фона поля (поля со списком) при редактировании TimRus Microsoft Office Access 2 17.05.2010 21:56
Выявление одинаковости значений поля в одной талице по значению поля в другой nikmay SQL, базы данных 4 13.08.2009 12:51
Boolean Air Общие вопросы Delphi 2 16.02.2008 17:15
Boolean... ZhekON Общие вопросы Delphi 2 17.06.2007 00:39