Generating ppt slides

Received : 2007/08/13 02:47:24
Message : Hi,

I need to generate report using Aspose.Slides. To explain the scenario, I have a jsp file which contains table with many columns with different colors. The jsp basically is a report which needs to be generated to a powerpoint. I was able to export the report to a excel file but while trying to generate it to a powerpoint, the slide contains no data at all. It is blank. Could you please help me in this matter? I have aspose.slides jar with me.

Regards,
Anupam


This message was posted using Aspose.Live 2 Forum

Dear Anupam,

Thank you for considering Aspose.Slides.

If you want to know how to create/manipulate table, rows, cells, then please see Working with Tables on Programmer’s Guide on Aspose.Slides Wiki.

Here are direct links

Please provide your source code and presentation to investigate the problem stated by you.

Hi Shakeel,



Actually the jsp has more than 3000 lines of code. Let me explain you in detail.



We have a jsp file which has many tables and columns which are colored.
Each table or column in the jsp is dynamically shown to the user
depending on certain values and calculations. The table is created
dynamically wherein there might be some addition/deletion of some
columns and also change in the cell colors. Now the point is the jsp
code itself is very huge. We have been successfull in exporting it to a
excel file by using the following code below in the same jsp…



response.setContentType(“application/vnd.ms-excel”);



Now we want to export it to a powerpoint. Also we have to keep in mind
that we have to use a java program to export it to a powerpoint. Is
there any way to leverage the code written in the jsp and export it to
a powerpoint using aspose. I guess if we use Table class of Aspose then
the formatting might not be proper and we might miss some vital
information from the report and also we need to deliver it within a few
days which might not be possible.

Please let me know if you need more details



Regards,

Anupam


Hi,



I also found that the code available in links is throwing null pointer exception for the following line .



com.aspose.slides.Table table= slide.getShapes().addTable(xPosition,yPosition,tableWidth,tableHeight,

columns,rows,borderWidth,java.awt.Color.BLUE);

Can you please validate the code and let me know.

Thank You.

Anupam




To export your report to PowerPoint, you will have to rewrite all the code.

The code is ok, the null exception will be probably due to slide variable is null

Hi ,

I have created blank slide in jsp page and able to create it in local file system.

Now i need to send the file to the user as a response.

I'm using response.setContentType("application/vnd.ms-powerpoint; charset="+fileEncodeType); and fileEncodeType = iso-8859-1;

I'm unable to send the file content to the user as an attachement. I'm getting blank page ,but getting Save/open option. And also tried with window.open ,it is also not working.

The sample code is

*********************************************************************

<%@ page import = "matrix.db.*, matrix.util.*,com.matrixone.servlet.*,com.matrixone.apps.framework.ui.*,com.matrixone.apps.domain.util.*, com.matrixone.apps.domain.*, java.util.*, java.io.*, java.net.URLEncoder, java.text.*,com.aspose.slides.*,java.awt.Color" %>
<%@include file = "../emxDesignTopInclude.inc"%>




<%
boolean blnIsExcel = false;
String strPPT = request.getParameter("PPT");
String sURL = "E:\\hello.ppt";
if("TRUE".equalsIgnoreCase(strPPT))
{
String fileEncodeType = UINavigatorUtil.getFileEncoding(context, request);
System.out.println("fileEncodeType = "+fileEncodeType);
response.setContentType("application/vnd.ms-powerpoint; charset="+fileEncodeType);
blnIsExcel = true;
}

