Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Масштабирование и изменение ширины полей в отчете
 
 автор: Stanislav   (16.03.2010 в 12:03)   личное сообщение
 
 

Есть ли в Access 2007 возможность масштабирования отчета? Как в Excel - там можно любой отчет втиснуть в страницу - эксель просто соразмерно уменьшает его. И есть ли возможность, чтобы пользователь сам мог менять ширину полей в отчете, не переходя в режим дизайна?

  Ответить  
 
 автор: Силblч   (16.03.2010 в 14:02)   личное сообщение
 
 

насколько мне известно - нет
но если что-то нароете - сообщите, вдруг пригодится :)

  Ответить  
 
 автор: snipe   (17.03.2010 в 02:19)   личное сообщение
 
 

Для себя я выбрал такую тактику

данные выкидываются в Ексель и пользователь там что хочет с ними делает

а отчеты в Аксе использую редко - только для вывода инфы какой-нибудь записи в красивом виде
более того - чаще всего местное начальство требует цифирки и конкретной информацией интересутся в последнюю очередь, а начальству повыше инфу(цифирки) опять же в екселе подавай и по определенному шаблону (которые еще и менять умудряются по нескольку раз в год)
так что для ввода инфы, контроля за сроками и других действий по оперативному управлению инфой отчеты использовать не получается

  Ответить  
 
 автор: Stanislav   (17.03.2010 в 05:27)   личное сообщение
 
 

Спасибо. Проработаю вариант с Excel.

  Ответить  
 
 автор: час   (17.03.2010 в 07:49)   личное сообщение
 
 

Интересно - как это Excel съеживает размер....

  Ответить  
 
 автор: snipe   (17.03.2010 в 08:34)   личное сообщение
 
 

ActiveSheet.PageSetup.Zoom=N
где N - процент от нормальной величины (нормальная величина 100 если точным быть)

  Ответить  
 
 автор: час   (17.03.2010 в 08:53)   личное сообщение
 
 

Простите, но отчёт можно так же вывести с любым зуммом
Афтору чё то другое нуно.
Или я ещё не догнал...........

  Ответить  
 
 автор: snipe   (17.03.2010 в 09:11)   личное сообщение
 
 

А как вывести отчет на печать с любым зумом?
(прошу прощения за свое не знание)

  Ответить  
 
 автор: час   (17.03.2010 в 10:24)   личное сообщение
 
 

Блин - врасплох ...
Я уже забыл - давно этим не занималси
щас попробую надыбать....

  Ответить  
 
 автор: час   (17.03.2010 в 10:32)   личное сообщение
 
 


'***************************************************************
'   Подписка:   "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
Погугли

  Ответить  
 
 автор: Stanislav   (19.03.2010 в 03:27)   личное сообщение
 
 


Интересно - как это Excel съеживает размер....

Ну допустим ты создал в excel таблицу из 20 столбцов шириной по 2 см каждый. Естественно, что они не умещаются в страницу. Тогда переходишь в режим разметки страницы и перетягиваешь границы. Все, что окажется внутри границ, excel уменьшит до размеров страницы.
В Access если сделать таблицу из 20 столбцов, надо вручную сжимать столбцы, подгадывать ширину, шрифт и т.д.

  Ответить  
 
 автор: Lukas   (19.03.2010 в 11:02)   личное сообщение
 
 

Вручную надо один раз описать процедуру "подгонки" ширины столбцов по данным на открытии отчета.
И все.

  Ответить  
 
 автор: час   (19.03.2010 в 11:28)   личное сообщение
 
 

Вон оно как....

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList