Scripting > CxHmiFac > FacNavBar Object > FacNavBar Example

FacNavBar Example

The following is an example using the CxHmiFac FacNavBar object in CygNet Studio.

FacNavBar object
FacNavBar Example

For a useful example of a Facility Navigation Bar implemented in a pre-designed screen, open FacNavBar_GrpGrid.csf in the APPS SCREXAMP folder.

Script File

'(Declarations)

 

Sub UpdateUI()

 

eboLevels.Text = FacNavBar.X.Levels - 1

eboInitialFilter.Text = FacNavBar.X.InitialFilter

If FacNavBar.X.RuntimeCfgAutoPersist Then

ckbRTimeCfgAutoPersist.Check = 1

Else

ckbRTimeCfgAutoPersist.Check = 0

End If

 

btnNext.Enable = FacNavBar.X.CanSelNext(eboLevel.Text, ckbWrap.Value)

btnPrev.Enable = FacNavBar.X.CanSelPrev(eboLevel.Text, ckbWrap.Value)

 

btnNavNext.Enable = FacNavBar.X.CanNavNext(ckbNavWrap.Value)

btnNavPrev.Enable = FacNavBar.X.CanNavPrev(ckbNavWrap.Value)

 

End Sub

 

Sub LoadGrid()

 

Dim arrUdcList

Dim iLowerBound

Dim iUpperBound

Dim strFacTag

 

Dim strUis

strUis = FacNavBar.X.SiteService

 

strFacTag = FacNavBar.X.GetSelectedTargetFacTag()

 

If strUis = "" Then

msgbox "Set the Site.Service"

Exit Sub

End If

 

If strFacTag = "" Then

msgbox "Invalid FacilityTag (" + strFacTag + ")"

Exit Sub

End If

 

Dim aryFacTag, strFacility

aryFacTag = Split(strFacTag, "::")

strFacility = aryFacTag(1)

 

'

' Get the udc list for this facility.

'

GetUdcList strFacTag, arrUdcList

 

iLowerBound = 0

iUpperBound = ubound(arrUdcList)

 

'

' Load up the grid rows/columns

'

Dim i, j, itemid

 

CxGrpGrid.x.Stop

CxGrpGrid.x.ClearRows

 

CxGrpGrid.x.Columns = 4

For j=0 To 3

CxGrpGrid.x.ColSiteService(j) = strUis

CxGrpGrid.x.ColFacility(j) = strFacility

Next

 

CxGrpGrid.x.ColLabelText(0) = "Description"

CxGrpGrid.x.ColDisplayItem(0) = 10007

 

CxGrpGrid.x.ColLabelText(1) = "Value"

CxGrpGrid.x.ColDisplayItem(1) = 10001

 

CxGrpGrid.x.ColLabelText(2) = "Units"

CxGrpGrid.x.ColDisplayItem(2) = 10008

 

CxGrpGrid.x.ColLabelText(3) = "Time"

CxGrpGrid.x.ColDisplayItem(3) = 10002

 

For i=iLowerBound To iUpperBound

CxGrpGrid.x.RowUdc(i) = arrUdcList(i)

CxGrpGrid.x.RowLabelText(i) = CxGrpGrid.x.RowUdc(i)

Next

 

CxGrpGrid.x.Start

 

End Sub

 

Sub ListInitialFilterRules()

 

lboEnabledRules.ResetContent

lboDisabledRules.ResetContent

 

Dim aryEnabledRules, aryDisabledRules

FacNavBar.X.GetInitialFilterRuleNames aryEnabledRules, aryDisabledRules

 

Dim i

For i = 0 To UBound(aryEnabledRules)

lboEnabledRules.AddString(aryEnabledRules(i))

Next

 

For i = 0 To UBound(aryDisabledRules)

lboDisabledRules.AddString(aryDisabledRules(i))

Next

 

End Sub

 

'End of (Declarations)

 

'(GlobalDeclarations)

 

'End of (GlobalDeclarations)

 

Sub btnDisableRule_EventClick()

Dim This : Set This = btnDisableRule

 

If lboEnabledRules.GetCurSel() < 0 Then

Exit Sub

End If

 

FacNavBar.X.EnableInitialFilterRule lboEnabledRules.GetText(lboEnabledRules.GetCurSel()), False

 

ListInitialFilterRules()

 

ckbEnableAllInitialFilterRules.Check = 2

 

End Sub

 

Sub btnEnableRule_EventClick()

Dim This : Set This = btnEnableRule

 

If lboDisabledRules.GetCurSel() < 0 Then

Exit Sub

End If

 

FacNavBar.X.EnableInitialFilterRule lboDisabledRules.GetText(lboDisabledRules.GetCurSel()), True

 

ListInitialFilterRules()

 

ckbEnableAllInitialFilterRules.Check = 2

 

End Sub

 

Sub btnNavNext_EventClick()

Dim This : Set This = btnNavNext

 

Dim iLevel

