Reporting

BDM can generate MS Word (.docx) reports for the deals in the current folder, and test reports for the current deal. A set of standard report formats is provided, but the powerful report format manager can be used to change them, to copy and edit them, or to create completely new reports.

One of the reports can be set as the default, to be generated for the current folder with the Ctrl-F10 shortcut, and as a test report for the current deal with the F10 shortcut.

The Reports icon on the folder menu and the Test Reports icon on the deals menu are drop-downs that display a list of the report formats for the user to select from. The formats are listed alphabetically by Report Name, and the user can create a single level of organization by prefixing the name with a category followed by | (the ‘pipe’ character, which is normally Shift-\ on UK keyboards). BDM automatically organizes reports into their categories. For instance, you might create report formats named ‘Bidding Practice|West’, ‘Bidding Practice|East’ and ‘Bidding Practice|EW’.

Report formats are managed from a separate window loaded from the Report Management button on the Settings tab.

IMAGE WITH A SENSIBLE SET OF REPORT FORMATS.

There are options to duplicate, delete or export the selected report format, to create a new one, or to import one.

Editing a Report Format

The selected report format can be edited with the Edit button. This brings up the report editing dialogue where you control the details of the report. You specify general report properties such as page dimensions, layout properties such as number of columns, and precise details of what elements of the deals are shown and how they are formatted.

This is so flexible that you can produce reports as varied as Curtain Cards or Hand Commentaries, both of which are included in the standard supplied set.

IMAGE OF A TYPICAL REPORT FORMAT.

Report Format Structure

A report format consists of a hierarchical tree of items, each with properties that the user can set. A new report format is pre-populated with a single root Report item, containing a single child Deal item. The user adds child items to the Deal item. Most of the item types that can be added to the Deal item correspond to properties of the deal, such as summary, dealer, contract. These cannot contain other items, but there are also table structure items that can contain other items.

A child item is added by selecting its parent and clicking the item type on the left-hand menu. The menu only enables types that are valid children of the selected type. An item is deleted by selecting it and clicking the delete icon on the left menu. All the deleted item’s descendents are deleted as well. The delete icon is only enabled if it is valid to delete the selected item. An item is moved by dragging it to its new position amongst its siblings, or to a parent table cell.

Many of the item properties will be familiar to anyone who has seen a Word document.

Common Properties

Some properties are common to all items:

  • Paragraph: A collection of paragraph properties corresponding to MS Word paragraph properties, such as alignment and indentation.

  • Font: The font used for the main text of the item.

  • SuitSymbolRepresentation: The way that suit symbols are represented.
    • Symbol: Use characters from the standard Symbol typeface in colour. Set SuitSymbolFont to that typeface when using this setting. You normally need the same font size as the Font property.

    • Alphabetic: Use the S, H, D, C characters from the main font in monochrome. (SuitSymbolFont is not used.)

    • Outline: Use the SuitSymbolFont to display Unicode card suit symbols (from the Miscellaneous Symbols block) in monochrome. The black suits use the filled versions and the red suits use the outline versions. Be warned that support for Unicode outline heart (U+2661 White Heart Suit) is very poor. In Windows 10 the best supplied typeface is Yu Gothic UI. In Windows 7 the best typeface is Meiryo UI.

    • Red: Use the SuitSymbolFont to display Unicode card suit symbols (from the Miscellaneous Symbols block) in colour. Filled versions are used for all suits. Be warned that support for Unicode suits is patchy. In Windows 10 a good supplied typeface is Yu Gothic UI. In Windows 7 a good typeface is Meiryo UI.

  • SuitSymbolFont The font use when SuitSymbolRepresentation is Outline or Red. See the warnings above.

The Font, SuitSymbolRepresentation and SuitSymbolFont properties are in category called Heritable. This means that if an item leaves the property unchanged, with its default value, it will inherit the value of its parent. Note that the two font properties only inherit if they are completely unchanged.

