- 浏览: 361593 次
- 性别:
- 来自: 青岛
-
文章分类
最新评论
-
贝塔ZQ:
java实现操作word的读取和修改操作,用插件实现的话,可以 ...
java用poi实现对word读取和修改操作 -
yh412:
[flash=200,200][url][img]引用[/im ...
java用poi实现对word读取和修改操作 -
2047699523:
最代码 http://www.zuidaima.com 提供 ...
Java经典代码 -
漫成咖啡:
如何制作卡片型单据 -
geekant:
import com.swing.lx.table 这个包是你 ...
JTable的表头合并
卡片型单据UI工厂中最基本的单据,与其他类型的单据比较起来,它的界面形式以及VO数据的组织相对简单。
卡片型单据的应用场景是:单据聚合VO的数据在界面上展示这个聚合VO,可以有标准的表头+表体数据组成,也可以是单表体和单表头。
卡片型单据统一的界面基类 BillCardUI
统一的事件处理类 CardEventHandler
统一的界面控制接口 ICardController
单表体的卡片型单据界面
表头+表体的卡片型单据界面
多子表的卡片型单据界面
开发卡片型单据的步骤:
与传统的单据开发方式一样,基于UAP平台,需要做一下准备:
#以数据库表结构为蓝本,利用工具自动生成单据VO类
#在NC二次开发工具/单据类型管理中对单据的相关配置套类进行注册。比如单据UI类,前台校验类等。
#在NC单据模板设置工具中对该单据的显示模板进行设置。
从卡片单据的相关基类继承,即可生产初步的类框架。由于UI工厂在基类对许多功能进行了缺省实现,因此只需要配置几个简单的信息(通过方法的重载)即可生产最简单的界面。
1. 界面控制类是必须的。因此它保存着单据的VO信息,以及单据的主子表主键信息
重载getBillType() 方法 -- 返回在平台里给此单据注册的单据类型
重载getBillVOName() 方法 -- 返回单据的VO信息
重载getPKField() 方法 -- 返回主表的主键
重载getChildPKField() 方法 -- 返回子表的主键。
2. EventHandler 类用来响应按钮事件,所有按钮事件在基类都有缺省实现!
3. SampleCardUI
重载createController() 方法 -- 该方法得到界面控制类
通过这几步,实际已经利用UI工厂创建了最简单的单据。
完善功能一:数据加载
# 初始化单据模板的数据,比如对comboBox数据的初始化,对参照数据的初始化。实现这个功能,需重载initSelfData 方法,并在方法内完成对单据模板初始化的代码。
# 初始化界面数据,UI工厂通过setDefaultData方法来设置界面的初始数据。该方法的主要目的是初始化单据必须的信息,它在新增数据的时候会被调用。但是,在UI类实例化的时候,它不会自动调用。因此,应该在UI类的构造器显式地调用该方法。
# 读取单据的数据。从外部数据源获取单据数据,比如数据库、数据文件等。最普遍的情况是通过查询数据库获得单据。
第一,在平台上定制单据的查询模板,并进行注册。
第二,根据业务确定单据是基本档案的单据还是需要流程平台、会计平台等平台支持的单据。这个信息需要在单据类中指明,在SampleCardController 中重载getBusinessActionType 方法。
第三,为单据定制按钮。很显然,我们现在必须要一个查询按钮,为了浏览的方法,在添加一个按钮和一个刷新按钮。方法是:在SampleCardController中重载 getCardButtonAry 方法。
经过上面几步,就完成了简单的数据加载功能。按钮的事件处理,及数据库查询的逻辑都已在基类实现,因此,只需做简单的信息配置(主表主键,子表主键,是否走平台,主表VO类,子表VO类,聚合VO类)即可。
完善功能二: 对数据的增,删,改操作
我们并没有显示地控制查询的逻辑,仅仅是见主子表信息,单据类型配置在程序中,如果对数据的增删改并没有特殊的功能要求,我们只需要添加相应的操作按钮,此时应该修改SampleCardController的 getCardButtonAry 方法。
上一步之后,单据已经具备了对数据的增,删,改功能。需要提醒的是,按钮状态的管理在UI工厂中是交给ButtonManager对象集中控制。
完善功能三: 前后台校验
在UI工厂中,单据的前台校验也是先在单据类型管理中注册前台校验类,但是提供了校验的辅助类和对校验规则的封装。而单据的后台校验,在UI工厂有特殊的实现方法。
前台校验主要处理对界面数据的校验。UI工厂定义了一个抽象类BeforeActionCHK,它实现了平台的前台校验接口IUIBeforeProcAction 。这样,单据的前台校验类应继承BeforeActionCHK。为了辅助做校验,UI工厂利用校验规则和校验执行类完成功能。通用的校验执行类是VOChecker ,校验规则分为三种:
1. 由接口ICheckRules 所定义的
它主要用来做最基本的校验,比如表头,表体数据的非空校验,数据类型校验等等。
2. 由接口ICheckRules2所定义的
它主要用来做表体数据是否为空的校验,并且增加了设定特殊的校验执行类的接口。
3. 由接口IUniqueRules所定义的
它用来校验前台表体数据的唯一性。
变体一:单表体的卡片型单据
单表体的单据时指装载界面数据的聚合VO表头VO为空,只存在一组表体VO。UI工厂在设计的时候考虑到这种情况,设计了一个接口ISingleController,单表体单据的界面控制类应实现此接口,并实现isSingleDetail方法。
变体二:单表头的卡片型单据
变体三:虚拟主子表的卡片型单据
虚拟主子表单据指的是那种数据来源于一张数据表,却根据特定规则模拟主子表的结构,将一部分字段放到表头,剩下的字段放到表体的单据。它通常用于数据的分组,即把数据根据特定字段的值进行分组。特定字段的值相等的数据自然的被归为一类,然后,把特定字段放到表头显示,属于它的一组数据在表体列表显示,形成了标准主子表的结构。
因为数据分组的特定规则取决于业务,因此UI工厂无法做缺省的实现。但是,加载数据库一般都在查询时完成,所有可以定制查询事件的行为,这需要为单据创建按钮事件处理器,并重载查询时基类调用的方法。
1.加载数据的步骤。
2.对数据增、删、改的控制。
因为是虚拟主子表的数据结构,它在进行数据的操作时需要额外的控制。这个问题的本质是在将前台数据写回后台时,需将前台的主子表结构还原为单据结构。
在编辑(行操作)完毕,点击保存按钮。程序会从界面企鹅的被修改的数据,这些数据被标识成新增、删除、修改等状态,提交给后台处理。对于真正的主子表,表头数据和表头数据会分别存储到对应的表中,但对于虚拟主子表的单据,主表数据加上子表数据的一行才构成数据表中的一行记录。
变体四:多子表的卡片型单据
多子表单据在界面显示上通常是表头 + 多页签的表体,每一个页签代表一个子表。在UI工厂中,这种单据也得到了抽象,主要是从两个角度抽象的
#对UI显示界面的抽象。多子表单据的UI类不使用BillCardUI做基类,而是继承于一个新的UI基类,MultiChildBillCardUI,它封装了多个页签的界面显示。
#对VO数据的抽象。在NC应用中,主子表数据存储在聚合VO中,它支持一个主表+一个子表的结构,但是这种结构不适合于多子表的情况。因此,UI工厂设计了接口IExAggVO,需要装载多子表数据的聚合VO类,应该实现此接口,并实现它的关键方法。
步骤
1. 定义多子表
多子表VO是聚合VO,同时又象一个装着多个子表数据的容器,因此它必然继承自AggregatedValueObject的类层次,又实现多子表VO的接口,IExAggVO
2. 定义单据界面控制类
3. 定义事件处理类
4. 定义业务代理类
简单介绍过业务代理类,它的缺省行为主要是获取后台数据。为了将职责划分得更清楚,我们可以创建专门业务的代理类。
前面的例子中一直没有涉及业务代理类,但是,对于多子表的单据,一定要创建业务代理类,并重载其中的一个方法。原因:在加载数据时,除了虚拟主子表的单据自己负责加载所有表头,表体数据,并一次性地在BillUIBuffer中缓存所有已组织好的聚合VO对象外,其它表结构的单据都要先加载表头数据,然后在必要时才通过主子表的主键关系取得表体数据。真正的主表 -- 多子表关系往往也满足这样的主键关系,但是,为了控制的灵活,UI工厂将数据组成多子表结构的任务放到了业务代理中。多子表单据应创建自己的业务代理类,并重载loadChildDataAry方法。
5. 定义单据UI类
发表评论
-
零碎脑残
2012-12-05 10:08 1256if (NCOptionPane.showConfir ... -
表体设置颜色
2012-04-16 15:22 1113//取得选定的行 int[] rows = ge ... -
一些查询模板的默认值
2012-04-16 14:54 1098查询条件的取值可以使用系统函数,带有#value#的为系 ... -
获得焦点
2012-04-16 14:37 1420表头: (getBillCardPanel().get ... -
JTree的一些常用方法
2012-04-16 14:20 1437在实际开发过程中会经常使用JTree组件,平时会遇到这样 ... -
根据身份证号生成出生日期
2012-04-16 14:05 2975/** * @创建时间:2007-5-10 下午04 ... -
初始化超级用户root密码
2012-01-11 22:15 1295初始化超级用户root密码 -
NC表型参照类
2011-09-05 15:40 7114package nc.ui.bd.ref; /** ... -
Excel导出功能
2011-08-19 14:40 1337NC中功能事件代码: ... -
节点号编码
2011-05-17 22:30 1054新开发单据或档案若越过license验证在节点号设置时有要求: ... -
NC5.5中无法创建账套
2011-05-15 17:19 926NC5.5中无法创建账套 错误显示:后台Ser ... -
BillListPanel中获得选中的行
2011-05-15 17:16 1375int row = getBillListPanel() ... -
NC数据排序
2011-05-15 16:12 1059VO排序 -- nc.vo.trade.voutil ... -
消息过长对话框
2011-04-07 21:55 1260package nc.ui.ldzl.dlg; i ... -
UFDouble常用方法
2011-04-04 21:21 8324UFDouble ufDouble = new UFDo ... -
对联
2011-03-26 13:16 983横联 : 单据开发 上联 : 主表子表主子表 ... -
页签转换
2011-03-20 14:18 1216A.。 在ClientUI类中实现ChangeListener ... -
BillModel 单据表体表模式
2011-03-17 12:54 1783//单据表体表模式,带有默认合计行表模式、行号表模式。 th ... -
获取单据号
2011-03-17 11:25 1737ZlRentVO zlRentVO = new ZlRe ... -
参照可手写录入,不验证
2011-03-17 10:49 1122//参照可手写录入,不验证 UIRefPane ref ...
相关推荐
#### 第二章:如何制作卡片型单据 **知识点10:卡片型单据的类结构** - **结构特点**: 卡片型单据通常具有清晰的分层结构,便于管理和扩展。 - **类层次**: 通常包括基础的单据类、具体的业务逻辑处理类以及界面...
3. **制作步骤**:详细介绍如何开发列表卡片型单据的过程。 #### 六、坚持模型驱动的单据开发方法 模型驱动的开发方法强调以数据模型为核心,围绕数据模型构建应用程序。 1. **模型优先**:强调先设计数据模型,再...
虚拟主子表的卡片型单据制作相对复杂,因为它的数据虽然来自单一表,但通过特定规则虚拟出主子表结构。这种单据常用于数据分组,根据自定义字段的值将数据分为多个类别,特定字段显示在表头,其余数据作为表体。由于...
- **类结构**:结合了列表型和卡片型单据的优点,适用于展示详细信息的同时提供简洁的列表视图。 - **开发步骤**: - **定义类结构**:确定列表和卡片的布局方式。 - **数据和单据关系**:理解列表数据与单据数据...
接下来,资料引导初学者从简单的单据开发入手,这是一种卡片型单据,涵盖了增删查改等基本操作。通过实践,开发者可以直观地感受到NC单据开发的全过程,包括设计、编码、测试等环节。这一阶段的学习目标是熟练掌握...
在产品演示环节,培训课件详细展示了操作流程,包括单笔打印、批量打印、内部转账单据卡片和自定义业务单据卡片等,确保用户能够直观地理解并掌握系统的实际操作方法。 《用友NC63全产品培训-电子单据柜》培训课件...
证件速打王专门针对于教育行业、联合办学培训机构、政府机关、大中型企事业单位、相馆、冲印中心、会展等行业需要大量制作、打印或输出胸卡、学生证、毕业证、录取通知书、成绩报告单、学籍卡片、信封、会展证、标签...
- 录入固定资产卡片时,填写新增卡片的“对应折旧科目”、“项目令号”。 **2.4.2 月结账与折旧计提** - 新增卡片月结账后,进行折旧计提。 **2.4.3 凭证生成** - 测试环境中,会计科目“销售费用”挂了项目辅助...
8. 关于资产处置单,已调出生成新卡片的资产处置单可以反审核,单据已生成凭证的资产处置单可以反审核,单个的资产卡片可以在当期新增多次资产处置单,反审核后的资产处置单可以删除。 业务对象功能授权 9. 在业务...
它的卡片、单据录入以及表格查询等操作更人性化,支持动态可视参照和全键盘录入,使得日常操作更为便捷。同时,8E的界面设计符合国际标准,主界面和各模块反应速度快,用户体验良好。而用友U8在这些方面虽然也具备...
用户可以指定调拨单、组装单、拆卸单、其他入出库单是否直接更新库存,既支持流程型操作,也便于单机型操作 各类单据的打印,可自己设计定制格式 灵活生成各类统计报表,可定制显示方案 支持用户和授权管理; 支持...
用户可以指定调拨单、组装单、拆卸单、其他入出库单是否直接更新库存,既支持流程型操作,也便于单机型操作 各类单据的打印,可自己设计定制格式 灵活生成各类统计报表,可定制显示方案 支持用户和授权管理;...
T6-企业管理软件V6.0是一款专为中小型型企业设计的企业资源规划(ERP)解决方案,旨在通过全面管理企业的核心业务流程,实现事前计划、事中控制、事后分析的高效管理模式。该软件的核心理念是规范业务流程,提升企业...
6. **后续处理**:一旦资产减值,后续可能涉及的单据包括调整资产卡片、更新财务报表等,确保资产信息的准确性。 了解和熟练掌握U9系统的资产减值准备单单据类型对于企业财务人员至关重要,这不仅有助于确保会计...
- 技术资料:确保具备设计图纸、相关国家标准和安装所需的各类表格、卡片和单据。 - 编制施工预算:基于施工图纸制定班组预算,材料部准备所需材料。 - 施工平面布置:包括场地三通一平(电通、水通、路通和平整...
此外,金蝶EAS的固定资产管理系统涵盖了卡片管理、折旧计算和账务核算,提供多种自定义折旧方法,以适应不同设备的折旧需求。同时,系统还包含了协同平台,整合了总账、预算管理,实现费用报销的核算和预算控制,...
每种类型车辆的流程大致相似,涉及门岗登记、过磅、装卸货、复磅、开票或交接单据等步骤,所有这些操作都可通过RFID卡片实现自动化处理,提高了效率,减少了人为错误。 在数据库设计方面,可能需要考虑以下几点:...
1. 技术资料:施工前需具备制造厂的设备图纸、相关的国家标准和施工规范,以及各种安装所需的表格、卡片和单据,确保施工过程合规且有据可依。 2. 编制施工预算:根据施工图纸,预算部门需准备足够的材料和资源。 3....
软件通过灵活的单据模板和报表设置,适应不同类型的商业企业,实现业务流程的重组,减少了人为操作的成本和时间。 二、组织框架 系统涉及到的组织架构分为公司级、分店部门级和班组织三级。公司级包括总经理室、各...