Страница 1 из 1
а как в отчете сформировать несколько независимых таблиц?
Добавлено: 08 окт 2007, 08:27
Александр
никто не подскажет?
мне нужно в одном информационном отчете нарисовать следующую картину под названием 'Карточка клиента'
т.е.
1. заголовочная информация - это понятно
2. таблица контактных лиц с атрибутами - это тоже понятно
а вот дальше
3. таблица запросов клиента с атрибутами
4. таблица сделок клиента с атрибутами
5. таблица активности клиента с атрибутами
6. таблица рассылок по клиенту с атрибутами
и все это на одном листе
т.е. как вывести кучу всего+ 1 таблица - это не проблема - проходили
а вот как остальные таблицы??? с их атрибутами???
можно конечно извернуться и вывести все их как форматированные строки по запросу - но боюсь длины 2000 символов на отдельно взятую 'таблицу' не хватит - а так конечно это решение...
а может можно стандартными средствами??
типа вывести все дочерние объекты и сгруппировать их по родителям, но у них же атрибуты разные...??? т.е. куча пустых колонок в каждой группе???
хотелось бы отдельные компактные таблицы
ps
Help читать неохота...

Добавлено: 08 окт 2007, 09:29
Disillusioned
Создаем отчет в котором для каждой из таблиц создаем собственный набор столбцов (в одной строке заполнены могут быть только поля одной таблицы, поля второй должны быть пустыми). Далее создаем шаблон в котором две таблицы, каждую из которых форматируем необходимым образом. При выгрузке отчета в шаблон обе таблицы будут иметь одинаковое количество строк (равное количеству строк в отчете), и соответственно, 50% строк в таблицах будут пустыми. При помощи скрипта удаляем пустые строки таблиц.
Добавлено: 08 окт 2007, 09:43
Александр
да нет вопрос о выгрузке пока не стоит- это все скриптом напишем естественно, да и таблиц ожидается 5 штук сразу каждая минимум с 4-мя своими атрибутами ...
т.е. решение все таки такое как
- вывод всех дочерних объектов в таблицу вычисляемых полей nx20(5x4)
+
- группировка по родителям со сдвигом всех нужных столбцов группы влево (ликвидация дыр)
такой вариант? или я не так понял твою мысль??? или можно еще проще?
Добавлено: 08 окт 2007, 10:22
Disillusioned
Лучше я на конкретном примере попробую продемонстрировать.
Предположим есть проект содержащий 2 типа объектов (4 объекта 1-го типа и 3 2-го) с разными наборами атрибутов (добустим по 5 атрибутов для каждого типа).
Необходимо отобразить атрибуты разных типов объектов в 2-х таблицах.
В отчете добавляем все 10 атрибутов и получаем следующий результат:
a11 a21 a31 a41 a51 null null null null null
a12 a22 a32 a42 a52 null null null null null
a13 a23 a33 a43 a53 null null null null null
a15 a25 a35 a45 a55 null null null null null
null null null null null a61 a71 a81 a91 a101
null null null null null a62 a72 a82 a92 a102
null null null null null a63 a73 a83 a93 a103
После экспорта в шаблон имеем
Таблица 1
a11 a21 a31 a41 a51
a12 a22 a32 a42 a52
a13 a23 a33 a43 a53
a15 a25 a35 a45 a55
null null null null null
null null null null null
null null null null null
Таблица 2
null null null null null
null null null null null
null null null null null
null null null null null
a61 a71 a81 a91 a101
a62 a72 a82 a92 a102
a63 a73 a83 a93 a103
При помощи скрипта удаляем из обоих таблиц пустые строки и в результате получаем
Таблица 1
a11 a21 a31 a41 a51
a12 a22 a32 a42 a52
a13 a23 a33 a43 a53
a15 a25 a35 a45 a55
Таблица 2
a61 a71 a81 a91 a101
a62 a72 a82 a92 a102
a63 a73 a83 a93 a103
Добавлено: 08 окт 2007, 10:52
Александр
тогда вопрос, а как у тебя происходит экспорт в шаблон?
ведь на входе - одна таблица и штатными средствами экспорта на две ее не разделить или разделить?
или ты сам уже скриптом в отчете ее раскидываешь по шаблону по нулевым полям?
Добавлено: 08 окт 2007, 12:13
Disillusioned
Экспорт осуществляется стандартными средствами. В каждую таблицу документа добавляется каждая строка отчета. Остается только надеяться что это "фича", а не "баг" (а не то пофиксят ненароком).
Добавлено: 08 окт 2007, 12:24
Александр
слушай по фиче уточнение
т.е. есть файл (лист) шаблона *.xls в нем 2 таблицы (в каждой ,сгруппированная строка) и мы делаем связь одна ячейка (строка) отчета Лоции <-> две ячейки (строки) каждая в своей таблице сразу? (т.е. сгруппированные ячейки в двух таблицах имеют один и тот же комментарий который два раза привязан на ячейку отчета Лоции?) просто не понимаю как физически ты это сделал? и даже если это так - по идее данные в двух таблицах должны были продублироваться? но не разграничится
ps
то ли понедельник толи еще что - вобщем ничего не понимаю

