The receipt report is capable of displaying information related to a single order.
The receipt report is bound to the following data providers or datasets (when viewed from the Report Builder):
For a proper receipt display, data from each dataset is used accordingly in different sections of the RDL template.
The image below gives a better visual perspective on how and where the datasets are put to use:
Upper right corner (red)
This section only contains order related information found within the Receipt line dataset.
Each row of the used Tablix has the RowVisibility property set, so that in case the data needed to be displayed is empty, then the entire row is hidden.
Receipt lines (red)
The receipt lines are displayed in a Tablix bound to the Receipt line dataset.
Each order line is displayed on a separate row along with related information like quantity, amount, vat and so on.
Total and VAT (blue)
The VAT and Grand total information is displayed within a separate Tablix bound to the Receipt VAT subtotal line dataset.
The Total excluding VAT and Total VAT values along with the Grand total value and the charged currency are displayed within the Tablix itself, but outside of the group with the repetitive state, therefor being displayed only once.
The VAT's and their values are displayed within the Tablix group appearing therefor each on different a row.
Alternative currency (purple)
The section responsible for displaying the total values and VAT values broken down to the alternative currency defined in the administration section, uses a Tablix bound to the Receipt alternative currency line dataset.
In case no alternative currency is defined (or the values are entered using the currency defined as being the alternative currency) then this section will be hidden.
The display mode is very similar to the one in the "Total and VAT" mentioned above.
The code visible in the attached image above is responsible for checking if the used dataset doesn't contain any rows (information) or if the information found within the dataset is empty (this is done by verifying if one of the relevant information to be displayed like the GrandTotalFormatted value is empty or not)
Form of payment (red)