Display pie charts
I have a problem!
I had to create a pie chart. So I tried to create one. But at the end when I want to test it, I only get a "X" (picture not available) on the site. If I use the same data I used for creating the pie chart for creating a "normal" chart, it will works.
Now my question, how can I display a pie chart?
(I hope you4ll understand, I4m not very good in english)
Tanja
Hi Tanja,
It's not a problem .Pie charts ,if you look in the global settings it clearly says that it is a beta version .So Oracle does not give us any guarantee for those features.Pie charts are under Beta version for the last many months.Every time they will say that will work in the next version, but even to day it is a beta feature..
Thanks
Vishnu
Similar Messages
-
I need to display pie chart data tips at specified location instead of default location?
I need to display pie chart data tips at specified location instead of default location?
can any body let me know how to do that?
thanks guys.Hi,
Check this thread.
Log for J2EE Web Services?
Regards,
Harini S -
How to display PIE chart Axis label horizontally?
Hi
Currently my PIE chart axis label is displying in 2 lines. How make it to display in one line?
Thank youhi,
For Pie chart there will be no X-axis or Y-axis terms generally.
Label/Text could be one of the following.
Title?
or Sub Title?
or Foot note?
Right Click -> Format Title . Reduce the font size such that it fits into a single line.
Regards,
Vamsee -
How to display pie chart in smart forms
hii experts,
my requirement is to display pi chart in smart forms . i have googled but could not get any meaning full results. If any one knows this pls share ..
Thanks and Regards
Aditya ShrivastavaHi
I really doubt If you did search at all in the first place. Anyhow, check this:
https://www.sdn.sap.com/irj/scn/advancedsearch?query=piechartin+smartforms&cat=sdn_all
Vishwa. -
Pdf generated through API's does not display pie chart
I'm using BIP 10.1.3.4, running on Oracle Linux 5 connecting to a 11g database.
I developed an RTF using the word template builder and included a pie chart. Previewing from within Word works fine, running the report directly from BIP works fine. I then used the API's to generate the pdf programmatically to have more control.
I use RTFProcessor to convert my RTF into a XSL, DataProcessor to generate the xml data and FOProcessor to generate the final PDF. This works fine running from local JDeveloper, connecting through to the remote database.
I've now loaded the java class with the API's into the database, and as per http://download.oracle.com/docs/cd/E12844_01/doc/bip.1013/e12188/T421739T517850.htm#T520954, loaded up the following jar's
xdocore.jar - the core BI Publisher library
aolj.jar - although this is an Oracle E-Business Suite library, it is required for standalone implementations as well
i18nAPI_v3.jar - the i18n library used for localization functions
xdoparser.jar - the scalable XML parser and XSLT 2.0 engine
xmlparserv2-904.jar - the main XML parser/XSLT engine
bipres.jar - a charting library
bicmn.jar - a charting library
jewt4.jar - a charting support library
share.jar - a charting support library
collections.jar - you only need this if you are working with the delivery APIs or bursting engine.
The report works fine, all data tabels are shown but the pie chart is missing. I originally got the jar files from the TemplateBuilder/jlib directory. I also tried using the jar files from the BIP/xmlpserver\WEB-INF\lib directory as well. Problem remains - everything works fine except for the lack of the pie chart !
Any help would be greatly appreciated :)
Cheers,
Brentbump .... anyone had similar problems ?
-
Help With Displaying Pie Chart
Hi, I've put some code together but cannot seem to get my chart to display. I hope it's something simple but being very new to this I'm having a difficult time.Thanks in advance.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.NumberFormat;
import java.awt.Color;
public class MortgageCalc_wk5 extends JFrame implements ActionListener {
private static final long serialVersionUID = 6L;
private static final Rectangle Rectangle = null;
//Set up panels for Frame
JPanel topPanel = new JPanel();
JPanel bottomPanel = new JPanel();
JPanel radioPanel = new JPanel();
JPanel grfxPanel = new JPanel(); //new line
//Set up Layout
FlowLayout flowLayout = new FlowLayout();
BorderLayout borderLayout = new BorderLayout();
//Radio Choice Style Buttons
JRadioButton Choice1 = new JRadioButton ("User Input", true);
JRadioButton Choice2 = new JRadioButton ("User Selection", false);
//Set up JLabels, JButtons, and JTextFields
JLabel amountLabel = new JLabel("Loan Amount");
JTextField loanField = new JTextField(7);
JLabel termLabel = new JLabel("Term(Yrs)");
JTextField termField = new JTextField(4);
JLabel rateLabel = new JLabel("Rate");
JTextField rateField = new JTextField(4);
JComboBox options = new JComboBox();
JLabel optionsLabel = new JLabel();
JButton calcButton = new JButton("Calculate");
JButton resetButton = new JButton("Reset");
JButton exitButton = new JButton("Exit");
JButton grfxButton = new JButton("Display Graphics"); //new line
JLabel paymentLabel = new JLabel("Monthly Payment =");
JTextField paymentField = new JTextField(6);
JLabel outputLabel = new JLabel("Loan Amoritization Chart");
JTextArea calcField = new JTextArea(10, 25);
JScrollPane scroll = new JScrollPane(calcField, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
ButtonGroup radioSelect = new ButtonGroup();
JLabel grfxLabel =new JLabel ("Graphic Chart"); //new line
JTextField grfxField = new JTextField ("Graphics"); // new line
//Default constructor
public MortgageCalc_wk5() {
super("Tony's Calculator - Week 5");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
//add ActionListeners
loanField.addActionListener(this);
termField.addActionListener(this);
rateField.addActionListener(this);
options.addActionListener(this);
calcButton.addActionListener(this);
grfxButton.addActionListener(this); //new line
resetButton.addActionListener(this);
exitButton.addActionListener(this);
Choice1.addActionListener(this);
Choice2.addActionListener(this);
//Top Panel Layout
topPanel.setLayout(flowLayout);
topPanel.add(amountLabel);
topPanel.add(loanField);
radioSelect.add(Choice1);
radioSelect.add(Choice2);
topPanel.add(Choice1);
topPanel.add(Choice2);
//Loan Term Options For JComboBox
options.addItem("7 years @ 5.35%");
options.addItem("15 years @ 5.5%");
options.addItem("30 years @ 5.75%");
options.setEnabled(false);
topPanel.add(options);
topPanel.add(termLabel);
topPanel.add(termField);
topPanel.add(rateLabel);
topPanel.add(rateField);
topPanel.add(paymentLabel);
topPanel.add(paymentField);
paymentField.setEditable(false);
//Was Bottom Panel Now East Panel, Calculate Reset,Exit, and Display Buttons
bottomPanel.add(calcButton);
bottomPanel.add(resetButton);
bottomPanel.add(exitButton);
bottomPanel.add(grfxButton); //new line
calcButton.setBackground(Color.blue);
resetButton.setBackground(Color.white);
exitButton.setBackground(Color.red);
calcField.setBackground(Color.orange);
grfxPanel.setBackground(Color.green); //new line
grfxPanel.add(grfxField); // new line
//add Container
Container pane = getContentPane();
pane.setLayout(borderLayout);
pane.add(topPanel, BorderLayout.NORTH);
pane.add(calcField, BorderLayout.WEST);
pane.add(grfxPanel, BorderLayout.SOUTH); //new line
pane.add(bottomPanel, BorderLayout.EAST);
calcField.setLineWrap(true);
calcField.setWrapStyleWord(true);
calcField.setEditable(false);
pane.add(scroll);
scroll.setViewportView(calcField);
pack();
grfxPanel.setBounds(Rectangle); //new line
//actionEvent Listeners
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == calcButton) {
startCalculations();
if (source == resetButton) {
reset();
if (source == grfxButton) { //new line
ChartPanel();
if (source == exitButton) {
end();
if (source == Choice1) {
options.setEnabled(false);
termField.setEnabled(true);
rateField.setEnabled(true);
if (source == Choice2) {
options.setEnabled(true);
termField.setEnabled(false);
rateField.setEnabled(false);
public void ChartPanel() { //newline
JFrame grfxPanel = new JFrame();
grfxPanel.setSize(400, 300);
double[] values = new double[3];
String[] names = new String[3];
values[0] = 1;
names[0] = "Item 1";
values[1] = 2;
names[1] = "Item 2";
values[2] = 4;
names[2] = "Item 3";
grfxPanel.getContentPane().add(new ChartPanel(values, names, "title"));
public class ChartPanel extends JPanel {
private static final long serialVersionUID = 6L;
public double[] values;
public String[] names;
public String title;
public ChartPanel(double[] v, String[] n, String t) {
names = n;
values = v;
title = t;
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (values == null || values.length == 0)
return;
double minValue = 0;
double maxValue = 0;
for (int i = 0; i < values.length; i++) {
if (minValue > values)
minValue = values[i];
if (maxValue < values[i])
maxValue = values[i];
Dimension d = getSize();
int clientWidth = d.width;
int clientHeight = d.height;
int barWidth = clientWidth / values.length;
Font titleFont = new Font("SansSerif", Font.BOLD, 20);
FontMetrics titleFontMetrics = g.getFontMetrics(titleFont);
Font labelFont = new Font("SansSerif", Font.PLAIN, 10);
FontMetrics labelFontMetrics = g.getFontMetrics(labelFont);
int titleWidth = titleFontMetrics.stringWidth(title);
int y = titleFontMetrics.getAscent();
int x = (clientWidth - titleWidth) / 2;
g.setFont(titleFont);
g.drawString(title, x, y);
int top = titleFontMetrics.getHeight();
int bottom = labelFontMetrics.getHeight();
if (maxValue == minValue)
return;
double scale = (clientHeight - top - bottom) / (maxValue - minValue);
y = clientHeight - labelFontMetrics.getDescent();
g.setFont(labelFont);
for (int i = 0; i < values.length; i++) {
int valueX = i * barWidth + 1;
int valueY = top;
int height = (int) (values[i] * scale);
if (values[i] >= 0)
valueY += (int) ((maxValue - values[i]) * scale);
else {
valueY += (int) (maxValue * scale);
height = -height;
g.setColor(Color.red);
g.fillRect(valueX, valueY, barWidth - 2, height);
g.setColor(Color.black);
g.drawRect(valueX, valueY, barWidth - 2, height);
int labelWidth = labelFontMetrics.stringWidth(names[i]);
x = i * barWidth + (barWidth - labelWidth) / 2;
g.drawString(names[i], x, y);
//Calculation Section
void startCalculations() {
NumberFormat currency = NumberFormat.getCurrencyInstance();
//Variables
double amount = 0;
double term = 0;
double interest = 0;
double moIn = 0;
double moTerm = 0;
double payment = 0;
double newPrin = amount;
boolean Exception = false;
//Input Validation
try {
amount = Double.parseDouble(loanField.getText());
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Commas, Letters, and Puncuation NOT Allowed",
"Message Dialog", JOptionPane.ERROR_MESSAGE);
loanField.setText(null);
calcField.setText(null);
//User's Loan Choice
if (Choice2.isSelected())
if(options.getSelectedIndex() == 0)
term=7;
interest=5.35;
else if(options.getSelectedIndex() ==1)
term=15;
interest=5.5;
else
term=30;
interest=5.75;
else
//More Validation
try
term = Double.parseDouble(termField.getText());
catch (NumberFormatException e)
JOptionPane.showMessageDialog(this,"Enter amounts greater than zero","Please enter new amount",JOptionPane.ERROR_MESSAGE);
Exception=true;
termField.setText(null);
try
interest= Double.parseDouble(rateField.getText());
catch (NumberFormatException e)
JOptionPane.showMessageDialog(this,"Enter an Amount Greater Than Zero, % Not Allowed","Please enter Another Amount",JOptionPane.ERROR_MESSAGE);
Exception=true;
rateField.setText(null);
if ((amount <= 0 || term <= 0 || interest <= 0) && (Exception == false)) {
JOptionPane.showMessageDialog(null, "Please Enter a Number Greater Than ZERO.",
"Message Dialog", JOptionPane.ERROR_MESSAGE);
if(amount <= 0)
loanField.setText(null);
paymentField.setText(null);
calcField.setText(null);
termField.setText(null);
rateField.setText(null);
//Amortization Results Chart
if (amount >7) {
amount = Double.parseDouble(loanField.getText());
moIn = (interest / 12) / 100;
moTerm = term * 12;
payment = amount * (moIn / (1 - java.lang.Math.pow((1 + moIn), (-moTerm))));
paymentField.setText("" + currency.format(payment));
calcField.append("Period");
calcField.append(" ");
calcField.append("Payment Amount");
calcField.append(" ");
calcField.append("Interest Paid");
calcField.append(" ");
calcField.append("Principle Paid");
calcField.append(" ");
calcField.append("Loan Balance");
calcField.append(" \n");
for (int i = 1; i <= moTerm; i++) {
double newIn = moIn * amount;
double reduct = payment - newIn;
newPrin = amount - reduct;
amount = newPrin;
calcField.append(" " + i);
calcField.append(" " + currency.format(payment));
calcField.append(" " + currency.format(newIn));
calcField.append(" " + currency.format(reduct));
calcField.append(" " + currency.format(newPrin) + "\n");
calcField.setCaretPosition(0);
// Program Reset, User Can Calculate Another Amount or Choose A Different Style
void reset () {
loanField.setText(null);
paymentField.setText(null);
calcField.setText(null);
termField.setText(null);
rateField.setText(null);
// Exit Command
void end() {
System.exit(0);
// main method
public static void main(String args[]) {
MortgageCalc_wk5 calc = new MortgageCalc_wk5();
calc.pack();
calc.setVisible(true);
// end of programWill you please describe the problem.
Your program works fine for one who doesn't know your precise requirement.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.NumberFormat;
import java.awt.Color;
public class MortgageCalc_wk5 extends JFrame implements ActionListener {
private static final long serialVersionUID = 6;
private static final Rectangle rectangle = null;
//Set up panels for Frame
JPanel topPanel = new JPanel();
JPanel bottomPanel = new JPanel();
JPanel radioPanel = new JPanel();
JPanel grfxPanel = new JPanel();
//Set up Layout
FlowLayout flowLayout = new FlowLayout();
BorderLayout borderLayout = new BorderLayout();
//Radio Choice Style Buttons
JRadioButton Choice1 = new JRadioButton ("User Input", true);
JRadioButton Choice2 = new JRadioButton ("User Selection", false);
//Set up JLabels, JButtons, and JTextFields
JLabel amountLabel = new JLabel("Loan Amount");
JTextField loanField = new JTextField(7);
JLabel termLabel = new JLabel("Term(Yrs)");
JTextField termField = new JTextField(4);
JLabel rateLabel = new JLabel("Rate");
JTextField rateField = new JTextField(4);
JComboBox options = new JComboBox();
JLabel optionsLabel = new JLabel();
JButton calcButton = new JButton("Calculate");
JButton resetButton = new JButton("Reset");
JButton exitButton = new JButton("Exit");
JButton grfxButton = new JButton("Display Graphics");
JLabel paymentLabel = new JLabel("Monthly Payment =");
JTextField paymentField = new JTextField(6);
JLabel outputLabel = new JLabel("Loan Amoritization Chart");
JTextArea calcField = new JTextArea(10, 25);
JScrollPane scroll
= new JScrollPane(calcField, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
ButtonGroup radioSelect = new ButtonGroup();
JLabel grfxLabel =new JLabel ("Graphic Chart");
JTextField grfxField = new JTextField ("Graphics");
//Default constructor
public MortgageCalc_wk5() {
super("Tony's Calculator - Week 5");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
//add ActionListeners
loanField.addActionListener(this);
termField.addActionListener(this);
rateField.addActionListener(this);
options.addActionListener(this);
calcButton.addActionListener(this);
grfxButton.addActionListener(this);
resetButton.addActionListener(this);
exitButton.addActionListener(this);
Choice1.addActionListener(this);
Choice2.addActionListener(this);
//Top Panel Layout
topPanel.setLayout(flowLayout);
topPanel.add(amountLabel);
topPanel.add(loanField);
radioSelect.add(Choice1);
radioSelect.add(Choice2);
topPanel.add(Choice1);
topPanel.add(Choice2);
//Loan Term Options For JComboBox
options.addItem("7 years @ 5.35%");
options.addItem("15 years @ 5.5%");
options.addItem("30 years @ 5.75%");
options.setEnabled(false);
topPanel.add(options);
topPanel.add(termLabel);
topPanel.add(termField);
topPanel.add(rateLabel);
topPanel.add(rateField);
topPanel.add(paymentLabel);
topPanel.add(paymentField);
paymentField.setEditable(false);
//Was Bottom Panel Now East Panel, Calculate Reset,Exit, and Display Buttons
bottomPanel.add(calcButton);
bottomPanel.add(resetButton);
bottomPanel.add(exitButton);
bottomPanel.add(grfxButton);
calcButton.setBackground(Color.blue);
resetButton.setBackground(Color.white);
exitButton.setBackground(Color.red);
calcField.setBackground(Color.orange);
grfxPanel.setBackground(Color.green);
grfxPanel.add(grfxField);
//add Container
Container pane = getContentPane();
pane.setLayout(borderLayout);
pane.add(topPanel, BorderLayout.NORTH);
pane.add(calcField, BorderLayout.WEST);
pane.add(grfxPanel, BorderLayout.SOUTH);
pane.add(bottomPanel, BorderLayout.EAST);
calcField.setLineWrap(true);
calcField.setWrapStyleWord(true);
calcField.setEditable(false);
pane.add(scroll);
scroll.setViewportView(calcField);
pack();
grfxPanel.setBounds(new Rectangle(0, 0, 400, 400));
//actionEvent Listeners
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == calcButton) {
startCalculations();
else if (source == resetButton) {
reset();
else if (source == grfxButton) {
chartPanel();
else if (source == exitButton) {
end();
else if (source == Choice1) {
options.setEnabled(false);
termField.setEnabled(true);
rateField.setEnabled(true);
else if (source == Choice2) {
options.setEnabled(true);
termField.setEnabled(false);
rateField.setEnabled(false);
public void chartPanel() {
JFrame grfxFrame = new JFrame();
grfxFrame.setSize(400, 300);
double[] values = new double[3];
String[] names = new String[3];
values[0] = 1;
names[0] = "Item 1";
values[1] = 2;
names[1] = "Item 2";
values[2] = 4;
names[2] = "Item 3";
grfxFrame.getContentPane().add(new ChartPanel(values, names, "title"));
grfxFrame.setVisible(true);
// public class ChartPanel extends JPanel {
class ChartPanel extends JPanel {
private static final long serialVersionUID = 6;
public double[] values;
public String[] names;
public String title;
public ChartPanel(double[] v, String[] n, String t) {
names = n;
values = v;
title = t;
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (values == null || values.length == 0){
return;
double minValue = 0;
double maxValue = 0;
for (int i = 0; i < values.length; i++) {
if (minValue > values){
minValue = values[i];
if (maxValue < values[i]){
maxValue = values[i];
Dimension d = getSize();
int clientWidth = d.width;
int clientHeight = d.height;
int barWidth = clientWidth / values.length;
Font titleFont = new Font("SansSerif", Font.BOLD, 20);
FontMetrics titleFontMetrics = g.getFontMetrics(titleFont);
Font labelFont = new Font("SansSerif", Font.PLAIN, 10);
FontMetrics labelFontMetrics = g.getFontMetrics(labelFont);
int titleWidth = titleFontMetrics.stringWidth(title);
int y = titleFontMetrics.getAscent();
int x = (clientWidth - titleWidth) / 2;
g.setFont(titleFont);
g.drawString(title, x, y);
int top = titleFontMetrics.getHeight();
int bottom = labelFontMetrics.getHeight();
if (maxValue == minValue){
return;
double scale = (clientHeight - top - bottom) / (maxValue - minValue);
y = clientHeight - labelFontMetrics.getDescent();
g.setFont(labelFont);
for (int i = 0; i < values.length; i++) {
int valueX = i * barWidth + 1;
int valueY = top;
int height = (int) (values[i] * scale);
if (values[i] >= 0){
valueY += (int) ((maxValue - values[i]) * scale);
else {
valueY += (int) (maxValue * scale);
height = -height;
g.setColor(Color.red);
g.fillRect(valueX, valueY, barWidth - 2, height);
g.setColor(Color.black);
g.drawRect(valueX, valueY, barWidth - 2, height);
int labelWidth = labelFontMetrics.stringWidth(names[i]);
x = i * barWidth + (barWidth - labelWidth) / 2;
g.drawString(names[i], x, y);
//Calculation Section
void startCalculations() {
NumberFormat currency = NumberFormat.getCurrencyInstance();
//Variables
double amount = 0;
double term = 0;
double interest = 0;
double moIn = 0;
double moTerm = 0;
double payment = 0;
double newPrin = amount;
boolean Exception = false;
//Input Validation
try {
amount = Double.parseDouble(loanField.getText());
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog
(null, "Commas, Letters, and Puncuation NOT Allowed",
"Message Dialog", JOptionPane.ERROR_MESSAGE);
loanField.setText(null);
calcField.setText(null);
//User's Loan Choice
if (Choice2.isSelected()){
if(options.getSelectedIndex() == 0){
term=7;
interest=5.35;
else if(options.getSelectedIndex() ==1){
term=15;
interest=5.5;
else{
term=30;
interest=5.75;
else{
//More Validation
try{
term = Double.parseDouble(termField.getText());
catch (NumberFormatException e){
JOptionPane.showMessageDialog
(this,"Enter amounts greater than zero","Please enter new amount",
JOptionPane.ERROR_MESSAGE);
Exception=true;
termField.setText(null);
try{
interest= Double.parseDouble(rateField.getText());
catch (NumberFormatException e){
JOptionPane.showMessageDialog
(this, "Enter an Amount Greater Than Zero, % Not Allowed",
"Please enter Another Amount", JOptionPane.ERROR_MESSAGE);
Exception=true;
rateField.setText(null);
if ((amount <= 0 || term <= 0 || interest <= 0) && (Exception == false)) {
JOptionPane.showMessageDialog
(null, "Please Enter a Number Greater Than ZERO.",
"Message Dialog", JOptionPane.ERROR_MESSAGE);
if(amount <= 0)
loanField.setText(null);
paymentField.setText(null);
calcField.setText(null);
termField.setText(null);
rateField.setText(null);
//Amortization Results Chart
if (amount >7) {
amount = Double.parseDouble(loanField.getText());
moIn = (interest / 12) / 100;
moTerm = term * 12;
payment
= amount * (moIn / (1 - java.lang.Math.pow((1 + moIn), (-moTerm))));
paymentField.setText("" + currency.format(payment));
calcField.append("Period");
calcField.append(" ");
calcField.append("Payment Amount");
calcField.append(" ");
calcField.append("Interest Paid");
calcField.append(" ");
calcField.append("Principle Paid");
calcField.append(" ");
calcField.append("Loan Balance");
calcField.append(" \n");
for (int i = 1; i <= moTerm; i++) {
double newIn = moIn * amount;
double reduct = payment - newIn;
newPrin = amount - reduct;
amount = newPrin;
calcField.append(" " + i);
calcField.append(" " + currency.format(payment));
calcField.append(" " + currency.format(newIn));
calcField.append(" " + currency.format(reduct));
calcField.append
(" " + currency.format(newPrin) + "\n");
calcField.setCaretPosition(0);
// Program Reset, User Can Calculate Another Amount or Choose A Different Style
void reset () {
loanField.setText(null);
paymentField.setText(null);
calcField.setText(null);
termField.setText(null);
rateField.setText(null);
// Exit Command
void end() {
System.exit(0);
// main method
public static void main(String args[]) {
java.util.Locale.setDefault(java.util.Locale.US);
MortgageCalc_wk5 calc = new MortgageCalc_wk5();
calc.pack();
calc.setVisible(true);
// end of program
Message was edited by:
hiwa -
Hi Guys..
I want to to have a output from jsp page in the form of Piechart. What all should I use??
Regards,
NachiketYou can use JFreeChart which is a free and good tool to generate graphs in Java. It has samples and other guides which you can use to get started...
-
Table sorter and pie chart in sapui5
Hi ,
I have one combobox and table(i have table columns city , state, country, zone).... on change of combobox value(combobox values are city , state...) i want to sort table and display pie chart according to sorted table values.
Can anyone help me on this....
Regards,
Sathish.Hi Sathish,
You can refer below link, it will help you to build your own custom solution. It has everything you need.
Custom sorter and filter in SAPUI5 Table
Regards,
Shankar -
Hi otn ,
using JDev 11g 11.1
i have status table
SELECT DocStatus.ID,
DocStatus.DESCRIPTION
from DocStatus
and 6 status inside (inprogress , not finish yet , finished , last date ,finished after due date , x)
and i have a view object to represnt a table to dispaly docs report
also a view object to dispaly pie chart
SELECT
COUNT(DOC_TRANSACTION.TRANSACTION_STATUS) TRANSACTION_STATUS,
DOC_STATUS.DESCRIPTION DESCRIPTION
FROM
DOC_TRANSACTION,
DOC_STATUS
WHERE
DOC_TRANSACTION.TRANSACTION_STATUS = DOC_STATUS.ID
the requirment is to display pie chart with this color for status (not regular) ( inprogress --> yellow , not finished yet --> red,finished-->green,last date-->white,finished after due date-->blue,x-->brown)
any one can help ?
Edited by: nour3eny on 21/11/2009 02:00 مthe following article shows the integration of jfreechart with oracle adf/jsf in a very simple and elaborate manner. I found this one very useful.
http://oracle-latest-technology.blogspot.com/2010/02/creating-chart-in-oracle-adf-using.html -
Dynamic Pie Chart in Smart Form
Hi Frn's ,
How can i show the dynamic Pie chart in Smartform .
Thanks and Regards
Priyank DixitHi,
Refer to this link [How to display pie chart in smart forms|Re: how to display pie chart in smart forms] -
Unable to link to Net Sales pie chart report
I have to display Pie chart based on the selection of Country (drop down list), and state (Drop down list). The display of pie chart (Net sales of particular state)should be based on the state selected. I could able to do the country and state drop down by dashboard prompt and could not able to do the link between state and piechart (Net sales). Please help how to do this.
thanks in advance
chandra kanthare the columns present in the filter of the report. They should be in the filter to have them in effect. Change the operator to is prompted.
-
SVG Pie chart : how to display no dat found message
Hello,
I have a SVG pie chart and written a message 'no data found' under charts attributes.
If there is no data for the chart,
In IE :the chart region will be blank . chart heading will be displayed and . no 'no data found ' message is displayed.
In mozilla : in the chart region, i can see ,the part of whole page where i display the chart ,is filled . Chart region heading is also displayed.
Could you please reply , how to display 'no data found ' in svg pie chart?
Thanks in advance.
Regards,
ArchanaHello,
I have a SVG pie chart and written a message 'no data found' under charts attributes.
If there is no data for the chart,
In IE :the chart region will be blank . chart heading will be displayed and . no 'no data found ' message is displayed.
In mozilla : in the chart region, i can see ,the part of whole page where i display the chart ,is filled . Chart region heading is also displayed.
Could you please reply , how to display 'no data found ' in svg pie chart?
Thanks in advance.
Regards,
Archana -
Display three Values in Pie charts
Hi All,
I want to display three Values in Pie Chart(%, Value and one more field). Please suggest me any solution for this.
For Eg Pie chart should display value lie this :- Nokia, 25,025, 38.52% (It consists of three differet values)
Thanks,I am not sure if you could get the concatenation to work.
But here are some ideas (please post if you get the solution):
- Take a look at the list of other formatting options based on the following link:
http://www.oracle.com/technology/products/xml-publisher/blog/xsltext/10134/oracle/apps/xdo/template/rtf/XSLTFunctions.html
- Another alternative is to customize the class file : oracle/dss/graph/SliceLabel.class located in bipres.jar
You would need to customize it to do what you need.
a) Modify this one so that it is used by the BIP Server
C:\OracleBI\oc4j_bi\j2ee\home\applications\xmlpserver\xmlpserver\WEB-INF\lib
b) Modify this one so that it is used by the Client : MS Word AddIn:
C:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\Template Builder for Word\jlib
regards
Jorge -
Display the value as percentage in pie-chart in WEBI
Hi Experts,
I have two measures No. of Sales Transactions and Customer Visit. And I created a measure named CustomerConversionRate.
ie, CustomerConversionRate = ([No. of Sales Transactions]/[Customer Visit])*100.
So my requirement is that CustomerConversionRate is to be display into a pie chart in WEBI . CustomerConversionRate always a percentage.I
hereby attached a sample pie-chart based on my requirement.
Eg:CustomerConversionRate=79.27 and Remaining = 20.73
I want to display CustomerConversionRate=79.27 and Remaining = 20.73 into a pie chart in WEBIHi ,
Add 1 more Query with dimension that will have values
Completed Or X
Remaining Or Y
Duplicate your Query And Keep only 1 Dimension [Extra_Dim]( Remember this Dim Name you have to use it in different way so it would be better if use any Dimension which is not there in First Query )
Go To--> View Script --> Custom SQL
write below code in Query Script Editor
SELECT
'Completed' As "CATEGORY"
FROM
"YOUR_TABLE" Table__1
Union
SELECT
'Remaining' As "CATEGORY"
FROM
"YOUR_TABLE" Table__2
And Save this Query .
Now Rename this Query as Pie Dimension .
Now You can Use [Extra_Dim] As [Achievment_Status]
Create Measure Variable [Achievment_Val] as mention above .
And use it -
Pie Chart Legend not displaying full names
Hi All,
In a RTF template, we have displayed a PIE chart. In the PIE chart, when the number of legends are more, the legends are getting truncated on the generated PDF report. The document which describes the issue with screen shots is placed at [http://www-apps.us.oracle.com/~sgnanama/Pie%20Chart%20Legends%20Display%20Issue.doc] . And following is the snippet of code placed at ALT text of PIE chart picture present in the template. Is there any way to enlarge the legends display section to show the full text of the legends? Please share your thoughts. Thanks.
chart:
<Graph graphType="PIE" depthAngle="50" depthRadius="8" pieDepth="30" pieTilt="20" seriesEffect="SE_NONE">
<LegendArea borderColor="#cccccc" borderTransparent="false"/>
<LegendText wordWrapEnabled ="true"/>
<SeriesItems defaultBorderColor="#cccccc">
<Series id="0" color="#336699"/>
<Series id="1" color="#99ccff"/>
<Series id="2" color="#999933"/>
<Series id="3" color="#666699"/>
<Series id="4" color="#cc9933"/>
<Series id="5" color="#6666"/>
<Series id="6" color="#3399ff"/>
</SeriesItems>
<Title text="" visible="true"/>
<Footnote text="Company Contribution" visible="true" horizontalAlignment="CENTER"/>
<O1Title text="Company Contribution" visible="true"/>
<LocalGridData rowCount="{count(CATEGORY/ERC)}" colCount="1">
<RowLabels>
<xsl:for-each select="CATEGORY">
<xsl:if test="string(ERC)">
<Label>
<xsl:value-of select="CATEGORY_NAME"/>
</Label>
</xsl:if>
</xsl:for-each>
</RowLabels>
<DataValues>
<xsl:for-each select="CATEGORY">
<xsl:if test="string(ERC)">
<RowData>
<Cell>
<xsl:value-of select="ERC"/>
</Cell>
</RowData>
</xsl:if>
</xsl:for-each>
</DataValues>
</LocalGridData>
</Graph>as far as i know only way to display legname in full when u have more values is to make the size of the chart large . i have one the req like that i made it large enough so that it will withstand if i get more values .
it may not be good idea but this is the way i did .
Maybe you are looking for
-
Want to install Siebel CRM in my PC for integrating with UCM.
I am very familiar with Oracle UCM and trying to integrate with Siebel CRM. I have UCM 11g installed in my PC with Oracle 11g DB and also I know the configuration process or steps from siebel end as well as UCM end. Now I want to install Siebel CRM f
-
BPM11g How to customize the title column of a BPM process instance?
Hi, everyone. In the process track panel of Workspace there is a table with process instances in it. Users shall look into this panel and find information about their processes. One of the columns of this table is named "title" and the content of thi
-
ORA-22905 with pipelined function
Hi, I have a strange behaviour that I do not understand. The code below does not work. It gives me the following errors: ORA-22905: cannot access rows from a non-nested table item ORA-06512: at line 10 ORA-06512: at line 19 The problem comes from the
-
Allow User to Close & Come Back
Hello, I will be distributing an authorware package and I would like to give the user an option at the very beginning that allows them to close the package if they don't think they will have enough time to complete it and come back at a later time. I
-
When I'm calling a function ME_READ_HISTORY there is an abap error appears. If I check the function manualy everything is ok. CALL FUNCTION 'ME_READ_HISTORY' EXPORTING EBELN = lw_bsis-zuonr+0(10) EBE