|
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
|
|
Условие на отмену печати отчета23.10.2013, 20:06. Показов 1760. Ответов 12
Метки нет (Все метки)
Здравствуйте. Мне необходимо, чтобы при нажатии кнопки -Печать- отчета -БЛАНКЗАКАЗА- печать производилась только, если заполнено поле -РЕГНОМЕР- этого отчета. Спасибо.
0
|
|
| 23.10.2013, 20:06 | |
|
Ответы с готовыми решениями:
12
Условие на отмену печати отчета (версия 2)
Как отловить отмену печати? |
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 23.10.2013, 20:20 | |
|
Вам наверняка известно значение РЕГНОМЕР, в крайнем случае можно посмотреть в его источнике в отчете. Поэтому есть 2 пути:
1. На кнопке проверять условие РЕГНОМЕР и если пусто, обходить команду вызова отчета 2. В самом отчете, на события открытия (Open) проверять РЕГНОМЕР, и если пусто, ставить параметр процедуры открытия Cancel = True. Отчет по этой команде закроется, не проявившись
1
|
|
|
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
|
|
| 23.10.2013, 20:36 [ТС] | |
|
Я хотел, чтобы отчет открывался, путь смотрят, что там написано, но если нет номера регистрации, то далее по задумке при нажатии кнопки, которая находится на отчете, должно вылететь предупреждение, типа: ПОДОЖДИТЕ ПОЖАЛУЙСТА ДО РЕГИСТРАЦИИ. Спасибо.
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||
| 24.10.2013, 03:55 | ||
|
В этом усеченном отчете, кстати, в заголовке можно поместить предупреждающее сообщение о необходимости регистрации. И без всяких кнопок. Которые, по моему глубокому убеждению в отчетах просто неуместны.
1
|
||
|
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
|
|
| 24.10.2013, 20:06 [ТС] | |
|
Я наверно не совсем ясно объяснился. База реально рабочая на предприятии. Оформление бланка заказа настроено так, чтобы ошибки были исключены (во всяком случае за 2 года их пока небыло). Работа построена так: мастера в цехах на определеную работу открывают заказ. Номер заказу присваивается автоматически (следующий по порядку). Заказ распечатывают. Затем заказ должен попасть к нам, где по правилам мы должны его зарегистрировать, т.е. в бумажном журнале присвоить номер регистрации и поставить дату регистрации (тоже самое и на готовом бланке). Я не хочу в бумажном журнале писать руками и на бланке тоже (просто нет времени и секретарши). Поэтому я время от времени захожу в свою форму и проверяю вновь открытые заказы. Нажатием одной кнопки на этой форме присваиваю номер регистрации, т.е. следующий рег_номер и встает дата регистрации. Если мастер открыл отчет (бланк заказа) и распечатал его до моей регистрации, то он распечатывается без номера регистрации и даты регистрации. Кнопка вывода на печать находится на отчете (бланке заказа). Там она только для того, чтобы не искать эту кнопку (в Runtime-е она зарыта).
Многоуважаемый mobile! Попробовал по Вашему второму варианту описанному выше: Private Sub Report_Open(Cancel As Integer) If Рег_номер Is Null Then Cancel = True End If End Sub пишет:Run-time error '424' Object requried Подскажите, что не так? Спасибо!
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 24.10.2013, 20:26 | |
|
А что такое Рег_номер? Если Рег_номер это поле отчета, то на событии Open полей еще не видно. Но вы же откуда-то берете это значение? Из источника отчета? Из формы? Так оттуда и надо брать значение для проверки
И второе - в ВБА не работает склевский Is Null. Есть функция IsNull(поле) If IsNull(Forms!МояФорма!Рег_номер) Then или If IsNull(Me.Recordset.[Рег_номер]) Then
0
|
|
|
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
|
|
| 25.10.2013, 20:46 [ТС] | |
|
Что-то ни чего не получается. Сделал по другому, вроде без ошибочный вариант:
1. создал фильтровальную форму [Бланк заказа]. На ней выбираются поля в комбобоксе [Дата], поле [Заказ]. При выборе поля [Заказ] автоматически через listbox в поле [Рег_номер] проставляется регистрационный номер (если он есть), а если его нет, то пусто (все данные из одной таблицы. Задача была вывести в форму три значения, которые нужны для открытия бланка заказа и для условия печати). При нажатии кнопки "Открыть бланк" открывается бланк заказа. На этом бланке заказа есть кнопка для печати Кнопка175, на которой пишу: Private Sub Кнопка175_Click() If IsNull([Формы]![Бланк заказа]![Рег_номер]) Then DoCmd.OpenForm "Текст", acFormPivotChart ElseIf [Формы]![Бланк заказа]![Рег_номер] > 0 Then DoCmd.PrintOut End If End Sub Ругается:Приложению МС Access не удается найти поле "|1", указанное в выражении. В listbox в поле [Рег_номер] значение подставляется без кода, т.е. первое поле и есть номер регистрации (если в этом есть разница)? Ниже показана форма где выдирается бланк и сам бланк с кнопкой на печать. Спасибо
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||
| 25.10.2013, 21:24 | |||||||
1
|
|||||||
|
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
|
|
| 26.10.2013, 06:07 [ТС] | |
|
Исправил. Спасибо, ошибка прошла. Однако, если [Рег_номер]>0, то открывается форма [Текст] с текстом предурпреждения, т.е. печать не идет. Переставил условия местами. Написал:
Private Sub Кнопка175_Click() If [Forms]![[Бланк заказа]![Рег_номер] > 0 Then DoCmd.PrintOut ElseIf IsNull([Формы]![Бланк заказа]![Рег_номер]) Then DoCmd.OpenForm "Текст" End If End Sub все равно: в любом случае печать не идет, а только открывается форма "Текст". По моему, что-то не то с: [Forms]![[Бланк заказа]![Рег_номер] > 0 ???
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 26.10.2013, 09:26 | ||||||
|
Попробуйте такое условие
0
|
||||||
|
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
|
|
| 26.10.2013, 18:01 [ТС] | |
|
Опять, что-то не-то. Извениете, но у меня идей нет, точнее я не знаю как написать с чем сделать условие (любой символ в поле, любой знак или что-то еще). Подскажите пожалуйста. То, что пишет во вложенном файле. Спасибо.
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 26.10.2013, 18:15 | ||||||
|
Хех!... Это я скопировал ваше выражение с двумя открывающими прямыми скобками перед Бланк заказа :-) И не посмотрел, что там ошибка. Исправляюсь.
0
|
||||||
|
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
|
|
| 26.10.2013, 20:11 [ТС] | |
|
Все равно открывает только форму. Игнорирует первое условие.
Добавлено через 9 минут Подсказали еще: Len([Формы]![Бланк заказа]![Рег_номер])>0 все равно условие пропускает и открывает форму Добавлено через 1 час 28 минут Выяснил. Тут явное не понимание листбокса. Вывел это поле через комбобокс и все заработало. Есть проблема. В этом комбобоксе надо номер подтвердить, т.е. открыть. А как сделать, чтобы все поля в форме [Номер заказа] были для заполнения обязательными? Т.е. пока не заполнишь все три поля заказ не откроется? Спасибо.
0
|
|
| 26.10.2013, 20:11 | |
|
Помогаю со студенческими работами здесь
13
Как при печати отчета программно установить параметры печати?
Запуск печати из отчета вопрос по форме и печати отчета Ошибка в коде печати отчёта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|