iLevel = FacNavBar.X.NavNext(ckbNavWrap.Value)

 

UpdateUI()

LoadGrid()

 

End Sub

 

Sub btnNavPrev_EventClick()

Dim This : Set This = btnNavPrev

 

Dim iLevel

iLevel = FacNavBar.X.NavPrev(ckbNavWrap.Value)

 

UpdateUI()

LoadGrid()

 

End Sub

 

Sub btnNext_EventClick()

Dim This : Set This = btnNext

 

Dim iRet

iRet = FacNavBar.X.SelNext(eboLevel.Text, ckbWrap.Value)

 

UpdateUI()

LoadGrid()

 

End Sub

 

Sub btnPersistRTimeCfg_EventClick()

Dim This : Set This = btnPersistRTimeCfg

 

FacNavBar.X.PersistRunTimeCfg

 

End Sub

 

Sub btnPrev_EventClick()

Dim This : Set This = btnPrev

 

Dim iRet

iRet = FacNavBar.X.SelPrev(eboLevel.Text, True)

 

UpdateUI()

LoadGrid()

 

End Sub

 

Sub btnRestoreDTimeCfg_EventClick()

Dim This : Set This = btnRestoreDTimeCfg

 

FacNavBar.X.RestoreDesignTimeCfg

 

UpdateUI()

ListInitialFilterRules()

LoadGrid()

 

End Sub

 

Sub btnRestoreRTimeCfg_EventClick()

Dim This : Set This = btnRestoreRTimeCfg

 

FacNavBar.X.RestoreRunTimeCfg()

 

UpdateUI()

ListInitialFilterRules()

LoadGrid()

 

End Sub

 

Sub btnSetInitialFilter_EventClick()

Dim This : Set This = btnSetInitialFilter

 

FacNavBar.X.InitialFilter = eboInitialFilter.Text

 

UpdateUI()

ListInitialFilterRules()

 

End Sub

 

Sub btnSetLevelCnt_EventClick()

Dim This : Set This = btnSetLevelCnt

 

FacNavBar.X.Levels = eboLevels.Text

 

End Sub

 

Sub btnSetSiteService_EventClick()

Dim This : Set This = btnSetSiteService

 

TheView.SiteService = eboSiteService.Text

TheView.Restart

 

End Sub

 

Sub ckbEnableAllInitialFilterRules_EventChange()

Dim This : Set This = ckbEnableAllInitialFilterRules

 

If ckbEnableAllInitialFilterRules.Check <> 2 Then

FacNavBar.X.EnableAllInitialFilterRules ckbEnableAllInitialFilterRules.Check()

ListInitialFilterRules()

End If

 

End Sub

 

Sub ckbNavWrap_EventChange()

Dim This : Set This = ckbNavWrap

 

UpdateUI()

 

End Sub

 

Sub ckbRTimeCfgAutoPersist_EventChange()

Dim This : Set This = ckbRTimeCfgAutoPersist

 

FacNavBar.X.RuntimeCfgAutoPersist = ckbRTimeCfgAutoPersist.Check

 

End Sub

 

Sub ckbWrap_EventChange()

Dim This : Set This = ckbWrap

 

UpdateUI()

 

End Sub

 

Sub eboLevel_EventChange()

Dim This : Set This = eboLevel

 

If eboLevel.Text <> "" Then

btnNext.Enable = FacNavBar.X.CanSelNext(eboLevel.Text, ckbWrap.Value)

btnPrev.Enable = FacNavBar.X.CanSelPrev(eboLevel.Text, ckbWrap.Value)

Else

btnNext.Enable = False

btnPrev.Enable = False

End If

 

End Sub

 

Sub eboLevel_EventInitialize()

Dim This : Set This = eboLevel

 

eboLevel.Text = FacNavBar.X.Levels - 1

 

End Sub

 

Sub eboSiteService_EventInitialize()

Dim This : Set This = eboSiteService

 

eboSiteService.Text = TheView.SiteService

 

End Sub

 

Sub FacNavBar_EventInitialize()

Dim This : Set This = FacNavBar

 

UpdateUI()

 

End Sub

 

Sub FacNavBar_EventOnSelChangeLevel(Level)

Dim This : Set This = FacNavBar

 

LoadGrid()

 

End Sub

 

Sub TheView_EventInitialize()

Dim This : Set This = TheView

 

FacNavBar.X.SiteService = TheView.SiteService

 

ckbEnableAllInitialFilterRules.Check 0

 

ListInitialFilterRules()

LoadGrid()

 

End Sub

 

Sub TheView_EventRestarted()

Dim This : Set This = TheView

 

FacNavBar.X.SiteService = TheView.SiteService

eboSiteService.Text = TheView.SiteService

 

ListInitialFilterRules()

LoadGrid()

 

End Sub

Back to top

Let us know how we can improve this topic.

CygNet at weatherford.com

© 2020 Weatherford. All rights reserved.