powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Помогите с отчетом
10 сообщений из 10, страница 1 из 1
Помогите с отчетом
    #35927591
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Помогите построить отчет.
Есть запрос возвращающий такие записи:
sumareaq_privilegieprivilegiediscount14319.7835854.6512581043505383.267431.52315176755319.005221.20204123100
где sum - сумма,area - площадь,q_privilegie - кол-во льготников,privilegie - кол-во льгот,discount - процент льготы.
Эти данные нужно отобразить в отчете в таком виде:
5075100ВсегоЕд. измеренийкол-во льгот10431761231342чел.кол-во льготников12583152041777чел.площадь35854.657431.525221.2048507.37кв. м.сумма14319.785383.265319.0025022.04руб.
Как такое можно сделать? Зараннее спасибо за помощь.
...
Рейтинг: 0 / 0
Помогите с отчетом
    #35927740
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать crosstab отчет изменив исходынй запрос, или нарисовать отчет, меняя синтаксис DataWindow и раскидывая данные по ячейкам из скрипта.
...
Рейтинг: 0 / 0
Помогите с отчетом
    #35927770
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин МаркСделать crosstab отчет изменив исходынй запрос, или нарисовать отчет, меняя синтаксис DataWindow и раскидывая данные по ячейкам из скрипта.
Как изменить исходный запрос чтобы сделать кросстаб? Можно поподробнее?
...
Рейтинг: 0 / 0
Помогите с отчетом
    #35927924
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вытягивать строки следующим образом
наименование строки/единища измерения/льгота/значение
т.е. sum/area/q_privilegie/privilegie вытягивать в 4-х разных строках а не в одной
...
Рейтинг: 0 / 0
Помогите с отчетом
    #35928014
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин МаркВытягивать строки следующим образом
наименование строки/единища измерения/льгота/значение
т.е. sum/area/q_privilegie/privilegie вытягивать в 4-х разных строках а не в одной
Непонятно... Где можно прочитать про кростаб? Если можно, скиньте ссылку.
...
Рейтинг: 0 / 0
Помогите с отчетом
    #35928072
