powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / формирование отчета
25 сообщений из 61, страница 1 из 3
формирование отчета
    #32442116
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Используя форму делаю запрос к таблице. Запрос формируется динамически, в зависимости от того чего выбрано на форме.
Как динамически создавать отчет на запрос и выводить его? В этот же отчет нуно помещать описание того что собственно выбиралось, string с описанием формируется в процедуре (оброботка клика на форме).
ПЛЗ!!!
...
Рейтинг: 0 / 0
формирование отчета
    #32442189
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На OnOpen отчета:

me.recordsource=...
...
Рейтинг: 0 / 0
формирование отчета
    #32442265
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не так не получается, отчт должен быть динамический, количесва полей в запросе может меняться, и раз и навсегда из задать нельзя, кроме того как быть со стрингом?
...
Рейтинг: 0 / 0
формирование отчета
    #32442363
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Со стрингом быть аналогично:

Me!lblCaption.Caption=...

И с контролами так же:

Me!txtField8.Visible=False
...
Рейтинг: 0 / 0
формирование отчета
    #32442377
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
имеется в виду - написать все это в обработке OnOpen отчета, но стринг то оттуда не виден. Или я чегой то не понимаю, если моно поподробнее?
ПЛЗ
...
Рейтинг: 0 / 0
формирование отчета
    #32442399
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Что значит не виден? А глобальные переменные почему нельзя использовать?
...
Рейтинг: 0 / 0
формирование отчета
    #32442404
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да протормозил экскьюз
ща попробую
...
Рейтинг: 0 / 0
формирование отчета
    #32445089
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
стринг определен в общей области главной формы, там где все batton-ы CheckBox-ы и т.д.
И в области отчета его не видно
...
Рейтинг: 0 / 0
формирование отчета
    #32445174
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ничего не понял. Стринг - это переменная. Их описывают в модулях при помощи команды Dim или Public. Как он может быть определен в какой-то области формы???
...
Рейтинг: 0 / 0
формирование отчета
    #32445229
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты когда формируешь строку SQL, полученный результат пихай в некое поле в отчете...

Типа:

Нажатие кнопки для печати...
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim strSQL as String
strSQL =  "select ....from ... where...and..." 
...
reports!myreport.RecordSource = strSQL
...
ТвоеПолеВОтчетеДляСтринга = strSQL
...Печать отчета...
...
Рейтинг: 0 / 0
формирование отчета
    #32445280
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эт я торможу, начал работать с Акс 2- недели назад, чот поднахватался а с основами проблем, спасибо.
Да тут у меня еще один проблем с отчетом - компоненты поле, надпись, добавляемые на отчет не имею свойств text, value да и visible я не нашел???Коды тот же компанент на форму добавляешь там есть.
...
Рейтинг: 0 / 0
формирование отчета
    #32445288
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тебе нужно :
1 вариант
сделать заготовку со всеми возможными контролами и программно назначать им recordsorce при открытии в зависимости от количества полей в рекодсете.
а все оставшиеся ненужными - скрывать

но это подойдет только для отчета с ограниченным максимальным числом полей

2 генерить отчет программно так как это делает мастер отчетов
...
Рейтинг: 0 / 0
формирование отчета
    #32445292
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deminik - у
Отчет при этом должен быть открыт?
...
Рейтинг: 0 / 0
формирование отчета
    #32445298
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексеюК
А можно второй вариант поподробнее???
...
Рейтинг: 0 / 0
формирование отчета
    #32445307
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа тут у меня еще один проблем с отчетом - компоненты поле, надпись, добавляемые на отчет не имею свойств text, value да и visible я не нашел???

У каждого элемента управления есть свойства... По правой кнопки мышки вылазит формочка со вкладочками... Вот там это свойство - "Вывод на экран" называется, а если к нему средствами VBA обращаться, то он "Visible"... (что такое текст - не понял)
...
Рейтинг: 0 / 0
формирование отчета
    #32445312
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к сожалению готового примера под рукой нет

я пропустил момент:
авторЭт я торможу, начал работать с Акс 2-недели назад

