This guide walks you through creating operator interfaces with the Displays module. You'll learn to design displays, configure layouts, and deploy to multiple platforms from a single design.
Prerequisites:
Guide Structure: This overview links to specific guides for different aspects:
Quick Method - Drag Tags:
Manual Method - Add Components:
Type | Purpose | Best For | Resize Behavior |
---|---|---|---|
Canvas | Process graphics | P&IDs, equipment layouts | Maintains relationships |
Dashboard | Data visualization | KPIs, reports, analytics | Responsive grid |
Page | Main content | Primary displays | Replaces current |
Popup | Overlay content | Trends, details | Non-modal overlay |
Dialog | User interaction | Confirmations, inputs | Modal, blocks UI |
Setting | Deploys To | Use When |
---|---|---|
Portable | WPF + HTML5 | Default choice, maximum compatibility |
WPF Only | Windows clients | Using Windows-specific features |
HTML5 Only | Web browsers | Web-only deployment |
For mobile devices, RESS (Responsive + Server-Side) automatically:
Component | Use For | Key Properties |
---|---|---|
TextBox | Values, labels | Text, Font, Alignment |
Button | Commands | Action, MouseDown |
ComboBox | Selection | Items, SelectedValue |
DataGrid | Tables | DataSource, Columns |
TrendChart | Time series | Tags, TimeRange |
AlarmWindow | Alarm display | Filter, Columns |
Quick dynamic properties (double-click element):
From Script:
csharp
// Replace content area
@Display.ProcessOverview.Open();
// Open as popup
@Display.TrendPopup.OpenPopup();
// Open as dialog
@Display.ConfirmDialog.OpenDialog();
From Button:
csharp
// Switch entire layout
@Client.OpenLayout("OperatorLayout");
// Just change content
@Display.NewDisplay.Open();
csharp
public void DisplayOpening()
{
// Initialize before display opens
LoadUserPreferences();
}
public void DisplayIsOpen()
{
// Execute after display is visible
StartDataRefresh();
}
public void DisplayClosing()
{
// Cleanup when closing
SaveUserSettings();
}
csharp
public void Button1_Click(object sender, EventArgs e)
{
@Tag.PumpStart = 1;
@Display.PumpDetails.OpenPopup();
}
@(LocalizationKey)
@Client.Localization = "Spanish"
? Limit elements per display - Keep under 500 elements ? Use symbols - Reuse instead of recreating ? Optimize images - Compress and resize appropriately ? Minimize animations - Use only necessary dynamics ? Test on target platform - Verify performance early
Display Won't Open
Poor Performance
Platform Differences
This structure provides a solid overview while acknowledging that detailed coverage requires separate guides for each major area. Would you like me to create one of the child guides (like "Creating Canvas Displays" or "Building Dashboards") to show how they would complement this main guide?
Claude can make mistakes.
Please double-check responses.