|
|
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
$V{pid}.setValue($F{PID}); $F{PID}=$V{pid}.getValue() ? " " : $F{DATE_OFF_SYS_TRIP} пытаюсь записать в переменную пид, затем сравнить со следующим приходящим пидом если равны, то оставлять строку пустым, а иначе записать дату Errors compiling D:\act.jasper! Compilation*exceptions:*com.jaspersoft.ireport.designer.compiler.ErrorsCollector@223f9b net.sf.jasperreports.engine.JRException:*Errors*were*encountered*when*compiling*report*expressions*class*file: org.codehaus.groovy.control.MultipleCompilationErrorsException:*startup*failed,*calculator_act_1347001368169_815981:*216:* class*org.codehaus.groovy.ast.expr.CastExpression,*with*its*value*'(java.math.BigDecimal)*field_PID.getValue()',*is*a*bad*expression*as*the*left*hand*side*of*an*assignment*operator*at*line:*216*column:*45.*File:*calculator_act_1347001368169_815981*@*line*216,*column*45. 1*error ****at*net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:101) ****at*net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:188) ****at*net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215) ****at*net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:131) ****at*com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:514) ****at*org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) ****at*org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Caused*by:*org.codehaus.groovy.control.MultipleCompilationErrorsException:*startup*failed,*calculator_act_1347001368169_815981:*216:* class*org.codehaus.groovy.ast.expr.CastExpression,*with*its*value*'(java.math.BigDecimal)*field_PID.getValue()',*is*a*bad*expression*as*the*left*hand*side*of*an*assignment*operator*at*line:*216*column:*45.*File:*calculator_act_1347001368169_815981*@*line*216,*column*45. 1*error ****at*org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:296) ****at*org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:787) ****at*org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:438) ****at*net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:97) ****...*6*more Compilation running time: 33! помогите пжл, первый раз делаю отчет в jasperrepots ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 11:37:16 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
== это сравнение = это присвоение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 11:41:25 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
у меня так написано $V{pid}.setValue($F{PID}); $F{PID}==$V{pid}.getValue() ? " " : $F{DATE_OFF_SYS_TRIP} опечатка была $V{pid}=$F{PID}; $F{PID}==$V{pid}.getValue() ? " " : $F{DATE_OFF_SYS_TRIP} так тоже работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 12:07:02 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
у меня так написано $V{pid}.setValue($F{PID}); $F{PID}==$V{pid}.getValue() ? " " : $F{DATE_OFF_SYS_TRIP} опечатка была $V{pid}=$F{PID}; $F{PID}==$V{pid}.getValue() ? " " : $F{DATE_OFF_SYS_TRIP} так тоже не работает сорри, за опечтаку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 12:14:28 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
Для начала приложите немного усилия. Верните пробелы вместо звездочек и отформатируйте нормально исключения, чтобы можно было прочитать текст ошибки. Посмотрие на какую именно строку указывает ошибка и определитесь с тем какая из 2х ваших строк вызывает проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 12:24:05 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
Errors compiling D:\act.jasper! Compilation exceptions: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@223f9b net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: org.codehaus.groovy.control.MultipleCompilationErrorsException:*startup*failed,*calculator_act_1347001368169_815981: 216: class org.codehaus.groovy.ast.expr.CastExpression, with its value '(java.math.BigDecimal) field_PID.getValue()', is a bad expression as the left hand side of an assignment operator at line:216 column: 45. File: calculator_act_1347001368169_815981 @ line 216, column 45. 1 error at net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:101) at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:188) at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:131) at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:514) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, calculator_act_1347001368169_815981: 216: class org.codehaus.groovy.ast.expr.CastExpression, with its value '(java.math.BigDecimal) field_PID.getValue()', is a bad expression as the left hand side of an assignment operator at line: 216 column: 45. File: calculator_act_1347001368169_815981 @ line 216, column 45. 1 error at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:296) at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:787) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:438) at net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:97) ****...*6*more Compilation running time: 33! $V{pid} - тип BigDecimal $F{PID} - тип BigDecimal " " - String $F{DATE_OFF_SYS_TRIP} - String ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 13:12:52 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
davy johnsat line:216 column: 45. File: calculator_act_1347001368169_815981 @ line 216, column 45. 1 error И 216я строка эта которая из двух? 45й символ какой? ИЛи это координаты в уже скомпилированом шаблоне и здесь смысла не имеют? davy johns$V{pid} - тип BigDecimal $F{PID} - тип BigDecimal " " - String $F{DATE_OFF_SYS_TRIP} - String Т.е. переменной типа BigDecimal (число) вы хотите присвоить строку (пробел!) или какую-то другую строку (дата?) Как оно вам должно пробел в число преобразовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 13:20:29 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
Blazkowiczdavy johnsat line:216 column: 45. File: calculator_act_1347001368169_815981 @ line 216, column 45. 1 error И 216я строка эта которая из двух? 45й символ какой? ИЛи это координаты в уже скомпилированом шаблоне и здесь смысла не имеют? davy johns$V{pid} - тип BigDecimal $F{PID} - тип BigDecimal " " - String $F{DATE_OFF_SYS_TRIP} - String Т.е. переменной типа BigDecimal (число) вы хотите присвоить строку (пробел!) или какую-то другую строку (дата?) Как оно вам должно пробел в число преобразовать? $V{pid}=$F{PID} - я BigDecimal присавиваю BigDecimal $F{PID}==$V{pid} тут BigDecimal сравниваю с BigDecimal ? " " : $F{DATE_OFF_SYS_TRIP} - то " " , а иначе $F{DATE_OFF_SYS_TRIP} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 14:30:26 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
Да. Тупанул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 14:32:45 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
BlazkowiczИ 216я строка эта которая из двух? 45й символ какой? ИЛи это координаты в уже скомпилированом шаблоне и здесь смысла не имеют? Вот не лень то Вам разбираться! Как я понимаю, при компиляции jasper генерит исходники (в данном случае Groovy), которые потом компилит и собирает jasper-файл отчета. Если компиляция проходит нормально, он их удаляет. Если нет в них можно поковыряться и посмотреть на строку, приведшую к ошибке компиляции. 216я строка как раз в сгенеренном исходнике. Пусть топикстартер смотрит что там есть. Топикстартеру: - Вам реально нужен Groovy при вычислении выражений? Он выставлен по умолчанию в jasper. Если нет - поменяйте его в свойствах отчета на java (Report Inspector, контекстное меню на отчете - самая верхняя строка). - опишите словами какую задачу пытаетесь решить. Убивать время на вылавливание ошибки, в операторе, который может вообще не нужен - на фиг надо. Может значение $V{pid} пересчитается на момент поднятия следующей записи раньше работы этого тернарного оператора (элементарно проверить на простом отчете из одного поля и подобной переменной). То есть получится что в переменной сохраним значение не из предыдущей, а из текущей записи. Или проблему вообще можно решить без использования $V ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 14:35:13 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
Тогда вы где-то не перекомпилировали шаблон: field_PID .getValue(), is a bad expression as the left hand side of an assignment operator $F{PID} слевой стороны оператора присвоения (=) это как раз ошибка из первого поста: $F{PID}= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 14:39:19 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
первый раз пришел пид надо вывести дату, второй раз если приходит тот же пид, то надо вывести пробел, а иначе дату ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 14:55:14 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
davy johns, Не совсем понял. Данные в отчете отображаются, отсортированные по pid? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 15:09:53 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
sanBezНе совсем понял. Данные в отчете отображаются, отсортированные по pid? Вероятно есть некоторый грид. И чтобы убрать визуальный мусор, предлагается дату показывать только в первой строке для каждого PID. Хотя это, наверное, лучше было через группировки сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 15:12:52 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
sanBez, нет, пид не вывожу в самом отчете, он приходит для того, чтобы сортировать, и решить выводить дату или нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 15:13:40 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
select a.name_group, a.date_off_sys_trip, a.date_fact_on_sys_trip, a.all_time, a.Note_Sys_Trip, a.name, a.adr, a.date_1, a.org_name, a.id_org, a.pid from (select trunc(t.date_fact_on_sys_trip) as date_1, p.pid as pid, fGetAdrString(r.adr) as adr, g.name as org_name, g.ext_id as id_org, (decode(r.name_group, null, ' ', ' ' || r.name_group)) as name_group, (decode(t.date_off_sys_trip, null, ' ', decode(to_char(t.date_off_sys_trip, 'DD.MM.YYYY HH24'), null, ' ', to_char(t.date_off_sys_trip, 'DD.MM.YYYY HH24') || 'ч.') || decode(to_char(t.date_off_sys_trip, 'DD.MM.YYYY HH24'), null, ' ', to_char(t.date_off_sys_trip, 'mi') || 'мин.'))) as date_off_sys_trip, (decode(t.date_fact_on_sys_trip, null, ' ', decode(to_char(t.date_fact_on_sys_trip, 'DD.MM.YYYY HH24'), null, ' ', to_char(t.date_fact_on_sys_trip, 'DD.MM.YYYY HH24') || 'ч.') || decode(to_char(t.date_fact_on_sys_trip, 'DD.MM.YYYY HH24'), null, ' ', to_char(t.date_fact_on_sys_trip, 'mi') || 'мин.'))) as date_fact_on_sys_trip, decode(t.date_fact_on_sys_trip - t.date_off_sys_trip, null, ' ', decode(round((t.date_fact_on_sys_trip - t.date_off_sys_trip) * 24), 0, ' ', round((t.date_fact_on_sys_trip - t.date_off_sys_trip) * 24) || ' ч. ') || decode(mod(round((t.date_fact_on_sys_trip - t.date_off_sys_trip) * 24 * 60), 60), 0, ' ', mod(round((t.date_fact_on_sys_trip - t.date_off_sys_trip) * 24 * 60), 60) || ' мин. ')) as all_time, (decode(t.Note_Sys_Trip, null, ' ', ' ' || t.Note_Sys_Trip)) as Note_Sys_Trip, (decode(f.name, null, ' ', ' ' || f.name)) as name from do_proc_sys_tripping_1 t, ref_group_address r, ref_providers f, do_journal_proc p, do_list_value l, do_orgs g where t.pid = p.pid and g.ext_id = r.uk_group and t.group_address = l.list_id and l.list_value = r.group_address_id and f.provider_id = t.provider_sys_trip union select trunc(e.date_fact_on_emer_trip) as date_1, p.pid as pid, fGetAdrString(r.adr) as adr, g.name as org_name, g.ext_id as id_org, (decode(r.name_group, null, ' ', ' ' || r.name_group)) as name_group, (decode(e.date_off_emer_trip, null, ' ', decode(to_char(e.date_off_emer_trip, 'DD.MM.YYYY HH24'), null, ' ', to_char(e.date_off_emer_trip, 'DD.MM.YYYY HH24') || 'ч.') || decode(to_char(e.date_off_emer_trip, 'DD.MM.YYYY HH24'), null, ' ', to_char(e.date_off_emer_trip, 'mi') || 'мин.'))) as date_off_sys_trip, (decode(e.date_fact_on_emer_trip, null, ' ', decode(to_char(e.date_fact_on_emer_trip, 'DD.MM.YYYY HH24'), null, ' ', to_char(e.date_fact_on_emer_trip, 'DD.MM.YYYY HH24') || 'ч.') || decode(to_char(e.date_fact_on_emer_trip, 'DD.MM.YYYY HH24'), null, ' ', to_char(e.date_fact_on_emer_trip, 'mi') || 'мин.'))) as date_fact_on_sys_trip, decode(e.date_fact_on_emer_trip - e.date_off_emer_trip, null, ' ', decode(round((e.date_fact_on_emer_trip - e.date_off_emer_trip) * 24), 0, ' ', round((e.date_fact_on_emer_trip - e.date_off_emer_trip) * 24) || ' ч. ') || decode(mod(round((e.date_fact_on_emer_trip - e.date_off_emer_trip) * 24 * 60), 60), 0, ' ', mod(round((e.date_fact_on_emer_trip - e.date_off_emer_trip) * 24 * 60), 60) || ' мин. ')) as all_time, (decode(e.note_emer_trip, null, ' ', ' ' || e.note_emer_trip)) as Note_Sys_Trip, (decode(f.name, null, ' ', ' ' || f.name)) as name from do_proc_emer_tripping_1 e, ref_group_address r, ref_providers f, do_journal_proc p, do_list_value l, do_orgs g where e.pid = p.pid and g.ext_id = r.uk_group and e.group_address= l.list_id and l.list_value = r.group_address_id and f.provider_id = e.provider_emer_trip) a where ($P{org_id} = '-1' or a.id_org=$P{org_id}) and a.date_1 between trunc(to_date($P{Dat1}, 'dd.mm.rrrr')) and trunc(to_date($P{Dat2}, 'dd.mm.rrrr')) вот мой запросик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 15:21:55 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
вот бьолее четкий вид ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 15:24:10 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
davy johns, BlazkowiczХотя это, наверное, лучше было через группировки сделать. Интересно, уважаемый Блазкович не прав бывает когда-нибудь :) Быстрый эксперимент с попыткой присвоения в $V не дал ничего. Как я и думал, в переменной - текущая запись. Приложил элементарный отчет с группировкой. Делается, нажав из контекстного меню отчета "Add Report Group". При формировании группы iReport у меня сформировал переменную GroupForPID_COUNT, которую использую в PrintWhenExpression для даты (см. Properties). Хотя наверно зря. Тут рисуночек появился. Может вообще здесь можно легко обойтись свойство у поля даты "Print Repeated Values". Я ж думал даты разные.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 15:46:20 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
мне нужно сохранить текущее значение пида в переменную и сравнить его с последующими пидами) может меня не так поняли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 17:44:17 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
оператор присваивание не поддерживается в jasper'e как я понял, или поддерживается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 17:46:14 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
davy johnsмне нужно сохранить текущее значение пида в переменную и сравнить его с последующими пидами) может меня не так поняли поняли. Но именно это вам и не нужно. Вы вручную пытаетесь то что jasper делает сам. Сбросьте у поля даты в Properties чек-бокс PrintRepeatedValues и получите то что вам нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 17:51:57 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
davy johnsоператор присваивание не поддерживается в jasper'e как я понял, или поддерживается? Может и не поддерживается, только не понятно почему тогда ругается на field_PID, когда вы присваиваете только Variable с именем pid. Покажите последний вариант кода и новый текст ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 17:54:50 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
Compilation exceptions: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@1dd6ab4 net.sf.jasperreports.engine.JRException: Too many groovy classes were generated. Please make sure that you don't use Groovy features such as closures that are not supported by this report compiler. at net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:114) at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:188) at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:131) atcom.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:514) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 18:03:08 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
davy johnsCompilation exceptions: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@1dd6ab4 net.sf.jasperreports.engine.JRException: Too many groovy classes were generated. Please make sure that you don't use Groovy features such as closures that are not supported by this report compiler. at net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:114) at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:188) at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:131) atcom.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:514) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) $V{pid}.setValue($F{PID}); $F{PID}==$V{pid}?" ":$F{DATE_OFF_SYS_TRIP} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 18:04:25 |
|
||
|
условные операторы в jasperrepots
|
|||
|---|---|---|---|
|
#18+
davy johns$V{pid}.setValue($F{PID}); $F{PID}==$V{pid}?" ":$F{DATE_OFF_SYS_TRIP} Еще раз: 1. Убейте это присвоение вообще вместе с переменной 2. Выберите текстовое поле "Ваша дата" в секции Detail и в окне свойств (Window->Properties или Ctrl+Shift+7) сбросьте чек-бокс PrintRepeatedValues 3. Еще совет - в этом же окне свойств есть чек-бокс Blank When Null, который избавит вас от лишних decode в запросе (переводите null в пробел) Пользуйтесь средствами отчетной системы. Зачем руками делать то, что уже реализовано в ней? Пытаетесь исправить ошибку в НЕНУЖНОМ операторе. 4. Еще раз - зачем вам Groovy? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2012, 18:20:07 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37948495&tid=2130994]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 288ms |
| total: | 442ms |

| 0 / 0 |