наверное тебе будет сложновато, если конечно какая - нибудь добрая душа примерчик не кинет
...
Рейтинг: 0 / 0
формирование отчета
    #32445316
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОтчет при этом должен быть открыт?

Обязательно, но можно в Хайде - тогда и не поймешь, что он вообще открывался...
...
Рейтинг: 0 / 0
формирование отчета
    #32445329
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...Docmd.OpenReport "mySuperReport" acDesign ,,,, acHidden
...reports!mySuperReport.RecordSource = strSQL
...reports!mySuperReport!myField = strSQL
...Docmd.Close acReport, "mySuperReport", acSaveYes
...
Рейтинг: 0 / 0
формирование отчета
    #32445362
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deminik-у
reports!mySuperReport!myField = strSQL
строка не работает, пишет что "для получения доступа к свойству перейдите в режим формы, или удалите ссылку на свойство"
...
Рейтинг: 0 / 0
формирование отчета
    #32445402
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
' Это присваиваим RecordSource '
Docmd.OpenReport  "mySuperReport"  acDesign ,,,, acHidden 
reports!mySuperReport.RecordSource = strSQL 
Docmd.Close acReport,  "mySuperReport" , acSaveYes

' Это открываем отчет '
Docmd.OpenReport  "mySuperReport" 
reports!mySuperReport!myField = reports!mySuperReport.RecordSource


Так попробуй...Это я стормозил - как можно присвоить значение полю в режиме конструктора ?!!!
...
Рейтинг: 0 / 0
формирование отчета
    #32445404
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reports!mySuperReport.RecordSource = strSQL
...
Рейтинг: 0 / 0
формирование отчета
    #32445413
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если использовать не поле, а надпись, то все прокатывает (со строкой им-ся в виду)
...
Рейтинг: 0 / 0
формирование отчета
    #32445418
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не готовый пример как тебе нужно а демонстрация принципа создания контролов в отчете исходя из данных таблицы:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Public Sub reportgen()
DoCmd.OpenReport  "kadr_analiz_period" , acViewDesign
Dim CC, Y, X, H, W, cname As String, cdata As String

H =  5 
W =  15 
X =  0 
Y =  0 

H = H *  56 . 7 
W = W *  56 . 7 
X = X *  56 . 7 
Y = Y *  56 . 7 

Dim ctlNew As Control
Dim rep As Report
Dim Sec As Section
Set rep = Reports( "kadr_analiz_period" )
Set Sec = rep.Section( 0 )
Dim Rst As New ADODB.Recordset
Rst.Open  "exec dbo.kadr_analiz_period " , CurrentProject.Connection, adOpenStatic, adLockReadOnly

Do Until Rst.EOF
cname =  "f"  & Rst( "razdel" ) & Rst( "prmname" )  ' Это будет имя контрола'
cdata =  "=getval("  "" & Rst(" razdel ") & "  "","  "" & Rst(" prmname ") & "  "" )"  ' Это будет источник данных '
Y = Y + H
If Y >  30000  Then Y =  0 : X = X + W
GoSub CC
Rst.MoveNext
Loop


Exit Sub
CC:
Set ctlNew = CreateReportControl(rep.name, acTextBox, acDetail, Sec.name, cdata, X, Y)
DoCmd.Restore
ctlNew.name = cname
Return
End Sub
...
Рейтинг: 0 / 0
формирование отчета
    #32445506
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейК
Спасибо огромное бум рыть
Если у кого есть готовый примерчик плз, или ссылочка?
...
Рейтинг: 0 / 0
формирование отчета
    #32447821
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз спасибо АлексеюК, почти удалось реализовать первый вариант им предложенный,
1 вариант
сделать заготовку со всеми возможными контролами и программно назначать им recordsorce при открытии в зависимости от количества полей в рекодсете.
а все оставшиеся ненужными - скрывать

но есть одна загвоздка -
Полей много - 32, и загвоздка со скрыванием - при просмотре отчета появляются лишние листы, на которых помещены скрываемые поля, можно ли как либо при формировании отчета управлять этим, т.е. сохранять и выводить только нужные листы
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / формирование отчета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]