%>
<%try
{
//Setting table parameters
int xPosition=880;
int yPosition=1400;
int tableWidth=4000;
int tableHeight=500;
int columns=4;
int rows=4;
float borderWidth=2;
Presentation presDef =new Presentation();
Slide slideDef =presDef.addEmptySlide();
com.aspose.slides.Table tableDef= slideDef.getShapes().addTable(xPosition,yPosition,tableWidth,tableHeight,
columns,rows,borderWidth,java.awt.Color.BLUE);
tableDef.setAlternativeText("myTable");
tableDef.mergeCells(tableDef.getCell(0,0),tableDef.getCell(1,0));
presDef.getSlides().removeAt(0);
FileOutputStream fostream=new FileOutputStream(new java.io.File("E:\\hello.ppt"));
presDef.write(fostream);
fostream.close();
//response.setHeader ("Content-Disposition","attachment; filename=\"" + sURL +"\"");
//response.setLocale(request.getLocale());

%>

<%
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
%>

<%@include file = "../emxDesignBottomInclude.inc"%>
<%@include file = "../../emxUICommonEndOfPageInclude.inc"%>

*****************************************************************

Please give me some code snippet how can i send this Presentation as html output.(i.e Response)

Thanks in Advance.

Anupam

Hi Shakeel,



How can we convert html tags like

etc which are in a jsp using aspose.slides?

Actually I am writing a java program to design the table which is there in the jsp file.

Sample code is like…



strMetricNameRow += “<td class=“FieldValue”>” + strMetricName + “”;

strMetricTypeRow +=
“<td class=“FieldValue”>” +
metricMap.get(“attribute[”+attrMetricType+"]") + “”;

strTimeUnitsRow +=
“<td class=“FieldValue”>” +
metricMap.get(“attribute[”+attrTimeUnits+"]") + “”;

strTimeDurationRow +=
“<td class=“FieldValue”>” +
metricMap.get(“attribute[”+attrTimeDuration+"]") + “”;



strRelBaselineHeader
+= “<td class = “Baselines” bgcolor=”"+BASE_COLOUR+"">" +
” + strMetricName + “”;

strRelReqHeader +=
“<td class = “Requirements” bgcolor=”"+REQ_COLOUR+"">" +
” + strMetricName +
“”;

strRelActualHeader +=
“<td class = “Actuals” bgcolor=”"+ACT_COLOUR+"">" +
” + strMetricName +
“”;

strRelPredictedHeader
+= “<td class = “Predictions” bgcolor=”"+PRE_COLOUR+"">" +
” + strMetricName + “”;

strSummPredictedHeader
+= “<td class = “Predictions” bgcolor=”"+PRE_COLOUR+"">" +
” + strMetricName + “”;

if(ViewEquivR)

{

strRelBaselineHeader += “<td class = “Baselines” nowrap
bgcolor=”"+BASE_COLOUR+"">" + “” + strEquiR +
“”;

strRelReqHeader += “<td class = “Requirements” nowrap
bgcolor=”"+REQ_COLOUR+"">" + “” + strEquiR +
“”;

strRelActualHeader += “<td class = “Actuals” nowrap
bgcolor=”"+ACT_COLOUR+"">" + “” + strEquiR +
“”;

strRelPredictedHeader += “<td class = “Predictions” nowrap
bgcolor=”"+PRE_COLOUR+"">" + “” + strEquiR +
“”;

strSummPredictedHeader += “<td class = “Predictions” nowrap
bgcolor=”"+PRE_COLOUR+"">" +"" + strEquiR + “”;





}

if(ViewDVS)//smita added //******

{

strRelPredictedHeader += “<td class = “Predictions” nowrap
bgcolor=”"+PRE_COLOUR+"">" + “” + strDVS + “”;

}//added smita



//populate the metric data array





try{

for(int j = 0; j < metricObjectSelects.size(); j++){

strMetricData[i][j] = (String)metricMap.get(metricObjectSelects.get(j));

strIncompletePred[i] = “”;

}

}catch(Exception e){

e.printStackTrace();

}

}

}



%>

<%



//Scorecard details data starts here



%>


>







<%

//Sai 5/24/2006

//metrics details starts here, just different types and units



%>










<%=strMetricNameRow%>




<%=strMetricTypeRow%>






<%=strTimeUnitsRow%>






<%=strTimeDurationRow%>



<%=strScorecardName%> - 
<%=strScorecardLevel%> - 
<%=strFullName%>


>




















<%=strAlloCompTolerance%> %








<emxUtil:i18n localize=“i18nId”>Name</emxUtil:i18n>


<%=strTopLevelScorecardLink%>


<emxUtil:i18n localize=“i18nId”>ScorecardName</emxUtil:i18n>


<%=strParentScorecardLink%>


<emxUtil:i18n
localize=“i18nId”>ComparisionTolerance</emxUtil:i18n>


 

<emxUtil:i18n
localize=“i18nId”>RCreatedOn</emxUtil:i18n>


 

<%=strCreatedDate%>

 

<emxUtil:i18n
localize=“i18nId”>LastUpdatedOn</emxUtil:i18n>


 

<%=strModofiedDate%>







<table border=“1”
cellpadding=“2” cellspacing=“0” BORDERCOLOR=<%=BORDER_COLOUR%>>


<emxUtil:i18n localize=“i18nId”>MetricName</emxUtil:i18n>


<emxUtil:i18n localize=“i18nId”>MetricType</emxUtil:i18n>


<emxUtil:i18n localize=“i18nId”>TimeUnits</emxUtil:i18n>


<emxUtil:i18n localize=“i18nId”>TimeDuration</emxUtil:i18n>







<%
//Sai 5/24/2006
//current system level metrics values starts here
//alignment for the first table will have to be done here

%>

>





As you can see from the code above, the table columns are dynamic and even the colors are dynamic. So I need to replicate the same thing in a java program and create dynamic table and columns in ppt slides. Please help.

Regards,
Anupam

  <%=strReliabilityHeader%>

Dear Anupam,

You can add rows using Table.addRow() and columns by Table.addColumn() method. The intersection of rows and columns form cells (

: Tag). You can retrieve indvidual cell using Table.getCell() method.

Each cell has a textframe, which can be accessed using Cell.getTextFrame() method.

TextFrame contains paragraphs TextFrame.getParagraphs(), for getting individual first paragraph TextFrame.getParagraphs().get(0)

Each Paragraph contains portions Paragraph.getPortions(), for getting individual first portion Paragraph.getPortions().get(0).

Suppose, we have a table and we want to access the 3rd portion of 2nd paragraph of the cell having column 2 and row 3. The code will look like this

Cell srcCell=tbl.getCell(2,3);

TextFrame tf=srcCell.getTextFrame();

Paragraph sndPara=tf.getParagraphs().get(1);

Portion thrdPort=sndPara.getPortions().get(2);

After getting the portion, we can set it bold, italic, underline, colorful or change its font by changing font index

Portion.setFontBold()

Portion.setFontItalic()

Portion.setFontColor() etc

For more information please visit the links I provided earlier.

I don’t know how to send presentation to html. But if you want to embed it in html, then you will probably have to use html Object or Embed tags

For example, flash files are displayed with html using those tags.

Further, you can take the slide image of your desired slides using Slide.getThumbnail() method and send to html as image.

If you like to do this, then you can also get the SVG image using Slide.saveToSVG() method.

As you said, you have successfully generated the table/report in excel, then you can also embed your excel sheet as an OLE object in your slide.

To see, how to embed OLE object, please see Aspose.Slide Wiki or follow this link

There is a known issue with OLE objects, to know it follow this link

Hi,



How can I add some columns dynamically into a certain cell of a table?
I first tried to get the cell where I wanted to add some columns…



getCell().getTable(). The getTable() in turn returns the parent table
reference. And when I use addColumn() method after getting the
reference as above, the column is added from the first cell and not in
the required cell. Please check the example below.


Baseline Requirement Actual
MF/LY Equiv R RM/LY Equiv R MF/LY Equiv R RM/LY Equiv R MF/LY Equiv R RM/LY Equiv R
0.0718 0.649989 0.4759 0.057533 0.0 1.0 0.002391 0.985756

The whole table as shown above is dynamic. There are 12 columns in total.There is a column between MF/LY and Equiv R as well as RM/LY and Equiv R.

Can you please send me a sample code as to how I can build this table dynamically without specifying the number of rows or columns during creation of a table as following..
com.aspose.slides.Table relTable=slide.getShapes().addTable(xPosition,yPosition,tableWidth,tableHeight,
columns,rows,borderWidth,java.awt.Color.BLACK);<br>

Regards,
Anupam

Hi,



1 more problem. When I have a table with 3 columns and I set the height
as 100 its working fine. But when I have another table with 16
columns and I set the height as 100, the height is not as
expected. Its very big as compared to table with lesser number of
columns. I have used the following code…


xPosition=4000;

yPosition=100;

tableWidth=1500;

tableHeight=100;

columns=intmetricSize+1;(intmetricSize can be 3 or 15 dynamically)

rows=4;

borderWidth=0.001f;





//Adding a new table to the slide for Metric Name

com.aspose.slides.Table
table1=slide.getShapes().addTable(xPosition,yPosition,tableWidth,tableHeight,

columns,rows,borderWidth,java.awt.Color.BLACK);<br>

I have tried using height as 50 and 40 but the height remains as default.
I need tables with equal height even if columns increase. Please help.

Regards,
Anupam

Hi,



This is response to the previous mail. I think adding data to a cell
gradually decreases the height of the table to the specified size. But
one more query…If there is a text in one of the cells and I need to
align the text to the middle of the cell, how do I do it?

i have used

reltf1.getParagraphs().get(0).setSpaceBefore((short)150);

but the text remains in the left hand side of the cell.



Regards,

Anupam


Below is the sample JAVA code, I have written for you.

===================================================================

private static void CreatingTable()
{
try
{

Presentation srcPres=new Presentation();
Slide sld=srcPres.getSlideByPosition(1);

int RowHeight=30;

Table tbl=sld.getShapes().addTable(300,300, 4800,RowHeight,3,1);

Paragraph para=null;
Portion port=null;

//Add first table
for(int i=0; i< tbl.getColumnsNumber(); i++)
{
para=tbl.getCell(i, 0).getTextFrame().getParagraphs().get(0);
//align it to center
para.setAlignment(TextAlignment.CENTER);

//set the text and font as bold, set font height
port=para.getPortions().get(0);
port.setText("Heading-" + i);
port.setFontHeight((short)16);
port.setFontBold(true);
}

//Add second table with 12 columns and set the subheadings
Table sndTbl=sld.getShapes().addTable(tbl.getX(), tbl.getY()+tbl.getHeight(), tbl.getWidth(),RowHeight,12, 1);
for(int i=0; i< sndTbl.getColumnsNumber(); i++)
{
para=sndTbl.getCell(i, 0).getTextFrame().getParagraphs().get(0);
//align it to center
para.setAlignment(TextAlignment.CENTER);
//set the text and font as bold, set font height
port=para.getPortions().get(0);
port.setText("Sub-" + i);
port.setFontHeight((short)8);
port.setFontBold(true);
}

//Add second row to second table and repeat above to set the text of the cells
sndTbl.addRow();
for(int i=0; i< sndTbl.getColumnsNumber(); i++)
{
para=sndTbl.getCell(i, 1).getTextFrame().getParagraphs().get(0);
//align it to center
para.setAlignment(TextAlignment.CENTER);
//set the text and font as unbold, set font height
port=para.getPortions().get(0);
port.setText("Text-" + i);
port.setFontHeight((short)8);
port.setFontBold(false);
}


srcPres.write(new FileOutputStream(new File("c:\\outTable.ppt")));


}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}

===================================================================

I have created two tables, first table has 3 columns and main header text.

The second table that starts just below the first table has 12 columns and two rows, first contains sub-heading text and the second row contains text.

Whenever, number of columns changes, you should add a new table with that changed number of columns.

Please see the output presentation generated by this code.

Hi Shakeel,



Thanks for the reply you have sent. I have started using the code as
per your mail. But there is a problem. The data that is to be populated
in the dynamic table is also dynamic. It is not static. I am taking it
from a Map. Even the color for each column has to be dynamic as you can
see below. There is no problem creating table till 2nd row because the
data is known. Now the problem is I have a Map containing the values
like {MF/LY, mmmm, RM/LY}.

I have created a table for the third row as below containing 12
columns. Now I have to iterate through the Map above and also the table
columns to populate the data in each cell. The size if the Map is
lesser than the number of columns in the table. And each alternate cell
has to be populated with value “Equiv R” as you can see below.

The fourth row has numeric values which again are dynamically fetched.
I have tried writing a code but it is populating all the cells with
Equiv R values. Here is my code.



com.aspose.slides.Table
relTable3=slide.getShapes().addTable(relTable2.getX(),relTable2.getY()+relTable2.getHeight(),relTable2.getWidth(),

tableHeight,iColsCount,1);<br>

//Accessing the text frame of the first cell of the first row in the table
TextFrame reltf3= null;

//Adding corresponding metric names along with Equiv R values(if
applicable) in the table

for(int l=0; l<metricMapList.size(); l++)

{

Map mObject = (Map)metricMapList.get(l);

  String sMetricName =

(String)mObject.get(“attribute[”+attrMetricName+"]");

String sHeader = (String)vHeader.get(l);


 for(int k=0; k<

relTable3.getColumnsNumber(); k++)

{

      reltf3 =

relTable3.getCell(k,0).getTextFrame();

reltf3.getParagraphs().get(0).setAlignment(TextAlignment.CENTER);



if(sHeader!=null)

{

reltf3.getParagraphs().get(0).getPortions().get(0).setText(sMetricName);

System.out.println(">>>>k/2>>>>"+(l/2));

        //setting

every alternate cell value as Equiv R

if(“TRUE”.equalsIgnoreCase(strViewEquivR) && (l/2)!=0)

{System.out.println(">>>>Inside Equiv R
Loop>>>>");

reltf3.getParagraphs().get(0).getPortions().get(0).setText(“Equiv R”);

}

if(“Baseline”.equals(sHeader))

{System.out.println(">>>>Inside Baseline
Loop>>>>");

iColor = Integer.parseInt("FFFF00", 16);  <br>
       
       
color = new java.awt.Color(iColor);<br>
       
       
reltf3.getFillFormat().setType(FillType.SOLID);<br>
       
       
reltf3.getFillFormat().setForeColor(color.darker());<br>
                      }<br>
       
          else

if(“Requirement”.equals(sHeader))

{System.out.println(">>>>Inside Requirement
Loop>>>>");

iColor = Integer.parseInt("FFCC00", 16);  <br>
       
       
color = new java.awt.Color(iColor);<br>
       
       
reltf3.getFillFormat().setType(FillType.SOLID);<br>
       
       
reltf3.getFillFormat().setForeColor(color.darker());<br>
                      }<br>
       
          else

if(“Predicted”.equals(sHeader))

{System.out.println(">>>>Inside Predicted
Loop>>>>");

iColor = Integer.parseInt("DADC85", 16);  <br>
       
       
color = new java.awt.Color(iColor);<br>
       
       
reltf3.getFillFormat().setType(FillType.SOLID);<br>
       
       
reltf3.getFillFormat().setForeColor(color.darker());<br>
                      }<br>
       
          else

if(“Actual”.equals(sHeader))

{System.out.println(">>>>Inside Actual
Loop>>>>");

iColor = Integer.parseInt("60BFB4", 16);  <br>
       
       
color = new java.awt.Color(iColor);<br>
       
       
reltf3.getFillFormat().setType(FillType.SOLID);<br>
       
       
reltf3.getFillFormat().setForeColor(color.darker());<br>
                      }<br>
       
      }//if   
        
       
  <br>
              <br>
              }//for<br>
          <br>
         }//for<br>

reltf3.getParagraphs().get(0).getPortions().get(0).setFontIndex(fontIndex);

reltf3.getParagraphs().get(0).getPortions().get(0).setFontHeight((short)7);



Please help me out as to how we can dynamically add values to each
cell. Please do let me know if you need any further information.





Assembly Level Reliability
Baseline Actual
MF/LY Equiv R mmmm Equiv R RM/LY Equiv R MF/LY Equiv R mmmm Equiv R RM/LY Equiv R
0.0718 0.649989
0.0 0.0 0.4759 0.057533 0.0 1.0 0.0 0.0 0.0 1.0

Using TextFrame.getParagraphs().get(0).getPortions().get(0).setText method, you can populate data dynamically, just pass it the required value from your map.

To set alternate cells of your row, you can write code something like this.

--------------------------------------------------------------------------------------------------------------------------

Cell srcCell=null;

TextFrame tf=null;

Paragraph para=null;

Portion port=null;

for(int i=0; i<tbl.getColumnNumbers; i++)

{

//if i is even

if(i%2==0)

{

srcCell=tbl.getCell(i, rowno);

tf=srcCell.getTextFrame();

para=tf.getParagraphs().get(0);

para.setAlignment(TextAlignment.CENTER);

port=para.getPortions(0).get(0);

port.setText(valueFromMap);

}

else //if cell is in odd column

{

//code for else case

}

}

--------------------------------------------------------------------------------------------------------------------------

If you still have problem, then please let me know and draw your desired table on PPT file in MS - PowerPoint and attach it here.

Hi Shakeel,



I have attached an image with this mail. The image is basically a screenshot which needs to be replicated in a ppt slide.

There are three tables in all as you can see.


  1. Assembly level reliability

    It can have a maximum of four columns(Baseline, Requirement, Predicted,
    Actual) or lesser depending on the user choice as to which

    columns to view. These choices are put into a Vector. So this Vector is dynamamic. These columns also have differnt colour code.

    Different colour code for Baseline/Requirement/Predicted/Actual as you can see.

    Each of these columns again can have different sub columns(MF/LY, Equiv
    R, mmmm, Equiv R, RM/LY, Equiv R). These sub columns are repeatitive
    for each of the above main columns

    (Baseline, Requirement etc). Now the Equiv R column again can be shown
    or not shown depending on user choice. So we can say that it is

    totally dynamic. The values under each of these sub columns again are
    dynamic which are the corresponding values for each of the above

    columns (MF/LY, Equiv R, mmmm, Equiv R, RM/LY, Equiv R).


  2. Middle table

    Similar to the above table but with some extra columns like Ref#,
    System, Assembly or Component Name, BL, Owner etc. The values row at

    the last can increase dynamically.


  3. Scorecard Summary

    Again almost the same but having some different headers like Series Calc, Manual Entry and each having a radio button before it

    showing the user selection.



    I think you got my requirement now. Please do let me know if you
    require any further details. I think if you can help me create the

    first 2 tables and a hint about the last table my problem would be solved. waiting eagerly for you reply.



    Regards,

    Anupam

First create these tables as group of two or more and then use Table.setColumnWidth function to adjust the widths of columns of these tables.

And also calculate the number of columns and rows required according to the user choice before actually creating the tables and then populate them with your data.

You can also add column to your table using Table.addColumn method and then adjust its width using Table.setColumnWidth

Also, to merge cells, you can use table.mergeCells function.

So, you should first calculate, how many columns you need at most and how many rows you need at least till there is no more change in number of columns required.

For example, in the attached ppt, you will find a table that have maximum 12 columns and it needs at least 3 rows after that number of columns would not change.

To create such a table, I have merged the first 5 cells, then 4 and then 3 in the first row.

Then I merged the cells in the second row as needed

And finally third row does not need any cell to be merged.

I hope you are getting my point.

--------------------------------------------------------------------------------

To create such a table, the code snippet looks like this.

//Create table with 12 columns and 3 rows

Table tbl=sld.getShapes().addTable(X, Y, Height, Width, 12, 3);

//Merge the cells in first row, you can write code to do it in a loop

for(int i=0; i<5; i++)

{

tbl.mergeCells(tbl.getCell(i,0), tbl.getCell(i+1,0);

}

//After merging the five cells, set its text

// So on

--------------------------------------------------------------------------------

Hi Shakeel,



Thanks for the help. I’ll try to incorporate whatever you suggested.

I have a cell which is quite big in size where at the top inside the
cell I want to write some text and at the bottom some other text. There
would be no text in between. Also before the texts I want to
append radio buttons. Can you please help me out?



One more query. I have a license for aspose.powerpoint. What is the
main difference between aspose.slides and aspose.powerpoint? Or is the
same? Do I need to purchase a different license for Aspose.slides?



Regards,

Anupam






Dear Anupam,

You can add empty lines in TextFrame.

e.g

Paragraph emptyPara=new Paragraph();

emptyPara.setText(" ");

srcCell.getTextFrame().getParagraphs().add(emptyPara);

//to add one more time, create new instance of Paragraph

emptyPara=new Paragraph();

emptyPara.setText(" ");

srcCell.getTextFrame().getParagraphs().add(emptyPara);

-------------------------------------------------------------------------------------------------------

I don't think, you can add radio button in PPT using PowerPoint. Aspose.Slides provides the subset of PowerPoint features.

-------------------------------------------------------------------------------------------------------

Aspose.PowerPoint is the old name for Aspose.Slides.

For licensing question, please use this forum.

http://www.aspose.com/Community/Forums/220/ShowForum.aspx

-------------------------------------------------------------------------------------------------------

Hi Shakeel,



Thanks for the help. I was successful in generating a ppt with all the tables.

For this I have written a method which will generate tables in a
single slide. Inside the method I have taken a slide reference and
generated the ppt there.



Presentation pres = new Presentation ();

Slide slide=pres.addEmptySlide();

I am writing the data to a file in a local file system.



Actually the ppt I am generating is for a single data object. Now the
the data object can be connected to other data objects(children). I
have the reference for the parent data object as well as the children
data objects.



Now my next step is to generate slides for the children data objects
also in the same file. Suppose a user selects a parent data object
where it has n children. Then there should be a single ppt file having
n+1 number of slides containing the report for the parent and all the
children data objects. Can you please guide me how to do that?



Currently I am passing the reference of the parent data object inside a
method as string argument and generating a single slide with the tables
in a ppt file.



Regards,

Anupam