




已阅读5页,还剩83页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本源码下载地址 目 录目 录 序序 4 第一章 商务之星第一章 商务之星 NET 的基本概念 的基本概念 5 1 客户端程序的基本元素 档案 单据 查询 条件 报表 5 2 组件 Form的基本元素 标签元素 属性 事件 6 2 1 组件 Form 的描述文件 Xml 7 2 2 标签元素 7 第二章 第二章 组件组件 Schema 文件文件 Component Schema xml 单据列表文件单据列表文件 SheetsDef Xml 和方法 和方法 引用文件引用文件 FuncInfo txt 8 1 Form组件 Schema 文件 Component Schema xml 8 2 单据列表文件 SheetsDef Xml 10 3 方法引用文件 FuncInfo txt 10 第三章 第三章 属性和事件属性和事件 12 1 表达式文法 12 2 属性表示 13 2 1 属性 13 2 2 颜色属性值表示法 14 2 3 位置属性值表示法 14 2 4 尺寸属性值表示法 14 2 5 字体属性值表示法 14 2 6 枚举属性值表示法 14 2 7 列表框 ListBox 和下拉列表框 ComboBox 非绑定 Items 属性值表示法 14 2 8 ToolTipText 属性 14 2 9 特殊组件标签 Bitmap 15 2 10 PictureBox 的Iamge 属性 15 2 11 数据绑定 DataBindings 属性 15 2 12 格式化 Format 15 2 13 嵌套属性 16 3 属性缺省值 和动态属性 16 3 1 属性缺省值 16 3 2 动态属性 16 4 签名事件和非签名事件 17 4 1 签名事件方法 17 4 2 非签名事件方法 17 5 怎样设置控件属性和取控件属性 17 5 1 设置控件的属性 18 6 商务之星 NET 查找属性和方法的顺序 18 7 在组件中挂接您自己定义的方法 函数 和属性 19 第四章 第四章 快捷键快捷键 20 1 快捷键 20 第五章 第五章 数据表数据表 DataTable 和数据列和数据列 DataColumn 24 1 数据表 DataTable 定义 24 1 1 Name 属性 24 1 2 SQL 属性 25 1 3 IsMainTable 属性 25 1 4 Load 属性 26 1 5 Local 属性 27 1 6 From 属性 27 1 7 SQLDebug 属性 27 1 8 数据列 DataColumn 定义 27 1 9 ColumnName属性 27 1 10 Caption 属性 28 1 11 DefaultValue 属性 29 1 12 Expresstion 属性 29 1 13 Update 属性 30 1 14 数据视 DataView 30 第六章 第六章 系统对象系统对象 Forms Me Parent 控件对象 控件对象 Controls 和数据集和数据集 DataSet 32 1 Me Parent Form SheetName 对象和控件对象 32 2 Me 属性名 32 2 1 控件名 33 2 2 控件名 属性名 33 2 3 Parent 33 2 4 Parent 属性名 33 2 5 Parent 控件名 33 2 6 Parent 控件名 属性名 34 2 7 Form SheetName 34 2 8 Forms SheetName 控件名 34 2 9 Form SheetName 属性名 34 2 10 Forms SheetName 控件名 属性名 34 3 数据集 DataSet 主表列 Cols ColumnName 主表记录数 Count 34 3 1 数据集 DataSet 34 3 2 Count 36 3 3 Cols ColumnName 36 3 4 Parent DataSet 36 3 5 Parent Count 36 3 6 Parent Cols ColumnName 37 3 7 Form SheetName DataSet 37 3 8 Form SheetName Count 37 3 9 Form SheetName Cols ColumnName 37 第七章 第七章 商务之星 商务之星 NET 启动初始化加载 主界面 启动初始化加载 主界面 MainForm Xml 启动加载启动加载 38 1 Init txt 初始化加载文件 StartLoad Txt 主界面启动加载文件 38 2 加载文件文法 38 第八章 第八章 菜单标签菜单标签 MenuCommand Menu 定时器 主界面文件定时器 主界面文件 MainForm Xml 39 1 菜单 MenuCommand Menu 39 2 主界面文件 MainForm Xml 40 3 定时器 40 第九章 第九章 数据转换与生成数据转换与生成 42 1 转换与生成 源和目的 42 2 转换控制 44 第十章 第十章 打印报表打印报表 Report 46 1 访问打印报表上的控件 46 2 打印报表的属性缺省值 和动态属性 46 3 报表的 Label 标签元素的特殊性 47 3 1 Label 有一特殊属性 Tag 47 3 2 页号 47 3 3 页码 47 3 4 页合计 48 第十一章 第十一章 构建档案 单据构建档案 单据 53 第十二章 第十二章 构建查询构建查询 Query 82 全新的管理软件开发模式 XML 组件即插即用 组件即插即用 陈俊先 陈俊先 序序 从 1994 年开始从事管理软件开发 已经有 11 年的历史了 先前以为随着用户的增多 情况会好起来 但恰恰相反 情况不但没有好转 问题倒开始多起来了 当一套管理软件给 一家客户安装使用时 也正是问题的开始 随着用户的应用的深入 提出的问题也就越多 即使同一行业的用户 需求也是千差万别 面临的最主要也是最头疼一个的问题就是用户需 求的不确定性导致开发和维护管理软件很难 用一套程序适用于每家客户是不可能的 用户 需求的个性化要求管理软件具有灵活性 最好是一家客户一套定制系统 但这样会造成开发 成本急剧增加 用户无法承受 1999 年时 我想能不能开发一套程序 能满足大部分用户 的需求而又不需要改动程序呢 虽然有了这种构想但限于当时的开发工具 VB 不行而无法 实现 2001 年我终于看到了 NET 的测试版 用了一段时间后我认为这正是我要找的工具 因此决定开始开发 也就是同时我又发现了 XML 起初对 XML 是什么 它能做什么一概 不知 后来经过深入的学习和研究发才知道 XML 太重要了 以至于它是整个系统的灵魂 因此 一种由 XML 表示的 NET 组件的开发模式油然而生 经过 4 年实践和努力 今天终 于开发了一套基于 Xml 的商务管理系统 商务之星 NET 产品 并提出了一套全新的管理 软件开发模式 XML 组件即插即用 可以解决开发管理软件所面临的这一难题 商务之星 NET 只是用 全新的管理软件开发模式 XML 组件即插即用 方式开发 的第一套商务管理软件 它有四个版本 标准版 医药版 服装版 汽修版 这四个版本的 用户需求可谓是千差万别 数据库结构也是不尽相同 但程序却是相同的 用这套方法可以 开发其他管理软件 全新的管理软件开发模式 XML 组件即插即用 这套方法也不是万能的 它一样有 局限性 比如对于象前台 POS 程序 还需要写大量的代码 用这套方法没有优势 这套方 法还处于刚刚起步诞生阶段 今后还要进一步向前发展 XML 在这套方法中起到灵魂作用 它就好像是一种胶 把所有的 DLL 粘到一起 真正 运行的还是 DLL 现在我们主要解决的还是客户端问题 服务器端的业务逻辑还需要用存储过程实现 下 一步的主要任务用 XML 业务组件来解决服务器端的业务逻辑问题 到那时前后端都可以用 XML 组件实现即插即用了 很长时间就一直想把这套方法与大家共享 一起研究讨论 也能促进管理软件的开发 但由于水平有限又加之时间仓促 所以今天才写出来一点点体会 以供大家一起讨论 共同 促进管理软件的开发 一个人的能力是有限的 不正确的地方肯定有 还望大家指教 Email xuanbai chen 源码下载地址 第一章 商务之星第一章 商务之星 NET 的基本概念 的基本概念 1 客户端程序的基本元素 客户端程序的基本元素 档案档案 单据 查询 单据 查询 条件 条件 报表报表 商务之星 NET 是客户 服务器 c s 和浏览器 服务器 b s 结构 系统采用组件描述语 言 Component Markup Languange CML 构建客户端应用程序 所谓组件描述语言 Component Markup Languange CML 就是一种以 XML 格式表示对组件的描述和定义 系统对 XML 进 行解释形成应用程序 每个客户端程序都是大量的档案 单据 查询 条件 报表组成的 构建一个客户端应用程序实际就是通过组件描述语言 CML 建立一些组件文件 XML 格 式 系统就会加载这些文件以完成用户的要求 信息管理系统客户端应用程序基本元素 档案 单据 查询 条件 报表等元素 一个 信息管理系统 MIS 客户端程序一般说来也就是由这五部分元素组成 构建 MIS 系统实际是 在构建这五种元素 档案 档案 档案是 商务之星 NET 最基础的数据 是用户数据的基础资料 比如 商品 信息 人员信息 仓库信息 客户信息等等 档案有商品档案 客户档案 供货商档案 人 员档案 商品信息包括商品编号 品名规格等 客户信息包括客户编号 客户名称等 人员 信息包括人员编号 姓名 电话等等 每一种档案对应一个 XML 文件 单据 单据 单据是 商务之星 NET 原始数据的录入部分 用户把每天的业务数据通过单 据输入系统 形成最原始的凭证 单据包括采购进货单 销售出货单 收款单 付款单 盘 点表 调库单 报损单 组装单 拆分单 进货订单 销售订单等 每一种单据对应一个 XML 文件 查询 查询 查询是根据用户每天录入的原始单据数据 查找想要的结果 比如 查客户的欠 款 某个部门或销售人员的销售额等 每一个查询对应一个 XML 文件 条件 条件 条件一般是对查询而言的 把查询范围缩小些以查出准确的结果 条件在 商务 之星 NET 中也与查询一样作为一个独立元素处理 一般来说 每个查询都带有一个条件 构造一个条件与构造查询一样 也要形成一个 XML 文件 每一个条件 Form对应一个 XML 文件 报表 报表 报表是定义了单据或查询的打印格式 屏幕显示的样式与打印机打出的样式是不 一样的 比如 屏幕是带颜色的而多数打印出来的结果是黑白的 屏幕上的按钮打出来就没 有任何意义 报表打印格式的也是用 XML 文件定义的 每一个报表对应一个 XML 文件 每一个档案 单据 查询 条件都可以统称作 Form或表单 以下我们称为 Form Form 是客户应用程序的基本构造单元也称作组件 构造客户端应用程序实际上是在构造 Form Form也代表了实际业务系统的基本应用单元 客户端应用程序就是由大量的 Form组成 把 Form写成 XML 格式文件是构建 商务之星 NET 客户端应用程序的主要任务 另外 一个 Form也对应 Windows 系统中的一个窗体 就是用户看到的窗口形式 窗体有外观样 式 前景颜色和背景颜色 字体等等 都是由属性值设置的 在第三章中会阐述 一个Form中可以有一数据集 DataSet 数据集 DataSet 与数据库相对应 数据集 DataSet 中的表也与数据库中表相对应 数据集表中的字段与数据库表的字段相对应 构建了数据集也就了数据库 用户在 Form中录入的数据都在数据集中 系统会把数据 集中的数据保存到数据库中 Form 架构如下 Data Form Xml Form Xml DataSet Xsd DataSet Xsd Report Rpt XmlReport Rpt Xml Form样式定义 数据集定义 打印格式定义 Form Form DataSetDataSet DataAccessProxy 数据存取通道 SQL Server 2000 数据库 数据集 Form 结构图 商务之星 NET 组件描述语言 Component Markup Languange CML 是一种基于 XML 格式的自定义描述语言 这种语言特别简单 不需要专业知识就能掌握 更不需要专业的编 程知识和经验就能应用 这种语言主要的面对的对象是一些不想通过编程就能完成用户商务 管理系统的二次开发人员 他们不需要对程序设计有更多和深入的了解 只要有简单数据库 基础知识 就可以完成用户应用程序的构建 尤其是有特殊需求的用户 用 CML 可以快速 建立一般通用的商务管理软件没有的功能 CML 为深度二次开发提供了一些开发人员可以访问的 NET 对象 以供编程开发人员 使用 这些对象有 Me DataSet Parent Parent DataSet Forms 控件对象等 可以把这些 对象带入到您自己写的程序中 以便访问这些对象 2 组件组件 Form 的基本元素的基本元素 标签元素 标签元素 属性属性 事件事件 标签元素是型如的标记对 比如 等等 在 XML 文件中 一种标签元素代表一种类型 例如 代表 Label 控件元素 代表文本输入框 代表按钮 在 XML 文件中每添加一个标签元素 商务之星 NET 就会在 Form中创建一个控件 组件 标签元 素有层次概念 下层标签元素是上层标签元素的子标签 例如 我们把 Button 称作 XForm 的子标签 在 商务之星 NET 中 子标签控件是创建在上 层标签控件内 子标签内还可以有子标签 最顶层的标签一定是 Form类型的标签 而且最 顶层的标签在一个文件中只能有一个 最顶层的标签也称作根 在第六章中我们会讨论怎样 定义根 属性是标签内的一个名字 值对 属性也对应 Form上的控件的属性 通过属性可以控制 控件的外观 数据绑定 格式化等 例如 把标签 Label 的前景颜色设置成红色 这里名字 值对 ForeColor 255 0 0 其 中 ForeColor 是属性名 255 0 0 是属性值 在第六章我们会详细讨论动态属性和属性缺 省值 事件也是一种特殊的属性 是以字母 On 为前缀 事件名为属性名的属性 例如 按钮 标签元素有 Click 事件 其中 OnClick 是表示事件 Click 其属性值是 MyMethod 是方法名 所以 所有的属性名不 能以 On 开头 否则 商务之星 NET 会把它当成事件处理 另外 同一事件不能定义两 次 通常我们把定义事件叫做事件挂接 象前面的例子中 我们说按钮 Button1 的 Click 事 件挂接了 MyMethod 方法 也就是说用鼠标单击 Button1 按钮 则 商务之星 NET 会自动 调用和触发 MyMethod 方法 在第三章我们会详细讨论签名事件和非签名事件 2 1 组件 Form的描述文件 Xml 客户端应用程序的基本单位是 Form 每个 Form最多由三个文件定义 一个是 Form 界面定义文件 必须 扩展名 Xml 一个是数据集定义文件 可选 扩展名 Xsd 一个 是报表定义文件 可选 扩展名 Xml 其中 数据集定义文件和报表定义文件可以省略 比如 商务之星 NET 的启动文件 MainForm Xml 就没有数据集定义文件和报表定义 文件 只有界面定义文件 如果您不需要存取数据库的数据 可以不用数据集定义文件 如果不需要在打印机上输出报表 就可以不写报表定义文件 但至少要有一个界面定义 文件 条件 Form有时就只有一个界面定义文件 表 列 字段 是数据库中的基本元素 在 商务之星 NET 的 Form 中 可以有一 数据集 数据集实际是一种内存中的数据库 它有表 列等基本元素及表之间的关系 与数据库中的表 列及表的关系相对应 Form数据集 DataSet 是由数据集定义文件 扩 展名为 Xsd 定义 Xsd 可以用 Microsoft Visual Studio NET 进行可视化设计 另外 Xsd 文件只定义数据集中表结构 而数据是由 Form 界面定义文件的 DataTable 标签的 SQL 属性定义 2 2 标签元素 CML 文法是以 Xml 文件的形式表示 每个 Xml 文件要求第一行必须是紧接着必须是根标签 根标签通常都是 Form 类 型 并 且 在 Component Schema xml 中 有 属 性 IsRoor true 定 义 例 如 在 Component Schema xml 中有样定义 Business Sheet Sheet BusinessSheet dll表示Sheet标签是从动态连接库 BusinessSheet dll中的Business Sheet Sheet类型产生 它是Form形式的标签根标在 一个Xml文件中只能有一个 其它所有标签都必须在根标签内定义 第二章 第二章 组件组件 Schema 文件文件 Component Schema xml 单据列表文件 单据列表文件 SheetsDef Xml 和方法引用文件和方法引用文件 FuncInfo txt 1 Form 组件组件 Schema 文件文件 Component Schema xml 要想在 Form上显示一控件 首先必须在 Component Schema xml 中定义该控件 包括 Form 元 素 Component Schema xml 中 定 义 了 组 件 标 签 元 素 的 定 义 没 在 Component Schema xml 定义的标签元素 商务之星 NET 是不识别的 因此 Component Schema xml 是规则的规则定义文件即 Schema Schema 本身也是 XML 文件 如 果 用 户 或 二 次 开 发 人 员 要 想 在 Form 上 添 加 自 己 的 新 控 件 元 素 只 要 在 Component Schema xml 添加定义就可以了 Component Schema xml最顶层元素 根 标签必须是Schema 而且只有唯一一个 每个 元素都是Schema的子元素 一个元素代表一种类型控件 它们形如 组件标签元素有 8 个属性 Type Children IsRoot RootText IsTool Category Visible Format 其中 Type 是必须的 其他是可选的 Type 类 型 全 名 动 态 连 接 库 名 例 如 Business Sheet Sheet BusinessSheet dll 系 统 遇 到 标 签 后 就 会 在 动 态 库 BusinessSheet dll 查 找 类 型 Business Sheet Sheet 并创建它 Children 子控件集合属性名 这个属性只对 Form Panel 允许有子控件的元素等 有意义 例如 Controls 所有的子控件要放到 Controls 属性集合中 IsRoot 根属性 标识此标签在 XML 文件中是否允许作根元素 默认值为 false IsRoot false 的标签不能作根标签 根标签一定是 XmlForm XForm XForm 类型或是其子 类 RootText 根文本 在 Form 可视设计器的 新建 菜单显示的内容 例如 查询 档案 单据 条件 等 IsTool 工具属性 标识组件是否可以放在工具箱中 Form 可视化设计器 默认值 为 false IsTool true 表示次组件可以放到 Form 可视化设计器的工具箱中 Category 工具分类 Form 可视化设计器 标识组件放在工具箱中的哪一类中 Visible 可见属性 标识组件是否可见 不可见组件在 Form 中是不可见的 默认值 为 true Format 数据绑定格式化属性 标识组件的数据绑定格式化属性 通常作为 Label TextBox 的数据绑定格式化显示数据用 有用的有用的组件组件属性属性 Property 标签用以定义元素的属性 Property 的属性 Name 定义 属性的名字 Tag 定义属性的别名 通常用来表示中文属性名 例如 Name BackColor Tag 背景颜色 那么在 XML 文件中可以直接用 背景颜色 表示名字属性 例如 BackColor 0 0 0 0 和背景颜色 0 0 0 0 效果是一样的 组件的属性可能很多 并一定都有用 把有用的属性定义在 Component Schema xml 中 系统才能识别 否则 会提示出错 IsSys IsSys 标识该属性是否是系统属性 所谓系统属性是指该属性是控件自带的属性 否则 控件没有该属性 而自己加的属性就叫作非系统属性 例如 如果没有指定 IsSys 属性 则缺省表示 IsSys true Component Schema xml 中预定义了几个顶级标签 XForm Sheet Query WhereForm Report 这些都是根属性 IsRoot true 除 Report 外 它们都是从 XmlForm XForm XForm 继承而来的 如果用户想要定义自己的顶级标签 则必须也是直接或间接从 XmlForm XForm XForm 继 承 而 来 上 面 的 Sheet Query WhereForm 都 是 从 XmlForm XForm XForm继承而来 当从Xml文件中加载一个Form时 系统会自动检测每一个属性是否在 Component Schema xml中定义过 如果没定义则提示错误 例如 假设在OutSheet Xml中 有这样一标签 而 Component Schema xml中Label元素是这样定义 则系统会提示属性Label的Text属性在Component Schema xml没中定义 如果在 Component Schema xml中Label标签定义中加上一条 就不会出错 只有列在Component Schema xml的属性 用Form设计保存时 才能保存上 没有列的属 性是保存不上的 2 单据列表文件单据列表文件 SheetsDef Xml 一个Form文件定义了一个单据或查询等 要想显示 Open 这个Form 则必须在 SheetsDef Xml中有这个Form的定义 没有在SheetsDef Xml中定义的Form是不能打开的 那 么SheetsDef Xml中都定义了什么内容呢 SheetsDef Xml中的每一项是一个Sheet标签 型如 其中 SheetType Form的类型 共有4种 Document表示档案类型 Sheet表示单据类型 Query 表示查询类型 WhereForm表示条件类型 OpenMode 打开 显示 模式 Dialog表示以对话框打开 Form表示以Form形式打开 TableName 表示这个Form所对应数据库的主表名 SheetName 单据名 不能重复 也就是说在SheetsDef Xml中不能值有相同的SheetName Caption 中文单据名 通常单据 SheetName 名都用字母表示 Caption是SheetName的 中文表示 当用Open单开单据时 需要两个参数 其中一个是单据名 例如 Open Product Me 打开 产品档案 但用Open 产品档案 Me 也表示同样的效果 XmlName Form对应的Xml文件名 XmlName不可缺少 XsdName Form 对应的数据集文件名 XsdName是可选的 如XsdName Parent DataSet 则表示引用父Form的数据集 如果XsdName FileName xml 则表示取本地数据文件 FileName Xml 这个数据文件包括数据结构和数据 RptName Form 对应的打印文件名 RptName是可选的 Open SheetName XmlForm XForm XForm 方法是最打开单据的最常用的方法 它需要两 个参数 一个是SheetName单据名 即SheetDef Xml中定义的SheetName 另一个是 XmlForm XForm XForm类型的对象 这个对象是要打开单据的父Form 用Open 方法打开单据 时 系统会根据SheetDef Xml的定义自动加载Xml Xsd文件 如果代入的单据名SheetName 在SheetDef Xml中找不到 系统会提示出错 新的Form定义加入到SheetDef Xml后 商务之星 NET 系统必须重新启动才能生效 3 方法引用文件方法引用文件 FuncInfo txt FuncInfo txt文件是专门定义在组件Form中调用的方法的地方 如果一个方法不在 FuncInfo txt定义 可能就无法调用 实际上当遇到一个方法时 告诉系统到哪个动态连接库 中去找 商务之星 NET 在遇到一个方法时 会先在本Form中找 即XmlForm XForm XmlForm XSheet XmlForm XQuery XmlForm XWhere Business Sheet Sheet Business Query Querty Business Query WhereForm 如果找到则调用 如果没找到 则就会 到FuncInfo txt中指定的dll中去找 例如 在FuncInfo txt中有如下定义 Open BusinessSheets dll Print BusinessSheets dll 则当遇到Open Print 时 系统就会到BusinessSheets dll中去找 找到后并调用 之 在Form中引用属性也也同方法一样 也必须在FuncInfo txt中定义 形式如下 User Date BusinessSys dll User Name BusinessSys dll 属性必须是静态的 有了FuncInfo txt就可以扩展自己系统了 例如 如果您有一自己的方法 可能在一个 叫GetFee 方法中计算提成或费用 而GetFee 方法在您自己My dll动态连接库中 因此在 FuncInfo txt中您可以这样定义 Getfee My dll就可以调用了 这时 如果在Xml文件中 引用Getfee 方法 例如 OnClick GetFree 则系统就可以调用您自己GetFree 了 您自己的dll文件必须放到应用程序的运行目录文件夹下 如果您的应用程序 商务之 星 NET 安装在C SST下 则dll文件也要放到C SST 新的方法定义加入到FuncInfo txt后 商务之星 NET 系统必须重新启动才能生效 如果您的方法不想在 FuncInfo txt 中定义 那么 您可以在调用的的地方这样写 动态库名 方法全名 例如 OnClick My dll GetFree 这时不用重新启动系统 第三章 第三章 属性和事件 属性和事件 属性 属性 属性是标签内的一个名字 值对 属性也对应 Form上的控件的属性 通过属性可 以控制控件的外观 数据绑定 格式化等 例如 把标签 Label 的前景颜色设置成红色 这里名字 值对 ForeColor 255 0 0 其中 ForeColor 是属性名 255 0 0 是属性值 事件 事件 事件也是一种特殊的属性 是以字母 On 为前缀 事件名为属性名的属性 例如 按钮标签元素有 Click 事件 其中 OnClick 是表示事件 Click 其属性值是 MyMethod 是方法名 所以 所有的属性名不 能以 On 开头 否则 商务之星 NET 会把它当成事件处理 另外 同一事件不能定义两 次 通常我们把定义事件叫做事件挂接 象前面的例子中 我们说按钮 Button1 的 Click 事 件挂接了 MyMethod 方法 也就是说用鼠标单击 Button1 按钮 则 商务之星 NET 会自动 调用和触发 MyMethod 方法 1 表达式文法表达式文法 表达式是标签的属性和事件的最基本和最灵活的表示形式 无论属性或事件 其值都 可以写成表达式 系统会对表达式做分析解释和调用 也就因为是有了表达式才有了可以 灵活定制的 Form 商务之星 NET 中大量地应用了是表达式 那么什么是表达式呢 表达式应该怎么表示呢 满足下列条件的都是表达式 Expr 1 常量 True False Null 空 2 数值 1 1 23 2000 3 字符串常量 字符串 string 4 对 象 Me Parent DataSet Parent DataSet ColumnName ColumnName Control Text Forms FormName Parent Forms FormName DataSet Forms FormName Control Text Count Cols ColumnName 参见第九 章 5 方法 GetBalQuantity GetTableValue GetDefaultValue 等 6 逻辑运算 And Or Not 满足 1 2 3 4 5 的逻辑运算 空值 Null 的逻辑运算 Not Null Null Expr And Null Expr Expr Or Null Expr 7 算数运算 满足 1 2 3 4 5 的算数运算 空值 Null 的算数运算 Expr Null Expr Expr Null Expr Expr Null Null Expr Null Null Expr Null Null Null Expr Expr Null Expr Null Null Expr Null Null Expr Null Null Expr null 8 关系比较运算 空值 Null 的关系比较运算 除 Null Null Null Null NullNull Null 0 And Permission OutSheetAddTax OutSheet 其中 Me 是 Form 对象 InviceType SelectedValue 是下拉列表的属性 Print 是打印 方法 商务之星 NET 的数值类型统一定义为 商务之星 NET 的数值类型统一定义为 decimal decimal 类型 类型 2 属性表示属性表示 2 1 属性 标签是 Form上的最基本元素 但属性是标签的根本 比如 字体 尺寸 位置 字体颜色 背景颜色 边界等 属性可以分基本属性和属性对象 基本属性的类型不是 对象型 即基本属性不能再分 如 字符串 整数 布尔型 枚举等 属性对象有 颜 色 Color 字体 Font 尺寸 Size 位置 Point 等 属性经常是用来控制控件的外观的 例如 有一 Label 标签 名字 Name 属性是定义了该 Label 的名字 label1 Name 的值不能相同 它是字符 串类型 Text 属性是 Label 显示的内容 也是字符串类型 TextAlign 是定义显示 文本的对齐方式 枚举类型 BackColor 是背景颜色 Color 对象类型 ForeColor 是 字体颜色 Color 对象类型 Location 是位置 Point 对象类型 Size 是尺寸 Size 对 象类型 Font 是字体 Font 类型 在同一个 Form上 每个标签元素 Name 属性的值不能相同 因为一个标签元素代 表一个控件 如果 Name 相同 用 GetProperty 方法取属性值和用 SetProperty 方法设 置属性时会出错 另外 用 Form设计器打开时也会出错 2 2 颜色属性值表示法 BackColor 红 绿 蓝 ForeColor 红 绿 蓝 其中 0 0 红 255 0 0 绿 255 0 0 蓝 255 BackColor 0 215 236 ForeColor 218 112 0 2 3 位置属性值表示法 Location X Y X 是相对 Form 的原点 0 0 左上角的水平坐标 Y 是相对 Form的原点 0 0 左上角的垂直坐标 Location 425 418 2 4 尺寸属性值表示法 Size 宽度 高度 Size 56 16 2 5 字体属性值表示法 Font 字体 字号 加重 斜体体 下划线 Font 楷体 GB2312 15 true false false false 2 6 枚举属性值表示法 枚举属性值只用枚举字符串表示 例如 TextAlign MiddleRight 2 7 列表框 ListBox 和下拉列表框 ComboBox 非绑定 Items 属性值表示法 列表框和下拉列表框在非绑定的情况下 内容条目有两种表示法 1 Display Value Display Value Display 是显示的值 Value 是实际取值 这种情况不要设 DataSource DisplayMemer 和 ValueMemer 属性 例如 Items 按 药 品 方 式 psProduct 按 药 品 类 别 psProductType 按 客 户 方 式 psCustomer 按地区方式 psRegion 按人员方式 psPerson 按部门方式 2 Value Value Value 即是显示的值也是实际取值 Items 常温库 阴凉库 冷藏库 2 8 ToolTipText 属性 ToolTipText 属性系统内的特殊属性 因为一般 NET 组件中没有这个属性 是系统 内定义的 这个属性用于鼠标放到控件上时的提示 它可以放到任何控件上 例如 当鼠标放到按钮上时 显示 浏览单据 Ctrl B 2 9 特殊组件标签 Bitmap 位图 Bitmap 是 商务之星 NET 系统的特殊组件 它通常是放在图像列表组件 ImageList 内表示图形文件 它只有一个属性 FileName 表示位图的文件名 例如 表示图像列表ImageList1是由文件Find gif Copy gif ToExcel gif组成 图像 尺寸都是16X16的 Bitmap 标签中的 FileName 属性定义的文件必须放在安装文件夹的子文件夹 Iamge 下 2 10 PictureBox 的 Iamge 属性 PictureBox 标签有一属性 Iamge 该属性表示 PictureBox 控件的图形文件 Iamge FileName 图形文件必须放在安装目录下 Iamge 下 例如 2 11 数据绑定 DataBindings 属性 很多控件都有数据绑定 DataBindings 属性 数据绑定用于把控件与数据集中表 的字段联系起来 当在控件输入数据时 把数据存入数据集的表中 当数据集中表的数 据发生变化时 显示该数据 格式 DataBindings 属性 表名 字段名 例如 DataBindings SelectedValue OutSheet StorehouseID DataBindings Text OutSheet CustomerID 数据绑定 DataBindings 属性可以用 Form可视化设计器设计 2 12 格式化 Format 格式化属性是特殊的属性 是 商务之星 NET 系统自定义的属性 通常用于 Label 和 TextBox 组件 并与数据绑定一起使用 在 BusinessSys 子文件夹下 SysOption cs 文 件中有 GetFormatValue 方法 此方法是用来格式化用的 public static string GetFormatValue string strFormat object objValue 这是一个静态方法 strFormat 是下列任何值之一 Price Quantity Amount Percent Date DateTime DateTime objValue 是有格式化的值 在 Xml 文件中经常这样写 Format GetFormatValue Amount Value Value 就表示当前要格式 化的值 2 13 嵌套属性 嵌套属性是一种复合属性 它需要引申进一步的属性才能访问到 这在一些控件中 经常出现 嵌套属性要求它在 Compoent Shema xml 中的定义也是嵌套属性 例 如 HeadingStyle BackColor DisplayColumn ColumnDivider Color 等 在 Compoent Shema xml 的定义如下 3 属性缺省值 属性缺省值 和动态属性和动态属性 3 1 属性缺省值 属性缺省值是控件在 Form 建立时创建的值 当 Form 显示后 控件属性自动被置 成缺省值 最关键的是控件属性的缺省值是动态可变的 可以用表达式 在第一节中描 述的 表示 表达式可以写成用户自定义方法等 因此 属性缺省值可以很灵活地设置 属性缺省值必须用 号表示 号必须是在属性值的第一字符 系统发现 时 就对 后的表达式进行解析 运算和调用 例如 DefaultValue GetDefault InvoiceType GetDefault 是自定义方法 3 2 动态属性 动态属性表示属性值是可变的 那么什么时间变化呢 当 Form中的主表某记录成 为当前记录时 商务之星 NET 会重新设置动态属性 可以用表达式 在第一节中描述 的 表示 表达式可以写成用户自定义方法等 一般说来 Form第一次显示的时候 系 统就设置一次动态属性 以后每移动主表记录一次 就设置一次动态属性 通常动态属 性用于设置控件的 Enabled 和 Visible 属性 动态属性必须用 号表示 号必须 是在属性值的第一字符 系统发现 时 就对 后的表达式进行解析 运算和 调用 例如 本例中入账按钮 Enabled 属性等于主表的 IsAcc 列的布尔非值 假设 Form 中有多 张单据 也就是主表多条记录 按翻页键就可翻到下一页或上一页 由于每张单据的 IsAcc 列值不同 那么 入账按钮就会变得有效或无效 如果一张单据已经入帐后 IsAcc 列为 true 这时入账按钮无效 如果一张单据未入账 IsAcc 列为 false 这时入账按钮 有效 这样入账按钮就达到了入账无效没入账有效的效果 属性缺省值和动态属性在 商务之星 NET 中非常重要 几乎所有的文件都用到 了这两个特性 尤其是控件的 Enabled 和 Visible 属性经常用属性缺省值和动态属性设 置 这样可以动态设置 Form的外观 最常用的设置菜单的 Enabled 属性 系统启动后某一菜单对于不同人员的权限是不 同的 因此可以用动态属性设置 参见 MainForm xml 文件 例如 4 签名事件和非签名事件签名事件和非签名事件 4 1 签名事件方法 商务之星 NET 是用 Microsoft NET 和 C 语言开发的 因此 必须遵守 Microsoft NET 和 C 的约定 通常 事件方法都带有参数 在 商务之星 NET 中事件 也是一种特殊的属性 是以字母 On 为前缀 事件名为属性名的属性 例如 其中 OnClick 是表示事件 Click 其属性值 是 SignMethod 是方法名 SignMethod 方法的参数必须与 Click 事件的参数类型和顺序 完全相同 因此 我们就把 SignMethod 方法叫签名事件方法 签名事件方法 签名事件方法只能挂接 一个 4 2 非签名事件方法 非签名事件方法非签名事件方法就是与事件的要求的方法的参数类型和顺序不完全相同 例如 NonsignMethod 方法的参数 Click 事件的参数类型和顺序不相同 Click 事件要求两个参 数 而 NonSignMethod 方法无参数 非签名事件方法可以挂接多个 每个方法用 隔开 非签名事件方法非签名事件方法必须用 号表示 号必须是在属性值的第一字符 签名 事件方法和非签名事件方法不能同时挂接同一事件上 例如 用鼠标点击按钮 Button1 后 系统自动调用三个方法 5 怎样设置控件属性和取控件属性怎样设置控件属性和取控件属性 在Xml文件中怎样表示控件对象及属性呢 用 ControlName表示控件对象 其中 ControlName是控件名称 控件对象通常是提供 给编程人员访问控件用的 比如有方法SetControlBackColor Control c 设置控件背景颜色 可以这样写 SetControlBackColor txtBox1 这样可以设置控件txtBox1的背景颜色 用 ControlName PropertyName表示控件属性 其中 PropertyName是属性名 例如 txtBox1 Text 产品名称 另外 可以用 GetProperty Form名 控件名 属性名 方法取控件属性 如果是取本 Form的 控件属性 Form名参数可以用 Null 表示 上例中 GetProperty null txtBox1 Text 与 txtBox1 Text 完全一样 如果上例改为 则不能用 文本框1 Text 系统不识别中文的控件名格式 但可以用 GetProperty null 文本框1 Text 表示 ontrolName PropertyName 与与 GetProperty 区别 区别 ControlName 和 PropertyName 不能用中文 而 GetProperty 和 SetPropety 参数可以用中文 5 1 设置控件的属性 设置控件的属性用 SetPropety Form 名 控件名 属性名 属性值 例如 在 Xml 文件中有如下 则点击销售管理ActiveLabel可设置Panel的可见性 6 商务之星商务之星 NET 查找属性和方法的顺序查找属性和方法的顺序 商务之星 NET 查找属性和方法的顺序是首先在内部方法中查找 如果找不到再到 由 FuncInfo txt 中指定的动态连接库中查找 如果都没找到则提示 找不到某某方法或某某 方法在 FuncInfo txt 中没有定义 所谓内部方法是指在 ControlSchema cml 中定义的带有属性 IsRoot true 的标签 Type 属性中定义的 dll 库中的方法 通常是 XForm Sheet Query WhereForm POS 等 Form 类 型 也就是 Xml 文件根标签的类型 一般说来 单据和档案是由 Sheet 类型 动态连接库是 BusinessSheet dll 查询是 Query 类型 动态连接库是 BusinessQuery dll 条件是 WhereForm 类型 动态连接库是 BusinessQuery dll 凡由在 Xml 文件中的根标签是 XForm Sheet Query WhereForm POS 的 其类型都 是由下列 dll 中产生 XmlForm XForm dll BusinessSheet dll BusinessQu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合作合同保密协议模板
- 个人入股协议书
- 航拍服务协议书
- 课题一就业指导教学方案教案
- 安全知识培训与演习课件
- 中国移动阿里市2025秋招笔试行测题库及答案网络优化与维护类
- 安全知识及安全操作培训app课
- 安全知识产权培训方案课件
- 海南旅游安全培训内容课件
- 结构图教学设计
- 2025建筑二次结构木工劳务合同范本
- GB/T 46105-2025陆地生态系统碳汇核算指南
- 第一讲-决胜十四五奋发向前行-2025秋形势与政策版本-第二讲-携手周边国家共创美好未来-2025秋形势与政策版本
- 学堂在线 现代生活美学-花香茶之道 章节测试答案
- 2025年川教版(2024)小学信息科技三年级(上册)教学设计及反思(附目录P118)
- TD/T 1065-2021 国土空间规划城市设计指南(正式版)
- 信息组织与信息构建课件
- 应急管理学院成立可行性方案
- 视频监控调取记录表
- 质量控制计划QCP
- 七田真1000图记忆
评论
0/150
提交评论