Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Значение свойства DrawWidth / 13 сообщений из 13, страница 1 из 1
02.06.2003, 16:14
    #32174271
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
Рисую линии в отчете с помощью метода Line . Ширину задаю с помощью свойства отчета DrawWidth .
Так вот. У меня дома, чтобы ширина примерно равнялась 1 "пункту", я задаю значение свойству DrawWidth равную 2 , а на работе – аж 8 .
Кто-нибудь сможет подсказать, с чем это связано? Какой еще параметр влияет на ширину?
Принтер (драйвер оного) может влиять? Дома HP5L, на работе XEROX.
...
Рейтинг: 0 / 0
02.06.2003, 16:31
    #32174309
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
см. свойство отчета - 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
02.06.2003, 16:47
    #32174336
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
На ширину линии не влияет, а на координаты - все разъехалось.
...
Рейтинг: 0 / 0
02.06.2003, 17:01
    #32174361
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
Вот пример из хелпа/Может поможет
Код: 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
02.06.2003, 17:05
    #32174373
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
Да уж ковырял я его. К сожалению, все параметры примера влияю т только на размеры прямоугольника, а не на ширину линии.
...
Рейтинг: 0 / 0
02.06.2003, 17:21
    #32174417
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
А BorderWidth принудительно пробовал ставить?
...
Рейтинг: 0 / 0
02.06.2003, 17:34
    #32174438
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
А к чему ее прикрутить?
...
Рейтинг: 0 / 0
02.06.2003, 17:40
    #32174450
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
У меня ведь линия рисуется с помощью Метода Line, а не контрол линия.
...
Рейтинг: 0 / 0
02.06.2003, 17:48
    #32174465
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
>У меня ведь линия рисуется с помощью Метода 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
02.06.2003, 18:12
    #32174486
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
Да какая ошибка в трех строчках.
Код: 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
03.06.2003, 09:00
    #32174734
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
Вот этой функцией пользуюсь я для форматирования отчетов (функция не моя, авторстов не известно, взял давно из ФИДО). Про эту функция я писал , что с ней нет проблем.

Код: 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
03.06.2003, 11:41
    #32174905
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
Спасибо.
Попробую с твоей.
...
Рейтинг: 0 / 0
06.06.2003, 13:47
    #32178414
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение свойства DrawWidth
Решение проблемы
http://hiprog.com/forum/forum.asp?action=show&id=2&messid=30686&fullview=0
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Значение свойства DrawWidth / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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