---
title: clsMenuPage
summary: API reference for clsMenuPage.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.Menu
reference_type: package
---

# clsMenuPage

`clsMenuPage` is a BOF business object representing a single menu page record from the `MENU_PAGE` table. A menu page is a named grouping of menu items associated with an application code and configured with toolbar-button visibility flags and tooltips.

## Purpose
- Persist and retrieve a single menu page record with all associated toolbar-button configuration.
- Support sequence-based key generation, insert (StringBuilder-assembled SQL), update, and delete with contention checking per [BR-MNU-02](../../business-rules.md#br-mnu-02-dml-row-count-enforcement).

## Context
- Namespace: `SAIF.Business.Menu`
- Assembly/package: `SAIF.BOF.Business.Menu`

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `MenuPageSeqNum` | `Property MenuPageSeqNum As Decimal` | Primary key; generated via `MENU_PAGE_SEQ` ([SQL-003](../../sql/SQL-003-saif-business-menu.md)).* |
| `PageName` | `Property PageName As String` | Display name of the page (max 100 chars).* |
| `FavoriteName` | `Property FavoriteName As String` | Favorite label for the page (max 100 chars).* |
| `PageLink` | `Property PageLink As String` | URL/link for the page (max 1000 chars).* |
| `ApplicationCode` | `Property ApplicationCode As String` | Application code scoping this page (max 5 chars).* |
| `IsDisplaySavePreferences` | `Property IsDisplaySavePreferences As Boolean` | Controls `SAVE_PREFERENCES_FLAG` toolbar button.* |
| `IsDisplayPrint` | `Property IsDisplayPrint As Boolean` | Controls `PRINT_FLAG` toolbar button.* |
| `IsDisplayDownload` | `Property IsDisplayDownload As Boolean` | Controls `DOWNLOAD_FLAG` toolbar button.* |
| `IsDisplayHelp` | `Property IsDisplayHelp As Boolean` | Controls `HELP_FLAG` toolbar button.* |
| `IsDisplaySave` | `Property IsDisplaySave As Boolean` | Controls `SAVE_FLAG` toolbar button.* |
| `IsDisplayInsert` | `Property IsDisplayInsert As Boolean` | Controls `INSERT_FLAG` toolbar button.* |
| `IsDisplayDelete` | `Property IsDisplayDelete As Boolean` | Controls `DELETE_FLAG` toolbar button.* |
| `PrintToolTip` | `Property PrintToolTip As String` | Tooltip for Print button (max 1000 chars).* |
| `DownloadToolTip` | `Property DownloadToolTip As String` | Tooltip for Download button (max 1000 chars).* |
| `SaveToolTip` | `Property SaveToolTip As String` | Tooltip for Save button (max 1000 chars).* |
| `InsertToolTip` | `Property InsertToolTip As String` | Tooltip for Insert button (max 1000 chars).* |
| `DeleteToolTip` | `Property DeleteToolTip As String` | Tooltip for Delete button (max 1000 chars).* |

## Inherited public members

The members below are inherited from the BOF framework base class `clsBusinessBase` used by `clsMenuPage`.

| Member | Signature | Purpose |
| --- | --- | --- |
| `MyGuid` | `Public ReadOnly Property MyGuid() As String` | Returns the object's generated GUID identifier. |
| `IsNew` | `Public ReadOnly Property IsNew() As Boolean` | Indicates whether the object represents unsaved or newly created data. |
| `IsDeleted` | `Public ReadOnly Property IsDeleted() As Boolean` | Indicates whether the object is marked for deferred deletion. |
| `IsDirty` | `Public Overridable ReadOnly Property IsDirty() As Boolean` | Indicates whether the object has changed since it was loaded or saved. |
| `SetValueOnChange` | `Public Function SetValueOnChange(Of T)(ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean` | Compares and assigns a field value, optionally marking the object dirty when the value changes. |
| `IsSavable` | `Public Overridable ReadOnly Property IsSavable() As Boolean` | Returns `True` only when the object is both dirty and valid. |
| `PreviousLinkItem` | `Public ReadOnly Property PreviousLinkItem() As ILinkItem` | Returns the previous item in the linked-list chain maintained by the framework. |
| `NextLinkItem` | `Public ReadOnly Property NextLinkItem() As ILinkItem` | Returns the next item in the linked-list chain maintained by the framework. |
| `SetPreviousLink` | `Public Sub SetPreviousLink(ByRef inLinkItem As ILinkItem)` | Sets the previous linked-list reference. |
| `SetNextLink` | `Public Sub SetNextLink(ByRef inLinkItem As ILinkItem)` | Sets the next linked-list reference. |
| `InsertLinkAfter` | `Public Sub InsertLinkAfter(ByRef inLinkItem As ILinkItem)` | Inserts another linked item immediately after the current item. |
| `InsertLinkBefore` | `Public Sub InsertLinkBefore(ByRef inLinkItem As ILinkItem)` | Inserts another linked item immediately before the current item. |
| `RemoveLinks` | `Public Sub RemoveLinks()` | Detaches the object from its linked-list neighbors. |
| `BeginEdit` | `Public Sub BeginEdit()` | Starts a nested edit session by snapshotting the object state. |
| `CancelEdit` | `Public Sub CancelEdit()` | Cancels the current edit session and restores the previous snapshot. |
| `ApplyEdit` | `Public Sub ApplyEdit()` | Commits the current edit session and accepts the edited state. |
| `Delete` | `Public Sub Delete()` | Marks a parent object for deletion during the next save operation. |
| `Clone` | `Public Function Clone() As Object` | Creates a cloned copy of the business object. |
| `ValidateOnDelete` | `Public Property ValidateOnDelete() As Boolean` | Controls whether business-rule validation also runs during delete saves. |
| `Rules` | `Public ReadOnly Property Rules() As clsRulesManager` | Exposes the framework rules manager for validation and message tracking. |
| `IsValid` | `Public Overridable ReadOnly Property IsValid() As Boolean` | Runs rule checking and reports whether the object is currently valid. |
| `ErrorCount` | `Public ReadOnly Property ErrorCount() As Integer` | Returns the number of current validation errors. |
| `ErrorMessages` | `Public ReadOnly Property ErrorMessages() As String()` | Returns the current validation error messages. |
| `WarningCount` | `Public ReadOnly Property WarningCount() As Integer` | Returns the number of current warning messages. |
| `WarningMessages` | `Public ReadOnly Property WarningMessages() As String()` | Returns the current warning messages. |
| `InformationalCount` | `Public ReadOnly Property InformationalCount() As Integer` | Returns the number of informational validation messages. |
| `InformationalMessages` | `Public ReadOnly Property InformationalMessages() As String()` | Returns the current informational messages. |
| `Save` | `Public Overridable Function Save() As Boolean` | Persists the object when it is valid and dirty. |
| `SaveChild` | `Public Overridable Function SaveChild() As Boolean` | Persists the object when it is operating as a child object. |
| `IsReadOnly` | `Public Overridable ReadOnly Property IsReadOnly() As Boolean` | Indicates whether the framework currently treats the object as read-only. |
| `XMLElementName` | `Public Property XMLElementName() As String` | Gets or sets the element name used when emitting XML. |
| `GetDataset` | `Public Sub GetDataset(ByRef inDS As DataSet)` | Adds the object data to the supplied `DataSet` using the default table name. |
| `GetDataset` | `Public Sub GetDataset(ByRef inDS As DataSet, ByVal inTableName As String)` | Adds the object data to the supplied `DataSet` using the specified table name. |
| `GetReportXML` | `Public Function GetReportXML(ByVal inElementName As String) As String` | Generates report-oriented XML using the supplied root element name. |
| `GetReportXML` | `Public Function GetReportXML() As String` | Generates report-oriented XML using the default element name. |
| `ToXml` | `Public Function ToXml() As String` | Serializes the object to XML using the configured or default tag name. |
| `ToXml` | `Public Function ToXml(ByVal inTagName As String) As String` | Serializes the object to XML using the supplied tag name. |

## Behavioral notes
- On `BeforeCreate`, executes [SQL-003](../../sql/SQL-003-saif-business-menu.md) to obtain `MenuPageSeqNum` from `MENU_PAGE_SEQ`.
- On `BeforeInsert`, binds 18 parameters and executes the StringBuilder-assembled [SQL-009](../../sql/SQL-009-saif-business-menu.md); `UPDATE_DATE` is set to `SYSDATE`.
- On `BeforeRetrieve`, binds `MenuPageSeqNum` and executes [SQL-024](../../sql/SQL-024-saif-business-menu.md).
- On `BeforeUpdate`, binds 18 parameters; executes the StringBuilder-assembled [SQL-035](../../sql/SQL-035-saif-business-menu.md).
- On `BeforeDelete`, binds `MenuPageSeqNum`; executes [SQL-042](../../sql/SQL-042-saif-business-menu.md).
- All DML enforce [BR-MNU-02](../../business-rules.md#br-mnu-02-dml-row-count-enforcement).

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

## Sources
- `Legacy\BusinessObjectFramework\clsBusinessBase.vb`
- `Business\SAIF.Business.Menu\clsMenuPage.vb`