Some properties are common to multiple items types, but not all:

  • Title: Text to display as a heading for the item. Only displayed if the Title text and the value for the item in the deal are both non-empty.

  • TitleFont: Font to use for the item heading when displayed.

  • TitleParagraph: Paragraph properties for the item heading when displayed.

  • FormatString (and similar): A [C#] format string. Parameters are numbered from zero and are specific to the item type. They are defined in the sections below. Parameters are used in the format string with {n} where n is the parameter number. For instance “{0}”.

  • InsertParagraphBefore: For item types that render as Word tables, this specifies whether a paragraph is inserted before the table. This is useful to avoid tables running into each other without adding a CustomText item.

Report

The Report item cannot be deleted and always contains only a single Deal item. There can only be a single Report item and its properties relate to the whole report:

  • Name: The name of the report format. This is used in the report list, and in the menu dropdowns.

  • PageSize: The width and height of the pages in 1440ths of an inch. A4 is 11906 x 16838. A5 is 8419 x 11906. PageSize is half the sheet size when the BookFold feature is used.

  • BookFold: Word’s BookFold feature, designed for automatic arrangement of pages for folding duplex-printed sheets into a booklet.

  • ColumnCount: The number of vertical columns for the layout of the deals.

  • GenerateTitlePage: Specifies that a title page should be generated for the report. The user will likely still need to edit it.

  • Title: Title text to be included in the report title page instead of the report name.

Deal

There can only be one Deal item and it is the single child item of the Report item. It cannot be deleted. The properties relate to general aspects of how each deal is rendered:

  • SeparateColumn: True to start a new column (or page) for each deal.

Board

The board number.

  • FormatString: Parameter 0 is the board number. For instance “Board {0}”.

Summary

The title text.

  • FormatString: Parameter 0 is the entire title text.

Dealer

The dealer.

  • FormatString: Parameter 0 is the single-character dealer. For instance “Dealer {0}”.

Vulnerability

The vulnerability.

  • FormatString: Parameter 0 is the vulnerability text. For instance “Vulnerability {0}”.

CardTable

A table representation of the cards. There is some control over which hands are displayed, and the table can optionally include HCPs. The board number, dealer and vulnerability can also be included be specifying a format string, as described above. Use an empty format string to suppress the display of each.

  • ShowAllHands: If true, then all hands are considered. If false, only hands set as shown for the deal are considered. Considered hands are then displayed if not excluded by AlwaysExclude.

  • AlwaysExclude: Specifies hand positions that are always excluded.

  • BoardNumberFormatString: Parameter 0 is the board number. For instance “Board {0}”.

  • DealerFormatString: Parameter 0 is the single-character dealer. For instance “Dealer {0}”.

  • VulnerabilityFormatString: Parameter 0 is the vulnerability text. For instance “Vuln {0}”.

  • ShowHcps: Specifies whether HCPs are shown.

  • ClothColour: The colour of the central ‘felt’.

Contract

The contract.

  • FormatString: Parameter 0 is the contract text. Parameter 1 is the declarer text. For instance “Contract: {0} by {1}”

  • FullNameOfDeclarer: Specifies whether to use full text for the declarer (if used in the format string), or just a single character.

BiddingTable

A table showing the bidding for the deal.

  • Justification: Horizontal justification of the whole table within the column/page margins.

Lead

The lead card.

  • FormatString: Parameter 0 is lead card text. For instance “Lead: {0}”.

LeadCommentary

The lead note.

  • FormatString: Parameter 0 is the full lead note text.

Introduction

The intro text.

  • FormatString: Parameter 0 is the full intro text.

Analysis

The analysis text.

  • FormatString: Parameter 0 is the full analysis text.

Source

The source text.

  • FormatString: Parameter 0 is the full source text.

CustomText

A paragraph of custom text.

  • Text: The custom text to display. Leave empty to display an empty paragraph.

  • WithColumnBreak: Whether to include a column break for the paragraph.

CustomXml

Custom XML to be inserted in the internal Open XML of the Word document. Don’t use this unless you really know what you are doing.

  • Xml: The custom XML to insert.

MakableContracts

A table of the makable contracts and optionally the par results. The entire item is omitted for deals with incomplete hands. The par results are always omitted for deals with no vulnerability specified.

  • ShowOptimumResults: Whether to include par results. They are only displayed for deals with vulnerability specified.

  • ShowTricks: Whether to show makable tricks or makable contract levels.

  • HeaderRowHasDeclarers: Whether to use declarers for the horizontal header or contract denominations.

  • ShowGridLines: Whether to include inner grid lines.

  • Justification: The horizontal alignment for the entire table within the column/page margins.

Hand

The cards in the single specified hand. (Paragraphs are used without a Word table.) A (bold) heading paragraph can optionally be specified using a format string. (See above.) Use an empty string to suppress the header.

  • TablePosition: The table position of the hand to display.

  • HcpFormatString: Parameter 0 is the HCP count. Parameter 1 is the full table position text. For instance “{1} (HCP {0})”.

Table

Use the Table, Row and Cell items to build a Word table where the Cell items can contain other items (including inner Table items). Some attempt is made to maintain the same number of cells in each row. Adding or deleting a cell to a row adds or deletes an entire column. That is it adds or deletes corresponding items to all rows. Adding an additional row automatically adds the correct number of cells.

If you drag cells between rows (or drag rows between tables), make sure you end up with the same number of cells in all rows of each table. Do not compromise the rectangular structures.

  • Borders: Specifies which (single thin) outer table borders are displayed.

  • Alignment: The horizontal alignment for the entire table within the column/page margins.

  • Width: The horizontal size type specification for the table as a whole. The SizeType values are as follows:
    • AutoSize: Width determined by that of the columns.

    • Absolute: Fixed width determined by the Width sub-property in millimetres.

    • Percent: Width determined by the Width sub-property as a percentage within the column/page margins.

  • ColumnStyles: A separate dialogue with a column style for each column in the table. Each style is like the table Width property. Do not add column styles using the dialogue. They are created automatically to match the number of cells in each row.

Deleting a Table item deletes all its descendents.

Row

  • Borders: Specifies which (single thin) row borders are displayed.

  • CantSplit: Specifies whether the row can be split across column/page boundaries. This doesn’t stop the table as a whole from being split.

Deleting a Row item deletes all its descendents.

Cell

  • Borders: Specifies which (single thin) cell borders are displayed.

  • ColumnSpan: Specifies how many columns the cell contents span. Only the first cell of a column span should have contents specified.

  • RowSpan: Specifies how many rows the cell contents span. Only the first cell of a row span should have contents specified.

A cell can span multiple rows and columns at the same time. It then occupies a rectanglular region of the table and only the top left cell of the region should have contents specified.

Deleting a Cell item deletes the entire column. That is it deletes corresponding Cell items from all Row items in the table, and all their descendents.