![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Подтвердите свой е-майл
Регистрация: 27.01.2015
Сообщений: 28
|
![]()
параметр запроса :id (код товара) получает значения из датасета, а эти значения надо перебирать в while цикле.
например: выписал накладной, в котором 3 записей. В DBGrid-е кроме полей бд у каждой записи хочу увыдеть вычисляемое поле ндс, который вычисляю в CalcFields процедуре. Потом в Label нужно получать sum(ндс*количество). В Datasete встаю на первую запись, который имеет свой ID товара и в while цикле перебираю записи: while not dataset1.eof do begin dataset1.close; dataset1.sql.clear; dataset1.sql.add('select * from Goods where id=:id'); dataset1.paramsbyname('id').asinteg er:=dataset1Id.asinteger; dataset1.open; end; если товар не облагается ндс-ом тогда ндс:=0 else ндс:=цена*18/118. но кроме этого надо проверять конкретно этот поставщик платит или нет ндс. А как это проверить на сервере,пока поставщика не выбрал на клиенте? Последний раз редактировалось delphi159; 13.10.2016 в 20:42. |
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Можно в запросе с помощью left join прицепить Goods к основной таблице и там то же самое делать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#13 |
Подтвердите свой е-майл
Регистрация: 27.01.2015
Сообщений: 28
|
![]() |
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Этим избавимся от вычисляемого поля на клиенте. И коль IB поддерживает агрегатные поля, то должно нормально просуммировать без твоего цикла. А если агрегатные поля в нем мираж, то вторым запросом суммируй и на клиенте просто бери из него данные
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#15 | |
Подтвердите свой е-майл
Регистрация: 27.01.2015
Сообщений: 28
|
![]() Цитата:
Код:
Последний раз редактировалось delphi159; 15.10.2016 в 19:15. |
|
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А просто так без не нужных вложений
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#17 | |
Подтвердите свой е-майл
Регистрация: 27.01.2015
Сообщений: 28
|
![]() Цитата:
А на счёт агрегата, наверно, не получится без Clientdataset-а. Interbase 2009 наверно не может группировать по выражению. Как, по вашему мнению, можно обойти эту проблему в IB? |
|
![]() |
![]() |
![]() |
#18 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Понятия не имею, ни когда не использовал IB. И агрегаты к СУБД не имеют отношения, этим занимается сам датасет. А чтобы сгруппировать по выражению запрос с ним нужно сделать вложенным в FROM и группировать во внешнем запросе
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 15.10.2016 в 14:53. |
![]() |
![]() |
![]() |
#19 |
Подтвердите свой е-майл
Регистрация: 27.01.2015
Сообщений: 28
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как суммировать 7 книг в 8 ? | Xp_Dron | Microsoft Office Excel | 5 | 24.12.2013 18:24 |
как суммировать в db grid | deadneoo | Компоненты Delphi | 0 | 01.05.2010 15:41 |
Си. Как суммировать элементы массива? | dma | Помощь студентам | 2 | 06.12.2008 17:11 |
как суммировать только определенный месяц? | Алька | Microsoft Office Excel | 2 | 08.05.2007 08:50 |