iBizModel 日历部件(PSSYSCALENDAR)模型体系详解 - 教程

news/2025/11/10 18:57:17/文章来源:https://www.cnblogs.com/yxysuanfa/p/19207939

iBizModel 日历部件(PSSYSCALENDAR)模型体系详解

引言

iBizModel 系统日历部件模型体系是 iBizModel 架构中专门用于处理时间相关数据可视化与交互的核心组成部分。该体系基于 PSSYSCALENDAR 模型构建,提供了完整的日历功能实现框架,支持从简单的日程显示到复杂的时间轴项目管理等多种应用场景。系统日历部件不仅具备丰富的数据展示能力,还集成了强大的交互逻辑和扩展机制,是企业级应用中时间管理功能的要紧基础。

在线体验

点击访问iBizAppHUB示例系统查看日历部件更多场景
在这里插入图片描述

⚡ 提示:点击右侧调试工具栏,可直接查看指定视图在iBizModeling软件的配置。
在这里插入图片描述

模型体系架构

核心模型关系图

模型层级结构详解

1. PSSYSCALENDAR(日历部件模型)

作为日历部件体系的根模型,PSSYSCALENDAR 定义了日历的整体框架和基础配置。其核心属性包括:

PSSYSCALENDAR 经过引用 PSDATAENTITY 建立数据基础,依据 PSDETOOLBAR 集成操作工具,通过 PSCTRLLOGICGROUP 附加控制逻辑,形成了完整的日历功能框架。

2. PSSYSCALENDARITEM(日历部件项模型)

作为日历信息展示的核心,PSSYSCALENDARITEM 定义了具体的数据项部署:

  • beginpsdefidendpsdefid:时间范围定义,支持精确的时间区间控制
  • itemtype:项类型标识,拥护多数据源混合显示
  • psdeid:数据集所在实体
  • psdedsid:数据集引用,确保素材查询的灵活性
  • viewactions:操作控制集合,支持建立、编辑、删除等完整CRUD操作

通过每个日历项能够独立配置样式、颜色、图标等视觉属性,并支持拖拽编辑、上下文菜单等交互特性。

3. PSSYSCALENDARITEMRV(日历项引用视图模型)

该模型提供了日历项与详细视图的关联机制:

凭借引用视图机制,日历部件完成了从概览到详情的无缝导航体验。

4. PSSYSCALENDARLOGIC(日历部件逻辑模型)

逻辑模型为日历部件给出了动态行为控制:

  • triggertype:触发类型,支持定时器、视图事件、部件事件等多种触发方式
  • dstlogictype:目标逻辑类型,支持实体界面逻辑、体系预置逻辑、前端插件等处理目标
  • timer:定时器间隔,帮助周期性逻辑执行

逻辑模型使得日历部件可以根据业务规则动态调整显示内容、控制用户操作权限、构建复杂的交互流程。

关键技术特性

多数据源集成能力

PSSYSCALENDAR 支持通过多个 PSSYSCALENDARITEM 集成不同实体的数据,在同一个日历界面中显示来自多个业务模块的时间相关数据。例如,在任务管理系统可以同时显示任务计划、会议安排和资源预约。

灵活的视图配置

经过 calendarstyle 枚举,日历部件协助六种内置视图样式和用户自定义样式。每种样式都针对特定的启用场景优化:

强大的交互控制

通过 PSSYSCALENDARLOGIC 和 PSSYSCALENDARITEM 的协同,日历部件支持丰富的交互作用:

  • 拖拽调整时间:直接通过拖拽修改事件时间
  • 上下文菜单:右键快捷操作
  • 实时资料更新:定时器驱动的数据刷新
  • 条件显示控制:基于业务规则的动态显示

扩展性设计

模型体系通过插件机制(pssyspfpluginid)支持功能扩展,前端样式经过 PSSYSCSS 引用支持主题定制,确保了平台的可维护性和可扩展性。

DSL 代码实现示例

基于工具返回的模型信息,以下是完整的框架日历部件 DSL 实现示例:

