TDL Capabilities on Dashboard
The dashboard is a new feature in TallyPrime Release 4.0 which caters to all your important business information on a single interface, which enables better data analysis and insights. It mixes data from more than 350 reports in TallyPrime and acts as a monitoring tool that provides you with a bird’s-eye view of your business health. The default Dashboard provides you with the tiles that impart an overview of your sales and purchase trends along with trading details, assets & liabilities, cash in and out flow, and others. You also have the flexibility to add or remove tiles from the Dashboard. Furthermore, you can view the Dashboard with tiles placed both horizontally and vertically.
With this feature, we are providing some TDL capabilities to bring the customised reports to the Dashboard.
Report Level Attribute – Dashboard Type
Use the attribute Dashboard Type to check whether the report belongs to the dashboard type or not. A report can fall into different categories like normal, dashboard, auto, tile and so on.
Syntax
[Report :<Report Name> ]
Dashboard Type: Yes
Example
[Report: DashboardReport]
Form : DashboardReport
Title : @@locDashBoard
Family : $$Translate:”Dashboard”
Dashboard Type : Yes
When you set the ‘Dashboard Type’ attribute to ‘Yes’, it indicates that the report is classified as a dashboard report. The platform maintains a variable at the report level to store this information.
Report Level Attribute – Default Tiles
At Report definition, the attribute Default Tiles allows to enable when the Dashboard is loaded without a saved view, it needs to load the original view of the dashboard which includes default tiles.
Syntax
[Report: <Report Name>]
Default Tiles : <Collection Name 1>[,<Collection Name 2>, <Collection Name 3>…]
where, <Collection Name 1>[,<Collection Name 2>, <Collection Name 3>…] is the name of the collection. Each collection contains object details which further include the details of the tiles report.
Example
[Report: Dashboard Report]
Dashboard Type : Yes
Default Tiles : Default Tiles Coll
[Collection: Default Tiles Coll]
Objects : Sales Trend, Purchase Trend, Trading Details, AssetsLiabilities Tile
Objects : CashBankAcct Tile, CashFlow Tile, AccountingRatios Tile
- The original view of the Dashboard can be opened via
- GoT/GoTo Dashboard/SwitchTo Dashboard when no saved view is set as the default view of the Dashboard.
- Change view when a dashboard saved view is loaded ==> Show original view.
- This capability will not work for the union of collections, as a collection it should have direct objects attached.
- This capability will not work for system formulas and variables.
Part Level Attribute – Num of Display Lines In Scroll
The part-level attribute Num of Display Lines In Scroll enables the developer to control the number of lines displayed during vertical scrolling of data. This feature provides control over the display configuration, allowing for a customized user experience.
Syntax
[Part:<Part Name> ]
Num of Display Lines In Scroll: <number>
Example
[Part: Vertical Scroll Part]
Num of Display Lines In Scroll: <number>
.
Part Level Attribute – Scroll Indicator Style
The attribute Scroll Indicator Style allows to give control over the visual style of the scrolling indicator in both data and graph parts. This attribute accepts a style definition name as its value. If the attribute is not explicitly set, the default style will be applied.
Syntax
[Part: Part Name]
Scroll Indicator Style: <Style>
Example: 1
[Part: Generic Tile Details]
Num Of Display Lines In Scroll: 2
Scroll Indicator Style : Tiny
Example: 2
[Part: Tile Graph]
Graph Type : Yes
Graph Display Num Rows : 4
Scroll Indicator Style : Smaller
Tile Navigation
To facilitate seamless navigation between the currently active tile and its adjoining tiles, four actions have been introduced:
-
Focus Previous Tile: This action allows the user to navigate to the tile positioned before the currently active tile.
-
Focus Next Tile: This action enables the user to move to the tile positioned after the currently active tile.
-
Focus Above Tile: With this action, the user can navigate to the tile positioned above the currently active tile.
-
Focus Below Tile: This action allows the user to move to the tile positioned below the currently active tile.
These tile navigation actions enhance the user experience by providing convenient methods to explore and interact with adjacent tiles in a streamlined manner.
Example
[Form: Generic Tile]
Key : Focus Previous Tile, Focus Next Tile, Focus Above Tile, Focus Below Tile
.
.
[Key: Focus Previous Tile]
Key : Ctrl + Left
Action : Focus Previous Tile
[Key: Focus Next Tile]
Key : Ctrl + Right
Action : Focus Next Tile
[Key: Focus Above Tile]
Key : Ctrl + Up
Action : Focus Above Tile
[Key: Focus Below Tile]
Key : Ctrl + Down
Action : Focus Below Tile
Action – Add Tile
The Add Tile action provides application developers with the capability to add various tiles to the dashboard. When using this action, the new tile will be appended to the end of the existing tiles in the dashboard. The user can select one tile at a time. The Add Tile action does not impose any limitations on the number of tiles that can be added. Furthermore, multiple tiles of the same type can be added without any restrictions. This action will work only if the Report is of Type Dashboard.
Syntax
[Key : <Key Name>]
Action: Add Tile :<Name of the Report>
Example
[Form: DashboardReport]
Part : DashboardReport
Top Button : Add Tile Report Key, Configure Tile, Delete Tile Report Key
[Key: Add Tile Report Key]
Key : Alt+A
Title : $$LocaleString:”Add Tile”
Action : Add Tile : Add Tile Report
Scope : Dashboard
In the above example, the key “Add Tile Report Key” is added to the Dashboard scope. If the attribute Scope : Dashboard is missing at key definition, the default scope is considered as the tile report. Therefore, the keys are to be handled at the dashboard report level.
Action – Remove Tile
The Remove Tile action provides application developers with the ability to remove the active tile from the dashboard. Users have the option to select and remove multiple tiles simultaneously. There are no limitations on the number of tiles that can be removed using the Remove Tile action. When a tile is removed, the total count of tiles in the dashboard will decrease by one. This action will work only if the Report is of Type Dashboard.
The action, Remove Tile will work only if there are tiles in the dashboard report. Conversely, the Remove Tile button should be enabled when there is at least one tile in the dashboard that can be removed.
Syntax
[Key : <Key Name>]
Action: Remove Tile
Example
[Key: Delete Tile Report Key]
Key : Alt+D
Title : $$LocaleString:”Remove Tile”
Action : Call: DBDeleteTile
Scope : DASHBOARD
Inactive : $$DashboardTotalTiles = 0
[Function: DBDeleteTile]
Local Formula : locDelete : $$String:”Delete”
010 : Query Report: SV Destroy Query : @locDelete
020 : Do If : $$LastResult: Action : Remove Tile
To ensure the expected functionality, it is necessary to set the scope to Dashboard. It is important to note that the “Remove Tile” action has a limitation: it only works on the top dashboard report in the stack.
Action – Expand Tile
The Exapand Tile action allows the user to open an active tile in the expanded view of the dashboard. This action will work only if the Report is of Type Dashboard. To ensure the expected functionality, it is necessary to set the scope to Dashboard.
Syntax
[Key : <Key Name>]
Action: Expand Tile
Example
[Key: Focus Tile]
Scope : Dashboard
Title : “Expand Tile”
Action : Expand Tile
When assigning 100% width and height to the expanded view report, the title bar of the tile will be omitted when in the expanded view. This is because the expanded view is not intended to be a full-screen report.
Action – Modify Dashboard Variables
The Modify Dashboard Variables action allows the developer to change or modify variables for all the existing tiles on the dashboard. This action will work only if the Report is of type Dashboard. To ensure the functionality works as expected, it is necessary to set the scope to Dashboard. With this action, developers can efficiently update and adjust variables across multiple tiles, providing flexibility and customization in managing the dashboard’s content and behaviour.
Syntax
[Key : <Key Name>]
Action: Modify Dashboard Variables :<Name of the Report>
Example
[Key: Change Dashboard Period]
Scope : Dashboard
Action : Modify Dashboard Variables : Change Period
In the above code, it specifies Scope : Dashboard which indicates that the modification is intended to be applied to the dashboard. The action associated with this key is “Modify Dashboard Variables,” specifically to “Change Period.” This implies that there is functionality provided to modify the period or timeframe associated with the dashboard. It suggests that the developer can adjust or customize the time period for which the dashboard data or reports are displayed. The capability allows the developer to change a variable for all the tile reports within the dashboard.
Action – Next Tile Report In Focus
The Next Tile Report In Focus action is used to switch between tiles in the Dashboard when the user expands the active tile. It provides the capability to view the next tiles in the tiles array of the Dashboard, in addition to the active tile, while in the focus view.
It is currently mapped to the Plus key. If the active tile is the last tile in the array, no action is expected. This allows the user to quickly navigate through the tiles in the Dashboard and view the next tile in sequence.
Syntax
[Key: <Key Name>]
Action : Next Tile Report In Focus
Action – Prev Tile Report In Focus
The Prev Tile Report In Focus action is used to switch between tiles in the Dashboard when the user expands the active tile. It provides the capability to view the previous tiles in the tiles array of the Dashboard, in addition to the active tile, while in the Focus view.
This action is currently mapped to the Minus key. It is used to show the previous tile, if available, in the Dashboard. If the active tile is the first tile in the array, no action is expected. This allows the user to quickly navigate through the tiles in the Dashboard and view the previous tile in sequence.
Syntax
[Key: <Key Name>]
Action : Prev Tile Report In Focus
Example
[Key: KeyViewNextTileInFocus]K
Key : Plus
Action : Next Tile Report In Focus
[Key: KeyViewPrevTileInFocus]
Key : Minus
Action : Prev Tile Report In Focus
Function – InFocusMode
The function InFocusMode facilitates checking whether the tile is presently in focus or not. By utilizing this function, developers can dynamically adjust and customize the behavior and appearance of tiles based on their focus state.
Syntax
$$InFocusMode
Example
[*Report: DBT Trading Details]
Set : TDTypeofProfit: IF Not $$InFocusMode Then $$SysName:GrossNettProfit Else ##TDTypeofProfit
Function – DashboardTotalTiles
The function DashboardTotalTiles allows to retrieve the current count of tiles in the dashboard. The total tile value for the dashboard is subject to change whenever you add or remove a tile.
Syntax
$$DashboardTotalTiles
Function – IsCheckAlwaysInDashboardTiles
The function IsCheckAlwaysInDashboardTiles is used to check if any tile report in the Dashboard has a “Check Always” attribute in it or not.
Syntax
$$IsCheckAlwaysInDashboardTiles
This function will be used within the Pre Load Check/ Check Always of a Dashboard report. This function does not require any parameters. It returns a logical value. This function returns true, if any tile within the Dashboard has the Check Always attribute. Otherwise, it returns false.
Behaviour
- When this function is used in a Dashboard report, it will execute successfully and return the appropriate logical value.
- When this function is used outside of a Dashboard report, the execution will not be successful.
Example
[Report: DashboardReport]
Check Always :($$IsCheckAlwaysInDashboardTiles AND @@RecompVchPending):+
SV User Query :@@GSTRReCompQueryMsg :”” :””:RecomputePendingVch.
Function – IsDisplayReportModified
The function IsDisplayReportModified helps to track variable modifications of non-edit reports. This function returns TRUE which indicates that at least 1 variable has been modified. Saving a view will reset it to FALSE.
Syntax
$$IsDisplayReportModified
Example
[#Report: BalanceSheet]
Variable : IsQuitTestvar
Set : IsQuitTestvar : No
[#Form: BalanceSheet]
On : Reject : $$IsDisplayReportModified : Call : QuitTestvar
On : Reject : (NOT $$IsDisplayReportModified OR ##IsQuitTestvar) : Form Reject
[Variable: IsQuitTestvar]
Type : Logical
Variable – SVDBVerticalView
At the system level, we introduce a new variable named ‘SVDBVerticalView’. You can modify this variable in the ‘F12’ configuration of the Dashboard report. The configuration settings for the vertical view can be enabled or disabled depending on the value of the ‘SVDBVerticalView’ variable.
When you enable the vertical view, each row of the dashboard displays a single tile, ensuring that all tiles are shown with the full-width space available.
It is important to note that the configuration setting for the vertical view, stored in the ‘SVDBVerticalView’ variable, will persist. This means that the chosen view configuration will be retained even when the application is closed and reopened.
Syntax
SVDBVerticalView
Example
[Variable: SVDBVerticalView]
Type : Logical
[Object: DB DisplayView]
Use : CV Template Object
Name : If ##SVDBVerticalView Then $$LocaleString:”Horizontal” Else $$LocaleString:”Vertical”
Action : DisplayAction : Set : SVDBVerticalView : NOT ##SVDBVerticalView
We implement the Vertical View feature in the dashboard to ensure that each tile report occupies the full available width. We specifically scope this functionality to the Dashboard to ensure that the feature functions as intended.
Variable – DBTilePosition
The user has the ability to modify the active/focused tile by utilizing the Alt+C key combination, which opens the configuration report specific to the active tile. Each tile within the dashboard has its own dedicated configuration report, where various settings and options can be adjusted. The tile configuration report provides the user with information regarding the current index of the tile and the total number of tiles present within the dashboard.
This can be accomplished by changing the tile position using the variable ##DBTilePosition within the tile configuration report, allowing for a customized layout and arrangement of tiles within the dashboard.
[Form: Tiles Tmpl]
Option : Dummy Option : ##DBTilePosition > 0
[Variable: DBTilePosition]
Type : Number
Default : 1
When a user modifies the position of a tile using its configuration report, the order of the tiles within the dashboard will be adjusted accordingly, adhering to the specifications defined for the dashboard. It is important to note that the user can only assign a valid position to a tile. If an invalid value is entered, it will be disregarded, and a message will be displayed to notify the user of the invalid tile position.
Graph Capabilities
Graph Style
The attribute Graph Style allows users to change the type of graph between Bar and Line. By modifying this attribute, users can switch between these two graph styles to visualize data in different ways based on their preferences and analytical requirements.
Syntax
[Part:<Part Name> ]
Graph Style: <Graph Type>
Where, <Graph Type> allows you to specify the type of graph to be used, with options including Bar or Line. The default value for this attribute is Bar. If no Graph Style attribute is provided or if the value is invalid, the default value will be used.
Example
[Part: Tile Graph]
Graph Type : Yes
Graph Style : Line
Part Level Attribute – Display X Axis Legend
The attribute “Display X Axis Legend” at the Part level provides you with control over the display of the X-axis legend in a graph.
When enabling this attribute, a color-filled square-shaped legend box appears before the X-axis legend. If multiple columns are displayed, the graph has its own legend box for each column along with corresponding legend text.
Syntax
[Part:<Part Name> ]
Display X Axis Legend : <Logical Formula>
Example
[Part: Part Name]
Display X Axis Legend : Yes
When you use the field-level attribute “Graph X Axis Legend Title,” the application considers the value of the legend. If we do not mention this field-level attribute, the field takes the name from the field definition.
Enable Graph Cursor
The attribute Enable Graph Cursor allows the user to navigate through graph rows using keyboard inputs (left/right/up/down keys) or mouse clicks. Enabling this attribute allows users to observe cursor movements, where the focus shifts from one graph bar or row to another during navigation.
Syntax
[Part:<Part Name> ]
Enable Graph Cursor : <Logical Formula>
Example
[Form: Revenue Tile]
Part : Revenue Tile Title,Revenue Details
Add : Part: Revenue Graph Border
Add : Part: Revenue Graph
[Part: Revenue Graph]
Graph Type : Yes
Enable Graph Cursor : Yes
Part Level Attribute – Shorten Y Axis Label
The attribute Shorten Y Axis Label to specify if the graph should shorten y-axis labels. This allows the application developer to control the display of Y-axis legends.
It serves as a configuration setting to determine whether to shorten Y-axis values. The application will only display the legend if it enables this attribute and shortens the values.
If you set the attribute to Yes, it will shorten the values based on the value of the first Y-axis interval.
Syntax
[Part:<Part Name> ]
Shorten Y Axis Label : <Logical Formula>
Example
[Part: <Part Name>]
.
.
Shorten Y Axis Label : Yes
When the application developer does not use the Shorten Y Axis Label attribute or sets it to No, accordingly the application allocates the same width on the right side after the x-axis ends as it does on the left side of the origin.
This ensures symmetrical spacing around the graph, providing consistency in the visual representation of the data.
Part Level Attribute – X Axis Label Word Wrap
The part level attribute X Axis Label Word Wrap, allows the application developer to decide whether to wrap the x-axis label words or not. When you enable this attribute, it supports word wrapping by enabling multiline labels with a maximum of ‘3’ lines for the x-axis labels. With word wrapping enabled, it utilizes the entire space between the x-axis ticks to display the string text, ensuring optimal utilization of the available area for x-axis labels.
Syntax
[Part:<Part Name> ]
X Axis Label Word Wrap : <Logical Formula>
Example
[Part: Vertical Scroll Part]
X Axis Label Word Wrap : Yes
Field Level Attribute – Background
At the Field level, we enhance the Background attribute to specify the color of the bar graph.
Behaviour
When you set the Background attribute in the Field, it will use the same color for the bar graph. If you don’t set the attribute value, it will pick the color from the predefined colors list in the platform, which includes Red, Blue, Soft Violet, Magenta, Yellow, and Green.
Syntax
[Field:<Field Name> ]
Background : <Color>