Topic: Математические вычисления с данными из разных таблиц

Здравствуйте Дмитрий,

Я расширил проект, но не смог реализовать вычисления. Прошу помочь.

1. Смысл в следующем: Приходит один клиент ( таблица tbl_Bewohner: 1 человек) . Он может быть один ( тогда это число 1 остаётся) . Но с ним могут быть сопрвождающие (таблица tbl_Angehoerige) , их может быть несколько ( например 2 сопрвождающих). Тогда получаем
что вместе это 3 человека. Теперь надо вычеслить:
((1 человек: клиент из таблицы tbl_Bewohner + например, 2 человека : из таблицы tbl_Angehoerige) получилось 3 человека) умножить * на сумму : ячейка PreisPerson: "Preis pro Person" из таблицы tbl_Bewohner , затем умножить это * на количество дней, расчитанных из таблицы tbl_Zahlungen (End - Start= ячейка Tage: также из таблицы tbl_Zahlungen) и из этого всего надо вычесть - сумму, которая стоит в ячейке "Selbstbeteiligung" из таблицы tbl_Bewohner.
И этот результат записать в ячейку "betrag"  в таблицу tbl_Zahlungen и показать сразу при вводе данных на форме frm_Zahlungen "Soll-Zahlung":Edit1.

Если взять пример из проекта , то для клиента Max Mustermann должно получиться:
(1человек+2человека)*10€*27дней месяц февраль)-600€.

3*10*27-600=210 т.е. на форме frm_Zahlungen в "Soll-Zahlung":Edit1. должно появиться значение 210  оно должно записаться в таблицу tbl_Zahlungen (ячейка "betrag") .

2. На форме frm_Bewohner на CheckBox1 не могу поменять цвет шрифта на красный....... Что-то не так?

С уважением
Алексей

Post's attachments

Attachment icon Gbr_Neu_2.zip 860.26 kb, 338 downloads since 2018-03-14 

Re: Математические вычисления с данными из разных таблиц

Приветствую.


Это можно сделать с помощью вычисляемого поля в таблице tbl_Bewohner

(1 + (SELECT COUNT(tbl_Angehoerige.id) FROM tbl_Angehoerige WHERE tbl_Angehoerige.id=id_tbl_Bewohner)) *
tbl_Bewohner.PreisPerson  

затем умножить это * на количество дней, расчитанных из таблицы tbl_Zahlungen

возможно я неправильно понял задачу, или здесь ошибка в структруте БД. Т.к. не ясно, на что именно умножать, т.к. в таблице tbl_Zahlungen присутствует внешний ключ id_tbl_Bewohner, что означает, может быть несколько записей, которые относятся к таблице tbl_Bewohner, поэтому не ясно, на что именно умножать.

Dmitry.

Re: Математические вычисления с данными из разных таблиц

Здравствуйте Дмитрий,
Умножать надо на количество дней, расчитанных на форме frm_Zahlungen( между двумя датами) Таблица tbl_Zahlungen конечно привязана к таблице tbl_Bewohner, т.к. каждый клиент имеет свои платежи. Я поэтому и связал так две таблицы. Или это не правильно?
В проекте вроде все связи работают. Или я не так думаю?
Алексей

Re: Математические вычисления с данными из разных таблиц

Клиент имеет несколько платежей, поэтому не ясно, какой именно платеж использовать в формуле для данных расчетов. Ведь в каждом платеже свое значение Tage.

Dmitry.

Re: Математические вычисления с данными из разных таблиц

Дмитрий,
Я попробую так сформулировать:
В таблицу tbl_Zahlungen в ячейку "betrag" должно записаться значение вычесленное на форме frm_Zahlungen по формуле (Клиент + сопрвождающие)*цена в день*количество дней - сумма , которая стоит у клиента на форме frm_Bewohner в графе "Selbstbeteiligung".
И конечно в каждом платеже у одного и того же клиента могут стоять разные значения разных платежах, в зависимости от количества дней , сколько людей было на момент составления платёжки, сколько стоит в день и сколько стоит в графе "Selbstbeteiligung".
Я смог сейчас понятнее выразиться? Надеюсь...
Алексей

Re: Математические вычисления с данными из разных таблиц

И в каждом новом платеже для клиента вычисляется новое значение на момент создания платежа

