|
|
|
| Есть ли в Access 2007 возможность масштабирования отчета? Как в Excel - там можно любой отчет втиснуть в страницу - эксель просто соразмерно уменьшает его. И есть ли возможность, чтобы пользователь сам мог менять ширину полей в отчете, не переходя в режим дизайна? | |
|
| |
|
|
|
| насколько мне известно - нет
но если что-то нароете - сообщите, вдруг пригодится :) | |
|
| |
|
|
|
| Для себя я выбрал такую тактику
данные выкидываются в Ексель и пользователь там что хочет с ними делает
а отчеты в Аксе использую редко - только для вывода инфы какой-нибудь записи в красивом виде
более того - чаще всего местное начальство требует цифирки и конкретной информацией интересутся в последнюю очередь, а начальству повыше инфу(цифирки) опять же в екселе подавай и по определенному шаблону (которые еще и менять умудряются по нескольку раз в год)
так что для ввода инфы, контроля за сроками и других действий по оперативному управлению инфой отчеты использовать не получается | |
|
| |
|
|
|
| Спасибо. Проработаю вариант с Excel. | |
|
| |
|
|
|
| Интересно - как это Excel съеживает размер.... | |
|
| |
|
|
|
| ActiveSheet.PageSetup.Zoom=N
где N - процент от нормальной величины (нормальная величина 100 если точным быть) | |
|
| |
|
|
|
| Простите, но отчёт можно так же вывести с любым зуммом
Афтору чё то другое нуно.
Или я ещё не догнал........... | |
|
| |
|
|
|
| А как вывести отчет на печать с любым зумом?
(прошу прощения за свое не знание) | |
|
| |
|
|
|
| Блин - врасплох ...
Я уже забыл - давно этим не занималси
щас попробую надыбать.... | |
|
| |
|
|
|
|
'***************************************************************
' Подписка: "Access 2000 - программирование и готовые решения"
' Тема: Отчеты Access
' Версия: 1 от 30.10.2000
' Автор: Copyright © Leader Access, Ltd
' Сайт: http://www.leadersoft.ru
' Почта: support@leadersoft.ru
' Примечание: Код изменен из справочной системы Access.
'
Option Compare Database
Option Explicit
'***************************************************************
'15.Пример. Как изменить размеры листа отчета ?
'***************************************************************
Private Type str_DEVMODE
RGB As String * 94 'Промежуточная переменная для копирования
End Type
'Полное описание структуры дано в модуле: p001.mdb
Private Type type_DEVMODE
strDeviceName As String * 16
intSpecVersion As Integer
intDriverVersion As Integer
intSize As Integer
intDriverExtra As Integer
lngFields As Long
intOrientation As Integer
intPaperSize As Integer
intPaperLength As Integer
intPaperWidth As Integer
intScale As Integer
intCopies As Integer
intDefaultSource As Integer
intPrintQuality As Integer
intColor As Integer
intDuplex As Integer
intResolution As Integer
intTTOption As Integer
intCollate As Integer
strFormName As String * 16
lngPad As Long
lngBits As Long
lngPW As Long
lngPH As Long
lngDFI As Long
lngDFr As Long
End Type
'==============================================================
' Открытие отчета
Private Sub Form_Open(Cancel As Integer)
funChangeReport False
End Sub
'==============================================================
' Открыть отчет
Private Sub butChange_Click()
On Error GoTo 999
DoCmd.OpenReport "Пример 16", acViewPreview 'Открываем конструктор отчета
Exit Sub
999:
MsgBox Err.Description
Err.Clear
End Sub
'==============================================================
' Изменяем размеры отчета
Private Sub myWidth_AfterUpdate()
funChangeReport True
End Sub
'==============================================================
' Изменяем размеры отчета
Private Sub myLength_AfterUpdate()
funChangeReport True
End Sub
'==============================================================
' Изменяем размеры отчета
'
Private Sub funChangeReport(boolChange As Boolean)
Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String
Dim rpt As Report
On Error GoTo 999
DoCmd.OpenReport "Пример 16", acDesign 'Открываем конструктор отчета
Set rpt = Reports("Пример 16") 'Определяем адрес отчета
If Not IsNull(rpt.PrtDevMode) Then
strDevModeExtra = rpt.PrtDevMode
DevString.RGB = strDevModeExtra 'Структура отчета
LSet DM = DevString 'Заполняем структуру
If boolChange = True Then 'Изменение отчета
On Error Resume Next
rpt.Width = 32000
Err.Clear
DM.lngFields = DM.lngFields Or _
DM.intPaperSize Or DM.intPaperLength Or DM.intPaperWidth
DM.intPaperSize = 256 'Устанавливаем тип листа
DM.intPaperWidth = Me.myWidth * 10 'Новая ширина
DM.intPaperLength = Me.myLength * 10 'Новая длина
LSet DevString = DM 'Обновляем свойство
Mid(strDevModeExtra, 1, 94) = DevString.RGB
rpt.PrtDevMode = strDevModeExtra
DoCmd.Close acReport, "Пример 16", acSaveYes 'Закрываем отчет
Else 'Отображение данных
Me.myWidth = DM.intPaperWidth / 10 'Ширина
Me.myLength = DM.intPaperLength / 10 'Ширина
DoCmd.Close acReport, "Пример 16" 'Закрываем отчет
End If
End If
Exit Sub
999:
MsgBox Err.Description
End Sub
'==============================================================
' Отобразить VBA код
Private Sub butVBA_Click()
DoCmd.OpenModule Me.Module
End Sub
|
La_Report
Погугли | |
|
| |
|
|
|
|
Интересно - как это Excel съеживает размер....
| Ну допустим ты создал в excel таблицу из 20 столбцов шириной по 2 см каждый. Естественно, что они не умещаются в страницу. Тогда переходишь в режим разметки страницы и перетягиваешь границы. Все, что окажется внутри границ, excel уменьшит до размеров страницы.
В Access если сделать таблицу из 20 столбцов, надо вручную сжимать столбцы, подгадывать ширину, шрифт и т.д. | |
|
| |
|
|
|
| Вручную надо один раз описать процедуру "подгонки" ширины столбцов по данным на открытии отчета.
И все. | |
|
| |
|