Just use the formatPeriod method. That will also provide the localization. We should NOT use formatDate, we want the name of the period..
2010/4/6, Hieu Dang Duy <[email protected]>: > Reverted reversion to Rev 1738 > > On Tue, Apr 6, 2010 at 5:09 PM, <[email protected]> wrote: > >> ------------------------------------------------------------ >> revno: 1739 >> committer: hieu <[email protected]> >> branch nick: trunk >> timestamp: Tue 2010-04-06 17:05:28 +0700 >> message: >> Fixed bug <Data browser does not use period names> >> - Added new resource bundle key 'format.date.custome' which is used for >> defined the format date in data browser output. >> Fixed bug <Data browser drilldown> >> - Working on process and still have a long discussion with Jason about >> re-solving this one >> modified: >> dhis-2/dhis-api/src/main/java/org/hisp/dhis/i18n/I18nFormat.java >> >> >> dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java >> >> >> dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java >> >> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties >> >> >> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties >> >> >> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties >> >> >> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties >> >> >> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm >> >> >> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/databrowser/SearchAction.java >> >> >> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserResult.vm >> >> >> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/org/hisp/dhis/dd/i18n_module.properties >> >> >> -- >> lp:dhis2 >> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk<https://code.launchpad.net/%7Edhis2-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<https://code.launchpad.net/%7Edhis2-devs-core/dhis2/trunk/+edit-subscription> >> >> === modified file >> 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/i18n/I18nFormat.java' >> --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/i18n/I18nFormat.java >> 2009-03-03 16:46:36 +0000 >> +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/i18n/I18nFormat.java >> 2010-04-06 10:05:28 +0000 >> @@ -51,13 +51,13 @@ >> } >> >> /** >> - * Constructor should only be used for testing purposes. Use >> + * Constructor should only be used for testing purposes. Use >> * I18nManager.getI18nFormat for normal use. >> */ >> public I18nFormat() >> - { >> + { >> } >> - >> + >> // >> ------------------------------------------------------------------------- >> // Init >> // >> ------------------------------------------------------------------------- >> @@ -141,6 +141,16 @@ >> return commonFormatting( date, resourceBundle.getString( >> "format.date" ) ); >> } >> >> + public String formatDateByCustome( Date date ) >> + { >> + if ( date == null ) >> + { >> + return null; >> + } >> + >> + return commonFormatting( date, resourceBundle.getString( >> "format.date.custome" ) ); >> + } >> + >> public String formatTime( Date date ) >> { >> if ( date == null ) >> >> === modified file >> 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java' >> --- >> dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java >> 2009-08-24 13:55:25 +0000 >> +++ >> dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/databrowser/jdbc/StatementManagerDataBrowserStore.java >> 2010-04-06 10:05:28 +0000 >> @@ -15,6 +15,8 @@ >> /** >> * @author joakibj, martinwa, briane, eivinhb >> * @version $Id$ >> + * @modifier Dang Duy Hieu >> + * @since 2010-04-06 >> */ >> public class StatementManagerDataBrowserStore >> implements DataBrowserStore >> @@ -22,7 +24,7 @@ >> // >> ------------------------------------------------------------------------- >> // Dependencies >> // >> ------------------------------------------------------------------------- >> - >> + >> private StatementManager statementManager; >> >> public void setStatementManager( StatementManager statementManager ) >> @@ -33,7 +35,7 @@ >> // >> ------------------------------------------------------------------------- >> // DataBrowserStore implementation >> // >> ------------------------------------------------------------------------- >> - >> + >> public DataBrowserTable getDataSetsBetweenPeriods( List<Integer> >> betweenPeriodIds ) >> { >> StatementHolder holder = statementManager.getHolder(); >> @@ -46,13 +48,13 @@ >> try >> { >> StringBuffer sqlsb = new StringBuffer(); >> - sqlsb.append( "SELECT d.datasetid AS ID, d.name AS DataSet, >> count(*) AS Count " ); >> + sqlsb.append( "(SELECT d.datasetid AS ID, d.name AS DataSet, >> count(*) AS Counts_of_aggregated_values " ); >> sqlsb.append( "FROM datavalue dv " ); >> sqlsb.append( "JOIN datasetmembers dsm ON (dv.dataelementid = >> dsm.dataelementid) " ); >> sqlsb.append( "JOIN dataset d ON (d.datasetid = dsm.datasetid) >> " ); >> sqlsb.append( "WHERE dv.periodid IN " + splitListHelper( >> betweenPeriodIds ) + " " ); >> sqlsb.append( "GROUP BY d.datasetid, d.name " ); >> - sqlsb.append( "ORDER BY Count DESC" ); >> + sqlsb.append( "ORDER BY Counts_of_aggregated_values DESC)" ); >> >> String sql = sqlsb.toString(); >> >> @@ -78,9 +80,9 @@ >> { >> holder.close(); >> } >> - >> + >> return table; >> - } >> + } >> >> public DataBrowserTable getDataElementGroupsBetweenPeriods( >> List<Integer> betweenPeriodIds ) >> { >> @@ -91,13 +93,14 @@ >> try >> { >> StringBuffer sqlsb = new StringBuffer(); >> - sqlsb.append( "SELECT d.dataelementgroupid AS ID, d.name AS >> DataElementGroup, count(*) AS Count " ); >> + sqlsb >> + .append( "(SELECT d.dataelementgroupid AS ID, d.name AS >> DataElementGroup, count(*) AS Counts_of_aggregated_values " ); >> sqlsb.append( "FROM datavalue dv " ); >> - sqlsb >> - .append( "JOIN dataelementgroupmembers degm ON >> (dv.dataelementid = degm.dataelementid) JOIN dataelementgroup d ON >> (d.dataelementgroupid = degm.dataelementgroupid) " ); >> + sqlsb.append( "JOIN dataelementgroupmembers degm ON >> (dv.dataelementid = degm.dataelementid)" ); >> + sqlsb.append( "JOIN dataelementgroup d ON >> (d.dataelementgroupid = degm.dataelementgroupid) " ); >> sqlsb.append( "WHERE dv.periodid IN " + splitListHelper( >> betweenPeriodIds ) + " " ); >> sqlsb.append( "GROUP BY d.dataelementgroupid, d.name " ); >> - sqlsb.append( "ORDER BY Count DESC;" ); >> + sqlsb.append( "ORDER BY Count DESC)" ); >> >> String sql = sqlsb.toString(); >> >> @@ -122,7 +125,7 @@ >> { >> holder.close(); >> } >> - >> + >> return table; >> } >> >> @@ -132,18 +135,18 @@ >> >> DataBrowserTable table = null; >> String sql = ""; >> - >> + >> try >> { >> StringBuffer sqlsb = new StringBuffer(); >> >> - sqlsb.append( "SELECT oug.orgunitgroupid, oug.name, Count(*) >> as ant " ); >> - sqlsb.append( "FROM orgunitgroup oug " ); >> - sqlsb.append( "Join orgunitgroupmembers ougm ON >> oug.orgunitgroupid = ougm.orgunitgroupid " ); >> - sqlsb.append( "Join organisationunit ou ON >> ougm.organisationunitid = ou.organisationunitid " ); >> - sqlsb.append( "Join datavalue dv ON ou.organisationunitid = >> dv.sourceid " ); >> + sqlsb.append( "(SELECT oug.orgunitgroupid, oug.name, Count(*) >> as Counts_of_aggregated_values " ); >> + sqlsb.append( "FROM orgunitgroup oug " ); >> + sqlsb.append( "JOIN orgunitgroupmembers ougm ON >> oug.orgunitgroupid = ougm.orgunitgroupid " ); >> + sqlsb.append( "JOIN organisationunit ou ON >> ougm.organisationunitid = ou.organisationunitid " ); >> + sqlsb.append( "JOIN datavalue dv ON ou.organisationunitid = >> dv.sourceid " ); >> sqlsb.append( "WHERE dv.periodid IN " + splitListHelper( >> betweenPeriodIds ) + " " ); >> - sqlsb.append( "GROUP BY oug.orgunitgroupid, oug.name ORDER BY >> ant desc " ); >> + sqlsb.append( "GROUP BY oug.orgunitgroupid, oug.name ORDER BY >> Counts_of_aggregated_values DESC) " ); >> >> sql = sqlsb.toString(); >> >> @@ -168,7 +171,7 @@ >> { >> holder.close(); >> } >> - >> + >> return table; >> } >> >> @@ -180,13 +183,13 @@ >> try >> { >> StringBuffer sqlsb = new StringBuffer(); >> - sqlsb.append( "SELECT de.dataelementid, de.name AS Name " ); >> + sqlsb.append( "(SELECT de.dataelementid, de.name AS Name " ); >> sqlsb.append( "FROM dataelement de JOIN datavalue dv ON >> (de.dataelementid = dv.dataelementid) " ); >> sqlsb.append( "JOIN datasetmembers dsm ON (de.dataelementid = >> dsm.dataelementid) " ); >> - sqlsb.append( "WHERE dsm.datasetid = " + dataSetId + " AND >> dv.periodid IN " >> - + splitListHelper( betweenPeriods ) + " " ); >> + sqlsb.append( "WHERE dsm.datasetid = '" + dataSetId + "' " ); >> + sqlsb.append( "AND dv.periodid IN " + splitListHelper( >> betweenPeriods ) + " " ); >> sqlsb.append( "GROUP BY de.dataelementid, de.name " ); >> - sqlsb.append( "ORDER BY de.name " ); >> + sqlsb.append( "ORDER BY de.name) " ); >> >> String sql = sqlsb.toString(); >> >> @@ -215,20 +218,20 @@ >> StatementHolder holder = statementManager.getHolder(); >> >> StringBuffer sqlsb = new StringBuffer(); >> - String sql = ""; >> - >> + String sql = ""; >> + >> try >> { >> - sqlsb.append( "SELECT deg.dataelementgroupid, deg.name AS >> DataElementGroup " ); >> + sqlsb.append( "(SELECT deg.dataelementgroupid, deg.name AS >> DataElementGroup " ); >> sqlsb.append( "FROM dataelementgroup deg " ); >> - sqlsb.append( "Join dataelementgroupmembers degm ON >> deg.dataelementgroupid = degm.dataelementgroupid " ); >> - sqlsb.append( "Join datavalue dv ON degm.dataelementid = >> dv.dataelementid " ); >> - sqlsb.append( "Join organisationunit ou ON dv.sourceid = >> ou.organisationunitid " ); >> - sqlsb.append( "Join orgunitgroupmembers ougm ON >> ou.organisationunitid = ougm.organisationunitid " ); >> - sqlsb.append( "WHERE ougm.orgunitgroupid = '" + >> orgUnitGroupId + "' AND dv.periodid IN " >> - + splitListHelper( betweenPeriods ) + " " ); >> + sqlsb.append( "JOIN dataelementgroupmembers degm ON >> deg.dataelementgroupid = degm.dataelementgroupid " ); >> + sqlsb.append( "JOIN datavalue dv ON degm.dataelementid = >> dv.dataelementid " ); >> + sqlsb.append( "JOIN organisationunit ou ON dv.sourceid = >> ou.organisationunitid " ); >> + sqlsb.append( "JOIN orgunitgroupmembers ougm ON >> ou.organisationunitid = ougm.organisationunitid " ); >> + sqlsb.append( "WHERE ougm.orgunitgroupid = '" + >> orgUnitGroupId >> + "' " ); >> + sqlsb.append( "AND dv.periodid IN " + splitListHelper( >> betweenPeriods ) + " " ); >> sqlsb.append( "GROUP BY deg.dataelementgroupid, deg.name " ); >> - sqlsb.append( "ORDER BY deg.name ASC " ); >> + sqlsb.append( "ORDER BY deg.name ASC) " ); >> >> sql = sqlsb.toString(); >> >> @@ -259,13 +262,13 @@ >> try >> { >> StringBuffer sqlsb = new StringBuffer(); >> - sqlsb.append( "SELECT de.dataelementid, de.name AS Name " ); >> + sqlsb.append( "(SELECT de.dataelementid, de.name AS Name " ); >> sqlsb.append( "FROM dataelement de JOIN datavalue dv ON >> (de.dataelementid = dv.dataelementid) " ); >> sqlsb.append( "JOIN dataelementgroupmembers degm ON >> (de.dataelementid = degm.dataelementid) " ); >> - sqlsb.append( "WHERE degm.dataelementgroupid = " + >> dataElementGroupId + " AND dv.periodid IN " >> - + splitListHelper( betweenPeriods ) + " " ); >> + sqlsb.append( "WHERE degm.dataelementgroupid = '" + >> dataElementGroupId + "' " ); >> + sqlsb.append( "AND dv.periodid IN " + splitListHelper( >> betweenPeriods ) + " " ); >> sqlsb.append( "GROUP BY de.dataelementid, de.name " ); >> - sqlsb.append( "ORDER BY de.name " ); >> + sqlsb.append( "ORDER BY de.name) " ); >> >> String sql = sqlsb.toString(); >> >> @@ -289,6 +292,7 @@ >> } >> } >> >> + // THE PROBLEM IS HERE >>> STILL WORKING >> public void setStructureForOrgUnitBetweenPeriods( DataBrowserTable >> table, Integer orgUnitParent, >> List<Integer> betweenPeriods ) >> { >> @@ -297,9 +301,13 @@ >> try >> { >> StringBuffer sqlsb = new StringBuffer(); >> - sqlsb.append( "SELECT o.organisationunitid, o.name AS >> OrganisationUnit " ); >> + sqlsb.append( "(SELECT o.organisationunitid, o.name AS >> OrganisationUnit " ); >> sqlsb.append( "FROM organisationunit o " ); >> - sqlsb.append( "WHERE o.parentid = " + orgUnitParent + "" ); >> + sqlsb.append( "JOIN datavalue as dv ON (o.organisationunitid >> = >> dv.sourceid) " ); >> + sqlsb.append( "WHERE o.parentid = '" + orgUnitParent + "' " >> ); >> + sqlsb.append( "AND dv.periodid IN " + splitListHelper( >> betweenPeriods ) + " " ); >> + sqlsb.append( "GROUP BY o.organisationunitid, o.name " ); >> + sqlsb.append( "ORDER BY o.name)" ); >> >> String sql = sqlsb.toString(); >> >> @@ -324,21 +332,26 @@ >> } >> } >> >> - public void setDataElementStructureForOrgUnitBetweenPeriods( >> DataBrowserTable table, Integer orgUnitId, List<Integer> betweenPeriods) >> + public void setDataElementStructureForOrgUnitBetweenPeriods( >> DataBrowserTable table, Integer orgUnitId, >> + List<Integer> betweenPeriods ) >> { >> + // Please do not delete this testing ... >> + System.out.println( "\n\n\n TESTING IN >> [setDataElementStructureForOrgUnitBetweenPeriods] :: " ); >> + >> StatementHolder holder = statementManager.getHolder(); >> - >> + >> try >> { >> StringBuffer sqlsb = new StringBuffer(); >> - sqlsb.append( "SELECT de.dataelementid, de.name AS >> DataElementGroup " ); >> + sqlsb.append( "(SELECT de.dataelementid, de.name AS >> DataElement " ); >> sqlsb.append( "FROM dataelement AS de " ); >> - sqlsb.append( "Inner Join datavalue AS dv ON >> (de.dataelementid >> = dv.dataelementid) " ); >> - sqlsb.append( "Inner Join datasetmembers AS dsm ON >> (de.dataelementid = dsm.dataelementid) " ); >> - sqlsb.append( "Inner Join organisationunit ON dv.sourceid = >> organisationunit.organisationunitid " ); >> - sqlsb.append( "WHERE organisationunit.organisationunitid = " >> + >> orgUnitId + " " ); >> + sqlsb.append( "INNER JOIN datavalue AS dv ON >> (de.dataelementid >> = dv.dataelementid) " ); >> + sqlsb.append( "INNER JOIN datasetmembers AS dsm ON >> (de.dataelementid = dsm.dataelementid) " ); >> + sqlsb.append( "INNER JOIN organisationunit AS o ON >> (dv.sourceid = o.organisationunitid) " ); >> + sqlsb.append( "WHERE o.organisationunitid = '" + orgUnitId + >> "' " ); >> + sqlsb.append( "AND dv.periodid IN " + splitListHelper( >> betweenPeriods ) + " " ); >> sqlsb.append( "GROUP BY de.dataelementid, de.name " ); >> - sqlsb.append( "ORDER BY de.name " ); >> + sqlsb.append( "ORDER BY de.name) " ); >> >> String sql = sqlsb.toString(); >> >> @@ -348,8 +361,12 @@ >> TimeUtils.stop(); >> >> table.incrementQueryCount(); >> - table.addColumnName("DataElement"); >> + table.addColumnName( "DataElement" ); >> table.createStructure( resultSet ); >> + >> + // TEST TABLE >> + // Please do not delete this testing ... >> + System.out.println( "\nTABLE For OrgUnit option:= " + table >> ); >> } >> catch ( SQLException e ) >> { >> @@ -360,11 +377,12 @@ >> holder.close(); >> } >> } >> - >> - public Integer setCountDataElementsForDataSetBetweenPeriods( >> DataBrowserTable table, Integer dataSetId, List<Integer> betweenPeriodIds) >> + >> + public Integer setCountDataElementsForDataSetBetweenPeriods( >> DataBrowserTable table, Integer dataSetId, >> + List<Integer> betweenPeriodIds ) >> { >> StatementHolder holder = statementManager.getHolder(); >> - >> + >> // Here we uses a for loop to create one big sql statement using >> UNION. >> // This is done because the count and GROUP BY parts of this query >> can't >> // be done in another way. The alternative to this method is to >> actually >> @@ -375,23 +393,24 @@ >> StringBuffer sqlsb = new StringBuffer(); >> >> int i = 0; >> - for ( Integer periodid : betweenPeriodIds ) >> + for ( Integer periodId : betweenPeriodIds ) >> { >> i++; >> >> - sqlsb.append( "(SELECT de.dataelementid, de.name AS >> DataElement, count(*) AS Count, p.periodid AS PeriodId, p.startDate AS >> ColumnHeader " ); >> + sqlsb >> + .append( "(SELECT de.dataelementid, de.name AS >> DataElement, Count(dv.value) AS Counts_of_aggregated_values, p.periodid AS >> PeriodId, p.startDate AS ColumnHeader " ); >> sqlsb.append( "FROM dataelement de JOIN datavalue dv ON >> (de.dataelementid = dv.dataelementid) " ); >> sqlsb.append( "JOIN datasetmembers dsm ON (de.dataelementid = >> dsm.dataelementid) " ); >> sqlsb.append( "JOIN period p ON (dv.periodid = p.periodid) " >> ); >> - sqlsb.append( "WHERE dsm.datasetid = " + dataSetId + " AND >> dv.periodid = " + periodid + " " ); >> - sqlsb.append( "GROUP BY de.dataelementid, de.name, >> p.periodid, p.startDate )" ); >> + sqlsb.append( "WHERE dsm.datasetid = '" + dataSetId + "' AND >> dv.periodid = '" + periodId + "' " ); >> + sqlsb.append( "GROUP BY de.dataelementid, de.name, >> p.periodid, p.startDate)" ); >> >> if ( i == betweenPeriodIds.size() ) >> - sqlsb.append( "ORDER BY PeriodId "); >> + sqlsb.append( "ORDER BY PeriodId " ); >> else >> - sqlsb.append( " UNION "); >> + sqlsb.append( " UNION " ); >> } >> - >> + >> try >> { >> TimeUtils.start(); >> @@ -401,7 +420,7 @@ >> >> table.incrementQueryCount(); >> >> - numResults = table.addColumnToAllRows( resultSet ); >> + numResults = table.addColumnToAllRows( resultSet ); >> } >> catch ( SQLException e ) >> { >> @@ -427,16 +446,16 @@ >> for ( Integer periodid : betweenPeriodIds ) >> { >> i++; >> - >> + >> sqlsb >> - .append( "(SELECT de.dataelementid, de.name AS >> DataElement, count(*) AS Count, p.periodid AS PeriodId, p.startDate AS >> ColumnHeader " ); >> + .append( "(SELECT de.dataelementid, de.name AS >> DataElement, count(dv.value) AS Counts_of_aggregated_values, p.periodid AS >> PeriodId, p.startDate AS ColumnHeader " ); >> sqlsb.append( "FROM dataelement de JOIN datavalue dv ON >> (de.dataelementid = dv.dataelementid) " ); >> sqlsb.append( "JOIN dataelementgroupmembers degm ON >> (de.dataelementid = degm.dataelementid) " ); >> sqlsb.append( "JOIN period p ON (dv.periodid = p.periodid) " >> ); >> - sqlsb.append( "WHERE degm.dataelementgroupid = " + >> dataElementGroupId + " AND dv.periodid = " + periodid >> - + " " ); >> + sqlsb.append( "WHERE degm.dataelementgroupid = '" + >> dataElementGroupId + "' " ); >> + sqlsb.append( "AND dv.periodid = '" + periodid + "' " ); >> sqlsb.append( "GROUP BY de.dataelementid, de.name, p.periodid, >> p.startDate) " ); >> - >> + >> if ( i == betweenPeriodIds.size() ) >> sqlsb.append( "ORDER BY PeriodId " ); >> else >> @@ -465,7 +484,7 @@ >> >> return numResults; >> } >> - >> + >> public Integer setCountDataElementGroupsForOrgUnitGroupBetweenPeriods( >> DataBrowserTable table, >> Integer orgUnitGroupId, List<Integer> betweenPeriodIds ) >> { >> @@ -473,21 +492,21 @@ >> >> Integer numResults = 0; >> StringBuffer sqlsb = new StringBuffer(); >> - >> + >> int i = 0; >> for ( Integer periodid : betweenPeriodIds ) >> { >> i++; >> >> sqlsb >> - .append( " (SELECT deg.dataelementgroupid, deg.name, >> Count(*) AS Count, p.periodid AS PeriodId, p.startdate AS ColumnHeader " >> ); >> + .append( " (SELECT deg.dataelementgroupid, deg.name, >> Count(dv.value) AS Counts_of_aggregated_values, p.periodid AS PeriodId, >> p.startdate AS ColumnHeader " ); >> sqlsb.append( "FROM dataelementgroup AS deg " ); >> sqlsb >> - .append( "Inner Join dataelementgroupmembers AS degm ON >> deg.dataelementgroupid = degm.dataelementgroupid " ); >> - sqlsb.append( "Inner Join datavalue AS dv ON >> degm.dataelementid = dv.dataelementid " ); >> - sqlsb.append( "Inner Join period AS p ON dv.periodid = >> p.periodid " ); >> - sqlsb.append( "Inner Join organisationunit AS ou ON >> dv.sourceid = ou.organisationunitid " ); >> - sqlsb.append( "Inner Join orgunitgroupmembers AS ougm ON >> ou.organisationunitid = ougm.organisationunitid " ); >> + .append( "INNER JOIN dataelementgroupmembers AS degm ON >> deg.dataelementgroupid = degm.dataelementgroupid " ); >> + sqlsb.append( "INNER JOIN datavalue AS dv ON >> degm.dataelementid = dv.dataelementid " ); >> + sqlsb.append( "INNER JOIN period AS p ON dv.periodid = >> p.periodid " ); >> + sqlsb.append( "INNER JOIN organisationunit AS ou ON >> dv.sourceid = ou.organisationunitid " ); >> + sqlsb.append( "INNER JOIN orgunitgroupmembers AS ougm ON >> ou.organisationunitid = ougm.organisationunitid " ); >> sqlsb >> .append( "WHERE p.periodid = '" + periodid + "' AND >> ougm.orgunitgroupid = '" + orgUnitGroupId + "' " ); >> sqlsb.append( "GROUP BY >> deg.dataelementgroupid,deg.name,p.periodid,p.startdate) >> " ); >> @@ -534,14 +553,14 @@ >> for ( Integer periodid : betweenPeriodIds ) >> { >> i++; >> - >> + >> sqlsb >> - .append( "(SELECT o.organisationunitid, o.name AS >> OrganisationUnit, count(*) AS Count, p.periodid AS PeriodId, p.startDate >> AS >> ColumnHeader " ); >> + .append( "(SELECT o.organisationunitid, o.name AS >> OrganisationUnit, Count(dv.value) AS Counts_of_aggregated_values, >> p.periodid >> AS PeriodId, p.startDate AS ColumnHeader " ); >> sqlsb.append( "FROM organisationunit o JOIN datavalue dv ON >> (o.organisationunitid = dv.sourceid) " ); >> sqlsb.append( "JOIN period p ON (dv.periodid = p.periodid) " >> ); >> - sqlsb.append( "WHERE o.parentid = " + orgUnitParent + " AND >> dv.periodid = " + periodid + " " ); >> - sqlsb.append( "GROUP BY o.organisationunitid, o.name, >> p.periodid, p.startDate ) " ); >> - >> + sqlsb.append( "WHERE o.parentid = '" + orgUnitParent + "' AND >> dv.periodid = '" + periodid + "' " ); >> + sqlsb.append( "GROUP BY o.organisationunitid, o.name, >> p.periodid, p.startDate) " ); >> + >> if ( i == betweenPeriodIds.size() ) >> sqlsb.append( "ORDER BY PeriodId " ); >> else >> @@ -570,32 +589,35 @@ >> } >> >> return numResults; >> - } >> + } >> >> public Integer setCountDataElementsForOrgUnitBetweenPeriods( >> DataBrowserTable table, Integer orgUnitId, >> List<Integer> betweenPeriodIds ) >> { >> + // Please do not delete this testing ... >> + System.out.println( "\n\n\n TESTING IN >> [setCountDataElementsForOrgUnitBetweenPeriods] :: " ); >> + >> StatementHolder holder = statementManager.getHolder(); >> >> Integer numResults = 0; >> StringBuffer sqlsb = new StringBuffer(); >> >> int i = 0; >> - for ( Integer periodid : betweenPeriodIds ) >> + for ( Integer periodId : betweenPeriodIds ) >> { >> i++; >> - >> + >> sqlsb >> - .append( "(SELECT de.dataelementid, de.name AS >> DataElementGroup, count(*) AS Count, p.periodid AS PeriodId, p.startDate >> AS >> ColumnHeader " ); >> + .append( "(SELECT de.dataelementid, de.name AS >> DataElementGroup, Count(dv.value) AS Counts_of_aggregated_values, >> p.periodid >> AS PeriodId, p.startDate AS ColumnHeader " ); >> sqlsb.append( "FROM dataelement AS de " ); >> - sqlsb.append( "Inner Join datavalue AS dv ON >> (de.dataelementid >> = dv.dataelementid) " ); >> - sqlsb.append( "Inner Join datasetmembers AS dsm ON >> (de.dataelementid = dsm.dataelementid) " ); >> - sqlsb.append( "Inner Join organisationunit ON dv.sourceid = >> organisationunit.organisationunitid " ); >> + sqlsb.append( "INNER JOIN datavalue AS dv ON >> (de.dataelementid >> = dv.dataelementid) " ); >> + sqlsb.append( "INNER JOIN datasetmembers AS dsm ON >> (de.dataelementid = dsm.dataelementid) " ); >> + sqlsb.append( "INNER JOIN organisationunit As o ON >> (dv.sourceid = o.organisationunitid) " ); >> sqlsb.append( "JOIN period p ON (dv.periodid = p.periodid) " >> ); >> - sqlsb.append( "WHERE organisationunit.organisationunitid = " >> + >> orgUnitId + " AND " ); >> - sqlsb.append( "dv.periodid = " + periodid + " " ); >> - sqlsb.append( "GROUP BY de.dataelementid, de.name, >> p.periodid, p.startDate ) " ); >> - >> + sqlsb.append( "WHERE o.organisationunitid = '" + orgUnitId + >> "' " ); >> + sqlsb.append( "AND dv.periodid = '" + periodId + "' " ); >> + sqlsb.append( "GROUP BY de.dataelementid, de.name, >> p.periodid, p.startDate)" ); >> + >> if ( i == betweenPeriodIds.size() ) >> sqlsb.append( "ORDER BY PeriodId " ); >> else >> @@ -623,18 +645,18 @@ >> } >> >> return numResults; >> - } >> - >> + } >> + >> // >> ------------------------------------------------------------------------- >> // Supportive methods >> // >> ------------------------------------------------------------------------- >> >> /** >> - * Splits a list of integers by by comma. Use this method if you have >> a >> - * list that will be used in f.ins. a WHERE xxx IN (list) clause in >> SQL. >> + * Splits a list of integers by by comma. Use this method if you have >> a list >> + * that will be used in f.ins. a WHERE xxx IN (list) clause in SQL. >> * >> - * @param List<Integer> list of Integers >> - * @return the list as a string splitted by a comma. >> + * @param List<Integer> list of Integers >> + * @return the list as a string splitted by a comma. >> */ >> private String splitListHelper( List<Integer> list ) >> { >> >> === modified file >> 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java' >> --- >> dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java >> 2010-02-08 10:56:08 +0000 >> +++ >> dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java >> 2010-04-06 10:05:28 +0000 >> @@ -33,6 +33,7 @@ >> import java.util.Date; >> >> import org.apache.commons.validator.DateValidator; >> +import org.hisp.dhis.i18n.I18nFormat; >> import org.joda.time.DateTime; >> import org.joda.time.Days; >> >> @@ -351,6 +352,35 @@ >> } >> >> /** >> + * This method converts a string from the date format "yyyy-MM-dd" to >> + * "MMM-yy" of any format which belongs to each locale. >> + * >> + * @param date is the string to be converted. >> + * @return converted string if the date is valid, else the original >> string >> + * is returned >> + */ >> + public static String convertDate( String dateString, I18nFormat >> i18nFormat ) >> + { >> + if ( !dateIsValid( dateString ) ) >> + { >> + return dateString; >> + } >> + >> + SimpleDateFormat dateFormat = new SimpleDateFormat( >> DEFAULT_DATE_FORMAT ); >> + >> + try >> + { >> + Date date = dateFormat.parse( dateString ); >> + >> + return i18nFormat.formatDateByCustome( date ); >> + } >> + catch ( ParseException pe ) >> + { >> + throw new RuntimeException( "Date string could not be parsed: >> " + dateString ); >> + } >> + } >> + >> + /** >> * This method adds days to a date >> * >> * @param date the date. >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties' >> --- >> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties >> 2010-04-01 09:31:33 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties >> 2010-04-06 10:05:28 +0000 >> @@ -1,13 +1,14 @@ >> >> #-- Date Formats >> --------------------------------------------------------------# >> >> -format.date = yyyy-MM-dd >> -format.date.label = yyyy-mm-dd >> -format.time = HH:mm >> -format.time.label = hh:mm >> -format.datetime = yyyy-MM-dd HH:mm >> -format.datetime.label = yyyy-mm-dd hh:mm >> -format.date.label.jquery = yy-mm-dd >> +format.date = yyyy-MM-dd >> +format.date.label = yyyy-mm-dd >> +format.date.custome = MMM-yy >> +format.time = HH:mm >> +format.time.label = hh:mm >> +format.datetime = yyyy-MM-dd HH:mm >> +format.datetime.label = yyyy-mm-dd hh:mm >> +format.date.label.jquery = yy-mm-dd >> >> #-- dhis-wp >> -------------------------------------------------------------------# >> >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties' >> --- >> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties >> 2010-04-01 09:31:33 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties >> 2010-04-06 10:05:28 +0000 >> @@ -2,6 +2,7 @@ >> >> format.date = dd-MM-yyyy >> format.date.label = dd-mm-yyyy >> +format.date.custome = MMM-yy >> format.time = HH:mm >> format.time.label = hh:mm >> format.datetime = dd-MM-yyyy HH:mm >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties' >> --- >> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties >> 2010-03-25 08:15:35 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties >> 2010-04-06 10:05:28 +0000 >> @@ -200,7 +200,6 @@ >> use_only_letters_numbers_dot_only = Please enter Letters, Numbers for >> file's name and Dot for extension only >> cell_exist = Exist one cell same >> sheet, row and column with this. >> update_successful = Updating is success ! >> -cell_exist = Exist one cell same >> sheet, row and column with this. >> download = Download >> upload_file_null = Upload file null >> file_type_not_supported = File type not supported >> @@ -217,4 +216,4 @@ >> translation_translate = Translate >> template_using = File is using >> template_pending = File is pending >> -expression_not_well_formed = Expression is not well formed >> \ No newline at end of file >> +expression_not_well_formed = Expression is not well-formed >> \ No newline at end of file >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties' >> --- >> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties >> 2010-03-24 02:56:06 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties >> 2010-04-06 10:05:28 +0000 >> @@ -202,12 +202,13 @@ >> cell_exist = \u0110\u00e3 t\u1ed3n >> t\u1ea1i m\u1ed9t excel item c\u00f3 c\u00f9ng d\u00f2ng, c\u1ed9t v\u00e0 >> sheet. >> update_successful = C\u1eadp nh\u1eadt th\u00e0nh c\u00f4ng ! >> download = T\u1ea3i v\u1ec1 >> -override_confirm = File template n\u00e0y >> \u0111\u00e3 t\u1ed3n t\u1ea1i. B\u1ea1n c\u00f3 mu\u1ed1n ghi >> \u0111\u00e8 >> hay ko ? >> -template_using = \u0110ANG s\u1eed d\u1ee5ng >> t\u1eadp tin n\u00e0y >> -template_pending = CH\u01afA s\u1eed d\u1ee5ng t\u1eadp tin >> n\u00e0y >> +override_confirm = B\u1ea1n c\u00f3 mu\u1ed1n ghi >> \u0111\u00e8 t\u1eadp tin m\u1eabu n\u00e0y kh\u00f4ng? >> +template_using = \u0110ANG s\u1eed d\u1ee5ng >> +template_pending = CH\u01afA s\u1eed d\u1ee5ng >> intro_configuration = Thi\u1ebft l\u1eadp \u0111\u01b0\u1eddng >> d\u1eabn ch\u1ec9 t\u1edbi thu m\u1ee5c l\u01b0u tr\u1eef c\u00e1c >> t\u1eadp >> tin excel m\u1eabu. V\u00ed d\u1ee5: C:\\ABC >> intro_reports = T\u1ea1o m\u1edbi, c\u1eadp nh\u1eadt, xem >> v\u00e0 x\u00f3a c\u00e1c B\u00e1o c\u00e1o excel. M\u1ed9t b\u00e1o >> c\u00e1o excel ch\u1ee9a nhi\u1ec1u ph\u1ea7n t\u1eed excel. B\u00e1o >> c\u00e1o excel c\u00f3 th\u1ec3 thu\u1ed9c nhi\u1ec1u lo\u1ea1i b\u00e1o >> c\u00e1o kh\u00e1c nhau. Cho ph\u00e9p g\u00e1n b\u00e1o c\u00e1o excel >> cho >> m\u1ed9t hay nhi\u1ec1u \u0111\u01a1n v\u1ecb ho\u1eb7c nh\u00f3m >> \u0111\u01a1n v\u1ecb v\u00e0 m\u1ed9t s\u1ed1 t\u00f9y ch\u1ecdn >> kh\u00e1c. >> intro_data_status = Ch\u1ee9c n\u0103ng n\u00e0y d\u00f9ng >> \u0111\u1ec3 xem tr\u1ea1ng th\u00e1i nh\u1eadp d\u1eef li\u1ec7u (D\u1eef >> li\u1ec7u \u0111\u01b0\u1ee3c nh\u1eadp xong hay ch\u01b0a ho\u1eb7c >> s\u1ed1 >> li\u1ec7u n\u00e0o c\u00f2n thi\u1ebfu v.v...). >> intro_clean_up = Ch\u1ee9c n\u0103ng n\u00e0y cho ph\u00e9p >> ng\u01b0\u1eddi d\u00f9ng x\u00f3a c\u00e1c t\u1eadp tin t\u1ea1m sinh ra >> trong qu\u00e1 tr\u00ecnh sinh b\u00e1o c\u00e1o ho\u1eb7c xem >> tr\u01b0\u1edbc b\u00e1o c\u00e1o. >> intro_excel_item = T\u1ea1o m\u1edbi, c\u1eadp nh\u1eadt, xem >> v\u00e0o x\u00f3a c\u00e1c ph\u1ea7n t\u1eed excel cho qu\u00e1 tr\u00ecnh >> import d\u1eef li\u1ec7u t\u1eeb t\u1eadp tin excel. Ph\u1ea7n t\u1eed >> excel >> n\u00e0y c\u00f3 ch\u1ee9c n\u0103ng g\u1ea7n gi\u1ed1ng v\u1edbi >> ph\u1ea7n >> t\u1eed excel trong m\u1ed9t b\u00e1o c\u00e1o excel. >> -intro_excel_template_management = T\u1ea3i ,\u0111\u1ed5i t\u00ean, >> t\u00ecm ki\u1ebfm, t\u1ea3i v\u1ec1 v\u00e0 x\u00f3a c\u00e1c t\u1eadp >> tin >> c\u00f3 \u0111u\u00f4i m\u1edf r\u1ed9ng .xls ho\u1eb7c .xlsx. >> Ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 nh\u1eadn bi\u1ebft t\u1eadp >> tin >> n\u00e0o \u0111ang \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng v\u00e0 t\u1eadp >> tin n\u00e0o ch\u01b0a d\u00f9ng \u0111\u1ebfn. Cho ph\u00e9p t\u1ef1 >> \u0111\u1ed9ng c\u1eadp nh\u1eadt l\u1ea1i h\u1ec7 th\u1ed1ng b\u00e1o >> c\u00e1o excel khi t\u00ean t\u1eadp tin \u0111ang s\u1eed d\u1ee5ng thay >> \u0111\u1ed5i. >> \ No newline at end of file >> +intro_excel_template_management = T\u1ea3i ,\u0111\u1ed5i t\u00ean, >> t\u00ecm ki\u1ebfm, t\u1ea3i v\u1ec1 v\u00e0 x\u00f3a c\u00e1c t\u1eadp >> tin >> c\u00f3 \u0111u\u00f4i m\u1edf r\u1ed9ng .xls ho\u1eb7c .xlsx. >> Ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 nh\u1eadn bi\u1ebft t\u1eadp >> tin >> n\u00e0o \u0111ang \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng v\u00e0 t\u1eadp >> tin n\u00e0o ch\u01b0a d\u00f9ng \u0111\u1ebfn. Cho ph\u00e9p t\u1ef1 >> \u0111\u1ed9ng c\u1eadp nh\u1eadt l\u1ea1i h\u1ec7 th\u1ed1ng b\u00e1o >> c\u00e1o excel khi t\u00ean t\u1eadp tin \u0111ang s\u1eed d\u1ee5ng thay >> \u0111\u1ed5i. >> +expression_not_well_formed = Bi\u1ec3u th\u1ee9c kh\u00f4ng >> \u0111\u00fang/ch\u01b0a h\u1ee3p l\u1ec7 >> \ No newline at end of file >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm' >> --- >> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm >> 2010-03-10 10:28:44 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm >> 2010-04-06 10:05:28 +0000 >> @@ -45,11 +45,12 @@ >> #end >> </td> >> <td align="left"> >> + <a href="javascript:mode = 'edit'; >> openEditExcelTemplate( '$templateFileName' );" title="$i18n.getString( >> 'edit' )"><img src="../images/edit.png" alt="$i18n.getString( 'edit' >> )"></a> >> + <a >> href="downloadExcelTemplate.action?fileName=$templateFileName" >> title="$i18n.getString( 'download' )"><img src="images/download.png" >> alt="$i18n.getString( 'download' )"></a> >> #if( $encoder.htmlEncode( $value ) == >> 'false' ) >> <a >> href="javascript:deleteExcelTemplate('$templateFileName');" >> title="$i18n.getString( 'remove' )"><img src="../images/delete.png" >> alt="$i18n.getString( 'remove' )"></a> >> #end >> - <a href="javascript:mode = 'edit'; >> openEditExcelTemplate( '$templateFileName' );" title="$i18n.getString( >> 'edit' )"><img src="../images/edit.png" alt="$i18n.getString( 'edit' >> )"></a> >> - <a >> href="downloadExcelTemplate.action?fileName=$templateFileName" >> title="$i18n.getString( 'download' )"><img src="images/download.png" >> alt="$i18n.getString( 'download' )"></a> >> + >> </td> >> </tr> >> #end >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/databrowser/SearchAction.java' >> --- >> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/databrowser/SearchAction.java >> 2010-04-03 09:35:43 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/databrowser/SearchAction.java >> 2010-04-06 10:05:28 +0000 >> @@ -52,6 +52,7 @@ >> import org.hisp.dhis.period.Period; >> import org.hisp.dhis.period.PeriodService; >> import org.hisp.dhis.period.PeriodType; >> +import org.hisp.dhis.period.comparator.AscendingPeriodComparator; >> import org.hisp.dhis.system.util.DateUtils; >> import org.hisp.dhis.util.SessionUtils; >> >> @@ -62,6 +63,8 @@ >> /** >> * @author espenjac, joakibj, briane, eivinhb >> * @version $Id$ >> + * @modifier Dang Duy Hieu >> + * @since 2010-04-06 >> */ >> public class SearchAction >> implements Action >> @@ -78,7 +81,7 @@ >> >> private static final String KEY_DATABROWSERTABLE = >> "dataBrowserTableResults"; >> >> - private static final String HYPHEN = " - "; >> + private static final String DASH = " - "; >> >> // >> ------------------------------------------------------------------------- >> // Dependencies >> @@ -462,7 +465,6 @@ >> } >> else >> { >> - >> dataBrowserTable = >> dataBrowserService.getDataElementGroupsInPeriod( fromDate, toDate, >> periodType ); >> } >> } >> @@ -503,7 +505,8 @@ >> // Set DataBrowserTable variable for PDF export >> setExportPDFVariables(); >> >> - // Get format standard for periods which appropriate with from >> date, to date and period type >> + // Get format standard for periods which appropriate with from >> date, to >> + // date and period type >> fromToDate = getFromToDateFormat( periodType, fromDate, toDate ); >> >> if ( fromToDate == null ) >> @@ -577,7 +580,8 @@ >> >> for ( MetaValue col : allColumnsConverted ) >> { >> - col.setName( DateUtils.convertDate( col.getName() ) ); >> + //col.setName( DateUtils.convertDate( col.getName() ) ); >> + col.setName( DateUtils.convertDate( col.getName(), format ) >> ); >> } >> } >> >> @@ -605,6 +609,9 @@ >> List<Period> periods = new ArrayList<Period>( >> periodService.getPeriodsBetweenDates( periodType, date1, >> date2 ) ); >> >> + // Please do not delete this testing ... >> + System.out.println( "\n\nFIRST Periods:: " + periods ); >> + >> if ( periods.isEmpty() ) >> { >> CalendarPeriodType calendarPeriodType = >> (CalendarPeriodType) periodType; >> @@ -613,6 +620,11 @@ >> periods.add( calendarPeriodType.createPeriod( date2 ) ); >> } >> >> + Collections.sort( periods, new AscendingPeriodComparator() ); >> + >> + // Please do not delete this testing ... >> + System.out.println( "\n\nTHEN Periods:: " + periods ); >> + >> return periods; >> } >> catch ( ParseException e ) >> @@ -630,10 +642,10 @@ >> for ( Period period : periods ) >> { >> String sTemp = format.formatPeriod( period ); >> - >> + >> if ( !stringFormatDate.contains( sTemp ) ) >> { >> - stringFormatDate += HYPHEN + sTemp; >> + stringFormatDate += DASH + sTemp; >> } >> } >> >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserResult.vm' >> --- >> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserResult.vm >> 2010-03-17 06:07:42 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserResult.vm >> 2010-04-06 10:05:28 +0000 >> @@ -119,6 +119,7 @@ >> <strong>$i18n.getString( "period_type" ):</strong> >> $periodTypeId >> #elseif ( $fromToDate != "" ) >> <strong>$i18n.getString( "from_date" ):</strong> $fromToDate >> + <br/> >> <strong>$i18n.getString( "period_type" ):</strong> >> $periodTypeId >> #else >> <strong>$i18n.getString( "from_date" ):</strong> $fromDate >> >> === modified file >> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/org/hisp/dhis/dd/i18n_module.properties' >> --- >> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/org/hisp/dhis/dd/i18n_module.properties >> 2010-03-30 04:36:31 +0000 >> +++ >> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/org/hisp/dhis/dd/i18n_module.properties >> 2010-04-06 10:05:28 +0000 >> @@ -303,7 +303,7 @@ >> select_indicator >> = Please select indicator >> annualized >> = Annualized >> could_not_save >> = Could not save >> -object_not_deleted_associated_by_objects = Object not >> deleted becuause it is associated by objects of type >> +object_not_deleted_associated_by_objects = Object not >> deleted because it is associated by objects of type >> hide_warning >> = Hide warning >> please_enter_name >> = Please enter name ! >> group_ready_exist >> = Group ready exist >> >> >> _______________________________________________ >> Mailing list: >> https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs> >> Post to : [email protected] >> Unsubscribe : >> https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs> >> More help : https://help.launchpad.net/ListHelp >> >> > > > -- > Hieu.HISPVietnam > Good Health ! > -- Sendt fra min mobile enhet _______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : [email protected] Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp

