Re: вычислительное поле

Здравствуйте.
Подскажите пожалуйста по вычисляемому полю.
В настройках таблицы есть фильтр. Но в строке этого фильтра похоже нельзя ссылаться на вычисляемое поле.
Тогда как лучше и правильней сделать отбор в таблице? Может скриптом или запросом?

Re: вычислительное поле

Здравствуйте,


Приложите пожалуйста ваш проект (zip файл без exe и dll) с описанием, на какой форме расположен данный компонент, для которого необходим фильтр.

Dmitry.

28 (edited by Milla.Makova 2015-12-04 08:20:10)

Re: вычислительное поле

Фильтр необходим для TableGrid1 на форме Sklad. Задача в том, чтобы товары с нулевыми остатками не отображались в таблице.

Post's attachments

Attachment icon База Хоз.zip 15.02 kb, 556 downloads since 2015-12-04 

Re: вычислительное поле

Готово, добавил новое выч. поле и CheckBox на форме, который учавствует в поиске и позволяет отфильтровать записи с нулевым остатком, при необходимости данный CheckBox можете скрыть (Visible=False)

Post's attachments

Attachment icon База Хоз_fixed.zip 15.09 kb, 598 downloads since 2015-12-04 

Dmitry.

Re: вычислительное поле

Дмитрий, огромное спасибо за поддержку. Получилось именно то, что нужно. И так просто все решилось. Действительно, как кто-то уже писал, справка по вычисляемым полям была бы не лишней.
Еще раз благодарю!

31 (edited by Havier 2015-12-08 12:08:13)

Re: вычислительное поле

Здравствуйте. У меня очень глупый и, наверно, простой вопрос.
Допустим, у меня есть вычислительное поле: "1 / Поле1" и проблема в том, что если Поле1 больше единицы, то результат в таблице отображается как 0. Как можно сделать так, чтобы отображались дробные числа с запятой?
И еще, можно ли отнять от одной даты другую дату?

Re: вычислительное поле

Havier
Приветствую,

попробуйте выч. поле написать так:

1.0 / Поле1


получите разницы между датами в годах

datefield1 - datefield2

так можно получить разницу между датами в днях

(strftime('%s', datefield1) - strftime('%s', datefield2)) / 86400.0
Dmitry.

33 (edited by Havier 2015-12-08 12:41:16)

Re: вычислительное поле

Спасибо большое, Дмитрий.
Всё работает. И за расчет в днях отдельное спасибо

Re: вычислительное поле

.вопрос по этой же теме, но более гипотетический, так как не могу придумать состав и количество таблиц с вычисляемыми полями. Дано:  лекарства и процедуры, у каждого значения своя цена и разное количество по применению, Задача: Требуется расчет цены приема с учетом использованных лекарств и примененных процедур без учета стоимости приема\(прием бесплатен). Получается надо  таблицу лекарств с ценой и таблицу процедур с ценой, третья таблица будет вычисляемым полем давать общую сумму, но если в третьей таблице применять связь для использования в компобоксе, то выпадает ошибка, без связи приходится вручную забивать и название процедуры и лекарств с их ценой и количеством. Версия 1.44 может выполнить эту задачу или необходимо обновиться?

Re: вычислительное поле

Доброго времени суток!
Есть вычисл. поле:

(SELECT TOTAL(base.profitss) FROM base WHERE base.id_Centre=Centre.id)

Друзья подскажите, что в нём надо изменить......
1. подсчитать количество строк?
2. подсчитать количество строк с положительными числами?
3. подсчитать количество строк с отрицательными числами?

                                                      С Уважением и Благодарностью Роман!!!

Re: вычислительное поле

Roman.SHmakov
Вам необходимы следующие таблицы


[прием]
  - дата_приема


[использованные лекарственные средства при приеме]
  -внешний ключ на таблицу [прием] с поддержкой целостности
  -внешний ключ на таблицу [словарь лекарств]
  -цена за ед.
  -количество


