Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

Table of Contents

Intro

Icon

This is Part 2 of a 2-part tutorial series for the Project Proposal scenario. It is recommended that you complete Part 1 - Getting Started before starting this section.

Following the Sample

Icon

There is a downloadable SomeFile.zip with completed templates and code. The completed example of the template is available under templates/part2_template.pptx. The code for this part of the tutorial can be found in Part2.aspx.cs.

This part focuses on taking advantage of PowerPointWriter's repeat slide behavior. It also covers passing between the Template and Application objects and deleting slides.

Adding to the Template

Importing Multiple Rows

We are going to start with the template file as it was at the end of Part 1. Add a new slide with the title 'Team Members'. This slide is going to contain data from the 'Team' data source about the proposed team members for the new project.

In order for multiple rows of data to be imported using a data marker, the data marker must be placed in a list entry or table row. For more information see Importing Multiple Rows of Data

On the 'Team Members' slide, add a new table with 2 rows and 4 columns by going to Insert > Table and choosing the appropriate size. The table will automatically be formatted based on the theme of your presentation.

In the first row of the table, add the headers 'Name', 'Role', 'Joined', and 'Previous Experience'. In the second row, add the corresponding data markers: %%=Team.Name, %%=Team.Role, %%=Team.YearJoined, and %%=Team.Experience. Finally, add the data marker %%=Proposal.ReviewStatus somewhere at the bottom of the slide. Your completed slide should look like the following:

Fitting Data on to Multiple Slides

Our next slide will contain a list of estimated costs for the project. Create a new slide and give it the title 'Expected Costs'and add %%=Proposal.ReviewStatus to the bottom of the slide. Then, add a table with 2 rows and 3 columns.

This table will contain data from the 'Cost' data source. In the first row, label the table columns 'Type', 'Item', and 'Amount'. In the second row, add the data markers %%=Cost.Type, %%=Cost.Item, %%=Cost.Amt.

The 'Cost' data source contains more data than can fit on to a single slide. In order to ensure that data does not fall off of a slide, the Data Binding Property MaxRowsPerSlide can be set. When importing data, PowerPointWriter will stop importing onto a slide when it reaches the MaxRowsPerSlide limit.

However, we want to be sure that all the data from the 'Cost' data source is imported into our presentation. To do this the RepeatSlide marker can be used. When placed as the first item in the notes section of the slide, the RepeatSlide marker will copy that slide in place and continue importing data on to the new slide. This behavior will continue until the end of the data source or the MaxRowsToImport limit is reached. For more information see Fitting Data on to Multiple Slides.

To use the RepeatSlide marker, add the text '%%RepeatSlide' as the first string of text in the notes section of the 'Expected Costs' slide. Make sure there is a space between %%RepeatSlide and the next item of text. The completed slide should look like the one below. Note the RepeatSlide marker in the notes section of the slide.

Passing between Template and Application

Our template file contains an extra slide is not necessary for the presentation. PowerPointApplication has the ability to delete slides from a presentation. As we have been working in PowerPointTemplate we must pass the Template object to the Application object. This will be done in the code section of this tutorial. See Passing between Template and Application for more information.

The extra slide in the template file look like the following:

Writing the Code

We will reuse the code from Part 1 of this tutorial. We will take out the Process and Save calls and add our new code for Part 2.

1. Get the data for the Team and Cost data sets.

Following the Sample

Icon

In the sample project, we are parsing CSV files with query results, rather than querying a live database. The CSV files are available under the data directory. There is a copy of the CSV parser, GenericParsing.dll in the bin directory of the project GetCSVData is defined in Part1.aspx.cs in a region marked Utility Methods.

These calls are to a helper method GetCSVData that parses the CSV files and returns a DataTable with the values.

If you are following in your own project and would like to parse the CSV files as well, you will need to:

  • Add a reference to GenericParsing.dll
  • Include GeneringParsing at the top of your code.
  • Add the GetCSVData method that can be found in the sample code.

2. Set the MaxRowsPerSlide property to be 10.

3. Bind the Team and Cost data sets to the template

4. Process the data

5. Pass the Template object to PowerPointApplication so that Application methods can be used.

7. We want to delete the last slide in our presentation, so we need to know how many slides there are. We can use Slides.Count to get this information.

6. Use the Slides.Delete method to delete the last slide. It takes an integer representing the index of the slide to delete as a parameter.

7.Save the final presentation and stream it in the response.

Final Code

Icon

For information on writing this code, see Part 1 - Getting Started.

Downloads

You can download the code for the Basic PowerPointWriter Tutorials as a Visual Studio solution, which includes the Project Proposal.

  • No labels