|
|
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Как хранить в таблице рез-ты вычислений? Может это и не совсем правильно, но на главной форме есть несколько полей, в которых обрабатывается сумма позиций из трех подч.форм. Обработка весьма запутанная - всякие коэффициенты, суммы разных комбинаций и прочая хрень(что-то типа строительной сметы). Дело в том, что полученные значения потом используются в других частях программы и каждый раз их заново вычислять проблемно. Пробовал на Текущую запись гл.формы повесить процедуру расчета данных и присвоение результата полям, но: 1. поля заполняются, почему-то, только в режиме отладки, в обычном режиме данные в поле не заносятся. 2. не совсем понятно, как обеспечить теперь "попадание" в гл.форму измененной суммы позиций подч.формы, когда в ней изменяются данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 19:09:13 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
1) У вас где-то ошибка. Приведенная вами информация оставляет мало шансов разгадать какая и где. 2) Надо освежать расчет тоталов в главной форме при событие текущие подчиненных и/или при изменении записей подчиненных. А по хорошему надо было бы поковыряться и сделать расчеты на уровне запросов с iif'ами, case'ами групповыми операциями и прочими, а не на уровне форм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 19:46:54 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
В подч.форме на Текущая запись пишу: Код: plaintext 1. 2. Получаю стандартное: "Невозможно присвоить значение полю..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 10:54:40 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Надо выбрать одно из двух. Либо задать ControlSource на главной форме для поля !РаботыСтоим как =<Вложенная форма>.Form!Итого и рефрешить, рекверить. Либо оставить его свободным, но в подчиненной вложенной писать в обработчиках событий Me.Parent!РаботыСтоим = Me!Итого P.S. Кириллицу в именах таблиц, полей и пр. - не люблю. Не лень при набивке кода все время туда-сюда переключаться ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 11:50:17 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
авторЛибо оставить его свободнымтак если его свободным оставить, то в таблице результаты не появятся. У меня сейчас все эти поля(17 штук) - свободные , а в Данные указана формула расчета значения, в итоге - значения считаются, но нигде не сохраняются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 12:14:12 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Если нужно заносить данные в таблицу, то логично сделать кнопку "Сохранить" и в ней обработчик событий. А я бы все-таки постарался сделать на уровне запросов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 12:28:03 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Дык как енто сделать? Исходные данные - итоговые суммы из подч.форм. На их комбинациях вычисляются 17 параметров сметы(поля в главной форме). Запрос-источник ее не видит исходных данных, как их в нем обсчитывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 13:07:09 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Подчиненные формы опираются на данные. В них происходят вычисления. Значит можно написать запросы, которые будут делать то же самое. В подчиненных формах есть итоговые поля. Стало быть можно взять построенные запросы, просуммировать необходимое и связать с таблицей, которая служит источником данных для главной формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 13:13:31 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Попробывал: 1.Взял только одну подч.форму(для простоты) 2.Главная форма основана на табл.Сметы, подч на СметыРаботы. Таблицы связаны по КодСмета. 3.Создал запрос к СметыРаботы, в нем считаю и итоговую сумму по строкам и все 17 значений, которые на ней основаны. И как теперь это все закинуть в табл Сметы? Кнопку Записать как-то не хочется добавлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 13:41:32 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Вот, итоговый запрос уже получился. Теперь можно взять главную таблицу Сметы и Left Outer Join <суммирующий запрос> по полю КодСмета. Все это дело посунуть главной форме в качестве источника данных. После этого суммирующие поля из запроса можно смело шлепать на форму. Для обновления сумм надо будет вызывать Refresh, Requery главной формы. То есть при наличии элементарных данных итоговые суммы можно в базе не хранить, они будут расчитываться автоматически, когда вы захотите взглянуть на них через формы, отчеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 13:47:41 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
1. Все так и вышло, только Requery главной формы придется прописывать на ПослеИзменения каждой поч.формы? 2. А данные так и не сохраняются... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 14:08:27 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
1. Если Refresh'а будет недостаточно. 2. НЕ НАДО сохранять данные, которые считаются "на лету" в момент возникновения в них надобности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 14:25:49 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
И еще: Итоговый запрос состоит, в свою очередь, из других запросов - по числу подч.форм, в моем случае это будет 3 запроса, объединенные в итоговом запросе. Это нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 14:26:59 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Если меделенно работает, надо оптимизировать. Если нет - оставить как удобнее для проектирования. (Мне приходится граф запросов рисовать в PowerPoint чтобы не запутаться что куда входит.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 14:48:30 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
автор2. НЕ НАДО сохранять данные, которые считаются "на лету" в момент возникновения в них надобности. Большая часть этих данных потом используется в разных местах, в т.ч. и в отчетах(в аналитике). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 15:57:13 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
И еще: Запрос основной формы в результате стал необновляемый, а форма предназначена для ввода данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 16:19:31 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Продолжаю беседовать сам с собой: Пришлось на основе итогового запроса создать еще одну подч.форму только с расчетными значениями. Появились проблема: при добавлении/изменении строк в "рабочих" подч.формах, по их событию AfterUpdate, делаю Refresh главной формы, при этом меняются и данные в итоговой подч.форме. Но если в "рабочих" подч.формах удалить записи, то не удается изменить данные в итоговой подч.форме, на какое событие процедуру не вешай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 17:53:47 |
|
||
|
Результат вычислений - в таблицу
|
|||
|---|---|---|---|
|
#18+
Мы храним подобные расчетные данные в главной таблице. Пересчет автоматически запускается рано утром до прихода сотрудников, так что если в результате сбоя сумма в главной таблице разошлась с хранимыми данными, в начале дня сотрудники гарантированно будут иметь на формах и в аналитике правильные значения. Сами формы ничего не считают, но при обновлении и при сохранении внесенных в форму данных снова происходит пересчет, не тотальный, как утром, а текущего документа. Изменения в формах можно делать только по нажатии кнопочки разрешения редактирования, на ее отжатие вызывается пересчет. Результаты вычислений в таблице, все расчеты только в коде (запросами или вызовом хранимой процедуры). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2005, 20:14:27 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32885090&tid=1669032]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 295ms |

| 0 / 0 |
