powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Помогите с графиками ...
25 сообщений из 25, страница 1 из 1
Помогите с графиками ...
    #32929624
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клиент пожелал несколько графиков.
Я никогда с ними не сталкивался, и вот ... очередная засада.
Построил простейший график типа Line.
Другой тип не подходит. Кривовато как то получается.
Вопросы:
1. Можно ли отключить кубики и звездочки в контрольных точках или сделать их как нибудь поменьше ?
2. Можно ли серии выделять не этими значками (см. вопрос 1), а например типами или толщиной линий ?
3. И вобще, может кто пользуется каким нибудь другим, более лучшим инструментом ?
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #32930043
Астралопитек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO родные графики в РВ -- довольно неуклюжая штука и слабо русифицированная. Ты рискуешь потерять время, а потом клиент всё равно потребует на русском, чего толком сделать будет нельзя. Мб лучше смотреть в сторону EXCEL -- в первом приближении: т.е. готовить все данные средствами РВ, а потом плюнуть их в EXCEL и там построится всё что угодно). Во втором приближении типа Crystall Reports etc.
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #32930073
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри во вкладке "Text". Там есть "Text Object". Выбираешь там нужный раздел, убираешь галочку в Autosize и ставишь нужную цифру в "Size". Так уменьшается текст. Может быть как-то так и кубики со звездочками уменьшатся.
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #32930578
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJBКлиент пожелал несколько графиков.
Я никогда с ними не сталкивался, и вот ... очередная засада.
Построил простейший график типа Line.
Другой тип не подходит. Кривовато как то получается.
Да, стандартные графики в PowerBuilder нормально настроить сложно, а некоторые требования пользователей просто не возможно реализовать, используя стандартные графики - слишком мало настроек и они не особо гибкие. Когда-то я для рисования графика делал специальное DataWindow, в котором все строилось "ручками". Особых изысков там было не нужно (всякие 3-х мерные и прочие графики), и выходило достаточно просто.
А так, использование Excel - тоже неплохой ваирант, если нет других противопоказаний. Можно сделать файл-шаблон, допустим, на 2 листе оставить место под данные, а на 1-м - рисовать графики, основываясь на данных 2-го листа. Тогда пользователь сможет динамически менять вид графиков, редактируя шаблон в Excel. В этом случае данные передавать через OLE.
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #32933849
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
//Убираем все лишние элементы отображения серии на графике
For i = 1 to gr_graph.SeriesCount()
For j = 1 to gr_graph.CategoryCount()
//Убираем дурацкие квадратики, обозначающие точки на графиках
gr_graph.setDataStyle(i, j, NoSymbol!)
Next
Next
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #32933878
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJB
2. Можно ли серии выделять не этими значками (см. вопрос 1), а например типами или толщиной линий ?


А что значит - типами?? Вообще они выделяются цветом... Но это и так понятно... Толщину менять можно, но она кажется одна для всех... А вообще - есть набор объектов в графике xxxDispAttr, при помощи которых настраивается отображение данных
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Помогите с графиками ...
    #34998470
gnatochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо :) с линиями без "дурацких квадратиков, обозначающих точки на графиках"
гораздо лучше :)
А еще пару вопросов можно?
как в стандартном graph:

a) сдвигать значения по оси (например диапазон значений по оси y для графика от 2000000 - 2500000)
хотелось бы возможность не c нуля ее рисовать ...

б) выписывать не все расчетные значения по оси (ну или в инвизибл так же в цикле частично их сделать) например график строится по 300 точек ... совершенно не обязательно каждую подписывать ... достаточно через 10
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Помогите с графиками ...
    #36292663
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoPaulJB
2. Можно ли серии выделять не этими значками (см. вопрос 1), а например типами или толщиной линий ?


А что значит - типами?? Вообще они выделяются цветом... Но это и так понятно... Толщину менять можно, но она кажется одна для всех... А вообще - есть набор объектов в графике xxxDispAttr, при помощи которых настраивается отображение данных

как там менять толщину линий,не нашёл,пусть даже одинаково для всех !??
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36292714
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andreas_84,

См. хелп

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SetDataStyle PowerScript function:
   Syntax 2 For the line associated with a data point
Description 

Specifies the style and width of a data point's line in a graph.

Controls 

Graph controls in windows and user objects, and graphs in DataWindow controls

Syntax 

controlname.SetDataStyle ( { graphcontrol, } seriesnumber, 
    datapointnumber, linestyle, linewidth )

