Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h2. Intro
{excerpt}This guide will explain how to import a single row of values into a PowerPoint presentation using data markers. This assumes a basic understanding of [data markers|How to use Data Markers].{excerpt}

|| {center} Jump to: {center} ||
| {toc:minLevel=2|maxLevel=4} |

h2. Binding Data

PowerPointTemplate has a single method for binding data to the data markers that are located in the template: {{[PowerPointTemplate.BindData]}}. Depending on the data source type and the number of rows in the data source, PowerPointWriter will either import a single row of data or [import multiple rows|Importing Multiple Rows of Data] by repeating sections of the presentation.

By default, every appearance of a data marker will be populated with the same data. For example, if %%=Header.CompanyLogo(image) appears on multiple slides, each data marker will be populated with the company logo. This behavior can be overwritten using [data binding properties|How to Use Data Binding Properties].



h2. Types of Data Sources


h4. Arrays of objects

Methods:
* {{\[PowerPointTemplate.BindData(Object\[\],String\[\],String,DataBindingProperties)\]}}
* {{\[PowerPointTemplate.BindData(Object\[\]\[\],String\[\],String,DataBindingProperties)\]}}
* {{\[PowerPointTemplate.BindData(Object{}}}{{[,]}}{{,String\[\],String,DataBindingProperties)\]}}

Arrays don't have built-in means to store column names. The user must specify the column names in a string array that is passed to {{PowerPointTemplate.BindData}} at run time.

If a multidimensional array ({{Object\[,\]}}) or a jagged array ({{Object\[\]\[\]}}) contains multiple rows, PowerPointWriter will import all the rows using built-in repeating behavior. To import a single row of data using a multidimensional or jagged array, the array can only contain a single row of data. For more information about using arrays to import multiple rows of data, please see [Importing Multiple Rows of Data].

{examples}
One dimensional array:
{code:csharp|title=C#}


            PowerPointTemplate pptt = new PowerPointTemplate();
            pptt.Open(@"C:\DataBinding\ArrayBindingTemplate.pptx");

            string[] values = {"Hello World", "subtitle"};
            string[] colNames = {"header", "subtitle"};
            DataBindingProperties DataProps = pptt.CreateDataBindingProperties();

            pptt.BindData(values, colNames, "DataSource1", DataProps);
            pptt.Process();
            pptt.Save(Page.Response,
               "ArrayBinding.pptx",
               false);


{code}
{code:vbnet|title=vb.net}
        Dim pptt As New PowerPointTemplate()
        pptt.Open("C:\DataBinding\ArrayBindingTemplate.pptx")


        Dim values = New String() {"Hello World", "subtitle"}
        Dim colNames = New String() {"header", "subtitle"}
        Dim DataProps As DataBindingProperites = pptt.CreateDataBindingProperties();

        pptt.BindData(values, colNames, "DataSource1", DataProps);
        pptt.Process()
        pptt.Save(Page.Response, _
              "ArrayBinding.pptx", _
               False)
{code}

Two dimensional array:
{code:csharp|title=C#}
          string[][] twodim = {
               new string[]{"Watertown", "MA", "02472"},
               new string[]{"Washington", "DC", "20500"}
               };
          string[] names = {"City", "State", "Zip"};
          pptt.BindData(twodim,
               names,
               "TwoDimArray",
          pptt.CreateDataBindingProperties());
          pptt.Process();
          pptt.Save(Page.Response,
               "ArrayBinding.pptx",
               false);
        {code}
{code:vbnet|title=vb.net}
          Dim twodim()() As String = New String()() { _
               New String(){"Watertown", "MA", "02472"}, _
               New String(){"Washington", "DC", "20500"}, _
               }
          Dim names As String() = {"City", "State", "Zip"}
          pptt.BindData(twodim, _
               names, _
               "TwoDimArray", _
          pptt.CreateDataBindingProperties())
          pptt.Process()
          pptt.Save(Page.Response, _
              "ArrayBinding.pptx", _
               False)
        {code}
{examples}

h4. Custom objects

TO FILL IN AFTER THE MULTIPLE ROWS WITH NOTE ABOUT "ONLY 1 ROW OF DATA"

h4. Data Readers and Data Tables

TO FILL IN AFTER THE MULTIPLE ROWS WITH NOTE ABOUT "ONLY 1 ROW OF DATA"