Home » Archived » BIRT » Manually add rows to dataset
Manually add rows to dataset [message #242709] |
Thu, 14 June 2007 09:50  |
Eclipse User |
|
|
|
Originally posted by: rg.openadvice.de
Hi!
I have the following dataset:
date | severity | count
02/2007 | 0 | 45
02/2007 | 1 | 56
03/2007 | 0 | 42
03/2007 | 1 | 12
03/2007 | 2 | 32
I would like to complete the dataset in the following way:
date | severity | count
02/2007 | 0 | 45
02/2007 | 1 | 56
02/2007 | 2 | 0
02/2007 | 3 | 0
03/2007 | 0 | 42
03/2007 | 1 | 12
03/2007 | 2 | 32
03/2007 | 3 | 0
Is it possible to add these rows to the dataset after getting the data
from the database?
I've tried using joins on the database, but it seems that you cannot join
group-wise.
Thanks!
|
|
| | | | | | | |
Re: Manually add rows to dataset [message #243250 is a reply to message #243245] |
Tue, 19 June 2007 06:05   |
Eclipse User |
|
|
|
Originally posted by: rg.openadvice.de
JAVA-class GroupedSeverityRow (represents a single row in my final table):
package org.openadvice.report.data;
public class GroupedSeverityRow {
String date;
int severity;
int countSeverity;
public GroupedSeverityRow(String date, int severity, int countSeverity){
this.date = date;
this.severity = severity;
this.countSeverity = countSeverity;
}
public String getDate() {
return this.date;
}
public int getSeverity() {
return this.severity;
}
public int getCountSeverity() {
return this.countSeverity;
}
public void setDate(String date) {
this.date = date;
}
public void setSeverity(int severity) {
this.severity = severity;
}
public void setCountSeverity(int countSeverity) {
this.countSeverity = countSeverity;
}
}
JAVA-class GetGroupedSeverity (does the desired group-wise extension of my
data table):
package org.openadvice.report.data;
import java.sql.ResultSet;
import java.util.Vector;
public class GetGroupedSeverity {
private JDBCConnector jdbcConnector;
public GetGroupedSeverity(String driver, String url, String username,
String password) {
jdbcConnector = new JDBCConnector(driver, url, username, password);
}
public Vector<GroupedSeverityRow> getSeverityGroups() throws Exception{
jdbcConnector.openConnection();
ResultSet rs = jdbcConnector.executeSQL("select to_char(lastoccurrence,
'MM/YYYY'), severity, count(severity) " +
"from Reporter.Reporter_status " +
"group by to_char(lastoccurrence, 'MM/YYYY'), severity " +
"order by to_char(lastoccurrence, 'MM/YYYY'), severity
asc");
String row_currentDate = "";
String remDate = "";
int sevCounter = 0;
int row_severity;
int row_countSeverity;
GroupedSeverityRow gsr;
Vector<GroupedSeverityRow> resultDataset = new
Vector<GroupedSeverityRow>();
while (rs.next()){
row_currentDate = rs.getString(1);
if (rs.isFirst()) remDate = row_currentDate;
if (!remDate.equals(row_currentDate)) {
while (sevCounter < 6) {
gsr = new GroupedSeverityRow(remDate, sevCounter, 0);
resultDataset.add(gsr);
sevCounter++;
}
remDate = row_currentDate;
sevCounter = 0;
}
row_severity = Integer.parseInt(rs.getString(2));
row_countSeverity = Integer.parseInt(rs.getString(3));
while (row_severity > sevCounter) {
gsr = new GroupedSeverityRow(row_currentDate, sevCounter, 0);
resultDataset.add(gsr);
sevCounter++;
}
gsr = new GroupedSeverityRow(row_currentDate, row_severity,
row_countSeverity);
resultDataset.add(gsr);
sevCounter++;
}
while (sevCounter < 6) {
gsr = new GroupedSeverityRow(remDate, sevCounter, 0);
resultDataset.add(gsr);
sevCounter++;
}
//showResultset(resultDataset);
jdbcConnector.closeConnection();
return(resultDataset);
}
private String extendString(String s) {
if(s == null) s = "";
String sFillStrWithWantLen = " ";
int iWantLen = sFillStrWithWantLen.length();
int iActLen = s.length();
if( iActLen < iWantLen )
return (s + sFillStrWithWantLen).substring( 0, iWantLen );
if( iActLen > 2 * iWantLen )
return s.substring( 0, 2 * iWantLen );
return s;
}
private String extendInt(int i) {
String s = String.valueOf(i);
String sFillStrWithWantLen = " ";
int iWantLen = sFillStrWithWantLen.length();
int iActLen = s.length();
if( iActLen < iWantLen )
return (s + sFillStrWithWantLen).substring( 0, iWantLen );
if( iActLen > 2 * iWantLen )
return s.substring( 0, 2 * iWantLen );
return s;
}
private void showResultset(Vector<GroupedSeverityRow> resultDataset) {
GroupedSeverityRow gsr;
for (int i = 0; i < resultDataset.size(); i++) {
gsr = resultDataset.get(i);
System.out.print(extendString(gsr.getDate()));
System.out.print(extendInt(gsr.getSeverity()));
System.out.println(extendInt(gsr.getCountSeverity()));
}
}
}
Seems to work great *g*
Greetings,
Ralf
|
|
|
Re: Manually add rows to dataset [message #243371 is a reply to message #243250] |
Tue, 19 June 2007 13:33  |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Thanks Ralf
Ralf Grewe wrote:
> JAVA-class GroupedSeverityRow (represents a single row in my final table):
>
> package org.openadvice.report.data;
>
> public class GroupedSeverityRow {
> String date;
> int severity;
> int countSeverity;
>
> public GroupedSeverityRow(String date, int severity, int
> countSeverity){
> this.date = date;
> this.severity = severity;
> this.countSeverity = countSeverity;
> }
>
> public String getDate() {
> return this.date;
> }
>
>
> public int getSeverity() {
> return this.severity;
> }
>
>
> public int getCountSeverity() {
> return this.countSeverity;
> }
>
>
> public void setDate(String date) {
> this.date = date;
> }
>
>
> public void setSeverity(int severity) {
> this.severity = severity;
> }
>
>
> public void setCountSeverity(int countSeverity) {
> this.countSeverity = countSeverity;
> }
> }
>
>
> JAVA-class GetGroupedSeverity (does the desired group-wise extension of
> my data table):
>
> package org.openadvice.report.data;
>
> import java.sql.ResultSet;
> import java.util.Vector;
>
> public class GetGroupedSeverity {
> private JDBCConnector jdbcConnector;
>
> public GetGroupedSeverity(String driver, String url, String
> username, String password) {
> jdbcConnector = new JDBCConnector(driver, url, username, password);
> }
>
> public Vector<GroupedSeverityRow> getSeverityGroups() throws Exception{
> jdbcConnector.openConnection();
> ResultSet rs = jdbcConnector.executeSQL("select
> to_char(lastoccurrence, 'MM/YYYY'), severity, count(severity) " +
> "from
> Reporter.Reporter_status " +
> "group by
> to_char(lastoccurrence, 'MM/YYYY'), severity " +
> "order by
> to_char(lastoccurrence, 'MM/YYYY'), severity asc");
>
> String row_currentDate = "";
> String remDate = "";
> int sevCounter = 0;
> int row_severity;
> int row_countSeverity;
>
> GroupedSeverityRow gsr;
> Vector<GroupedSeverityRow> resultDataset = new
> Vector<GroupedSeverityRow>();
> while (rs.next()){
> row_currentDate = rs.getString(1);
>
> if (rs.isFirst()) remDate = row_currentDate;
>
> if (!remDate.equals(row_currentDate)) {
> while (sevCounter < 6) {
> gsr = new GroupedSeverityRow(remDate, sevCounter, 0);
> resultDataset.add(gsr);
> sevCounter++;
> }
>
> remDate = row_currentDate;
> sevCounter = 0;
> }
>
> row_severity = Integer.parseInt(rs.getString(2));
> row_countSeverity = Integer.parseInt(rs.getString(3));
>
> while (row_severity > sevCounter) {
> gsr = new GroupedSeverityRow(row_currentDate,
> sevCounter, 0);
> resultDataset.add(gsr);
> sevCounter++;
> }
> gsr = new GroupedSeverityRow(row_currentDate, row_severity,
> row_countSeverity);
> resultDataset.add(gsr);
> sevCounter++;
> }
>
> while (sevCounter < 6) {
> gsr = new GroupedSeverityRow(remDate, sevCounter, 0);
> resultDataset.add(gsr);
> sevCounter++;
> }
>
> //showResultset(resultDataset);
>
> jdbcConnector.closeConnection();
>
> return(resultDataset);
> }
>
>
>
> private String extendString(String s) {
> if(s == null) s = "";
> String sFillStrWithWantLen =
> " ";
> int iWantLen = sFillStrWithWantLen.length();
> int iActLen = s.length();
> if( iActLen < iWantLen )
> return (s + sFillStrWithWantLen).substring( 0, iWantLen );
> if( iActLen > 2 * iWantLen )
> return s.substring( 0, 2 * iWantLen );
> return s;
> }
>
> private String extendInt(int i) {
> String s = String.valueOf(i);
>
> String sFillStrWithWantLen =
> " ";
> int iWantLen = sFillStrWithWantLen.length();
> int iActLen = s.length();
> if( iActLen < iWantLen )
> return (s + sFillStrWithWantLen).substring( 0, iWantLen );
> if( iActLen > 2 * iWantLen )
> return s.substring( 0, 2 * iWantLen );
> return s;
> }
>
>
> private void showResultset(Vector<GroupedSeverityRow> resultDataset) {
>
> GroupedSeverityRow gsr;
> for (int i = 0; i < resultDataset.size(); i++) {
> gsr = resultDataset.get(i);
>
> System.out.print(extendString(gsr.getDate()));
> System.out.print(extendInt(gsr.getSeverity()));
> System.out.println(extendInt(gsr.getCountSeverity()));
> }
> }
> }
>
>
> Seems to work great *g*
>
> Greetings,
>
> Ralf
>
|
|
|
Goto Forum:
Current Time: Wed May 07 18:16:38 EDT 2025
Powered by FUDForum. Page generated in 0.05175 seconds
|