`
xy0792
  • 浏览: 90083 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

KDTable常用处理代码

阅读更多

转自http://121.32.28.234:8800/kdwiki/index.php?edition-view-36-4.html

如何使得KDTable支持多行文本的显示:
只需要给KDTable的列设置一个多行显示的属性即可。设置的方法:
col.getStyleAttributes().setWrapText(true);


如何设置KDTable向下键自动新增行
KDTableHelper里面的方法
1. /**
2. * 在table的最后一行按下箭头自动新增行。
3. *
4. * @param table
5. * @param isAddRow
6. * 是否自动新增行
7. * @param actionAfterAddRow
8. * 新增行后将触发的事件
9. */
10. public static void downArrowAutoAddRow(KDTable table, boolean isAddRow, Action actionAfterAddRow)


如何设置KDTable Tab键和Enter键自动新增行
KDTableHelper的这个方法可以满足这个需求:
1. /**
2. * 修改Enter键的行为使它于Tab一致
3. *
4. * @param table
5. * @param isAddRow
6. * 焦点到了最后一行,再次按下enter和tab是否自动增加新行
7. * @param actionAfterAddRow
8. * 添加新行后的事件
9. */
10. public static void updateEnterWithTab(KDTable table, boolean isAddRow, Action actionAfterAddRow)


如何调整KDTable的Tab键和enter键的行为
KDTable默认情况下Tab键和Enter键分别起到单元格选择调整的作用,Tab键跳到右侧单元格,Enter键跳到下方的单元格。
KDTableHelper提供了一些方法用于修改Enter键和Tab键的行为。
KDTableHelper.releaseEnter:释放Enter键,即KDTable将不响应Enter键。
KDTableHelper.releaseTab:释放Tab键,即KDTable将不响应Tab键。
KDTableHelper.releaseEnterAndTab:释放Tab和Enter键。


KDTable如何根据内容自动调整行高列宽
双击KDTable的两行(或者列)之间的边线,将会根据内容自动调整行高(列宽)。
通过调用KDTableHelper的autoFitRowHeight和autoFitColumnWidth这两个方法也可以调整行高列宽。计算行高和列宽需要结合字体、Graphics上下文,是比较耗时的,应有时需要注意。


KDTable的排序要如何实现
KDTable的排序都是由KDTSortManager来实现的。分为实模式和虚模式两种应用模式。
虚模式:排序的具体实现由外部通过继承并重写KDTSortManager的sort方法来实现。例如ListUI的就是重写了这个sort方法,在这个方法中清楚KDTable中的数据,然后刷新KDTable,用新的排序方式重新向服务端取数。
1. KDTSortManager sm = new KDTSortManager(table)
2. {
3. public void sort(int colIndex, int sortType)
4. {
5. // 一定要调用super.sort,这句代码将影响表头排序箭头的显示效果
6. super.sort(colIndex, sortType);
7.
8. if (sortType == KDTSortManager.SORT_ASCEND)
9. {
10. // 升序
11. }
12. else
13. {
14. // 降序
15. }
16. }
17. };
复制代码
实模式:KDTSortManager内置了实模式下的排序方式,不需要重写sort方法即可实现实模式的排序,当然,你也可以重写sort方法来实现自己的排序逻辑。
1. KDTSortManager sm = new KDTSortManager(table)
2. sm.setSortAuto(true);


KDTable中如何调整行高列宽
有些时候,KDTable中单元格的文本内容过长,单元格显示不下,需要调整行高或者列宽,通过鼠标双击行或者列的边框线,KDTable会自动调整行高或者列宽到合适位置。
如果想要通过代码在后台调整行高列宽到合适位置,下面的方法分别对应行高、列宽、表头行高:
KDTableHelper的autoFitRowHeight、autoFitColumnWidth、autoFitHeadRowHeight
由于计算合适行高列宽,需要结合当前Graphics以及字体等信息进行计算,这个动作是相对比较耗时的,因此这些方法要结合实际情况使用,大数据量下使用这些方法,将可能导致性能问题。


KDTable部分数据导出到excel后显示格式不一致
这种问题一般是由于没有给KDTable设置正确的格式导致的。主要分为一下几类:
1、 由数字组成的长字符串导出excel后显示为科学计数法或字符串显示不完整,例如手机号13433445678。
解决办法:给KDTable的列设置格式串(col.getStyleAttributes().setNumberFormat("@")),指定该列为字符型即可。
2、 数字位过多的大数字导出excel后显示为科学计数法或精度丢失。
解决办法:给KDTable的列设置格式串(col.getStyleAttributes().setNumberFormat("0.00"))。这里的0.00只是示例,数字格式还有很多种,具体可以参考前面显示格式的介绍。
3、 日期类型数据导出excel后显示格式不正确。
解决办法:给KDTable的列设置格式串(col.getStyleAttributes().setNumberFormat("yyyy-MM-dd"))。这里的yyyy-MM-dd只是示例,日期格式还有很多种,具体可以参考前面显示格式的介绍


如何控制KDTable的显示格式
KDTable提供了格式化的功能,通过格式化的功能可以控制单元格的显示格式,设置列格式的方法:table.getColumn(colIndex).getStyleAttributes().setNumberFormat(formatString);
目 前KDTable已能支持Excel2003的格式串,只有个缺陷:格式串中有中文导出尚有问题,中文变乱码, 建议将来都使用Excel2003的格式串,但旧的格式化串还支持,但是如果该表需要导出到excel,必须使用新的格式串,否则导出到excel,可能 会显示不一致。
文本类:
1、@ 指定内容按文本显示,主要用于编码、手机号等用数字表示的文本。设定该格式后,可以保证导出excel时,此类文本不会被转成数字显示。
数值类:
1、 0.00 表示两位小数,例如3.10367显示为3.10
2、 0.## 表示两位小数,当小数末位为0时,0将不显示。例如3.10显示为3.1
3、 "#,##0.00 "表示两位小数,且显示千份位
4、 #,##0.00;[Red]#,##0.00 表示负数红字
5、0.00;[Red]0.00;" " 表示负数红字,且数据为0时不显示
6、0.00;[Red](0.00);" "表示正数时两位小数,负数时两位小数并显示红色,0时不显示。0.00;[Red](0.00)只是一个示例,可以为任意的数字格式串,后边再加上;" "(空格)即表示数据为0时不显示。

日期类:
1、 yyyy-m-d
2、 yyyy-MM-dd
3、 yyyy-MM-dd hh:mm:ss
4、 yyyy年MM月dd日
百分比:
1、0%
2、0.00%

…… 详细请打开Excel2003,单元格右键,设置单元格格式,选一种格式,点自定义即可看到该格式的格式串;有的Excel格式串后有带”_”,在使用时,必须去掉。


如何理解KDTable的Render和Editor
Render即为绘制器,KDTable的每个单元格都是对应的绘制器绘制出来的,例如文本绘制器将进行文本的绘制,CheckBox绘制器将在单元格绘制CheckBox的样子,图片绘制器将在单元格绘制图片等。
Editor 即为编辑器,当单元格进入编辑状态后,会在单元格的位置显示编辑器,通过编辑器可以修改单元格的值。在同一时刻,只能有一个单元格进入编辑状态。进入编辑 状态的方法有(1)双击或者单击某个单元格,有些编辑器是双击以后再进入,有些编辑器是单击后进入;(2)选中某个单元格,按F2可以进入编辑器;(3) 选中某个单元格,按下编辑器能接受的按键,例如文本编辑器可以接受任意可见字符,checkbox可以接受空格键作为切换选择的键,按下这些键后,单元格 也将进入编辑状态。结束编辑的方法有(1)在编辑器中按下Enter键或者Tab键;(2)在编辑状态下点击表格的其他单元格;(3)表格控件失去焦点。 在编辑状态下按下Esc键将取消编辑。结束编辑和取消编辑的区别在于,结束编辑时会将单元格的值修改为编辑器的值,取消编辑器将保持单元格的旧值。


如何在取数之后,调整KDTable单元格的内容或者显示格式
table. addKDTDataFillListener这个事件将在取数事件之后被调用,在这个事件当中,取数事件获取的数据已经填充到KDTable当中,可以 直接获取KDTable的行及单元格进行操作。DataFillListener和取数事件是一一对应的,取数事件调用一次则 DataFillListener将被调用一次,而且DataFillListener的事件参数中的起始行和结束行也是和取数事件的参数一致的。需要注 意的是在DataFillListener中只能访问事件参数中的起始行和结束行范围的行,千万不要在这个事件里访问table的所有行,因为如果在这里 访问不在事件参数范围内的行,可能导致再次触发取数事件。

如何通过代码控制KDTable新增行
方法一:

 //增行
EmpEnrollBizBillEntryInfo entry = new EmpEnrollBizBillEntryInfo();//创建分录的实体
entry.setEmpName(name);//设置实体属性
entry.setIDCardNo(id);
editData.getEntrys().add(entry);//将实体新增到editData的实体列表中。
loadFields();//重新加载分录信息 

方法二:

 //增行
addLine(kdtEntries);
IRow newRow = kdtEntries.getRow(kdtEntries.getRowCount()-1);//获取新增的行对象
//设置分录的实体
newRow.setUserObject(new ReceivingBillEntryInfo());
//设置分录实体的属性
newRow.getCell("Band").setValue(obei.getBand());//品牌
newRow.getCell("ProductSeries").setValue(obei.getProductSeries());//产品线
newRow.getCell("Period").setValue(obei.getPeriod());//期数

分享到:
评论

相关推荐

    BOS开发 KDTABLE 处理代码

    **BOS开发中的KDTable处理代码详解** 在企业应用系统开发中,BOS(Business Object Service)是一个常用的技术框架,用于构建业务逻辑层。KDTable是BOS开发中的一种组件,用于展示和编辑表格数据。它提供了丰富的...

    EAS-BOS常用代码

    这份文档详细列出了在开发EAS-BOS客户端时常用的代码片段,包括用户界面交互、数据处理、网络通信等方面。了解并掌握这些代码,能够提高开发效率,解决客户端开发中的常见问题。 3. **常用代码_客户端1(o).doc**、...

    CAD TO EXCEL_KDTable1.1

    在CAD(计算机辅助设计)与Excel(电子表格处理)这两个看似不相干的领域之间,KDTable1.1提供了一个高效且便捷的桥梁,使得工程数据的处理和管理变得更加简单。这款软件的核心功能集中在CAD表格与Excel之间的无缝...

    kdtable 使用指南

    在IT行业开发中,表格控件是用户界面设计中不可或缺的一部分,用于显示和处理数据。...通过掌握KDTable的使用,开发者可以更高效地构建复杂、功能丰富的数据展示和处理界面,大幅度提高开发效率和应用性能。

    EAS KDTable文档

    其中,KDTable是该系统中一个非常重要的表格组件,用于处理数据展示与交互。 ### KDTable组件概述 KDTable组件基于`javax.swing.JComponent`类,是一种可自定义的表格控件,用于在金蝶EAS应用程序中展示和编辑数据...

    kdtable的虚模式加载数据

    在提供的代码片段中,我们看到了如何设置和使用kdtable的虚模式加载数据。首先,通过执行SQL语句获取数据,这里的SQL语句是用于从`T_BD_AccountView`表中选取特定字段。然后将查询结果转换为`List, Object>>`列表,...

    金蝶EAS的基本常用语句

    3. **KDTable处理**:KDTable是金蝶EAS中的数据表对象,它封装了对数据库表的操作。常用的方法有`addRow()`添加记录,`deleteRow()`删除记录,`updateRow()`更新记录,以及`loadTable()`加载数据等。 4. **事件监听...

    金蝶代码框架报表开发

    2. 数据处理,使用 KDTableUtil 类辅助把 RptRowSet 数据显示在 KDTable 中,并提供了用户修改/计算数据处理的接口 3. 单元格显示格式,可以使用自定义格式,使用方法是设置表头格式 4. 动态表头的处理,提供了自动...

    金蝶BOS开发EAS控件

    KDTable是金蝶自主研发的数据展示和操作控件,它可以方便地在界面上显示和处理数据表格。这个控件支持多种数据源,包括数据库、XML文件等,并且提供了丰富的功能,如排序、筛选、分页、编辑等,使得开发者能够快速...

    BOS技术文档

    对于数据处理,`KDTableUtil`类提供了便利,它能够帮助将`RptRowSet`数据展示在`KDTable`中,并提供了用户修改和计算数据的接口。例如,可以使用`insertRows`方法插入新行,并通过`KDTableInsertHandler`接口自定义...

    EAS BOSdep开发实例教程

    3. **KDTable对象**:`KDTable`是BOS中表示表格数据的对象,它提供了一系列方法来操作表格数据,如获取行数(`getRowCount()`)、获取单元格值(`getCell()`)等。在代码中,`pluginCtx.getKDTable("kdtEntries")`获取了...

    金蝶 EAS BOS 培训

    `4.5KDTable控件.doc`文档应该详细介绍了KDTable的使用方法、属性设置、事件处理以及如何与后台数据交互。 2. **JAVA编码规范**:在进行EAS BOS开发时,遵循统一的编程规范至关重要,它能确保代码的质量和可维护性...

    BOS 套打二次开发指南

    它与套打不同,不在本文讨论范围内,更多信息可查阅框架和KDTable控件的相关说明。 **1.2 套打管理中的文件类型** 1.2.1 **KDF(kdrs-form)** 这是传统的套打模板格式,对应*.kdrs-form文件。不推荐使用,未来将...

    BOS V6.2开发指南_控件

    1. KDTable控件的使用:KDTable是继承于JComponent的一个表格控件,它集合了Ledger、KDGrid、KDSpread、JTable和Excel等多种表格功能需求。支持数据显示与编辑,能够灵活更换显示器(Renderer)和编辑器(Editor),...

    BOS V6.2开发指南_套打二次开发

    在对EAS(Enterprise Application ...同时,为了确保套打功能的正确执行,开发者还需要熟悉EAS系统中相关的框架和控件,比如KDTable控件的说明等。通过上述指南,开发者可以高效、准确地完成套打功能的二次开发工作。

    BOS开发指南_控件

    - **简介**:KDTable 是一种用于显示数据的表格控件,可以处理大量的数据记录,并提供排序、筛选等功能。 - **使用指南**: - **创建表格**:首先需要在界面上添加一个 KDTable 控件,可以通过拖拽的方式将其放置在...

    BOS V6.2开发指南_控件.pdf

    - 需要特别注意的是,在处理大量数据时,应考虑性能优化问题,避免因数据加载过慢而影响用户体验。 #### 四、总结 《BOS V6.2开发指南_控件.pdf》提供了丰富的控件使用信息和技术细节,对于正在使用金蝶BOS V6.2...

    BOS开发文档1

    用户界面部分指导开发者如何在BOS平台上设计和构建用户界面,包括新建用户界面、KDTable的重新绑定、创建Action、定义控件属性、创建MenuBar、ToolBar、DataObject以及Status等。 功能和业务功能的定义部分告诉...

    BOS V6.2开发指南_Studio

    BOSStudio可能允许开发人员创建用户界面,并进行各种配置,例如KDTable的重新绑定、创建Action、定义控件属性、创建MenuBar、ToolBar、DataObject和Status等。 9. 功能(Façade)的定义:在面向对象编程中,门面...

    金蝶BOSV6.1_业务组件API参考手册

    com.kingdee.bos.ui.dtp.kdtable com.kingdee.bos.ui.dtp.model com.kingdee.bos.ui.dtp.model.layout com.kingdee.bos.ui.face com.kingdee.bos.ui.StateManage com.kingdee.bos.ui.util ...

Global site tag (gtag.js) - Google Analytics