//iBizModelDSL建模指令,目标:构建企业级项目管理系统日历部件
def de_project = "ProjectManagement.PROJECT"
def de_task = "ProjectManagement.TASK"
def de_meeting = "ProjectManagement.MEETING"
def mod_pm = "ProjectManagement"
// 主项目日历 - 月视图,支持多数据源
pssyscalendar(
psmoduleid: mod_pm,
codename: "ProjectMainCalendar",
name: "项目主日历",
psdeid: de_project,
calendarstyle: "MONTH",
navviewpos: "RIGHT",
navviewheight: 400.0,
navviewshowmode: 0,
enableedit: 1,
busyindicator: 1,
emptytext: "暂无日程安排",
pssyscssid: "System.CalendarTheme",
quickpsdetoolbarid: "ProjectManagement.QuickToolbar",
batpsdetoolbarid: "ProjectManagement.BatchToolbar"
){
// 项目任务项
pssyscalendaritem(
itemtype: "project_task",
name: "项目任务",
psdeid: de_task,
psdedsid: de_task + ".ActiveTasks",
beginpsdefid: de_task + ".PLAN_START_DATE",
endpsdefid: de_task + ".PLAN_END_DATE",
textpsdefid: de_task + ".TASK_NAME",
colorpsdefid: de_task + ".PRIORITY_COLOR",
bkcolorpsdefid: de_task + ".STATUS_BGCOLOR",
iconpsdefid: de_task + ".TASK_ICON",
enableviewactions: 1,
viewactions: 31, // 支持建立、编辑、查看、删除、拷贝
editmode: 1,
maxsize: 1000,
psdetoolbarid: "ProjectManagement.TaskContextMenu",
psdeviewbaseid: de_task + ".TaskDetailView"
){
pssyscalendaritemrv(
name: "edit",
psdeviewbaseid: de_task + ".TaskEditView"
)
pssyscalendaritemrv(
name: "view",
psdeviewbaseid: de_task + ".TaskDetailView"
)
}
// 会议安排项
pssyscalendaritem(
itemtype: "meeting",
name: "会议安排",
psdeid: de_meeting,
psdedsid: de_meeting + ".UpcomingMeetings",
beginpsdefid: de_meeting + ".MEETING_START_TIME",
endpsdefid: de_meeting + ".MEETING_END_TIME",
textpsdefid: de_meeting + ".MEETING_TITLE",
contentpsdefid: de_meeting + ".MEETING_AGENDA",
color: "#2E7D32",
bkcolor: "#E8F5E8",
enableviewactions: 1,
viewactions: 7, // 支持建立、编辑、查看
editmode: 0,
psdeviewbaseid: de_meeting + ".MeetingDetailView"
)
}
// 项目时间轴日历 - 用于项目进度跟踪
pssyscalendar(
psmoduleid: mod_pm,
codename: "ProjectTimeline",
name: "项目时间轴",
psdeid: de_project,
calendarstyle: "TIMELINE",
groupmode: "AUTO",
grouppsdefid: de_project + ".PROJECT_PHASE",
navviewpos: "BOTTOM",
navviewheight: 300.0,
enableedit: 1
){
pssyscalendaritem(
itemtype: "timeline_task",
name: "时间轴任务",
psdeid: de_task,
psdedsid: de_task + ".TimelineTasks",
beginpsdefid: de_task + ".ACTUAL_START_DATE",
endpsdefid: de_task + ".ACTUAL_END_DATE",
textpsdefid: de_task + ".TASK_NAME",
progresspsdefid: de_task + ".PROGRESS_PERCENT",
levelpsdefid: de_task + ".TASK_LEVEL",
enableviewactions: 1,
viewactions: 15
)
}
// 个人工作台日历 - 天视图,支持快速操作
pssyscalendar(
psmoduleid: mod_pm,
codename: "PersonalWorkbench",
name: "个人工作台",
psdeid: de_task,
calendarstyle: "DAY",
navviewpos: "NONE",
enableedit: 1,
quickpsdetoolbarid: "ProjectManagement.PersonalQuickToolbar"
){
pssyscalendaritem(
itemtype: "personal_tasks",
name: "个人任务",
psdeid: de_task,
psdedsid: de_task + ".PersonalTasks",
beginpsdefid: de_task + ".PLAN_START_DATE",
endpsdefid: de_task + ".PLAN_END_DATE",
textpsdefid: de_task + ".TASK_NAME",
colorpsdefid: de_task + ".URGENCY_COLOR",
enableviewactions: 1,
viewactions: 31,
editmode: 1
)
}

模型体系优势总结

iBizModel 系统日历部件模型体系通过层次化的模型设计和丰富的设置选项,为企业级应用提供了强大的时间数据管理能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/961657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年节能空压机优质厂家推荐:永磁变频空压机/螺杆空压机/节能空压机/智能空压机/工业节能新选择

当前制造业对空压机设备的需求日益精细化,节能降耗、稳定可靠、智能控制等核心诉求不断升级,但市场上空压机厂家资质参差不齐,部分产品存在能效不达标、运行稳定性差、售后响应滞后等问题,导致采购方在选型时面临&…

推荐几家城际出行网约车公司

推荐广州城市快线汽车租赁有限公司:您的理想城际出行选择在当今快节奏的生活中,城际出行已成为许多人工作、生活的重要组成部分。选择一家可靠、专业的网约车公司至关重要。在众多选择中,广州城市快线汽车租赁有限公…

实用指南:MySQL——联合查询数据表