Re: Математические вычисления с данными из разных таблиц

Может тогда бросить на форму Zahlungen ещё значения из данных ( всех нужных) клиента , которые должны быть на момент создания платёжки. Чтобы значение не поменялось при открытии платёжки.......????

8 (edited by derek 2018-03-16 01:38:56)

Re: Математические вычисления с данными из разных таблиц

Привет, Алексей,
Возможно, вы можете сделать это так?
Regards,
Derek.

Post's attachments

Attachment icon gbr2.zip 876.42 kb, 336 downloads since 2018-03-16 

Re: Математические вычисления с данными из разных таблиц

Здравствуйте Derek,
получилось то, что надо...работает!!!  :-) Получилось так, как я описал. Спасибо!
Но!!!... я, наверное сам , не совсем  понимал до конца, что может получиться,
если позже изменить какую-переменную. И из-за того, что не додумал, получил
соответствующий результат: Если , например, меняется количество сопровождающих
или сумма в день или другой параметр, то при открытии предыдущих платёжек сразу меняетя
общий результат. :-(  А этого я не хотел. Я хотел так, чтобы результат оставался всегда
тот, который был только на момент создания конкретной платёжки, независимо от того,
когда может быть открыта старая платёжка (через месяц , через год ит.д) Конечно,
если никакие переменные не меняются, то всё работает правильно. Но в моём случае
эти переменные могут поменяться со временем.
Как-то я не продумал этот процес до конца. Буду думать......Чего-то не хватает...
Но большое спасибо за реализацию того, как я это до этого описал!

Алексей

Re: Математические вычисления с данными из разных таблиц

Привет, Алексей,
Извините, но мой русский очень плохой - так по-английски.....
I have added some new fields to tbl_zahlungen so it saves the number of occupants, preisperson and selbstbeteiligung AT THE TIME OF INVOICING.  So any future changes to  these variables do not affect old invoices.
I show these new fields on frm_zahlungen so that the user can understand the calculation.
I hope this helps,
Regard,
Derek.

Post's attachments

Attachment icon gbr3.zip 877.23 kb, 314 downloads since 2018-03-16 

Re: Математические вычисления с данными из разных таблиц

Hello Derek,

That's (Hello) what I can write well in english :-)
I can understand english, but I can not write in english.
I speak German very well  and Russian.
Can we try it in russian? But you can answer in english.Tnx :-)

Спасибо огромное, это работает, That works! И правильно работает!

Но почему то у меня проект выдаёт пару ошибок в другом месте:
1. При вводе нового клиента или при обработке уже имеющейся записи клиента
при нажатии кнопок "save record" появляется ошибка: ('''' is not a valid date.)
Я не смог найти откуда берётся эта ошибка....
2. Перестали работать ячейки NotCompleted в таблице tbl_Bewohner на форме Form1:
Они становились зелёного цвета и стояло число 0 если все платёжки в таблице tbl_Zahlungen
имели значение ячейки "erledigt" = true. А если какое-то платёжки не были оплачены, то
ячейки NotCompleted в таблице tbl_Bewohner на форме Form1 были жёлтого цвета, и показывали
число сколько платёжок не оплачено.

Дерек, я надеюсь, что я правильно описываю это. На английском это было бы намного хуже,
так как Google Translator переводит это очень плохо. :-(

С уважением
Алексей

Re: Математические вычисления с данными из разных таблиц

Привет, Алексей

Я в порядке с Google Translator

Задача 1.
Вы получите эту ошибку, когда frm_bewohner.dtp1 пуст, и вы попытаетесь сохранить запись bewohner. Вы должны добавить запись в kuebernahme одновременно. Чтобы исправить сообщение об ошибке, я установил frm_bewohner.dtp1 = 'default checked' и оставил его видимым, чтобы вы могли видеть.

Проблема 2.
Исходный расчет был удален - я думаю, что это был я! Извини за это.
Я надеюсь, это поможет вам.
Derek.

Post's attachments

Attachment icon gbr3.zip 877.24 kb, 348 downloads since 2018-03-19 

Re: Математические вычисления с данными из разных таблиц

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

проект работает просто СУПЕР! Протестировал как мог, всё работает!!! Отлично!

Огромное спасибо! VERY NICE!

Попробую дальше расширить проект.... :-)

С Уважением
Алексей