面板体系完整介绍

1. PSSYSVIEWPANEL(系统面板部件)

功能:定义面板部件的界面及处理逻辑,是支持多种布局模式的容器。

核心属性

  • viewlayoutflag:视图布局标识(1-布局面板,2-用于视图增强布局)
  • layoutmode:布局模式(TABLE_12COL、TABLE_24COL、FLEX)
  • datamode:数据获取模式(0-不获取,1-未传入时获取,2-始终获取)
  • navbarmode:导航栏模式

2. 面板成员类型(PSSYSVIEWPANELITEM)

(1) CONTAINER(面板容器)

功能:基础布局面板,作为容器使用
特性:支持子成员,提供嵌套布局能力

(2) CONTROL(部件)

功能:挂载系统或实体定义的界面部件
特性:通过ctrltype指定部件类型,支持多种预置部件

(3) CTRLPOS(部件占位)

功能:视图布局面板中的部件占位
特性:为动态部件提供占位容器

(4) RAWITEM(直接内容项)

功能:输出文本或图片等直接内容
特性:支持HTML、TEXT、IMAGE等内容类型

(5) TABPANEL(分页部件)

功能:分页界面容器,支持多页面切换
特性:只能包含TAGPAGE作为子成员

(6) TAGPAGE(分页面板)

功能:分页部件的成员部件,作为基础布局容器
特性:只能放置在TABPANEL中,支持子成员

(7) FIELD(面板属性)

功能:显示或编辑属性字段
特性:支持多种编辑器类型(TEXTBOX、DROPDOWNLIST等)

(8) BUTTON(面板按钮)

功能:提供命令能力
特性:支持多种行为类型(UIACTION、OPENVIEW、CUSTOM等)

(9) USERCONTROL(用户控件)

功能:自定义用户控件
特性:支持扩展自定义控件

完整应用示例

示例1:包含所有成员类型的综合面板

//iBizModelDSL建模指令,目标:展示所有面板成员类型
pssysviewpanel(
  codename: "CompletePanelDemo"
  ,name: "完整面板演示"
  ,layoutmode: "TABLE_24COL"
){
  // 1. CONTAINER - 面板容器
  pssysviewpanelitem(
    itemtype: "CONTAINER"
    ,name: "mainContainer"
    ,caption: "主容器"
    ,layoutmode: "TABLE_12COL"
  ){
    // 2. FIELD - 面板属性
    pssysviewpanelitem(
      itemtype: "FIELD"
      ,name: "nameField"
      ,fieldname: "name"
      ,caption: "名称"
      ,editortype: "TEXTBOX"
      ,col_lg: 6
    )
  
    // 3. BUTTON - 面板按钮
    pssysviewpanelitem(
      itemtype: "BUTTON"
      ,name: "saveButton"
      ,caption: "保存"
      ,btnactiontype: "UIACTION"
      ,psdeuiactionid: "SaveActionDSLID"
      ,col_lg: 3
    )
  }

  // 4. CTRLPOS - 部件占位
  pssysviewpanelitem(
    itemtype: "CTRLPOS"
    ,name: "chartPlaceholder"
    ,caption: "图表区域"
    ,col_lg: 12
  )

  // 5. RAWITEM - 直接内容项
  pssysviewpanelitem(
    itemtype: "RAWITEM"
    ,name: "welcomeText"
    ,contenttype: "HTML"
    ,htmlcontent: "<h3>欢迎使用系统</h3><p>这是直接HTML内容</p>"
    ,col_lg: 12
  )

  // 6. TABPANEL - 分页部件
  pssysviewpanelitem(
    itemtype: "TABPANEL"
    ,name: "mainTabPanel"
    ,caption: "功能选项卡"
    ,col_lg: 24
  ){
    // 7. TAGPAGE - 分页面板(第一个标签页)
    pssysviewpanelitem(
      itemtype: "TAGPAGE"
      ,name: "basicInfoTab"
      ,caption: "基本信息"
      ,layoutmode: "TABLE_12COL"
    ){
      pssysviewpanelitem(
        itemtype: "FIELD"
        ,name: "descriptionField"
        ,fieldname: "description"
        ,caption: "描述"
        ,editortype: "TEXTAREA"
        ,col_lg: 12
      )
    }
  
    // TAGPAGE - 分页面板(第二个标签页)
    pssysviewpanelitem(
      itemtype: "TAGPAGE"
      ,name: "advancedTab"
      ,caption: "高级设置"
      ,layoutmode: "TABLE_12COL"
    ){
      // 8. CONTROL - 部件
      pssysviewpanelitem(
        itemtype: "CONTROL"
        ,name: "chartControl"
        ,ctrltype: "CHART"
        ,psdechartid: "SampleChartDSLID"
        ,col_lg: 12
      )
    }
  }

  // 9. USERCONTROL - 用户控件
  pssysviewpanelitem(
    itemtype: "USERCONTROL"
    ,name: "customControl"
    ,caption: "自定义控件"
    ,usercontrolid: "CustomControlDSLID"
    ,col_lg: 12
  )
}

示例2:按钮行为类型演示

//iBizModelDSL建模指令,目标:展示按钮的不同行为类型
pssysviewpanel(
  codename: "ButtonBehaviorDemo"
  ,name: "按钮行为演示"
  ,layoutmode: "FLEX"
){
  // UIACTION - 界面行为
  pssysviewpanelitem(
    itemtype: "BUTTON"
    ,name: "uiActionBtn"
    ,caption: "界面行为"
    ,btnactiontype: "UIACTION"
    ,psdeuiactionid: "SampleUIActionDSLID"
  )

  // OPENVIEW - 打开应用视图
  pssysviewpanelitem(
    itemtype: "BUTTON"
    ,name: "openViewBtn"
    ,caption: "打开视图"
    ,btnactiontype: "OPENVIEW"
    ,psappviewid: "SampleViewDSLID"
  )

  // OPENDEVIEW - 打开实体视图
  pssysviewpanelitem(
    itemtype: "BUTTON"
    ,name: "openDEViewBtn"
    ,caption: "打开实体视图"
    ,btnactiontype: "OPENDEVIEW"
    ,psdeviewid: "SampleDEViewDSLID"
  )

  // CUSTOM - 自定义代码
  pssysviewpanelitem(
    itemtype: "BUTTON"
    ,name: "customBtn"
    ,caption: "自定义操作"
    ,btnactiontype: "CUSTOM"
    ,customcode: """
      // 自定义按钮逻辑
      console.log('自定义按钮被点击');
    """
  )

  // OPENHTMLPAGE - 打开链接
  pssysviewpanelitem(
    itemtype: "BUTTON"
    ,name: "openLinkBtn"
    ,caption: "打开链接"
    ,btnactiontype: "OPENHTMLPAGE"
    ,htmlpage: "https://example.com"
  )
}

成员模型关系图

PSSYSVIEWPANEL
CONTAINER
CONTROL
CTRLPOS
RAWITEM
TABPANEL
FIELD
BUTTON
USERCONTROL
TAGPAGE
支持嵌套子成员
支持子成员
UIACTION
OPENVIEW
OPENDEVIEW
CUSTOM
OPENHTMLPAGE

这个完整的面板体系提供了强大的界面组织和交互能力,每个成员类型都有其特定的用途和配置选项,可以根据实际业务需求灵活组合使用。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