[примененные процедуры]
  -внешний ключ на таблицу [прием] с поддержкой целостности
  -внешний ключ на таблицу [словарь процедур]
  -цена за ед.
  -количество


[словарь лекарств]
  -наименование
  -цена за ед.


[словарь процедур]
  -наименование
  -цена за ед.


все это можно реализовать в версии 1.44

Dmitry.

Re: вычислительное поле

Роман

1

(SELECT count(*) FROM base)

2.

(SELECT count(*) FROM base WHERE base.profitss > 0)

3.

(SELECT count(*) FROM base WHERE base.profitss < 0)
Dmitry.

38 (edited by Роман 2015-12-16 20:42:23)

Re: вычислительное поле

Дмитрий...

(SELECT count(*) FROM base WHERE base.profitss > 0)

работает НО...
Пытаюсь вставить в

(SELECT TOTAL(base.profitss) FROM base WHERE base.id_Centre=Centre.id)

Какаен то каша получается:

(SELECT count(*) base.profitss> 0 FROM base WHERE base.id_Centre=Centre.id)

подскажите, где косячок?

Re: вычислительное поле

Вопрос СНЯТ!...Дмитрий спасибо Вам огромное!
Моё решение:

(SELECT count(*) FROM base WHERE base.profitss >= 0 AND  base.id_Centre=Centre.id)

Re: вычислительное поле

Доброго времени суток!!!
Проблема состоит в следующем:
с формы делаю запись в две таблицы....с проверкой на дубликат в таблица BBB, что имею:
------------таблица "ААА"------------                    ------------таблица "ВВВ"-------------
id_CCC  |     data_A     |  profit                       id_CCC  |     data_В     |  profits (вычислительное поле)                                                       
------------------------------------------                    --------------------------------------------
    111      |  01.01.2016  |   10                             111      |  01.01.2016  |   30    (хотелось бы так)
    111      |  01.01.2016  |   20                             222     |  01.01.2016  |    5      (хотелось бы так)
    222     |  01.01.2016  |     5                             111      |  02.01.2016  |   50     (хотелось бы так)
    111      |  02.01.2016  |   50       
=============================================================================
P./S.   заполнил вычислительное поле...оно считает общею сумму для id_CCC в таблице "ВВВ"

(SELECT TOTAL(AAA.profit) FROM AAA WHERE AAA.id_CCC=CCC.id)

   
ВОПРОС:
Что надо дописать в  вычислительное поле,что бы оно считало
общею сумму у "data_A"  с такой же датой "data_В" для id_CCC в таблице "ВВВ"...   

                                             С Уважением и Благодарностью Роман!!!

Re: вычислительное поле

Дмитрий взгляните пожалуйста  пост №40????

Re: вычислительное поле

Роман wrote:

Дмитрий взгляните пожалуйста  пост №40????

попробуйте так

(SELECT TOTAL(AAA.profit) FROM AAA WHERE AAA.id_CCC=BBB.id_CCC AND BBB.data_В=AAA.data_A)
Dmitry.

43 (edited by Роман 2016-07-21 22:46:36)

Re: вычислительное поле

DriveSoft
попробуйте так
(SELECT TOTAL(AAA.profit) FROM AAA WHERE AAA.id_CCC=BBB.id_CCC AND BBB.data_В=AAA.data_A)

Дмитрий при таком запросе в вычислительном поле получаю все "нули"...
изменял "AND" на "OR", тогда считает общею сумму для id_CCC в таблице "ВВВ" т.е. получается
моё поле не видит условие "BBB.data_В=AAA.data_A"
как ещё можно написать,что бы условие осталось такое же???

(SELECT TOTAL(AAA.profit) FROM AAA WHERE AAA.id_CCC=BBB.id_CCC AND BBB.data_В=AAA.data_A)

ИСХОДНИК ПОСТ№40

Re: вычислительное поле

SELECT

id_CCC ,
data_A ,
SUM(profit)

FROM AAA
GROUP BY id_CCC, date(data_A) ;

Re: вычислительное поле

Пример :

