GRID разметка
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Ветеран
- Сообщения: 333
- Зарегистрирован: 21 Сентябрь 2005, 11:05
- Откуда: Нижний Новгород
- Контактная информация:
GRID разметка
Может быть не в этот форум пишу, но нужно это именно для построения отчетов...
Какой наилучший способ рисования GRID разметки в виде точек на окне? Нужно для редактора отчетов. На окне могут присутствовать как контролы, так и графически нарисованнные элементы. Можно ли сделать так, чтобы разметка была "независимой" (рисовалась по верх всего ).
Какой наилучший способ рисования GRID разметки в виде точек на окне? Нужно для редактора отчетов. На окне могут присутствовать как контролы, так и графически нарисованнные элементы. Можно ли сделать так, чтобы разметка была "независимой" (рисовалась по верх всего ).
Дед Пахом - наверно, имеется в виду как в Window Formatter-е - при включённом Grid всё окно в точках.
ru_alex - GRID разметки в виде точек на окне? Нужно для редактора отчетов... точно, именно это и хотелось бы...
все равно не понял. Если Grid (сетку из точек) нужно просто высвечивать в форматтере отчетов, так она же там есть.
Если Grid нужна в отчете, то особых же проблем нет.
Пример скриншота отчета(во вложении)
Возился давно как пример изучения и распечатки вызовов методов ООП для Клары, если кому-нибудь нужна могу скинуть все приложение.
примерно так
SETPOSITION(?LSL,LXRTC#,,LSLL#) ! с какой и сколько '. . .'
или в цикле BY скажем 5 присвоишь '.'
примерно так(правда здесь все динамически вычисляется):
LineGr ROUTINE ! различная графика при печати
LX# = 5 * (RT:Level-1) ! позиция начала графики по X
IF IR2 = 1
SETPOSITION(?LSL,,,0)
BOX(LX#-5,0,183,4) ! для корневого метода
ELSE
LXRTC# = ?IR2{PROP:Xpos} + 8 !
LRTM# = (LEN(CLIP(RT:Method)) + ! + 8 ! ? почему так нормально ???
LSLL# = (LX# + LRTM# - LXRTC#) ! длина строки . . .
SETPOSITION(?LSL,LXRTC#,,LSLL#) ! с какой и сколько . . .
END
?RT:Method{PROP:Xpos} = LX# ! начальная позиция(X) печати RT:Method
?RT:Method{PROP:FontColor} = RT:NormalFG
EXECUTE LGRT
BEGIN ! след.запись с тем же уровнем
LINE(LX#-3,0,0,4) ! | вертикальная линия
LINE(LX#-3,2,3,0) ! - в середине
END
BEGIN ! след.запись с большим уровнем
LINE(LX#-3,0,0,1) ! | вне бокса сверху короткая линия
BOX(LX#-4,1,3,3) !
LINE(LX#-3,2,1,0) ! - в середине бокса
LINE(LX#-1,2,1,0) ! - в середине вне бокса справа
END
BEGIN ! след.запись с меньшим уровнем
LINE(LX#-3,0,0,2) ! | вертикальная короткая линия
LINE(LX#-3,2,3,0) ! - в середине
END
END
LOOP J# = 1 TO MAXIMUM(ALV,1)
IF ALV[J#] AND |
INRANGE(IR2,AOT[J#]+1,ADO[J#]-1) ! кроме крайних №
LINE((5*(J#-1) - 3),0,0,4) ! сквозная вертикальная линия одинаковых уровней
END
END
ru_alex - GRID разметки в виде точек на окне? Нужно для редактора отчетов... точно, именно это и хотелось бы...
все равно не понял. Если Grid (сетку из точек) нужно просто высвечивать в форматтере отчетов, так она же там есть.
Если Grid нужна в отчете, то особых же проблем нет.
Пример скриншота отчета(во вложении)
Возился давно как пример изучения и распечатки вызовов методов ООП для Клары, если кому-нибудь нужна могу скинуть все приложение.
примерно так
SETPOSITION(?LSL,LXRTC#,,LSLL#) ! с какой и сколько '. . .'
или в цикле BY скажем 5 присвоишь '.'
примерно так(правда здесь все динамически вычисляется):
LineGr ROUTINE ! различная графика при печати
LX# = 5 * (RT:Level-1) ! позиция начала графики по X
IF IR2 = 1
SETPOSITION(?LSL,,,0)
BOX(LX#-5,0,183,4) ! для корневого метода
ELSE
LXRTC# = ?IR2{PROP:Xpos} + 8 !
LRTM# = (LEN(CLIP(RT:Method)) + ! + 8 ! ? почему так нормально ???
LSLL# = (LX# + LRTM# - LXRTC#) ! длина строки . . .
SETPOSITION(?LSL,LXRTC#,,LSLL#) ! с какой и сколько . . .
END
?RT:Method{PROP:Xpos} = LX# ! начальная позиция(X) печати RT:Method
?RT:Method{PROP:FontColor} = RT:NormalFG
EXECUTE LGRT
BEGIN ! след.запись с тем же уровнем
LINE(LX#-3,0,0,4) ! | вертикальная линия
LINE(LX#-3,2,3,0) ! - в середине
END
BEGIN ! след.запись с большим уровнем
LINE(LX#-3,0,0,1) ! | вне бокса сверху короткая линия
BOX(LX#-4,1,3,3) !
LINE(LX#-3,2,1,0) ! - в середине бокса
LINE(LX#-1,2,1,0) ! - в середине вне бокса справа
END
BEGIN ! след.запись с меньшим уровнем
LINE(LX#-3,0,0,2) ! | вертикальная короткая линия
LINE(LX#-3,2,3,0) ! - в середине
END
END
LOOP J# = 1 TO MAXIMUM(ALV,1)
IF ALV[J#] AND |
INRANGE(IR2,AOT[J#]+1,ADO[J#]-1) ! кроме крайних №
LINE((5*(J#-1) - 3),0,0,4) ! сквозная вертикальная линия одинаковых уровней
END
END
-
- Ветеран
- Сообщения: 333
- Зарегистрирован: 21 Сентябрь 2005, 11:05
- Откуда: Нижний Новгород
- Контактная информация:
Неправильно поняли.
Есть в программе некий модуль, позволяющий самому строить отчет (по типу Fomin Report Builder и др.). Так вот для удобства хотелось бы там иметь Grid.
Короче, есть окно. Можно ли на нем нарисовать Grid в виде точек, так чтобы точки были поверх контролов. Если точки рисовать графикой клариона, не прозрачные котролы эти точки закрывают.
Есть в программе некий модуль, позволяющий самому строить отчет (по типу Fomin Report Builder и др.). Так вот для удобства хотелось бы там иметь Grid.
Короче, есть окно. Можно ли на нем нарисовать Grid в виде точек, так чтобы точки были поверх контролов. Если точки рисовать графикой клариона, не прозрачные котролы эти точки закрывают.