Добавлено: 08 окт 2007, 12:34
Disillusioned
Пардон, я не указал, что экспорт в моем примере осуществляется в Word. Как себя поведет Excel, не имею ни малейшего понятия.
Добавлено: 08 окт 2007, 13:01
Александр
нет уж

какая разница Word или Excel и там и там привязка к параметру, последний вопрос и закончим это дело
все таки:
ты делал связь - 2 параметра Word на один параметр отчета Лоции? так? и ты сказал что в каждую таблицу попадает каждая строка отчета - т.е. 2 абсолютно одинаковые таблицы в Word? так?
но...
но в какой момент и как шаблон понимает что первые 4 строки отчета (твой пример) нужно положить в первую таблицу а следующие 3 во вторую и все это без скрипта ...
хоть убей не понимаю
и как пустые колонки в твоем примере съехали на место строк таблицы которые ты потом удаляешь скриптом тоже непонятно
в общем какой-то очень хитрый шаблон (может там макросы какие местные дополнительно работают)
Добавлено: 08 окт 2007, 16:13
Disillusioned
Excel в качестве шаблона для отчета я никогда не использовал (как-то не срослось), поэтому судить есть разница или нет не могу..
Таблицы Word могут быть разными. Обязательно чтобы в них записывались разные поля отчета.
Один параметр Word - одно поле отчета Лоции.
Шаблон не понимает какие строчки в какую таблицу класть - он кладет каждую строчку в каждую таблицу, если у нас две таблицы, предназначенные для разных полей, то в одну таблицу будет вставлена строка с данными, в другую пустая строка (если таблиц три, то пустая строка будет вставлена в две таблицы).
И вся хитрость здесь не в шаблоне (что хитрого в документе с несколькими таблицами), а в том что эти таблицы не должны пересекаться по полям отчета. Макросов не используется, скрипт удаления пустых строк выполняется в отчете.
Код: Выделить всё
sub Gl1
rc=LsRpt.RowCount
if rc>0 then
set wrdapp = CreateObject ("Word.Application")
iRc = LsRpt.OleExport ( "C:\Program Files\LotsiaSoft\PartY\Doc\Лист визирования.dot" , "C:\Program Files\LotsiaSoft\PartY\Лист визирования.doc", "SC" )
set AcDoc = wrdapp.documents("Лист визирования.doc")
AcDoc.Activate
k=1
While k<AcDoc.Tables.Count+1
j=AcDoc.Tables.Item(k).Rows.Count
i=2
While i< j+1
If AcDoc.Tables.item(k).Cell(i, 1).Range.Text = AcDoc.Tables.item(k).Cell(i, 2).Range.Text Then
AcDoc.Tables(k).Rows(i).Delete
else
i=i+1
End If
Wend
k=k+1
Wend
AcDoc.Protect WsProtectionType=wdAllowOnlyReading, Password="123","123"
AcDoc.Save
else
MsgBox "Отчет не выполнен"
end if
End sub
Добавлено: 08 окт 2007, 20:47
Старик Крупский
Александр, а если сделать отчет свободного стиля? То есть изначально не сетка. Тогда таблицы ты руками нарисуешь, составляя поля вместе и делая у них рамку "Прямоугольник". А вообще колонки можно заменить вычисляемыми полями и тогда в одном поле можно по разным условиям отображать разные атрибуты. Ну, например, в разные разделы отчета засовывать разные типы объектов и в полях анализировать раздел. Если один раздел, то отображать атрибут одного типа объекта, а если другой раздел, то другой атрибут. И названия колонок таблиц так же можно делать разными.
Здесь основной плюс в том, что сетки как таковой не будет и не будет видимости пустых столбцов.
Добавлено: 09 окт 2007, 06:31
Александр
to Disillusioned
спасибо наконец то дошло что ты имел в виду - но мы ушли в сторону экспорта...
to Крупский
свободный стиль здесь в принципе не пройдет из за того что область данных у нас ОДНА и соответственно таблицы выстроить одна под другой (или в произвольном порядке) не получится, только по горизонтали - а это уже простой отчет с группировкой.
Вот если бы сделали еще один тип отчета с произвольным количеством областей данных формируемых каждая по своему запросу - это да, сколько хочешь таблиц столько и выводи, а так...
ps
но все таки интересно а какую длину имеет строковое (вычисляемое строковое) поле отчета (2000 символов это по моим ощущениям) и строковый аргумент отчета - потому что все таки красивше собирать инфу запросами и отдавать ее в отчет аргументами в виде длинного отформатированного текста
Добавлено: 10 окт 2007, 17:27
Старик Крупский
Это в техподдержке надо спрашивать