ну и далее по хелпу
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36292766
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кстати на всяк случай кусочек сырца с раскрасками
Код: plaintext
1.
2.
3.
4.
5.
6.
ll_serieLimit = gr_graph.addSeries('Значення лiмiту')
gr_graph.SetSeriesStyle('Значення лiмiту', ForeGround!, RGB( 220 ,  220 ,  220 ))
gr_graph.SetSeriesStyle('Значення лiмiту', LineColor!, RGB( 220 ,  220 ,  220 ))
ll_serieVal = gr_graph.addSeries('Значення показника')
gr_graph.SetSeriesStyle('Значення показника', ForeGround!, RGB( 0 ,  0 ,  230 ))
gr_graph.SetSeriesStyle('Значення показника', LineColor!, RGB( 0 ,  0 ,  230 ))
Серия данных 'Значення лiмiту' отображается красным, серия 'Значення показника' отображается синим цветом.
Возможные грабли:
- при добавлении серии может слетать нумерация уже добавленных серий данных
- вместо добавления нулл-а, я, например, добавляю 0. Может это и неверно - тогда буду рад совету... Нулл не добавляется вроде как (ПБ 7)


ПС: может еще поможет - вот таким хардКодом подготавливаю график для боль-мень некорявого отображения данных:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
gr_graph.legend = NoLegend!
gr_graph.backColor =  16777215 
gr_graph.TitleDispAttr.AutoSize = False
gr_graph.category.labelDispAttr.AutoSize = False
gr_graph.Values.labelDispAttr.AutoSize = False
gr_graph.title = dw_sf.object.gr_1.title
gr_graph.TitleDispAttr.TextSize =  16 
gr_graph.category.label = 'МВт'
gr_graph.category.labelDispAttr.TextSize =  14 
gr_graph.category.DispAttr.TextSize =  14 
gr_graph.Values.label = 'Час'
gr_graph.Values.labelDispAttr.TextSize =  12 
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36292805
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако спешу дать совет. Который совпадает с советом Локшина Марка 4 года назад. С небольшой конкретикой с моей стороны.
1. Бросаем ОЛЕ-объект с документом Екселя.
2. Открываем его из ПБ
3. Оставляем 3 листа в документе, или добавляем до 3-х по необходимости
4. На листе 1 - просто пустой лист с фоном (показываем его во время заполнения данными листа №2), является листом по умолчанию
На листе 2 - табличка с данными: 1-я колонка - метки по оси Х, остальные колонки - соответствующие значения
На листе 3 - средствами Екселя создаем график, в качестве данных принимающий значения в соотв. колонках на листе 2.
При необходимости пишем набор макросов тут же (например - ОчисткаДанных, Форматирование, ПодготовкаДляПросмотра)
Сохраняем и закрываем - документ Екселя по идее пристыкован к ОЛЕ-объекту на Вашей форме.

Теперь все дело техники. В рантайме активируете ОЛЕ-объект, напихиваете его данными, попутно в нужных местах вызывая макросы (например, в нашем случае вначале ОчисткаДанных, потом пихаем данные на второй лист, потом вызываем Форматирование, который допиливает график на листе 3, потом - ПодготовкаДляПросмотра, где можно выставить всякие там максимальное и минимальное значения для масштабирования графика, толщину линий и проч).

И вроде все.

Сразу предупреждаю. Метод с Екселем более красивый, но трам-тара-рам ВБА, на котором приходится писать макросы... м-м-м... Без содрогания не вспоминаю ;) уж очень иногда неочевидно, какие свойства графика нужно использовать, чтоб все хорошо работало в рантайме (а путей для выполнения одного и того же действа, как ни странно, много). Но... Зато когда все отлажено... Никак не сравнить со стандартными возможностями графика ПБ ;) И, конечно, требует наличия установленного Офиса на компутере.

Может сумбурно... За вопросами - можно и в почту. Ну и ногами просьба сильно не пинать :)
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36292836
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko,
Ойййййй-ёйёйёйё))))По кол-ву написанного,я так понял Вас в своё время достала задача с графиками изрядно))спасибо Вадим,попробую разобраться)))
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36293171
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andreas_84Vadim Romanenko,
Ойййййй-ёйёйёйё))))По кол-ву написанного,я так понял Вас в своё время достала задача с графиками изрядно))спасибо Вадим,попробую разобраться)))

Ага, это точно ;) Разбирался долго и нудно - ибо по кр мере лет 5-7 назад документации по ВБА особой-то и толковой не было - не знаю как сейчас с этим дело обстоит. Да и с графиками когда новичок - не все очевидно... Но, как говорится, упорство и труд... :)
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36293393
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неплохой примерчик...
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36293446
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое интересное и не поместилось...
Полностью здесь .
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36293454
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может и ещё что-то подойдет там же .
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36293943
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AISСамое интересное и не поместилось...
Полностью здесь .

что то я не могу просмотреть содержимое