Post's attachments

Attachment icon sortirovka.7z 274.47 kb, 546 downloads since 2016-07-22 

Re: вычислительное поле

Огромное Вам спасибо iacovlogica!!!
Но мне хотелось это сделать через вычислительное поле!!!

Re: вычислительное поле

Доброго времени суток!!!
1.)

DriveSoft
попробуйте так
(SELECT TOTAL(AAA.profit) FROM AAA WHERE AAA.id_CCC=BBB.id_CCC AND BBB.data_В=AAA.data_A)

Дмитрий при таком запросе в вычислительном поле получаю все "нули"...
т.е. получается моё поле не видит условие "BBB.data_В=AAA.data_A"
как ещё можно написать,что бы условие с датой осталось такое же???
ИСХОДНИК ПОСТ№40
2.)

(SELECT TOTAL(AAA.profit) FROM AAA  WHERE ?????????????????????)

это вычислительное поле
Вопрос: что надо дописать чтоб получить сумму за дату???
------------таблица "ААА"--------------------------------------------------               
id_CCC  |     data_A     |  profit     |     (вычислительное поле)                                                       
----------------------------------------------------------------------------------                 
    111      |  01.01.2016  |   10      |                  35
    111      |  01.01.2016  |   20      |                  35 
    222     |  01.01.2016  |     5      |                  35     
    111      |  02.01.2016  |   50      |                   50

С Уважением и Благодарностью Роман!!!

48 (edited by iacovlogica 2016-08-08 03:36:10)

Re: вычислительное поле

....По всей видимости задача должна звучать так ( Согласно посту номер 40 ) :
При добавлении записи в таблицу ААА  нужно что бы в таблице ВВВ  происходило суммирование количества соответствующего наименования за соответствующую дату а при отсутствии  добавить такую запись .
Я правильно понял ?

Post's attachments

Attachment icon sortirovka.7z 4.06 kb, 482 downloads since 2016-08-08 

49 (edited by Роман 2016-08-15 00:03:31)

Re: вычислительное поле

Доброго времени суток!!!
В первую очередь хочу выразить огромную благодарность форумчаном,
которые в меру своих знаний подсказывают или предлагают свой способ
решения той или иной возникшей проблемки...
Это действительно круто ощущать поддержку не только со стороны Дмитрия,
но и со стороны таких же пользователей MVD!!!
(Дмитрий возможно было бы здорово, если бы мы могли делать
респект-благодарности за оказанную помощь форумчаном!!!
Факт на лицо + вам побольше "свободного" времени на продвижения MVD!!!)
==================================================================
О...много-уважаемый iacovlogica огромное Вам СПАСИБО!!!
Вы действительно меня правильно поняли + Ваше решение задачи
помогло мне!!!
==================================================================
А теперь то, за чем мы здесь собрались.................................................
имею вычислительное поле, где запись:

(SELECT COUNT(*) FROM AAA ln WHERE ln.data_A = AAA.data_A AND id_CCC = CCC.id)

Это работает !!!ОК!!!
Проблема:
Как только меняю

(SELECT TOTAL(AAA.profit) FROM AAA ln WHERE ln.data_A = AAA.data_A AND id_CCC = CCC.id)

1.) данные из таблицы ААА отображают в TableGrid1, только одна строчка!!!
     хотя используя "DateTimePicker1" и "ComboBox1" при поиске считает правильно,
    но опять же в TableGrid1  отображается  только одна строчка!!!
ВОПРОС:
Друзья подскажите, что надо исправить в  вычислительном поле...
чтобы отображались все записи из таблицы ААА как положено, а не одна строчка???

50 (edited by iacovlogica 2016-08-15 12:31:50)

Re: вычислительное поле

...будет Вам с вычисляемым полем , только добавлять запись все равно нужно каким либо способом.
Было бы неплохо видеть проект чтоб понять что не так работает .
( с описанием желаемого )

Post's attachments

Attachment icon sortirovka.7z 4.06 kb, 615 downloads since 2016-08-15