|
|
|
| Подскажите как можно вывести информацию в отчете в виде таблицы, а не полосатого списка? Если даже я делаю видимыми границы полей, то между ними все равно остается расстояние или линии становятся толстыми за счет сращивания. Также хочу узнать как при отправке по почте в виде ПДФ присвоить отчету другое название. | |
|
| |
|
|
|
| Вот хорошая штука! Где-то спёр, где - не помню
Процедура создания в отчетах таблиц с изменяемой высотой строк.
Public Sub DrawTableInDetailSection(objReportSection As Section)
'==============================================================
'es 15.12.2004
'Для "красивого" обрамления в таблицу области данных табличного
'отчета c изменяемой высотой полей (и соответственно строк целиком).
'Аргумент: objReportSection = Ссылка на область данных отчета
' "Вешается" на событие PRINT области данных отчета - например так:
' Call DrawTableInDetailSection(Me.ОбластьДанных)
'Разумеется контуры полей в области данных отчета должны быть невидимы
'==============================================================
Dim DataControl As Control 'обект текущ. контроль
Dim x As Integer
Dim MaxHeight As Integer 'макс. высота в тек строке
Dim MinX As Integer 'координата начала горизонтальной линии
Dim MaxX As Integer 'координата конца горизонтальной линии
Dim StartX As Integer 'координата начала линии по оси X
Dim EndX As Integer 'координата конца линии по оси X
Dim StartY As Integer 'координата начала линии по оси Y
Dim EndY As Integer 'координата конца линии по оси Y
On Error GoTo DrawTableInDetailSectionERR
MaxX = 0
MinX = objReportSection.Parent.Width
With objReportSection
'Находим макс высоту в строке
For Each DataControl In .Controls
x = DataControl.Height
If MaxHeight < x Then MaxHeight = x
x = DataControl.Left + DataControl.Width
If MaxX < x Then MaxX = x
x = DataControl.Left
If MinX > x Then MinX = x
Next
'рисуем вертикальную в Начале строки
EndY = MaxHeight
.Parent.Line (MinX, StartY)-(MinX, EndY)
'рисуем горизонтальную Над строкой
.Parent.Line (MinX, StartY)-(MaxX, StartY)
'рисуем горизонтальную под строкой
.Parent.Line (MinX, EndY)-(MaxX, EndY)
'рисуем вертикальные линии справа от каждого контрола
For Each DataControl In .Controls
StartX = DataControl.Left + DataControl.Width
EndX = StartX
.Parent.Line (StartX, StartY)-(StartX, EndY)
Next
End With
Exit Sub
DrawTableInDetailSectionERR:
Err.Clear
End Sub
|
| |
|
| |
|
|
|
| я вообще-то удивлен, что нет стандартного решения. Мы привыкли к отчетам виде таблиц, а не в виде полосатых списков. Я поискал и нашел как " сростить" поля через макет. Как насчет присвоения пользовательского имени при отправке файла в формате ПДФ? | |
|
| |
|
|
|
| PDF: http://www.lebans.com/reporttopdf.htm
А с 2007 есть команда сохранения в пдф. | |
|
| |
|
|
|
| Еще вариант
'Обрисовка линиями или прямоугольником
Public Sub Obrisovka(MyReportSection As Section, Optional L_Color As Long = vbBlack, Optional BBF As Boolean = True)
Dim ctl As Control, lngHeight As Long
On Error GoTo DrawTableInDetailSectionStep_Error
With MyReportSection
For Each ctl In .Controls
If ctl.Visible = True And ctl.Height + ctl.Top > lngHeight Then lngHeight = ctl.Height + ctl.Top
Next ctl
'Рисyем pамки вокруг всех элементов раздела
For Each ctl In .Controls
Select Case BBF
Case True
If ctl.Visible = True Then .Parent.Line (ctl.Left, ctl.Top)-Step(ctl.Width, lngHeight), L_Color, B
Case False
If ctl.Visible = True Then .Parent.Line (ctl.Left, ctl.Top)-Step(ctl.Width, lngHeight), L_Color, BF
End Select
Next ctl
End With
On Error GoTo 0
Exit Sub
DrawTableInDetailSectionStep_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Obrisovka of Module MdlReportFunctions"
End Sub
|
| |
|
| |
|
|
|
| всегда рисую линиями - окантовку не применяю бо фигня | |
|
| |
|
|
|
|
всегда рисую линиями - окантовку не применяю бо фигня
|
Дело вкуса.
А, вообще, иногда лучше даже прямоугольником.
См., например, тему http://hiprog.com/forum/read.php?id_forum=1&id_theme=11491&page=2 | |
|
| |
|
|
|
| нет, Дядя Федор, сохранить в ПДФ я как раз и не хочу. У меня этих документов каждый день штук по пять. Я именно хочу отправить ПДФ под другим именем без сохранения.Для отправки без сохранения есть стандартная возможность, но имя присвоить невозможно. Имя дается по имени отчета. | |
|
| |
|
|
|
| Как вариант: сохранить, отправить, удалить | |
|
| |
|
|
|
| я 95 % отчетов из ворд-ассесс-ексель-фохпро формирую программно в НТМ-формате(в стандартных тегах) для
--просмотра броузером
--печати вордом с автоподбором ширины столбцов
--открывается екселем,оо...
очень удобно
но почему-то этот прием мало используется.
не знаю --в чем причина
применяете ли вы этот прием | |
|
| |
|
|
|
| причина в том что нужно еще и html и ручками - да и юзеры пугаются - незнакомы действий системы. я как-то из акса в екселе окрывал автоматом - пол-дня каждый считал своим делом сообщить о подозрительном поведении проги, проверить ее на вирусы да и просто истерики - "оно не работает". | |
|
| |
|
|
|
| да, у каждого свое
мы попробовали репорт на фохпро ДОС и отказались после первой же задачи
видимо сказывался навык прежней работы на ЕС-1035 --нам было легче ручками прописывать все, что надо | |
|
| |
|
|
|
| Как вы поняли, я этот репорт должен отправлять. Но я не написал кому. Я его отправляю на охрану завода. Там люди могут точно сказать кто быстрее, муха без крыльев или таракан, но HTML-формат не для них. Неужели нет решения, гуры? | |
|
| |
|
|
|
| Чем не вариант: Как вариант: сохранить,переименовать, отправить, удалить? | |
|
| |
|
|
|
| а мы "ломали" 1033 - весело было, диски 80М - размером ведро, на панели управления лампочки как на елке, бармалей трещит
даже где-то корочка валяется. | |
|
| |
|
|
|
| в действительности у вас две задачи
1-как можно вывести информацию в отчете в виде таблицы
2-отправке по почте в виде ПДФ присвоить отчету другое название
пдф можно получить через печать вордовского документа, при формировании которого формировать клеточки
я предпочитаю НТМ, который открываю в ворде для печати
можно напрямую формировать ДОС/RTF, но их нельзя открыть в броузере или екселе
========
я формирую 1 отчет н НТМ-формате, но имею 3 кнопки открытия word-excel-броузер
дополнительно формирую СНМ для автономного просмотра с полевых условиях с карманного планшета | |
|
| |