Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Рисование линий в строках DW / 9 сообщений из 9, страница 1 из 1
10.12.2006, 14:07
    #34188431
СМ.Николай
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование линий в строках DW
Доброго всем времени.
------------------------

Не могу решить задачу, может это в принципе невозможно:

Есть DW. Хочу сделать что-то типа "Диаграммы Ганта"

Как "железно" динамически привязать Rectange к заданной строке ?

Количество линий-отрезков на одной строке заранее не известно, поэтому плодить их в DETAIL нет смысла.


Т. е надо динамически определять координату "У" а как ?

//********** если делать так , то*************************************
long iy, i
srting r_name

i = 5 // задаю номер строки к которой привязывается ЛИНИЯ

r_name = "r0_" + string(i) // имя создаваемой ЛИНИИ

iy = Long(dw_1.describe("p1.y")) + Long(dw_1.describe("p1.height")) * i

s =' create rectangle(band=foreground x="105" y="' + string(iy) + '" height="36" width="768" name=' + r_name + ' pointer="SizeWE!" visible="1" brush.hatch="6" brush.color="33554432" pen.style="0"&
pen.width="5" pen.color="1073741824" background.mode="2" background.color="33554432" '


ss = dw_1.modify(s) // создаю ЛИНИЮ

*******************************************************************
// проблема в том что при навигации по строкам DW, ЛИНИЯ остается на месте, а не перемещается всместе со строкой
...
Рейтинг: 0 / 0
10.12.2006, 14:44
    #34188456
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование линий в строках DW
СМ.Николай// проблема в том что при навигации по строкам DW, ЛИНИЯ остается на месте, а не перемещается всместе со строкой
Не очень понятно что нужно, но достаточно завести дополнительный столбец, в котором указать нужную координату y, а на expression на Y координату объекта Rectange указать этот дополнительный столбец (это если я все верно понял).
...
Рейтинг: 0 / 0
10.12.2006, 15:27
    #34188494
СМ.Николай
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование линий в строках DW
Нужно рисовать горизонтальные толстые линии (их может быть несколько на одной строке ) в необходимых строка.

Если вы выполните мой код, заменив имя поля "P1" на свое , то увидите результат.
Выполнение можно реализовать например через кнопку.
Создается линия , ее координата "У" привязана к номеру текущей строки.
...
Рейтинг: 0 / 0
10.12.2006, 15:52
    #34188523
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование линий в строках DW
СМ.НиколайНужно рисовать горизонтальные толстые линии (их может быть несколько на одной строке ) в необходимых строка.
Ну и? Создаете линии, количеством равным максимальному на 1 строку. Задаете выражение на y и на visible, в чем проблема?
...
Рейтинг: 0 / 0
10.12.2006, 16:50
    #34188576
СМ.Николай
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование линий в строках DW
(Линия - это отрезок)

То есть ВАШЕ решение предлагается быть только таким:

1 Рассчитываю МАХ количество ЛИНИЙ в строке

2 Добавляю в Detail колонки с параметрами линии ( x, .... visible)

а если линий-отрезков несколько, то сколько надо колонок?

значит нужно динамическое создание колонок (на одну ЛИНИЮ "пакет" ( x, .... visible) ).

2 Привязываю видимость и размеры ЛИНИЙ к значениям в этих колонках

-----------------
А я хотел сделать так:

По каждому случаю (когда надо)

Создать ЛИНИЮ ( band = Foregrount), где координата "У" привязана к конкретной строке.

Проблема в том, что значение "У" хотелось бы задавать выражением, содержащим
координату "У" , а получется фиксированным, поэтому строки "бегают" а ЛИНИЯ стоит на одном месте экрана

МОЯ ИДЕЯ ПОНЯТНА ?

Если так нельзя в принципе, то наверное подойдет только ВАШ вариант
...
Рейтинг: 0 / 0
10.12.2006, 18:03
    #34188627
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование линий в строках DW
СМ.Николайхотелось бы задавать выражением, содержащим координату "У" , а получется фиксированным
Координату Y чего?
СМ.Николайа если линий-отрезков несколько, то сколько надо колонок?
Их можно в string запихать, тогда можно обойтись одной колонкой.
...
Рейтинг: 0 / 0
11.12.2006, 11:41
    #34189598
craftyman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование линий в строках DW
Жене горячий и пламенный!
...
Рейтинг: 0 / 0
11.12.2006, 12:47
    #34189870
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование линий в строках DW
СМ.НиколайНужно рисовать горизонтальные толстые линии ( их может быть несколько на одной строке ) в необходимых строка.Мне представляется, что здесь кроется ошибка в постановке задачи.
Почему вы считаете, что в одной строке должно быть несколько линий? Разумно было бы сделать нечто такое:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$PBExportHeader$delme.srd
release  7 ;
datawindow(units= 0  timer_interval= 0  color= 16777215  processing= 1  HTMLDW=no print.documentname="" print.orientation =  0  print.margin.left =  110  print.margin.right =  110  print.margin.top =  96  print.margin.bottom =  96  print.paper.source =  0  print.paper.size =  0  print.prompt=no print.buttons=no print.preview.buttons=no grid.lines= 0  )
header(height= 80  color="536870912" )
summary(height= 0  color="536870912" )
footer(height= 0  color="536870912" )
detail(height= 92  color="536870912" )
table(column=(type=long updatewhereclause=no name=ll dbname="ll" )
 column=(type=long updatewhereclause=no name=xpos dbname="name_1" )
 )
data(  12 ,  4 ,  13 ,  2 ,  16 ,  3 ,  11 ,  1 ,  14 ,  5 ,) 
text(band=header alignment="2" text="Ll" border="0" color="0" x="9" y="8" height="64" width="352"  name=ll_t  font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
text(band=header alignment="0" text="Xpos" border="0" color="33554432" x="370" y="4" height="76" width="338"  name=t_1  font.face="Arial" font.height="-12" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1089534975" )
rectangle(band=detail x="530~txpos * 100 + long(describe('xpos.x')) + long(describe('xpos.width'))" y="24" height="48" width="969"  name=r_1 brush.hatch="6" brush.color="8421376" pen.style="0" pen.width="5" pen.color="1089534975"  background.mode="1" background.color="553648127" )
column(band=detail id= 1  alignment="1" tabsequence= 10  border="0" color="0" x="9" y="8" height="76" width="352" format="[general]"  name=ll edit.limit= 0  edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes  font.face="Arial" font.height="-8" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" )
column(band=detail id= 2  alignment="0" tabsequence= 20  border="0" color="33554432" x="370" y="8" height="76" width="338" format="[general]"  name=xpos edit.limit= 0  edit.case=any edit.autoselect=yes  font.face="Arial" font.height="-8" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" )
htmltable(border="1" )
htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" )
, а уже это DW перечитывать (или формировать необходимый набор записей) на событии rowfocuschanged основного DW
...
Рейтинг: 0 / 0
12.12.2006, 12:35
    #34192847
СМ.Николай
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование линий в строках DW
Спасибо всем. Задачу решил.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Рисование линий в строках DW / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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