edmikeca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lionerНепонятно... Где можно прочитать про кростаб? Если можно, скиньте ссылку.А что в хелпе нет про кростаб?
...
Рейтинг: 0 / 0
Помогите с отчетом
    #35929694
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался с кросстабом.
Но:
1) мастер по умолчанию разместил столбец "Ед. изм." на 2-ом месте (это видно на прикрепленном рисунке), а нужно чтобы он был последним после столбца "Всего". Рисовальщик датавиндоу не позволяет переместить столбец мышкой. В режиме предварительного просмотра наблюдается тоже самое. Может нужно ручками редактировать датасоурс ДВ, меняя вручную Х-координату?
2) надпись в Header[1] нельзя расположить по всей ширине кросстаба. При попытке увеличить ее ширину изменяется ширина столбца strname. Нужно в хеадере выше самой таблицы расположить надпись и в футере разместить некоторые надписи. Надписи должны быть независимы от ширины столбцов кросстаба. Или придется создавать новое ДВ, заполнять его хеадер и футер надписями, а в секцию детализации помещать кросстаб как вложенный отчет ?
Привожу синтаксис полученного кросстаба:
Код: 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.
33.
34.
35.
36.
37.
release  8 ;
datawindow(units= 3  timer_interval= 0  color= 1073741824  processing= 4  HTMLDW=no print.documentname="" print.orientation =  2  print.margin.left =  635  print.margin.right =  635  print.margin.top =  635  print.margin.bottom =  635  print.paper.source =  0  print.paper.size =  0  print.prompt=no print.buttons=no print.preview.buttons=no  crosstab.dynamic = yes grid.lines= 0  grid.columnmove=no selected.mouse=no )
header[ 1 ](height= 502  color="536870912" )
header[ 2 ](height= 476  color="536870912" )
summary(height= 0  color="536870912" )
footer(height= 0  color="536870912" )
detail(height= 820  color="536870912" )
table(column=(type=char( 20 ) updatewhereclause=yes name=strname dbname="strname" )
 column=(type=char( 20 ) updatewhereclause=yes name=edizm dbname="edizm" )
 column=(type=number updatewhereclause=yes name=value dbname="value" )
 retrieve="select 'Кол-во льготников' strname,count(t.privilegie) value,t.discount*100 persent,'чел.' edizm
from t
group by t.discount
union
select 'Кол-во чел. иждив.' strname,sum(t.q_priv) value,t.discount*100 persent,'чел.' edizm
from t
group by t.discount
union
select 'Льготная площадь' strname,sum(t.priv_area) value,t.discount*100 persent,'кв.м.' edizm
from t
group by t.discount
union
select 'Сумма льготы' strname,sum(t.sum) value,t.discount*100 persent,'грн.' edizm
from t
group by t.discount" arguments=(("d1", string),("priv", string))  sort="strname A edizm A " )
text(band=header[ 2 ] alignment="0" text="Ед. изм." border="0" color="33554432" x="3254" y="27" height="423" width="1455" html.valueishtml="0"  name=edizm_t visible="1"  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[ 2 ] alignment="0" text="@persent %" border="0" color="33554432" x="4762" y="27" height="423" width="1905" html.valueishtml="0"  name=value_t visible="1"  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[ 2 ] alignment="0" text="Всего " border="0" color="33554432" x="6720" y="27" height="423" width="2513" html.valueishtml="0"  name=grand_sum_value_t visible="1"  font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
column(band=detail id= 1  alignment="0" tabsequence= 32766  border="0" color="33554432" x="52" y="27" height="740" width="3148" format="[general]" html.valueishtml="0"  name=strname visible="1" edit.limit= 50  edit.case=any edit.focusrectangle=no edit.autoselect=no edit.autohscroll=yes edit.imemode= 0   font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
column(band=detail id= 2  alignment="0" tabsequence= 32766  border="0" color="33554432" x="3254" y="27" height="740" width="1455" format="[general]" html.valueishtml="0"  name=edizm visible="1" edit.limit= 5  edit.case=any edit.focusrectangle=no edit.autoselect=no edit.autohscroll=yes edit.imemode= 0   font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
column(band=detail id= 3  alignment="0" tabsequence= 32766  border="0" color="33554432" x="4762" y="27" height="740" width="1905" format="[general]" html.valueishtml="0"  name=value visible="1" edit.limit= 0  edit.case=any edit.focusrectangle=no edit.autoselect=no edit.autohscroll=yes edit.imemode= 0  crosstab.repeat=yes  font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
compute(band=detail alignment="0" expression="crosstabsum(1)"border="0" color="33554432" x="6720" y="27" height="740" width="2513" format="" html.valueishtml="0"  name=grand_sum_value visible="1"  font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
compute(band=header[ 1 ] alignment="0" expression="'Реестр № 7 от '+d1"border="0" color="33554432" x="26" y="26" height="423" width="3175" format="[GENERAL]" html.valueishtml="0"  name=compute_1 visible="1"  font.face="Arial" font.height="-10" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
 crosstab(band = foreground  crosstabonly = yes 
 columns = "persent" rows = "strname, edizm" values = "sum(value for crosstab)" sourcenames = "strname, value, persent, edizm")
sparse(names="strname")htmltable(border="0" cellpadding="1" cellspacing="1" )
htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" netscapelayers="0" ) 
...
Рейтинг: 0 / 0
Помогите с отчетом
    #35929981
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lionerРазобрался с кросстабом.
Но:
1) мастер по умолчанию разместил столбец "Ед. изм." на 2-ом месте (это видно на прикрепленном рисунке), а нужно чтобы он был последним после столбца "Всего". Рисовальщик датавиндоу не позволяет переместить столбец мышкой. В режиме предварительного просмотра наблюдается тоже самое. Может нужно ручками редактировать датасоурс ДВ, меняя вручную Х-координату?
2) надпись в Header[1] нельзя расположить по всей ширине кросстаба. При попытке увеличить ее ширину изменяется ширина столбца strname. Нужно в хеадере выше самой таблицы расположить надпись и в футере разместить некоторые надписи. Надписи должны быть независимы от ширины столбцов кросстаба. Или придется создавать новое ДВ, заполнять его хеадер и футер надписями, а в секцию детализации помещать кросстаб как вложенный отчет ?

1. Например сделать размер столбца ед. изм. = 0, Добавить агрегируемый столбец при помощи еще одного кросстаб ряда, скрыв сам ряд и в итоге написать что-то типа if(crosstabsum(1) <> crosstabsum(1),"",edizm). Может и проще можно, я с кросстабами давно уже не работал (см. п.4).
2. Сделать layer background
3. Зачем в запросе писать union а не union all?
4. Кросстаб вообще крайне не додуманная и наредкость неудобная для управления штука в DataWindow которая не развивается уже более 15 лет.
...
Рейтинг: 0 / 0
Помогите с отчетом
    #35930036
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин МаркlionerРазобрался с кросстабом.
Но:
1) мастер по умолчанию разместил столбец "Ед. изм." на 2-ом месте (это видно на прикрепленном рисунке), а нужно чтобы он был последним после столбца "Всего". Рисовальщик датавиндоу не позволяет переместить столбец мышкой. В режиме предварительного просмотра наблюдается тоже самое. Может нужно ручками редактировать датасоурс ДВ, меняя вручную Х-координату?
2) надпись в Header[1] нельзя расположить по всей ширине кросстаба. При попытке увеличить ее ширину изменяется ширина столбца strname. Нужно в хеадере выше самой таблицы расположить надпись и в футере разместить некоторые надписи. Надписи должны быть независимы от ширины столбцов кросстаба. Или придется создавать новое ДВ, заполнять его хеадер и футер надписями, а в секцию детализации помещать кросстаб как вложенный отчет ?

1. Например сделать размер столбца ед. изм. = 0, Добавить агрегируемый столбец при помощи еще одного кросстаб ряда, скрыв сам ряд и в итоге написать что-то типа if(crosstabsum(1) <> crosstabsum(1),"",edizm). Может и проще можно, я с кросстабами давно уже не работал (см. п.4).
2. Сделать layer background
3. Зачем в запросе писать union а не union all?
4. Кросстаб вообще крайне не додуманная и наредкость неудобная для управления штука в DataWindow которая не развивается уже более 15 лет.
Спасибо за ответы и советы.
Есть еще одна проблемка: в хеадере нужно добавить некое поле ввода, в которое пользователь мог бы вводить некий текст после ретрива отчета, т.е. сам по своему усмотрению озаглавливать отчет. Как это можно сделать ?
...
Рейтинг: 0 / 0
Помогите с отчетом
    #35930212
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lionerЕсть еще одна проблемка: в хеадере нужно добавить некое поле ввода, в которое пользователь мог бы вводить некий текст после ретрива отчета, т.е. сам по своему усмотрению озаглавливать отчет. Как это можно сделать ?
В crosstab'е - никак. Разместите на окне отдельный элемент для ввода названия.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Помогите с отчетом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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