dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #21275
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 10017: Don't run report with aggregate type sum and average in Aggregate Tabular report.
------------------------------------------------------------
revno: 10017
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2013-03-07 11:29:17 +0700
message:
Don't run report with aggregate type sum and average in Aggregate Tabular report.
modified:
dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java 2013-03-05 07:29:03 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java 2013-03-07 04:29:17 +0000
@@ -932,8 +932,9 @@
{
sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
+ statementBuilder.getDoubleColumnType() + " ))";
- sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
- + deSum + " ) ";
+ sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+ + " programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+ + " ) ";
}
sql += "FROM programstageinstance psi_1 ";
sql += " JOIN patientdatavalue pdv_1 ";
@@ -970,7 +971,7 @@
{
sql += "LIMIT " + limit;
}
-
+ System.out.println( "\n\n === \n " + sql );
return sql;
}
@@ -1014,8 +1015,9 @@
{
sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
+ statementBuilder.getDoubleColumnType() + " ))";
- sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
- + deSum + " ) ";
+ sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+ + " programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+ + " ) ";
}
sql += "FROM ";
sql += " patientdatavalue pdv_1 JOIN programstageinstance psi_1 ";
@@ -1090,8 +1092,9 @@
{
sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
+ statementBuilder.getDoubleColumnType() + " ))";
- sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
- + deSum + " ) ";
+ sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+ + " programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+ + " ) ";
}
sql += "FROM ";
sql += " patientdatavalue pdv_1 JOIN programstageinstance psi_1 ";
@@ -1153,7 +1156,8 @@
{
sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
+ statementBuilder.getDoubleColumnType() + " ))";
- sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid=" + deSum
+ sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+ + " programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+ " ) ";
}
sql += "FROM ";
@@ -1257,7 +1261,8 @@
{
sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
+ statementBuilder.getDoubleColumnType() + " ))";
- sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
+ sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+ + " programstageinstanceid=psi_1.programstageinstanceid and dataelementid="
+ deSum + " ) ";
}
sql += "FROM programstageinstance psi_1 JOIN patientdatavalue pdv_1 ";
@@ -1337,7 +1342,8 @@
{
sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
+ statementBuilder.getDoubleColumnType() + " ))";
- sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid=" + deSum
+ sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+ + " programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+ " ) ";
}
sql += "FROM programstageinstance psi_1 JOIN patientdatavalue pdv_1 ";
@@ -1399,8 +1405,9 @@
{
sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
+ statementBuilder.getDoubleColumnType() + " ))";
- sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
- + deSum + " ) ";
+ sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+ + " programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+ + " ) ";
}
sql += "FROM patientdatavalue pdv_1 ";
sql += " inner join programstageinstance psi_1 ";
@@ -1462,7 +1469,8 @@
{
sql += "(SELECT ( SELECT " + aggregateType + "( cast( value as "
+ statementBuilder.getDoubleColumnType() + " ))";
- sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid=" + deSum
+ sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+ + " programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum
+ " ) ";
}
@@ -1611,8 +1619,8 @@
{
sql += "( SELECT " + aggregateType + "( cast( value as " + statementBuilder.getDoubleColumnType()
+ " ))";
- sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and dataelementid="
- + deSum + " ";
+ sql += " FROM patientdatavalue where dataelementid=pdv_1.dataelementid and "
+ + " programstageinstanceid=psi_1.programstageinstanceid and dataelementid=" + deSum + " ";
}
sql += "FROM programstageinstance psi_1 JOIN patientdatavalue pdv_1 ";
@@ -1798,21 +1806,28 @@
{
grid.addRow();
- int total = 0;
+ double total = 0;
for ( int i = 1; i <= cols; i++ )
{
- // values
+ // meta column
if ( rs.getMetaData().getColumnType( i ) == Types.VARCHAR )
{
grid.addValue( rs.getObject( i ) );
}
- // meta column
- else
+ // values
+ else if ( rs.getMetaData().getColumnType( i ) == Types.INTEGER )
{
Integer value = rs.getInt( i );
sumRow[i] += value;
grid.addValue( value );
- total += rs.getInt( i );
+ total += value;
+ }
+ else
+ {
+ double value = rs.getDouble( i );
+ sumRow[i] += value;
+ grid.addValue( value );
+ total += value;
}
}
@@ -1847,7 +1862,7 @@
{
int cols = rowSet.getMetaData().getColumnCount();
int rows = 0;
- int total = 0;
+ double total = 0;
Map<Integer, List<Object>> columnValues = new HashMap<Integer, List<Object>>();
int index = 2;
@@ -1868,8 +1883,17 @@
// Total value of the column
if ( rowSet.getMetaData().getColumnType( i ) != Types.VARCHAR )
{
- total += rowSet.getInt( i );
+ // values
+ if ( rowSet.getMetaData().getColumnType( i ) == Types.INTEGER )
+ {
+ total += rowSet.getInt( i );
+ }
+ else
+ {
+ total += rowSet.getDouble( i );
+ }
}
+
}
// Add total value of the column
@@ -1921,7 +1945,7 @@
{
if ( rowSet.getMetaData().getColumnType( j + 2 ) != Types.VARCHAR )
{
- total += (Long) columnValues.get( i ).get( j );
+ total += (Double) columnValues.get( i ).get( j );
}
}
column.add( total );
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js 2013-03-06 15:47:16 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/app/app.js 2013-03-07 04:29:17 +0000
@@ -1203,6 +1203,7 @@
Ext.getCmp('programCombobox').setValue( f.programId );
// Program-Stage
+
TR.store.programStage.removeAll();
TR.store.programStage.add({'id': f.programStageId, 'name': f.programStageName});
@@ -1298,18 +1299,38 @@
}
}
+ TR.util.positionFilter.convert( f.position );
+
Ext.getCmp('completedEventsOpt').setValue(f.useCompletedEvents);
Ext.getCmp('facilityLBCombobox').setValue( f.facilityLB );
Ext.getCmp('limitOption').setValue( f.limitRecords );
- TR.util.positionFilter.convert( f.position );
+ Ext.getCmp('levelCombobox').setValue( f.level );
+ Ext.getCmp('aggregateType').setValue( f.aggregateType );
+
+ if(f.aggregateType=='sum' ){
+ Ext.getCmp('aggregateType').items.items[1].setValue(true);
+ }else if(f.aggregateType=='avg' ){
+ Ext.getCmp('aggregateType').items.items[2].setValue(true);
+ }
+ else{
+ Ext.getCmp('aggregateType').items.items[0].setValue(true);
+ }
+
+ if( TR.store.dataelement.available.data.items.length == 0 )
+ {
+ TR.store.dataelement.available.add(
+ {'value': f.deGroupBy,'name': f.deGroupByName}
+ );
+ }
Ext.getCmp('dataElementGroupByCbx').setValue( f.deGroupBy );
- Ext.getCmp('deSumCbx').setValue( f.deSum );
- Ext.getCmp('aggregateType').setValue( f.aggregateType );
- Ext.getCmp('levelCombobox').setValue( f.level );
-
- TR.store.aggregateDataelement.add(
- {'value': f.deSumId,'name': f.deSumName}
- );
+
+ if( TR.store.aggregateDataelement.data.items.length == 0 )
+ {
+ TR.store.aggregateDataelement.add(
+ {'id': f.deSumId,'name': f.deSumName}
+ );
+ }
+ Ext.getCmp('deSumCbx').setValue( f.deSumId );
// Program stage
var storeProgramStage = TR.store.programStage;
@@ -2293,7 +2314,7 @@
{
var id = deId + '_' + idx;
var filterValue = Ext.getCmp('filter_' + id).getValue();
- if( filterValue == null || filterValue == '' ){
+ if( filterValue == null || ( filterValue == '' && filterValue != 0 )){
isValid = false;
}
}
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm 2013-02-12 15:57:46 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonTabularAggregateReport.vm 2013-03-07 04:29:17 +0000
@@ -90,6 +90,7 @@
"limitRecords": "$!aggregateReport.limitRecords",
"position": "${aggregateReport.position}",
"deGroupBy": #if($!aggregateReport.deGroupBy) "de_$!aggregateReport.deGroupBy.id" #else "" #end,
+ "deGroupByName": #if($!aggregateReport.deGroupBy) "de_$!aggregateReport.deGroupBy.displayName" #else "" #end,
"deSumId": #if($!aggregateReport.deSum) "de_$!aggregateReport.deSum.id" #else "" #end,
"deSumName": #if($!aggregateReport.deSum) "$!encoder.jsonEncode( ${aggregateReport.deSum.displayName})" #else "" #end,
"aggregateType": "${aggregateReport.aggregateType}",