实用指南:MySQL——联合查询数据表2025-11-10 18:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !imp…

WORK 4

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14577 学号:102300321 姓名:陈传星//

2025年知识付费软件平台不踩坑:五星推荐创客匠人,知识店铺搭建/知识内容变现系统/在线教育SaaS平台/线上卖课平台/AI赋能和陪跑服务双保障

随着 AI 技术深度渗透与内容创业规模化发展,知识付费 SaaS 系统已从教育机构专属工具,逐步普及至培训讲师、企业创始人、垂直领域博主等多元群体,2025 年市场需求持续攀升。但行业扩张也带来产品功能同质化、服务落…

面向对象大作业之课程设计自主选题-第一次提交

一.使用Deepseek进行选题,选择了以教务管理系统为题。 二.做一个教务管理系统用来统计班级学生学号成绩;以下是示例: https://www.cnblogs.com/bigll666/p/10281813.html 实现的功能: 1.实现添加学生功能:班级、学…

2025年专升本教育机构综合评估与推荐,上海专升本机构/山东专升本机构/免试专升本机构推荐

当前专升本教育市场需求持续增长,考生对教育机构的教学质量、师资力量和课程体系要求不断提高。然而市场上培训机构水平参差不齐,部分机构存在师资力量薄弱、课程体系不完善、教学效果不达预期等问题,导致学生在选择…

啊?

2025.11.10 随记日常花絮,不建议当题解看。 事情的起因是模拟赛考了这么一道题: 。 他放在了 T2,我也场切了,所以我觉得这就是个简单贪心题。但是赛后讲评人说这个题等价于 NOIP2023 T3,由于我不太相信自己能场切…

Docker部署FileBrowser轻量网盘

本文在Ubuntu和威联通NAS演示了Docker部署FileBrowser轻量网盘的方法官网:Installation - File Browser filebrowser 是一款非常优秀的文件管理工具,并且是跨平台。安装也非常简单,安装后就可以使用,同样使用也非常…

2025/11/10~2025/11/16 做题笔记 - sb

2025/11/10 C. 圆环(circle) 感觉比 T2 要简单/kk dp 状态是好想的,非常明显可以设 \(f_{i, j}\) 表示当操作完 \(i\) 操作,另一只手在 \(j\) 位置的最小代价。这个东西的状态转移方程也不难。当由不是完成操作的手…

校园二手物品交易平台

校园二手物品交易平台——Java面向对象课程设计方案 组员名单:薛朝建、陈博凯、陈炤辉 一、AI工具辅助选题历程 在Java面向对象课程设计的选题阶段,我们借助多款AI工具提升决策效率:核心使用DeepSeek大模型开展选题…

pytorch、torchaudio、torchvideo版本对应关系

PyTorch版本 torchvision版本 torchaudio版本 2.5.0 0.20.0 2.5.0 2.4.1 0.19.1 2.4.1 2.4.0 0.19.0 2.4.0 2.2.1 0.17.1 2.2.1 2.2.0 0.17.0 2.2.0 2.1.0 0.16.0 2.1.0 …

【四级】全国大学英语四级历年真题及答案解析PDF电子版(2015-2025年6月) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

OpenGL进化史:从实验室到现代图形革命的里程碑之旅

OpenGL进化史:从实验室到现代图形革命的里程碑之旅 引言:为什么我们需要了解OpenGL的历史? OpenGL(Open Graphics Library)是计算机图形学的基石之一,驱动了从游戏到AI可视化、从虚拟现实到电影特效的无数创新。…

提示词语料收集

先开始收集常用的,不做分类,后期多了再分类处理 1、你是个XXXX,我是个菜鸟,用我能明白的方式向我解释一下YYY2、你个xxx,为我设计个yyy系统,并提供详细的编码实现与目录结构,完成设计后对你的设计进行评分,1分…

新手做幼儿园营养食谱公众号在哪找好看的素材?

如果你刚开始做幼儿园营养食谱的公众号,肯定会为找素材和排版发愁。其实,用对小工具就简单多了,比如小墨鹰编辑器,里面就有很多适合这个主题的素材。 第一步:先定一个“可爱又开胃”的基调在小墨鹰的模板中心,你…

C语言中的数据存储

1.数据类型 c语言自带的一些数据类型 char //字符型 1byte short //短整型 2byte int //整型 4byte long //长整型 4 or 8byte long long //更长的整型 8byte float…

咋提宣讲

不妨假设先手放在 \(1\) 号点,最后对每个点都做一遍即可。 \(N = 2\) 的时候先手必胜当且仅当 \(A_1 > A_2\)。 再难一点,\(1\) 的度数为 \(N - 1\) 时,考虑所有儿子的 \(A_i\) 的 \(\min\) 为 \(minn\),如果 \…