powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложный отчет
11 сообщений из 11, страница 1 из 1
Сложный отчет
    #32300066
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hello,

Необходимо сделать отчет представляющий древовидные данные (в правильном порядке). Вложенные таблицы не подходят. Плюс ко всему одним запросом это не открыть (необходимы команды ветвления).
Необходимо сделать Datasheet данные в который будут попадать не из recordsource а будут заполняться из VB один раз при инициализации.

Help! Please!

Thx!
...
Рейтинг: 0 / 0
Сложный отчет
    #32300091
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а группировка в теле отчёта совсем не подходит?
...
Рейтинг: 0 / 0
Сложный отчет
    #32300113
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подходит. Я с помощью SQL даже данные не могу получить.
...
Рейтинг: 0 / 0
Сложный отчет
    #32300146
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так ты все проблемы в кучу не сбрасывай
"Я с помощью SQL даже данные не могу получить" это что такое?
что это означает? Запрос построить не можешь?

сначала данные получи , а уж потом за отчёт принимайся

Необходимо сделать Datasheet данные в который будут попадать не из recordsource а будут заполняться из VB один раз при инициализации.

ну так в чём проблема конкретно? если очень сложный алгоритм получения данных - сделай временную таблицу и заноси в неё , а лтчёт строй на основе этой таблички с использованием группировка в теле отчёта
...
Рейтинг: 0 / 0
Сложный отчет
    #32300167
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать сторонние компонеты, а можно сэмулировать дерево - заполнив временную таблицу (кол-во полей равно кол-во уровней вложения дерева), на основании этой таблицы строить отчет, а лишнии поля скрывать (этих полей надо наготовить с избытком ).Например, таблица из 255 полей: П1, П2, П3 ... П255, в отчете 255 полей, привязанных к ячйкам таблицы. При открытии выясняем кол-во уровней вложенности (например, пусть будет 7), значит отображаем поля отчета с 1 по 7, остальное скрываем.
Надо только правльно заполнить временную таблицу. Да что нибудь придумать с форматированием отчета
Вроде так (сам не делал - только думал) :)
...
Рейтинг: 0 / 0
Сложный отчет
    #32300221
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По порядку:

1) Я не могу получить данные одним SQL запросом. Так как там необходимы ветвления, и прочие неприятности.
2) Мне необходимо представлять данные не только в отчете но и в форме для удобства просмотра (а в datasheet нет группировки похожей на ту что есть в отчете)
3) Было бы неплохо если бы можно было заполнять recordset (какую-нибудь реализацию recordset) в ручную. Просто сказать что есть n столбцов и m строк и записать туда данные используя VB.

Thx!
...
Рейтинг: 0 / 0
Сложный отчет
    #32300232
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получить дерево (ветвления) в запросе легко, если используешь стандартную структуру таблы дерева
ID ParentID Name

- заджойнь по числу вложенности веток таблицу эту саму на себя - и будет тебе щастье.
есть другие варианты, в форуме обсуждались.

Рекордсет вручную тоже заполнишь (если уж нада так, без джойнов) - открой его через DAO или ADO и заполняй, он у тебя и будет двумерным:
строки - записи, столбцы - поля.
как - см. форум или справку
...
Рейтинг: 0 / 0
Сложный отчет
    #32300300
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>1) Я не могу получить данные одним SQL запросом. Так как там необходимы ветвления, и прочие неприятности.

можно посмотреть в сторону Hierarchical Rowsets
SHAPE {SELECT au_id, au_lname, au_fname FROM authors}
APPEND ({SELECT au_id, title FROM titleauthor TA, titles TS
WHERE TA.title_id = TS.title_id}
AS title_chap RELATE au_id TO au_id)

Код: 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.
This is the Microsoft Visual Basic® source code for the sGetTitleAuthors function:

Private Function sGetTitleAuthors() As String
Dim rstParent   As ADODB.Recordset
Dim rstChild    As ADODB.Recordset
Dim sBuf        As String
   
' SECURITY NOTE - When possible, use Windows Authentication.
Const CONNECT_PUBS = "PROVIDER=MSDataShape;DATA PROVIDER=SQLOLEDB;" & _
    "SERVER=;DATABASE=pubs;Trusted_Connection=yes"
Const SHAPE_TITLEAUTHORS = _
    "SHAPE {SELECT au_id, au_lname, au_fname FROM authors} " & _
    "APPEND ({SELECT au_id, title FROM titleauthor TA, titles TS " & _
             "WHERE TA.title_id = TS.title_id} " & _
            "AS title_chap RELATE au_id TO au_id)"
            
    ' ----- create rowsets
 
    Set rstParent = New ADODB.Recordset
    rstParent.Open SHAPE_TITLEAUTHORS, CONNECT_PUBS
            
    '----- process parent rowset
    Do While Not rstParent.EOF
        sBuf = sBuf & rstParent("au_id") & vbTab & _
            rstParent("au_lname") & ", " & rstParent("au_fname") & vbCrLf
            
        ' ----- process chapter of child rowset
 
        Set rstChild = rstParent( "title_chap" ).Value
        Do While Not rstChild.EOF
            sBuf = sBuf & vbTab & vbTab & rstChild( "title" ) & vbCrLf
            rstChild.MoveNext
        Loop
        rstParent.MoveNext
    Loop
    sGetTitleAuthors = sBuf
End Function


Правда никогда сними не работал

>2) Мне необходимо представлять данные не только в отчете но и в форме для удобства просмотра (а в datasheet нет группировки похожей на ту что есть в отчете)

см. MS TreeView
...
Рейтинг: 0 / 0
Сложный отчет
    #32300785
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hello,

Проблема не в древовидности отчета, а в том что необъодимо ссылаться на разные таблицы в зависимости от данных кортежей. Да и нормального представления через datasheet добиться не удается.

Thx!
...
Рейтинг: 0 / 0
Сложный отчет
    #32300819
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты на пальцах объясни, что есть и что хочешь.

==
"Только понятие может быть эксплицитно и помещено на уровень аутентичной логики переходя из внешнего... " //про труды Гегеля :)
...
Рейтинг: 0 / 0
Сложный отчет
    #32300903
Pavel Krupets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hello,

Есть таблица в которой хранятся документы а также их взаимосвязи (дерево: child ссылается на парента)

Есть таблицы в которых храняться данные для документов (иногда это одна таблица иногда несколько). Тип документа храниться в предыдущей таблице.

Необходимо сформировать отчет (note: не отчет MS Access) в виде datasheet (чтобы работать было удобнее) который представляет документы их связи и т.д. (первая колонка корневой элемент, потом пара колонок по его child, и колонки child'а child'а). Если есть несколько записей для элемента то необходимо показывать его только первый раз. (Вобщем хорошо если бы была функциональность отчета MS Access)

что-то вроде (D# - корневой документ, C# - child, CC# - child child'а, С1 в D1 и в D2 это разные записи):

D1, C1, CC1
............CC2
......C2, CC1
......C3, CC1
D2, C1, CC1

Я сначала сделал отчет в котором перечислены данные корневых элементов и можно глянуть их детей в виде открывающейся таблицы. Но очень не удобно просматривать (слишком громоздко).

Вложений не более 3.

Всем спасибо!

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


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