нужно забацать пару отчётов с графиками, до сего момента ничего подобного не делал, поэтому буду благодарен любым советам как это дело лучше реализовать в Галактике.
может у кого нибудь есть простенький примерчик где subj реализован?
Графики в отчётах
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 517
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Новосибирск Новосибирск
- Контактная информация:
Графики в отчётах
[url=http://blog.gtalex.ru]Блог GTAlex[/url]
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Графики в отчётах
вот это мое.
более подробно что к чему можно почитать в доке к галаграфу. в версиях 582 и выше можно выводить напрямую в Excel(xls) и потом запускать некий макрос для построения графика.
у меня на вывод графиков работал отдельный фейс который по моей же таблице заполненной в других фейсах строил график.
.set name = 'EDGRAF'
.fields
wuptitle nmy nmx wdntitle wnmflt
valy nmkeyy valx summa:double nmkeyx
.endfields
wuptitle ^ nmy ^ nmx ^ wdntitle ^ wnmflt ^
.{
valy ^ nmkeyy ^
.{
valx ^ summa ^ nmkeyx ^
.}
.}
.endform
.linkform 'EDGRAF01_0' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 1 ( расшифровка оси X)'
.fields
wnmflt
valy
valx summa
.endfields
Применен фильтр ^
.{ // цикл по группам
Название страницы ^
.{
Значения по X @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ &&&&&&&&.&&&
.}
.}
.endform
.linkform 'EDGRAF01' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 1'
.fields
valx string(summa,20,3) nmkeyx
wuptitle+' '+valy
nmx+'('+wdntitle+' фильтр '+wnmflt+')'
.endfields
GraphReport "График по отгрузке"
{
Define aFont Font "Small";
Define aSize FontSize "4";
Query "Настройка отчета по интервалам 1 форма"
{
aGraphType GraphType "Способ ~и~зображения диаграммы" "Bar";
aEffects3D GraphDim "Э~ф~фект трехмерности диаграммы " "3D";
aGoodSelect Number "Сколько выводить ~п~ервых величин" "15";
}
.{ // цикл по группам
Page
{
Data
{
.{
"^", &&&&&&&&&&&&.&&, key "^";
.}
} //data
Graph as aGraphType as aEffects3D Bounds (0,0,4000,3000)
{
Legend OFF Bounds (3500,2500,4000,3000) {
Font {
Font as aFont as aSize;
}
}
Arguments ON;
UPTitle "^" { Color Red; }
DNTitle "^" { Color Red; }
Serie
{
Select as aGoodSelect { SumOthers On; }
SORT \ ;
} // serie
} // Graph
} // Page
.} // конец цикла по номенклатуре
} // GraphReport
.endform
.linkform 'EDGRAF02_0' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 2 ( расшифровка оси X)'
.var
wsu:double ;
.endvar
.fields
wnmflt
valy wsu
.endfields
Применен фильтр ^
.{ // цикл по группам
.begin wsu:=0 ; end.
.{
.begin wsu:=wsu+summa ; end.
.}
Значения по X @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ &&&&&&&&.&&&
.}
.endform
.linkform 'EDGRAF02' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 2(все на одной странице)'
.var
wsu:double
.endvar
.fields
valy string(wsu,20,3) nmkeyy
wuptitle
nmy+'('+' фильтр '+wnmflt+')'
wdntitle
.endfields
GraphReport "График по отгрузке"
{
Define aFont Font "Small";
Define aSize FontSize "4";
Query "Настройка отчета по интервалам 2 вар."
{
aGraphType GraphType "Способ ~и~зображения диаграммы" "Bar";
aEffects3D GraphDim "Э~ф~фект трехмерности диаграммы " "3D";
aGoodSelect Number "Сколько выводить ~п~ервых величин" "15";
}
Page
{
Data
{
.{ // цикл по группам
.begin wsu:=0 ; end.
.{
.begin wsu:=wsu+summa ; end.
.}
"^",&&&&&&&&&&&&.&&, key "^";
.}
} //data
Graph as aGraphType as aEffects3D Bounds (0,0,4000,3000)
{
Legend OFF Bounds (2500,300,4000,3000) {
Font {
Font as aFont as aSize;
}
}
Arguments ON;
UPTITLE "^" { Color Red; }
DNTitle "^" { Color Red; }
Serie
{
Select as aGoodSelect { SumOthers On; }
Title "^" { Color Red; }
} // serie
} // Graph
} // Page
} // GraphReport
.endform
.linkform 'EDGRAF03_0' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 3 ( расшифровка оси X)'
.fields
wnmflt
valy
valx summa
.endfields
Не доделан
Применен фильтр ^
.{ // цикл по группам
Название страницы ^
.{
Значения по X @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ &&&&&&&&.&&&
.}
.}
.endform
.linkform 'EDGRAF03' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 3(многосерийный)'
.fields
wuptitle+' '+wdntitle
valy
valx summa nmkeyx
.endfields
GraphReport "График по отгрузке"
{
Define aFont Font "Small";
Define aSize FontSize "4";
Query "Настройка отчета по интервалам 3 вар."
{
aGraphType GraphType "Способ ~и~зображения диаграммы" "Bar";
aEffects3D GraphDim "Э~ф~фект трехмерности диаграммы " "3D";
aGoodSelect Number "Сколько выводить ~п~ервых величин" "15";
}
Page
{
Graph as aGraphType as aEffects3D Bounds (0,0,4000,3000)
{
Legend On Bounds (3500,2600,4000,3000) {
Font {
Font as aFont as aSize;
}
}
Arguments ON;
UPTITLE "^"{ Color Red; }
! DNTitle "^" { Color Red; }
.{ // цикл по группам
Serie
{
Values none ;
Select as aGoodSelect { SumOthers On; }
Title "^" { Color Red; }
Data
{
.{
"^",&&&&&&&&&&&&.&&, key "^";
.}
} //data
} // serie
.}
} // Graph
} // Page
} // GraphReport
.endform
более подробно что к чему можно почитать в доке к галаграфу. в версиях 582 и выше можно выводить напрямую в Excel(xls) и потом запускать некий макрос для построения графика.
у меня на вывод графиков работал отдельный фейс который по моей же таблице заполненной в других фейсах строил график.
.set name = 'EDGRAF'
.fields
wuptitle nmy nmx wdntitle wnmflt
valy nmkeyy valx summa:double nmkeyx
.endfields
wuptitle ^ nmy ^ nmx ^ wdntitle ^ wnmflt ^
.{
valy ^ nmkeyy ^
.{
valx ^ summa ^ nmkeyx ^
.}
.}
.endform
.linkform 'EDGRAF01_0' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 1 ( расшифровка оси X)'
.fields
wnmflt
valy
valx summa
.endfields
Применен фильтр ^
.{ // цикл по группам
Название страницы ^
.{
Значения по X @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ &&&&&&&&.&&&
.}
.}
.endform
.linkform 'EDGRAF01' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 1'
.fields
valx string(summa,20,3) nmkeyx
wuptitle+' '+valy
nmx+'('+wdntitle+' фильтр '+wnmflt+')'
.endfields
GraphReport "График по отгрузке"
{
Define aFont Font "Small";
Define aSize FontSize "4";
Query "Настройка отчета по интервалам 1 форма"
{
aGraphType GraphType "Способ ~и~зображения диаграммы" "Bar";
aEffects3D GraphDim "Э~ф~фект трехмерности диаграммы " "3D";
aGoodSelect Number "Сколько выводить ~п~ервых величин" "15";
}
.{ // цикл по группам
Page
{
Data
{
.{
"^", &&&&&&&&&&&&.&&, key "^";
.}
} //data
Graph as aGraphType as aEffects3D Bounds (0,0,4000,3000)
{
Legend OFF Bounds (3500,2500,4000,3000) {
Font {
Font as aFont as aSize;
}
}
Arguments ON;
UPTitle "^" { Color Red; }
DNTitle "^" { Color Red; }
Serie
{
Select as aGoodSelect { SumOthers On; }
SORT \ ;
} // serie
} // Graph
} // Page
.} // конец цикла по номенклатуре
} // GraphReport
.endform
.linkform 'EDGRAF02_0' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 2 ( расшифровка оси X)'
.var
wsu:double ;
.endvar
.fields
wnmflt
valy wsu
.endfields
Применен фильтр ^
.{ // цикл по группам
.begin wsu:=0 ; end.
.{
.begin wsu:=wsu+summa ; end.
.}
Значения по X @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ &&&&&&&&.&&&
.}
.endform
.linkform 'EDGRAF02' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 2(все на одной странице)'
.var
wsu:double
.endvar
.fields
valy string(wsu,20,3) nmkeyy
wuptitle
nmy+'('+' фильтр '+wnmflt+')'
wdntitle
.endfields
GraphReport "График по отгрузке"
{
Define aFont Font "Small";
Define aSize FontSize "4";
Query "Настройка отчета по интервалам 2 вар."
{
aGraphType GraphType "Способ ~и~зображения диаграммы" "Bar";
aEffects3D GraphDim "Э~ф~фект трехмерности диаграммы " "3D";
aGoodSelect Number "Сколько выводить ~п~ервых величин" "15";
}
Page
{
Data
{
.{ // цикл по группам
.begin wsu:=0 ; end.
.{
.begin wsu:=wsu+summa ; end.
.}
"^",&&&&&&&&&&&&.&&, key "^";
.}
} //data
Graph as aGraphType as aEffects3D Bounds (0,0,4000,3000)
{
Legend OFF Bounds (2500,300,4000,3000) {
Font {
Font as aFont as aSize;
}
}
Arguments ON;
UPTITLE "^" { Color Red; }
DNTitle "^" { Color Red; }
Serie
{
Select as aGoodSelect { SumOthers On; }
Title "^" { Color Red; }
} // serie
} // Graph
} // Page
} // GraphReport
.endform
.linkform 'EDGRAF03_0' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 3 ( расшифровка оси X)'
.fields
wnmflt
valy
valx summa
.endfields
Не доделан
Применен фильтр ^
.{ // цикл по группам
Название страницы ^
.{
Значения по X @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ &&&&&&&&.&&&
.}
.}
.endform
.linkform 'EDGRAF03' prototype is 'EDGRAF'
.nameinlist 'Графический отчет вариант 3(многосерийный)'
.fields
wuptitle+' '+wdntitle
valy
valx summa nmkeyx
.endfields
GraphReport "График по отгрузке"
{
Define aFont Font "Small";
Define aSize FontSize "4";
Query "Настройка отчета по интервалам 3 вар."
{
aGraphType GraphType "Способ ~и~зображения диаграммы" "Bar";
aEffects3D GraphDim "Э~ф~фект трехмерности диаграммы " "3D";
aGoodSelect Number "Сколько выводить ~п~ервых величин" "15";
}
Page
{
Graph as aGraphType as aEffects3D Bounds (0,0,4000,3000)
{
Legend On Bounds (3500,2600,4000,3000) {
Font {
Font as aFont as aSize;
}
}
Arguments ON;
UPTITLE "^"{ Color Red; }
! DNTitle "^" { Color Red; }
.{ // цикл по группам
Serie
{
Values none ;
Select as aGoodSelect { SumOthers On; }
Title "^" { Color Red; }
Data
{
.{
"^",&&&&&&&&&&&&.&&, key "^";
.}
} //data
} // serie
.}
} // Graph
} // Page
} // GraphReport
.endform
-
- Местный житель
- Сообщения: 517
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Новосибирск Новосибирск
- Контактная информация:
Re: Графики в отчётах
спасибо за примерчик
думаю больше ничего и не понадобится
дока по галаграфу имеется
думаю больше ничего и не понадобится
дока по галаграфу имеется
[url=http://blog.gtalex.ru]Блог GTAlex[/url]
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Графики в отчётах
а в excel выводить не хочешь побаловаться?
только версия у тебя вроде 573 - придется помучиться.
только версия у тебя вроде 573 - придется помучиться.