Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » BIRT » Setting the min and max date on x-axis of birt chart through scirpt(AM using birt 2.3.2 to create the reports. Am not able to set the min and max values as date in a Bar graph.Am impleting it through the scripting way.Have tried the following code below. I dont get an)
Setting the min and max date on x-axis of birt chart through scirpt [message #488264] Sun, 27 September 2009 04:27 Go to next message
Roopa  is currently offline Roopa Friend
Messages: 20
Registered: July 2009
Junior Member
Code:

ChartWithAxes cwaBar = ChartWithAxesImpl.create();
cwaBar.setType("Bar Chart");//$NON-NLS-1$
cwaBar.setSubType("Side-by-side");//$NON-NLS-1$
cwaBar.getTitle().setVisible(false);
cwaBar.getLegend().setVisible(false);
cwaBar.setOrientation(Orientation.VERTICAL_LITERAL);
cwaBar.getBlock().setBounds(BoundsImpl.create(0, 0, 450, 175));
cwaBar.getPlot().getClientArea().getOutline().setVisible(tru e);

SimpleDateFormat shortDateFormat = new SimpleDateFormat(WebReport.URLDateTimeFormat);
Calendar repStart = Calendar.getInstance();
Calendar repStop = Calendar.getInstance();

try {
String strrt_date="11-June-07";
String end_Date = "05-Dec-09";
DateFormat formatter ;
Date date1,date2 ;
formatter = new SimpleDateFormat("dd-MMM-yy");

date1 = (Date)formatter.parse(strrt_date);

java.lang.Long longDate1=date1.getTime();
date2=(Date)formatter.parse(end_Date);
java.lang.Long longDate2=date2.getTime();

cwaBar.setScript("var maxVal =0.0;" +
"riskValues = new Array("
+ riskValuesInStr
+ "); yAxisLabels = new Array('',"
+ getStringValues(responseText)
+ "); function beforeDrawDataPoint( dph, fill, context ) { var value1 = riskValues[dph.getIndex()]; if(value1 == 3) { fill.setRed(255); fill.setGreen(0); fill.setBlue(0); } else if (value1 == 2) { fill.setRed(255); fill.setGreen(255); fill.setBlue(0); } else if (value1 == 1) { fill.setRed(0); fill.setGreen(255); fill.setBlue(0); } else { fill.setRed(255); fill.setGreen(255); fill.setBlue(255); } }"
+ " function beforeDrawAxisLabel(axis, label, scriptContext) { importPackage(Packages.org.eclipse.birt.chart.model.attribut e); if (axis.getType() == AxisType.LINEAR_LITERAL) { for (var i=0;i<yAxisLabels.length;i++) { var searchStr = label.getCaption().getValue()+':'; var index = yAxisLabels[i].indexOf(searchStr,0); if (index==0) { label.getCaption().setValue(yAxisLabels[i].substring(searchS tr.length)); dataSet = true; return; } } label.getCaption().setValue(\"\"); } } function beforeDrawSeries( series, seriesRenderer, context ) { if( seriesRenderer.getClass() == \"class org.eclipse.birt.chart.render.Bar\"){ srh = seriesRenderer.getSeriesRenderingHints(); dph1 = srh.getDataPoints(); var ln = dph1.length; if (ln<6) context.getChartInstance().setUnitSpacing(90); } }"
+" function beforeGeneration(chart, icsc) {importPackage( Packages.org.eclipse.birt.chart.model.data.impl ); "
+ " var enable_auto_scale = icsc.getExternalContext().getScriptable().getParameterValue( \ "AutoScale\"); "
+ " importPackage( Packages.java.io ); "
+" xAxis = chart.getPrimaryBaseAxes()[0]; "
+" xscale = xAxis.getScale(); "
+" if( enable_auto_scale == true){ "
+" xscale.unsetStep(); "
+" xscale.unsetStepNumber(); "
+" }else{ "
// +" xscale.setStep (10); "
+" xscale.setMin(DateTimeDataElementImpl.create("+longDate1+")); "
+" xscale.setMax(DateTimeDataElementImpl.create("+longDate2+")) ;"
+" } xAxis.setScale(xscale);} ");



System.out.println("***********Script****"+ cwaBar.getScript());
Axis xAxisPrimary = cwaBar.getPrimaryBaseAxes()[0];
xAxisPrimary.setCategoryAxis(true);
xAxisPrimary.getTitle().getCaption().setValue("Date");//$NON-NLS-1$
xAxisPrimary.getMajorGrid().getLineAttributes().setStyle(
LineStyle.DOTTED_LITERAL);
xAxisPrimary.getMajorGrid().getLineAttributes().setVisible(t rue);
xAxisPrimary.getMajorGrid().getLineAttributes().setColor(
ColorDefinitionImpl.GREY());
xAxisPrimary.setType(AxisType.DATE_TIME_LITERAL);
xAxisPrimary.setFormatSpecifier(JavaDateFormatSpecifierImpl
.create(dateFormat));//$NON-NLS-1$
// Scale xScale = xAxisPrimary.getScale();
// xScale.setMin(DateTimeDataElementImpl.create(longDate1));
// xScale.setMax(DateTimeDataElementImpl.create(longDate2));
// xAxisPrimary.setScale(xScale);


.
.
.
}

I also tried setting outside the scripy, but it doesnt seem to be working.

Thanks in advance,
Roopa
Re: Setting the min and max date on x-axis of birt chart through scirpt [message #488402 is a reply to message #488264] Mon, 28 September 2009 14:40 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

Can you try a script like:
function beforeGeneration(chart, icsc)
{
importPackage( Packages.org.eclipse.birt.chart.model.data.impl );
importPackage( Packages.org.eclipse.birt.chart.util );

xAxis = chart.getBaseAxes()[0];
yAxis = chart.getOrthogonalAxes( xAxis, true)[0]
scale = xAxis.getScale();
scale.setMin( DateTimeDataElementImpl.create( new CDateTime(2001,1,1) ) );
scale.setMax( DateTimeDataElementImpl.create( new CDateTime(2009,1,10) ) );

}

Roopa wrote:
> Code:
>
> ChartWithAxes cwaBar = ChartWithAxesImpl.create();
> cwaBar.setType("Bar Chart");//$NON-NLS-1$
> cwaBar.setSubType("Side-by-side");//$NON-NLS-1$
> cwaBar.getTitle().setVisible(false);
> cwaBar.getLegend().setVisible(false);
> cwaBar.setOrientation(Orientation.VERTICAL_LITERAL);
> cwaBar.getBlock().setBounds(BoundsImpl.create(0, 0, 450, 175));
> cwaBar.getPlot().getClientArea().getOutline().setVisible(tru e);
>
> SimpleDateFormat shortDateFormat = new
> SimpleDateFormat(WebReport.URLDateTimeFormat);
> Calendar repStart = Calendar.getInstance();
> Calendar repStop = Calendar.getInstance();
>
> try {
> String strrt_date="11-June-07";
> String end_Date = "05-Dec-09";
> DateFormat formatter ; Date date1,date2 ;
> formatter = new SimpleDateFormat("dd-MMM-yy");
> date1 = (Date)formatter.parse(strrt_date);
> java.lang.Long longDate1=date1.getTime();
> date2=(Date)formatter.parse(end_Date);
> java.lang.Long longDate2=date2.getTime();
> cwaBar.setScript("var maxVal =0.0;" +
> "riskValues = new Array("
> + riskValuesInStr
> + "); yAxisLabels = new Array('',"
> + getStringValues(responseText)
> + "); function beforeDrawDataPoint( dph, fill,
> context ) { var value1 = riskValues[dph.getIndex()]; if(value1 ==
> 3) { fill.setRed(255); fill.setGreen(0); fill.setBlue(0);
> } else if (value1 == 2) { fill.setRed(255);
> fill.setGreen(255); fill.setBlue(0); } else if (value1 == 1)
> { fill.setRed(0); fill.setGreen(255); fill.setBlue(0);
> } else { fill.setRed(255); fill.setGreen(255);
> fill.setBlue(255); } }"
> + " function beforeDrawAxisLabel(axis, label,
> scriptContext) {
> importPackage(Packages.org.eclipse.birt.chart.model.attribut e); if
> (axis.getType() == AxisType.LINEAR_LITERAL) { for (var
> i=0;i<yAxisLabels.length;i++) { var searchStr =
> label.getCaption().getValue()+':'; var index =
> yAxisLabels[i].indexOf(searchStr,0); if (index==0) {
> label.getCaption().setValue(yAxisLabels[i].substring(searchS
> tr.length)); dataSet = true; return; } }
> label.getCaption().setValue(\"\"); } } function beforeDrawSeries(
> series, seriesRenderer, context ) { if( seriesRenderer.getClass() ==
> \"class org.eclipse.birt.chart.render.Bar\"){ srh =
> seriesRenderer.getSeriesRenderingHints(); dph1 = srh.getDataPoints();
> var ln = dph1.length; if (ln<6)
> context.getChartInstance().setUnitSpacing(90); } }"
> +" function beforeGeneration(chart,
> icsc) {importPackage( Packages.org.eclipse.birt.chart.model.data.impl ); "
> + " var enable_auto_scale =
> icsc.getExternalContext().getScriptable().getParameterValue( \
> "AutoScale\"); "
> + " importPackage( Packages.java.io ); "
> +" xAxis = chart.getPrimaryBaseAxes()[0]; "
> +" xscale = xAxis.getScale(); "
> +" if( enable_auto_scale == true){ "
> +" xscale.unsetStep(); "
> +" xscale.unsetStepNumber(); "
> +" }else{ "
> // +" xscale.setStep (10); "
> +"
> xscale.setMin(DateTimeDataElementImpl.create("+longDate1+")); "
> +"
> xscale.setMax(DateTimeDataElementImpl.create("+longDate2+")) ;"
> +" } xAxis.setScale(xscale);} ");
>
>
>
> System.out.println("***********Script****"+ cwaBar.getScript());
> Axis xAxisPrimary = cwaBar.getPrimaryBaseAxes()[0];
> xAxisPrimary.setCategoryAxis(true);
> xAxisPrimary.getTitle().getCaption().setValue("Date");//$NON-NLS-1$
> xAxisPrimary.getMajorGrid().getLineAttributes().setStyle(
> LineStyle.DOTTED_LITERAL);
> xAxisPrimary.getMajorGrid().getLineAttributes().setVisible(t rue);
> xAxisPrimary.getMajorGrid().getLineAttributes().setColor(
> ColorDefinitionImpl.GREY());
> xAxisPrimary.setType(AxisType.DATE_TIME_LITERAL);
> xAxisPrimary.setFormatSpecifier(JavaDateFormatSpecifierImpl
> .create(dateFormat));//$NON-NLS-1$
> // Scale xScale = xAxisPrimary.getScale();
> // xScale.setMin(DateTimeDataElementImpl.create(longDate1));
> // xScale.setMax(DateTimeDataElementImpl.create(longDate2));
> // xAxisPrimary.setScale(xScale);
>
>
Re: Setting the min and max date on x-axis of birt chart through scirpt [message #488507 is a reply to message #488402] Tue, 29 September 2009 01:07 Go to previous messageGo to next message
Roopa  is currently offline Roopa Friend
Messages: 20
Registered: July 2009
Junior Member
HI Jason,

Am still not able to set the min and max values. Is ther any other way to set the values.
Re: Setting the min and max date on x-axis of birt chart through scirpt [message #488661 is a reply to message #488507] Tue, 29 September 2009 16:27 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

Roopa,

Can you post the entire code, so I can reproduce your issue?

Jason

Roopa wrote:
> HI Jason,
>
> Am still not able to set the min and max values. Is ther any other way
> to set the values.
Re: Setting the min and max date on x-axis of birt chart through scirpt [message #492876 is a reply to message #488661] Thu, 22 October 2009 08:08 Go to previous message
Roopa  is currently offline Roopa Friend
Messages: 20
Registered: July 2009
Junior Member
Jason,

AM able to set the min and max values with the script you provided.
I am setting setCategoryAxis () as false and the code works ..

Thank you.
Previous Topic:Scatter Chart Legend
Next Topic:Birt 2.3.2 VS Birt 2.5.1
Goto Forum:
  


Current Time: Fri Apr 26 21:38:20 GMT 2024

Powered by FUDForum. Page generated in 0.04303 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top