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

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

Me!lblCaption.Caption=...

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

Me!txtField8.Visible=False
...
Рейтинг: 0 / 0
15.03.2004, 17:42
    #32442377
demon11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
имеется в виду - написать все это в обработке OnOpen отчета, но стринг то оттуда не виден. Или я чегой то не понимаю, если моно поподробнее?
ПЛЗ
...
Рейтинг: 0 / 0
15.03.2004, 17:53
    #32442399
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
Что значит не виден? А глобальные переменные почему нельзя использовать?
...
Рейтинг: 0 / 0
15.03.2004, 17:54
    #32442404
demon11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
да протормозил экскьюз
ща попробую
...
Рейтинг: 0 / 0
17.03.2004, 11:50
    #32445089
demon11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
стринг определен в общей области главной формы, там где все batton-ы CheckBox-ы и т.д.
И в области отчета его не видно
...
Рейтинг: 0 / 0
17.03.2004, 12:28
    #32445174
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
Ничего не понял. Стринг - это переменная. Их описывают в модулях при помощи команды Dim или Public. Как он может быть определен в какой-то области формы???
...
Рейтинг: 0 / 0
17.03.2004, 12:50
    #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
17.03.2004, 13:07
    #32445280
demon11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
Эт я торможу, начал работать с Акс 2- недели назад, чот поднахватался а с основами проблем, спасибо.
Да тут у меня еще один проблем с отчетом - компоненты поле, надпись, добавляемые на отчет не имею свойств text, value да и visible я не нашел???Коды тот же компанент на форму добавляешь там есть.
...
Рейтинг: 0 / 0
17.03.2004, 13:10
    #32445288
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
тебе нужно :
1 вариант
сделать заготовку со всеми возможными контролами и программно назначать им recordsorce при открытии в зависимости от количества полей в рекодсете.
а все оставшиеся ненужными - скрывать

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

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

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

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

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

Обязательно, но можно в Хайде - тогда и не поймешь, что он вообще открывался...
...
Рейтинг: 0 / 0
17.03.2004, 13:24
    #32445329
Deminik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
...Docmd.OpenReport "mySuperReport" acDesign ,,,, acHidden
...reports!mySuperReport.RecordSource = strSQL
...reports!mySuperReport!myField = strSQL
...Docmd.Close acReport, "mySuperReport", acSaveYes
...
Рейтинг: 0 / 0
17.03.2004, 13:36
    #32445362
demon11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
Deminik-у
reports!mySuperReport!myField = strSQL
строка не работает, пишет что "для получения доступа к свойству перейдите в режим формы, или удалите ссылку на свойство"
...
Рейтинг: 0 / 0
17.03.2004, 13:56
    #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
17.03.2004, 13:56
    #32445404
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
reports!mySuperReport.RecordSource = strSQL
...
Рейтинг: 0 / 0
17.03.2004, 14:02
    #32445413
demon11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
Если использовать не поле, а надпись, то все прокатывает (со строкой им-ся в виду)
...
Рейтинг: 0 / 0
17.03.2004, 14:05
    #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
17.03.2004, 14:39
    #32445506
demon11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
АлексейК
Спасибо огромное бум рыть
Если у кого есть готовый примерчик плз, или ссылочка?
...
Рейтинг: 0 / 0
18.03.2004, 17:19
    #32447821
demon11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формирование отчета
Еще раз спасибо АлексеюК, почти удалось реализовать первый вариант им предложенный,
1 вариант
сделать заготовку со всеми возможными контролами и программно назначать им recordsorce при открытии в зависимости от количества полей в рекодсете.
а все оставшиеся ненужными - скрывать

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


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