открываю WorkSpace,делаю add Target а он мне в ответ:
Код: plaintext
Could not add target because of a bad application library in "путь к файлу .pbt"

У меня PB 9.0 Built 5507
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36295551
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andreas_84что то я не могу просмотреть содержимое

открываю WorkSpace,делаю add Target а он мне в ответ:
Код: plaintext
Could not add target because of a bad application library in "путь к файлу .pbt"

У меня PB 9.0 Built 5507
Там библиотеки сделанные в 10.5
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36336312
Ikir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko//Убираем все лишние элементы отображения серии на графике
For i = 1 to gr_graph.SeriesCount()
For j = 1 to gr_graph.CategoryCount()
//Убираем дурацкие квадратики, обозначающие точки на графиках
gr_graph.setDataStyle(i, j, NoSymbol!)
Next
Next

А если никаких серий нет?
И в каком событии вы это делаете?
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36339287
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IkirVadim Romanenko//Убираем все лишние элементы отображения серии на графике
For i = 1 to gr_graph.SeriesCount()
For j = 1 to gr_graph.CategoryCount()
//Убираем дурацкие квадратики, обозначающие точки на графиках
gr_graph.setDataStyle(i, j, NoSymbol!)
Next
Next

А если никаких серий нет?
И в каком событии вы это делаете?

Код: plaintext
А если никаких серий нет?
Одна серия полюбому есть!
и код приведённый выше ,пройдётся по внешнему FOR только один раз(потомучто gr_graph.SeriesCount() будет = 1)
Код: plaintext
И в каком событии вы это делаете?
в любом,после того как график построен,чтоб было что обрабатывать)
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36339475
Ikir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andreas_84в любом,после того как график построен,чтоб было что обрабатывать)

Спасибо.
На кнопке-Построить график- вот такой кусок кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
                ret_code = dw_1.Retrieve( );
                count_i = dw_1.SeriesCount("gr_1");
	 count_j = dw_1.CategoryCount("gr_1");
                For i =  1  to count_i
                  For j =  1  to count_j
                    dw_1.setDataStyle("gr_1",i, j, NoSymbol!)
                  Next
                Next

При первом нажатии функции dw_1.SeriesCount("gr_1") и dw_1.CategoryCount("gr_1") функции возвращают -1 и график выводится с квадратиками.?
При повторном нажатии - видно, как квадратики убираются.)))
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36351381
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IkirAndreas_84в любом,после того как график построен,чтоб было что обрабатывать)

Спасибо.
На кнопке-Построить график- вот такой кусок кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
                ret_code = dw_1.Retrieve( );
                count_i = dw_1.SeriesCount("gr_1");
	 count_j = dw_1.CategoryCount("gr_1");
                For i =  1  to count_i
                  For j =  1  to count_j
                    dw_1.setDataStyle("gr_1",i, j, NoSymbol!)
                  Next
                Next

При первом нажатии функции dw_1.SeriesCount("gr_1") и dw_1.CategoryCount("gr_1") функции возвращают -1 и график выводится с квадратиками.?
При повторном нажатии - видно, как квадратики убираются.)))

Вставил я ваш кусок кода на свою кнопку,и всё происходит по одному нажатию кнопки и никаких -1
1)отрабатывает Retrieve
2)
Код: plaintext
видно, как квадратики убираются.)))
всё работает!
Может несоответствия по именам у вас?проверьте как у вас dw на окне(точно ли dw_1?) и как сам график называется (точно ли gr_1??)
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36351399
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да,и ещё одно,-если у вас серия одна,то в принципе должно и так работать
Код: plaintext
1.
2.
3.
4.
5.
6.
long ret_code,count_i,count_j,i,j
ret_code = dw_report.Retrieve( );
count_j = dw_report.CategoryCount("gr_shipsheduler");
For j =  1  to count_j
  dw_report.setDataStyle("gr_shipsheduler", 1 , j, NoSymbol!
Next
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36351400
Andreas_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andreas_84Да,и ещё одно,-если у вас серия одна,то в принципе должно и так работать
Код: plaintext
1.
2.
3.
4.
5.
6.
long ret_code,count_i,count_j,i,j
ret_code = dw_report.Retrieve( );
count_j = dw_report.CategoryCount("gr_shipsheduler");
For j =  1  to count_j
  dw_report.setDataStyle("gr_shipsheduler", 1 , j, NoSymbol!
Next

ну только вместо dw_report -ваше dw_1 и вместо gr_shipsheduler - gr_1
...
Рейтинг: 0 / 0
Помогите с графиками ...
    #36839890
maniac85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скажите, можно ли как-то на графике со столбиками (тот что в экселе гистограмма) сделать чтобы над столбиком было подписано значение? Чтот в упор не вижу..
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Помогите с графиками ...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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