powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Значение свойства DrawWidth
13 сообщений из 13, страница 1 из 1
Значение свойства DrawWidth
    #32174271
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рисую линии в отчете с помощью метода Line . Ширину задаю с помощью свойства отчета DrawWidth .
Так вот. У меня дома, чтобы ширина примерно равнялась 1 "пункту", я задаю значение свойству DrawWidth равную 2 , а на работе – аж 8 .
Кто-нибудь сможет подсказать, с чем это связано? Какой еще параметр влияет на ширину?
Принтер (драйвер оного) может влиять? Дома HP5L, на работе XEROX.
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174309
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. свойство отчета - ScaleMode
задавай его принудительно в момент открытия отчета
Me.ScaleMode = Значение, где Значение м.б
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 0  - Custom values used by one or more of the ScaleHeight, ScaleWidth, ScaleLeft, and ScaleTop properties 
 1  -(Default) Twips 
 2  -Points 
 3  -Pixels 
 4  -Characters (horizontal =  120  twips per unit; vertical =  240  twips per unit) 
 5  -Inches 
 6  -Millimeters 
 7  -Centimeters 
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174336
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На ширину линии не влияет, а на координаты - все разъехалось.
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174361
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример из хелпа/Может поможет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub DrawLine()
    Dim rpt As Report, lngColor As Long
    Dim sngTop As Single, sngLeft As Single
    Dim sngWidth As Single, sngHeight As Single

    Set rpt = Reports!EmployeeReport
    ' Set scale to pixels.
    rpt.ScaleMode = 3
    ' Top inside edge.
    sngTop = rpt.ScaleTop +  5 
    ' Left inside edge.
    sngLeft = rpt.ScaleLeft + 5
    ' Width inside edge.
    sngWidth = rpt.ScaleWidth -  10 
    ' Height inside edge.
    sngHeight = rpt.ScaleHeight - 10
    ' Make color red.
    lngColor = RGB( 255 , 0 , 0 )
    ' Draw line as a box.
    rpt.Line(sngTop, sngLeft) - (sngWidth, sngHeight), lngColor, B
End Sub

...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174373
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж ковырял я его. К сожалению, все параметры примера влияю т только на размеры прямоугольника, а не на ширину линии.
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174417
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А BorderWidth принудительно пробовал ставить?
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174438
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А к чему ее прикрутить?
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174450
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня ведь линия рисуется с помощью Метода Line, а не контрол линия.
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174465
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>У меня ведь линия рисуется с помощью Метода Line, а не контрол линия.

Либо рисуй контрол-линиями либо ищи ошибку. У меня Line сетку в отчетах рисует - уже больше года рисует. Ни одной жалобы.

Код: plaintext
1.
2.
3.
4.
5.
6.
Reports(ReportName).ScaleMode =  1 
...
Reports(ReportName).Line
                            ((.Left + .Width + intLineMargin),  1 )-
                             (.Left + .Width +intLineMargin, Reports(ReportName).Height)
Reports(ReportName).DrawWidth =  10 
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174486
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да какая ошибка в трех строчках.
Код: 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.
Option Compare Database
Option Explicit

Private Sub ОбластьДанных_Print(Cancel As Integer, PrintCount As Integer)
Dim h As Single
    h = funGetHeight(Me.Section(acDetail)) 'Опредеяем высоту строки'
    funDrawBox Me, h,  8  'Оформляем секцию с толщиной линий = 8'
End Sub

'===============================================================
' 'Расчет высоты строки в секции в зависимости от форматирования
' 'поля отчета, например, TextBox'

Private Function funGetHeight(sec As Section) As Single
Dim c As Control
     funGetHeight =  0  'назначаем высоту ячейки'
     For Each c In sec.Controls 'Просматриваем все поля отчета'
         If funGetHeight < c.Height Then _
            funGetHeight = c.Height 'Возвращаем максимальную высоту'
     Next c 'Следующее поле'
End Function

'===============================================================
' 'Перед началом печати рисуем для каждого поля прямоугольник
'
Private Sub funDrawBox(rpt As Report, h As Single, w As Integer)
Dim c As Control
     rpt.DrawWidth = w 'Толщина линии'
     'Просматриваем все поля отчета'
     For Each c In rpt.Section(acDetail).Controls
         rpt.Line (c.Left, c.Top)-(c.Left + c.Width, h), , B  'Прямоугольник
     Next c
End Sub

Это весь код.
Так, вот. На одном компьютере в связке с принтером HP5L
rpt.DrawWidth приравниваем к 2
А на другом, в связке с XEROX, что бы получить туже ширину приравниваем к 8
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174734
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот этой функцией пользуюсь я для форматирования отчетов (функция не моя, авторстов не известно, взял давно из ФИДО). Про эту функция я писал , что с ней нет проблем.

Код: 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.
Option Compare Database
Option Explicit
Public Function Report_Load_Format(ReportName As String)
' функция форматирования раздела с данными под самый большой элемент- проставляются линии по вертикали и горизонтали
' НЕОБХОДИМО: чтобы все элементы имели свойство расширение=Да
' Помещать в процедуру ONPrint (ПриПечати)

    Dim CtlDetail                  As Control
    Dim intLineMargin              As Integer
    intLineMargin = 1    

    Reports(ReportName).ScaleMode = 1    '  в твипах

    For Each CtlDetail In Reports(ReportName).Section(acDetail).Controls
        With CtlDetail
            Reports(ReportName).Line ((.Left + .Width + intLineMargin),  1 )-(.Left + .Width +intLineMargin, Reports(ReportName).Height)
            Reports(ReportName).DrawWidth =  10 
        End With
    Next
    With Reports(ReportName)
        Reports(ReportName).Line ( 0 ,  0 )-(.Width, .Height), vbBlack, B
        Reports(ReportName).DrawWidth =  10     ' толщина ровно  1 / 2  пункт
    End With

    Set CtlDetail = Nothing
End Function



В твоей функция я не нашел (хотя ты уже пробовал)
ScaleMode. И DrawWidth в моем примере запихнуто в цикл. Попробуй этот пример (в принципе тоже самое, что и у тебя)
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32174905
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
Попробую с твоей.
...
Рейтинг: 0 / 0
Значение свойства DrawWidth
    #32178414
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение проблемы
http://hiprog.com/forum/forum.asp?action=show&id=2&messid=30686&fullview=0
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Значение свойства DrawWidth
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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