|
|
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
Есть поле в отчёте, значение которого я вычисляю на OnFormat, как сумму некоторых полей. (поле находится в Footere) Вижу его на экране (к примеру 2) Печатаю отчёт - вижу 4. Кто-нибудь сталкивался с подобным? Кстати, почему не могу написать в этом поле в Cotrol Sourse: =Sum([поле_из_details]) - получаю: #Error ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:21 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
Может потому, что событие Format возникает не один раз? >Кстати, почему не могу написать в этом поле в Cotrol Sourse: >=Sum([поле_из_details]) - получаю: #Error ? Может потому, что [поле_из_details] не входит в RecordSource данного отчета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:29 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
я breakpoint поставил на OnFormat, не заходим туда после того, как я на печать посылаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:33 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
В событие Format передается параметр FormatCount Вот его и проверять. Если не равно 1 - то не суммировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:35 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
да, в RecordSource не входит - это некое выражение с IIf. Тогда Sum по нему не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:37 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
>я breakpoint поставил на OnFormat, не заходим туда после того, как я на печать посылаю. А такое разве может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:38 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
стас1 писаля breakpoint поставил на OnFormat, не заходим туда после того, как я на печать посылаю. Это как не заходим? Если не заходим - значит событие и не работает ни фига, можешь его выкинуть нафих и искать куда ты таки заходишь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:39 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
>да, в RecordSource не входит - это некое выражение с IIf. >Тогда Sum по нему не работает? Конечно не работает Включите вычисляемое поле в запрос для отчета ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:40 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
заходим, когда отчёт на экран выводится, а когда я на принтер посылаю - не заходим. проверка на FormatCount = 1 - не помогла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:44 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
К совету ЛП добавлю выдержку из Help: ========= В некоторых случаях Microsoft Access возвращается к предыдущим разделам отчета для выполнения форматирования в несколько проходов. При возврате к каждой предыдущей секции отчета происходит событие Возврат (Retreat), а событие Форматирование возникает несколько раз для каждого раздела. В процедурах обработки событий или в макросах, связанных с событием Возврат, допускается отмена всех изменений, которые были внесены при возникновении события Форматирование в данном разделе. Этот прием применяется в тех случаях, когда в процедурах обработки события или в макросах, связанных с событием Форматирование, выполняются действия, например, вычисление итоговых сумм по странице или изменение размеров раздела, которые необходимо выполнить для каждого раздела только один раз. ========= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:44 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
>заходим, когда отчёт на экран выводится, а когда я на принтер посылаю - >не заходим. Покажите код, как вы это проверяете (извините, но у меня большие сомнения в достоверности вашего утверждения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:47 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
If (FormatCount = 1) Then суммирую End If а проверяю, что не заходим, когда на принтер посылаю - поставив breakpoint на OnFormat ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 21:53 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
>а проверяю, что не заходим, когда на принтер посылаю - поставив >breakpoint на OnFormat Это не очень достоверная проверка (тем более я не вижу на какую строку вы поставили breakpoint) Впишите сразу после описания процедуры строчку Debug.Print "Format " & Now И посмотрите, сколько она раз появится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 22:02 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
>If (FormatCount = 1) Then >суммирую >End If Понимаете, при выводе на экран своя процедура печати, при выводе на принтер своя, поэтому FormatCount будет=1 и при выводе на экран и при последующей печати. А значение поля остается. И если вы при суммировании пишите [ИмяПоля]=[ИмяПоля]+КакоеТоЗначение То естественно, что при в последующей печати (после вывода на экран) значение поля удваивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 22:11 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
спасибо, буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 22:46 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
1. Накапливать значения в переменной рекомендуется по OnPrint, с учетом значения PrintCount. 2. При печати отчета, выведенного на экран все события разделов повторяются. Поэтому и результат удваивается. Обнуляйте переменную по событию Format заголовка отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 10:48 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
обнулил переменную по событию Print заголовка отчета - стало хорошо. >Конечно не работает >Включите вычисляемое поле в запрос для отчета не понял, что это значит. связать это поле напрямую в Control Source? но у меня это должно быть IIf(x=0,0,x). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 19:06 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
Что такое IIf(x=0,0,x)? Чем это отличается от просто x? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 19:09 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
ничем. у меня, скажем: IIf(x=0,0,y/x) - это отличается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 19:25 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
>не понял, что это значит. связать это поле напрямую в Control Source? > IIf(x=0,0,y/x) Я же не знаю, что такое у вас x и у. Но я знаю, что в запрос тоже можно добавлять вычисляемое поле, например SELECT field1, field2, iif(field1=0,0,field2/field1) as field3 FROM ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 19:33 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
я сделал так, перенес IIf в SELECT. теперь поле_1 привязано напрямую к field3 в Control Source. = Sum([поле_1] - всё равно #Error. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 19:50 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
А почему не =Sum(Field3)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 19:53 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
то же самое, получаю #Error ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 19:59 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
>я сделал так, перенес IIf в SELECT. Запрос с данной инструкцией открывается нормально? В поле field3 данные есть? Упрошайте задачу, сделайте простую таблицу, простой запрос с вычисляемым полем, на нем постройте отчет с полем суммирующим вычисляемое поле. Все должно получиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 20:41 |
|
||
|
глюк: удвоение значения поля при печати отчёта
|
|||
|---|---|---|---|
|
#18+
Может IIF глючит, может переделать iif в функцию function f(arg1,arg2) select case arg1 case 0 f=0 case else f=arg2/arg1 end select end function? и написать SELECT field1, field2, f(field1,field2) as field3 FROM ...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 20:53 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32348489&tid=1677688]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
146ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 212ms |
| total: | 449ms |

| 0 / 0 |
