In-Table List with Highlighted Rows in Email Document

Note
In this article, we will use GroupDocs.Assembly to generate an In-Table List with Highlighted Rows report in Email Document format.
Note
The example reads the shop data described in The Business Layer.

In-Table List with Highlighted Rows in Email Document

Creating a In-Table List with Highlighted Rows

Practising the following steps you can create In-Table List with Highlighted Rows Template in MS Outlook 2013.

  1. Create a new Email.
  2. Press “Insert” tab to insert the table.
  3. Insert a 2x4 table.
  4. Click the cell you want to highlight.
  5. Click “Design” tab, and then select Shading.
  6. Save the template.

Reporting Requirement

As a report developer, you are required to represent the following key requirements:

  • The report must be in .eml or .msg format.
  • It must add email recipient, CSS and subject of the email.
  • The report must show each customer along with his orders.
  • Show single Customer and his single order price in a single row.
  • It must highlight the record with order price more than or equal to 400.
  • It must show sum of the order prices.
  • It must represent all the information in tabular form.

Adding Syntax to be evaluated by GroupDocs.Assembly Engine

Customer

Order Price

<<foreach [in orders]>><<if [Price >= 400]>><<[Customer.CustomerName]>>

<<[Price]>>

<<else>><<[Customer.CustomerName]>>

<<[Price]>><</if>><</foreach>>

Total:

<<[Sum(c => c.Price)]>>

Tip
For detailed technical information about syntax, expressions and report generation by the engine, please visit: Working with GroupDocs.Assembly Engine.

Download In-Table List with Highlighted Rows Template

Please download the sample In-Table List with Highlighted Rows document we used in this article:

Generating The Report

import json
from datetime import datetime

from groupdocs.assembly import DataSourceInfo, DocumentAssembler

def parse_dates(item):
    # JSON has no dates: turn the order dates into datetime objects for the template
    for key in ("OrderDate", "ShippingDate"):
        if key in item:
            item[key] = datetime.strptime(item[key], "%Y-%m-%dT%H:%M:%S")
    return item

with open("orders.json", encoding="utf-8") as f:
    orders = json.load(f, object_hook=parse_dates)

assembler = DocumentAssembler()
assembler.assemble_document("in-table-list-with-highlighted-rows.msg", "in-table-list-with-highlighted-rows-report.msg", [
    DataSourceInfo(orders, "orders"),
    DataSourceInfo("Harbor Lane Provisions <orders@harborlane.example>", "sender"),
    DataSourceInfo(["Quayside Bistro <orders@quaysidebistro.example>", "jonas.weber@harborlane.example"], "recipients"),
    DataSourceInfo("amara.osei@harborlane.example", "cc"),
    DataSourceInfo("In table list with highlighted rows", "subject"),
])

The following sample file is used in this example: in-table-list-with-highlighted-rows.msg

The following sample file is used in this example: orders.json

Binary file (MSG, 49 KB)

Download full output

Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.