版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄如何使得KDTable支持多行文本的顯示:1如何設(shè)置KDTable向下鍵自動(dòng)新增行2如何設(shè)置KDTable Tab鍵和Enter鍵自動(dòng)新增行2如何調(diào)整KDTable的Tab鍵和enter鍵的行為3KDTable如何根據(jù)內(nèi)容自動(dòng)調(diào)整行高列寬3KDTable的排序要如何實(shí)現(xiàn)3KDTable部分?jǐn)?shù)據(jù)導(dǎo)出到excel后顯示格式不一致4如何控制KDTable的顯示格式5如何理解KDTable的Render和Editor6如何在取數(shù)之后,調(diào)整KDTable單元格的內(nèi)容或者顯示格式6KDTable刷新后,滾動(dòng)條跳到最后修改位置7如何通過(guò)代碼控制KDTable新增行7對(duì)于分錄設(shè)置排序8EAS Bos 合計(jì)
2、行代碼8EASBos 對(duì)于某個(gè)權(quán)限的驗(yàn)證10關(guān)于Bos 開(kāi)發(fā)中使用字段類型是選擇已有基礎(chǔ)資料的的源代碼10關(guān)于對(duì)EASbos 分錄設(shè)定默認(rèn)值11關(guān)于eas 單據(jù)中有多個(gè)分錄的情況下,默認(rèn)是哪個(gè)實(shí)現(xiàn)了排序11eas bos 客戶端常用代碼12關(guān)于驗(yàn)證常用的幾個(gè)類文件和代碼13EAS多分錄單據(jù)分錄添加按鈕,加到最左邊14禁用EAS多分錄單據(jù)分錄上的操作按鈕15顯示EAS標(biāo)準(zhǔn)單據(jù)自帶kdtable(kdtEntry) 右鍵導(dǎo)出 excel菜單16列表界面根據(jù)情況設(shè)置單行背景色高亮17修改ListUI的表體列的顯示文字18如何使得KDTable支持多行文本的顯示: 只需要給KDTable的列
3、設(shè)置一個(gè)多行顯示的屬性即可。設(shè)置的方法: col.getStyleAttributes().setWrapText(true);如何設(shè)置KDTable向下鍵自動(dòng)新增行 KDTableHelper里面的方法 1. /* 2. * 在table的最后一行按下箭頭自動(dòng)新增行。 3. * 4. * param table 5. * param isAddRow 6. * 是否自動(dòng)新增行 7. * param actionAfterAddRow 8. * 新增行后將觸發(fā)的事件 9. */
4、0;10. public static void downArrowAutoAddRow(KDTable table, boolean isAddRow, Action actionAfterAddRow)如何設(shè)置KDTable Tab鍵和Enter鍵自動(dòng)新增行 KDTableHelper的這個(gè)方法可以滿足這個(gè)需求: 1. /* 2. * 修改Enter鍵的行為使它于Tab一致 3. * 4. * param table 5. * param isAddRow 6. * 焦點(diǎn)到了最后一行,再次按下enter和tab是否自動(dòng)增
5、加新行 7. * param actionAfterAddRow 8. * 添加新行后的事件 9. */ 10. public static void updateEnterWithTab(KDTable table, boolean isAddRow, Action actionAfterAddRow)如何調(diào)整KDTable的Tab鍵和enter鍵的行為 KDTable默認(rèn)情況下Tab鍵和Enter鍵分別起到單元格選擇調(diào)整的作用,Tab鍵跳到右側(cè)單元格,Enter鍵跳到下方的單元格。 KDTableHelper提供了一些方法用于修改
6、Enter鍵和Tab鍵的行為。 KDTableHelper.releaseEnter:釋放Enter鍵,即KDTable將不響應(yīng)Enter鍵。 KDTableHelper.releaseTab:釋放Tab鍵,即KDTable將不響應(yīng)Tab鍵。 KDTableHelper.releaseEnterAndTab:釋放Tab和Enter鍵。KDTable如何根據(jù)內(nèi)容自動(dòng)調(diào)整行高列寬 雙擊KDTable的兩行(或者列)之間的邊線,將會(huì)根據(jù)內(nèi)容自動(dòng)調(diào)整行高(列寬)。 通過(guò)調(diào)用KDTableHelper的autoFitRowHeight和autoFitCo
7、lumnWidth這兩個(gè)方法也可以調(diào)整行高列寬。計(jì)算行高和列寬需要結(jié)合字體、Graphics上下文,是比較耗時(shí)的,應(yīng)有時(shí)需要注意。KDTable的排序要如何實(shí)現(xiàn) KDTable的排序都是由KDTSortManager來(lái)實(shí)現(xiàn)的。分為實(shí)模式和虛模式兩種應(yīng)用模式。 虛模式:排序的具體實(shí)現(xiàn)由外部通過(guò)繼承并重寫KDTSortManager的sort方法來(lái)實(shí)現(xiàn)。例如ListUI的就是重寫了這個(gè)sort方法,在這個(gè)方法中清楚KDTable中的數(shù)據(jù),然后刷新KDTable,用新的排序方式重新向服務(wù)端取數(shù)。 1. KDTSortManager sm = new KDTSortMan
8、ager(table) 2. 3. public void sort(int colIndex, int sortType) 4. 5. / 一定要調(diào)用super.sort,這句代碼將影響表頭排序箭頭的顯示效果 6. super.sort(colIndex, sortType); 7. 8. if (sortType = KDTSortManager.SORT_ASCEND) 9. 10. / 升序 11. 12. else 13. 14. / 降序
9、60;15. 16. 17. ; 復(fù)制代碼 實(shí)模式:KDTSortManager內(nèi)置了實(shí)模式下的排序方式,不需要重寫sort方法即可實(shí)現(xiàn)實(shí)模式的排序,當(dāng)然,你也可以重寫sort方法來(lái)實(shí)現(xiàn)自己的排序邏輯。 1. KDTSortManager sm = new KDTSortManager(table) 2. sm.setSortAuto(true); KDTable中如何調(diào)整行高列寬 有些時(shí)候,KDTable中單元格的文本內(nèi)容過(guò)長(zhǎng),單元格顯示不下,需要調(diào)整行高或者列寬,通過(guò)鼠標(biāo)雙擊行或者列的邊框線,KDTable
10、會(huì)自動(dòng)調(diào)整行高或者列寬到合適位置。 如果想要通過(guò)代碼在后臺(tái)調(diào)整行高列寬到合適位置,下面的方法分別對(duì)應(yīng)行高、列寬、表頭行高: KDTableHelper的autoFitRowHeight、autoFitColumnWidth、autoFitHeadRowHeight 由于計(jì)算合適行高列寬,需要結(jié)合當(dāng)前Graphics以及字體等信息進(jìn)行計(jì)算,這個(gè)動(dòng)作是相對(duì)比較耗時(shí)的,因此這些方法要結(jié)合實(shí)際情況使用,大數(shù)據(jù)量下使用這些方法,將可能導(dǎo)致性能問(wèn)題。KDTable部分?jǐn)?shù)據(jù)導(dǎo)出到excel后顯示格式不一致 這種問(wèn)題一般是由于沒(méi)有給KDTable設(shè)置正確的格式導(dǎo)致的。主
11、要分為一下幾類: 1、 由數(shù)字組成的長(zhǎng)字符串導(dǎo)出excel后顯示為科學(xué)計(jì)數(shù)法或字符串顯示不完整,例如手機(jī) 解決辦法:給KDTable的列設(shè)置格式串(col.getStyleAttributes().setNumberFormat(""),指定該列為字符型即可。 2、 數(shù)字位過(guò)多的大數(shù)字導(dǎo)出excel后顯示為科學(xué)計(jì)數(shù)法或精度丟失。 解決辦法:給KDTable的列設(shè)置格式串(col.getStyleAttributes().setNumberFormat("0.00")。這里的0.00只是示例
12、,數(shù)字格式還有很多種,具體可以參考前面顯示格式的介紹。 3、 日期類型數(shù)據(jù)導(dǎo)出excel后顯示格式不正確。 解決辦法:給KDTable的列設(shè)置格式串(col.getStyleAttributes().setNumberFormat("yyyy-MM-dd")。這里的yyyy-MM-dd只是示例,日期格式還有很多種,具體可以參考前面顯示格式的介紹如何控制KDTable的顯示格式 KDTable提供了格式化的功能,通過(guò)格式化的功能可以控制單元格的顯示格式,設(shè)置列格式的方法:table.getColumn(colIndex).getStyleAttr
13、ibutes().setNumberFormat(formatString); 目前KDTable已能支持Excel2003的格式串,只有個(gè)缺陷:格式串中有中文導(dǎo)出尚有問(wèn)題,中文變亂碼, 建議將來(lái)都使用Excel2003的格式串,但舊的格式化串還支持,但是如果該表需要導(dǎo)出到excel,必須使用新的格式串,否則導(dǎo)出到excel,可能會(huì)顯示不一致。 文本類: 1、 指定內(nèi)容按文本顯示,主要用于編碼、手機(jī)號(hào)等用數(shù)字表示的文本。設(shè)定該格式后,可以保證導(dǎo)出excel時(shí),此類文本不會(huì)被轉(zhuǎn)成數(shù)字顯示。 數(shù)值類: 1、 0.00 表示兩位小數(shù),例如3.1036
14、7顯示為3.10 2、 0.# 表示兩位小數(shù),當(dāng)小數(shù)末位為0時(shí),0將不顯示。例如3.10顯示為3.1 3、 "#,#0.00 "表示兩位小數(shù),且顯示千份位 4、 #,#0.00;Red#,#0.00 表示負(fù)數(shù)紅字 5、0.00;Red0.00;" " 表示負(fù)數(shù)紅字,且數(shù)據(jù)為0時(shí)不顯示 6、0.00;Red(0.00);" "表示正數(shù)時(shí)兩位小數(shù),負(fù)數(shù)時(shí)兩位小數(shù)并顯示紅色,0時(shí)不顯示。0.00;Red(0.00)只是一個(gè)示例,可以為任意的數(shù)字格式串,后邊再加上;" "(
15、空格)即表示數(shù)據(jù)為0時(shí)不顯示。 日期類: 1、 yyyy-m-d 2、 yyyy-MM-dd 3、 yyyy-MM-dd hh:mm:ss 4、 yyyy年MM月dd日 百分比: 1、0% 2、0.00% 詳細(xì)請(qǐng)打開(kāi)Excel2003,單元格右鍵,設(shè)置單元格格式,選一種格式,點(diǎn)自定義即可看到該格式的格式串;有的Excel格式串后有帶”_”,在使用時(shí),必須去掉。如何理解KDTable的Render和Editor Render即為繪制器,KDTable的每個(gè)單元格都是對(duì)應(yīng)的繪制器繪制出來(lái)的,例如文
16、本繪制器將進(jìn)行文本的繪制,CheckBox繪制器將在單元格繪制CheckBox的樣子,圖片繪制器將在單元格繪制圖片等。 Editor即為編輯器,當(dāng)單元格進(jìn)入編輯狀態(tài)后,會(huì)在單元格的位置顯示編輯器,通過(guò)編輯器可以修改單元格的值。在同一時(shí)刻,只能有一個(gè)單元格進(jìn)入編輯狀態(tài)。進(jìn)入編輯狀態(tài)的方法有(1)雙擊或者單擊某個(gè)單元格,有些編輯器是雙擊以后再進(jìn)入,有些編輯器是單擊后進(jìn)入;(2)選中某個(gè)單元格,按F2可以進(jìn)入編輯器;(3)選中某個(gè)單元格,按下編輯器能接受的按鍵,例如文本編輯器可以接受任意可見(jiàn)字符,checkbox可以接受空格鍵作為切換選擇的鍵,按下這些鍵后,單元格也將進(jìn)入編輯狀態(tài)。結(jié)束編輯
17、的方法有(1)在編輯器中按下Enter鍵或者Tab鍵;(2)在編輯狀態(tài)下點(diǎn)擊表格的其他單元格;(3)表格控件失去焦點(diǎn)。在編輯狀態(tài)下按下Esc鍵將取消編輯。結(jié)束編輯和取消編輯的區(qū)別在于,結(jié)束編輯時(shí)會(huì)將單元格的值修改為編輯器的值,取消編輯器將保持單元格的舊值。如何在取數(shù)之后,調(diào)整KDTable單元格的內(nèi)容或者顯示格式 table. addKDTDataFillListener這個(gè)事件將在取數(shù)事件之后被調(diào)用,在這個(gè)事件當(dāng)中,取數(shù)事件獲取的數(shù)據(jù)已經(jīng)填充到KDTable當(dāng)中,可以直接獲取KDTable的行及單元格進(jìn)行操作。DataFillListener和取數(shù)事件是一一對(duì)應(yīng)的,取數(shù)事件調(diào)用一次
18、則DataFillListener將被調(diào)用一次,而且DataFillListener的事件參數(shù)中的起始行和結(jié)束行也是和取數(shù)事件的參數(shù)一致的。需要注意的是在DataFillListener中只能訪問(wèn)事件參數(shù)中的起始行和結(jié)束行范圍的行,千萬(wàn)不要在這個(gè)事件里訪問(wèn)table的所有行,因?yàn)槿绻谶@里訪問(wèn)不在事件參數(shù)范圍內(nèi)的行,可能導(dǎo)致再次觸發(fā)取數(shù)事件。KDTable刷新后,滾動(dòng)條跳到最后修改位置kdtEntrys.getLayoutManager().scrollRowToShow(rowInde); 如何通過(guò)代碼控制KDTable新增行方法一: /增行EmpEnrollBizBil
19、lEntryInfo entry = new EmpEnrollBizBillEntryInfo();/創(chuàng)建分錄的實(shí)體entry.setEmpName(name);/設(shè)置實(shí)體屬性entry.setIDCardNo(id);editData.getEntrys().add(entry);/將實(shí)體新增到editData的實(shí)體列表中。loadFields();/重新加載分錄信息 方法二: /增行addLine(kdtEntries);IRow newRow = kdtEntries.getRow(kdtEntr
20、ies.getRowCount()-1);/獲取新增的行對(duì)象/設(shè)置分錄的實(shí)體newRow.setUserObject(new ReceivingBillEntryInfo();/設(shè)置分錄實(shí)體的屬性newRow.getCell("Band").setValue(obei.getBand();/品牌newRow.getCell("ProductSeries").setValue(obei.getProductSeries();/產(chǎn)品線newRow.getCell("Period").setValue(obei.getPeriod
21、();/期數(shù)對(duì)于分錄設(shè)置排序KDTSortManager sortManager = new KDTSortManager(kdtEntrys); sortManager.setSortAuto(true); sortManager.setClickCount(1); for(int i = 0; i<kdtEntrys.getColumnCount();i+)this.kdtEntrys.getColumn(i).setSortable(true); EAS Bos 合計(jì)行代碼 /* * 功能:添加合計(jì)行 * * param table * 指定的KDTable * param fie
22、lds * 需要合計(jì)的列 */ public static void apendFootRow(KDTable table, String fields) int size = fields.length; if (size = 0) return; Map sumValue = new HashMap(); / 利用getRowCount的到的行可能不正確 int count = table.getRowCount3(); for (int i = 0; i < fields.length; i+) sumValue.put(fieldsi, new BigDecimal("
23、0.00"); IRow footRow = null; KDTFootManager footManager = table.getFootManager(); if (footManager = null) footManager = new KDTFootManager(table); footManager.addFootView(); table.setFootManager(footManager); / 計(jì)算所有指定行的合計(jì)值 footRow = footManager.getFootRow(0); for (int i = 0; i < count; i+) I
24、Row row = table.getRow(i); for (int j = 0; j < fields.length; j+) sumValueForCell(row, fieldsj, sumValue); if (footRow = null) footRow = footManager.addFootRow(0); / 設(shè)置合計(jì)行顯示樣式 String colFormat = "%0.00f" String total = EASResource.getString(FrameWorkClientUtils.strResource + "Msg_T
25、otal"); table.getIndexColumn().setWidthAdjustMode(KDTIndexColumn.WIDTH_MANUAL); table.getIndexColumn().setWidth(30); footManager.addIndexText(0, total); footRow.getStyleAttributes().setBackground(new Color(0xf6, 0xf6, 0xbf); for (int i = 0; i < size; i+) String colName = fieldsi; footRow.get
26、Cell(colName).getStyleAttributes().setNumberFormat( colFormat); footRow.getCell(colName).getStyleAttributes().setHorizontalAlign( HorizontalAlignment.RIGHT); footRow.getCell(colName).getStyleAttributes().setFontColor( Color.black); / 設(shè)置合計(jì)行的值 for (int i = 0; i < fields.length; i+) footRow.getCell(
27、fieldsi).setValue(sumValue.get(fieldsi); private static void sumValueForCell(IRow row, String key, Map sumValue) ICell cell = row.getCell(key); if (cell != null) Object obj = cell.getValue(); if (obj != null) BigDecimal keyValue = (BigDecimal) sumValue.get(key); keyValue = keyValue.add(new BigDecima
28、l(obj.toString(); sumValue.put(key, keyValue); EASBos 對(duì)于某個(gè)權(quán)限的驗(yàn)證s BOSUuid userId=SysContext.getSysContext().getCurrentUserInfo().getId(); BOSUuid orgId=SysContext.getSysContext().getCurrentOrgUnit().getId(); &
29、#160; ObjectUuidPK userPK = new ObjectUuidPK(userId); ObjectUuidPK orgPK = new ObjectUuidPK(orgId); com.kingdee.eas.base.permission.IPermission perm= null; try
30、; perm =PermissionFactory.getRemoteInstance(); perm.hasFunctionPermission(userPK, orgPK, "custom_qua_QuaTarget_addnew"); catch (Exception e)
31、; e.printStackTrace(); 關(guān)于Bos 開(kāi)發(fā)中使用字段類型是選擇已有基礎(chǔ)資料的的源代碼s public void kdtPerson_Changed(int rowIndex, int colIndex) throws Exception if ("number".equalsIgnor
32、eCase(kdtPerson.getColumn(colIndex).getKey() String name=(com.kingdee.bos.ui.face.UIRuleUtil .getString(com.kingdee.bos.ui.face.UIRuleUtil.getPropert
33、y( (com.kingdee.bos.dao.IObjectValue) kdtPerson &
34、#160; .getCell(rowIndex, "number").getValue(), "name");
35、; kdtPerson.getCell(rowIndex, "name").setValue(name); 關(guān)于對(duì)EASbos 分錄設(shè)定默認(rèn)值kdtEntrys_detailPanel.addAddListener( new com.kingdee.eas.framework.client.multiDetail.IDetailPanelListener() public void beforeEvent( com.kingdee.eas.framew
36、ork.client.multiDetail.DetailPanelEvent event) throws Exception IObjectValue vo = event.getObjectValue(); vo.put("type","1"); vo.put("count",new Integer(10);public void afterEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEvent event) throws Exceptio
37、n );關(guān)于eas 單據(jù)中有多個(gè)分錄的情況下,默認(rèn)是哪個(gè)實(shí)現(xiàn)了排序 protected KDTable getDetailTable() return kdtEntrys; 關(guān)鍵就是看這個(gè)方法中的分錄是那個(gè)分錄,那個(gè)分錄就默認(rèn)實(shí)現(xiàn)了排序的工程。對(duì)于其他的,可以自己使用代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)單的排序 KDTSortManager sortManager = new KDTSo
38、rtManager(kdtEntrys); sortManager.setSortAuto(true); sortManager.setClickCount(1); for(int i = 0; i<kdtEntrys.getColumnCount();i+)
39、 this.kdtEntrys.getColumn(i).setSortable(true); eas bos 客戶端常用代碼public void onLoad() throws Exception super.onLoad();contname.setEnabled(false);contname.setVisible(true);KDTDefaultCellEditor workArea_editor = (KDTDefaultCellEditor) kd
40、tEntrys.getColumn("workArea").getEditor();KDBizPromptBox workArea_prompt = (KDBizPromptBox) workArea_editor.getComponent();workArea_prompt.setQueryInfo("com.kingdee.eas.custom.quality.basedata.app.F7GongquCategoryQuery");KDTDefaultCellEditor professional_editor = (KDTDefaultCellE
41、ditor) kdtEntrys.getColumn("professional").getEditor();KDBizPromptBox professional_prompt = (KDBizPromptBox) professional_editor.getComponent();professional_prompt.setQueryInfo("com.kingdee.eas.custom.quality.basedata.app.F7SubjectTypeQuery");KDTDefaultCellEditor outPerson_editor
42、 = (KDTDefaultCellEditor) kdtEntrys.getColumn("outPerson").getEditor();KDBizPromptBox outPerson_prompt = (KDBizPromptBox) outPerson_editor.getComponent();outPerson_prompt.setDisplayFormat("$cardId$");outPerson_prompt.setEditFormat("$cardId$");outPerson_prompt.setCommitF
43、ormat("$cardId$");kdtEntrys_detailPanel.setTitle("外包人員信息");CompUtil.setTitlePanelLength(kdtEntrys_detailPanel, 120);protected void verifyInput(ActionEvent e) throws Exception KDLabelContainer container = new KDLabelContainer contcontractNum,contsubUnit,contprojectItem;STException
44、 exc = STRequiredUtils.checkRequiredItem(container);if (STUtils.isNotNull(exc) super.handUIExceptionAndAbort(exc);String columnNames = new String "outPerson","team","workArea","professional","startDate"STException exc2 = STRequiredUtils.checkEntryReq
45、uiredItem(kdtEntrys,columnNames);if (STUtils.isNotNull(exc2) super.handUIExceptionAndAbort(exc2);super.verifyInput(e);關(guān)于驗(yàn)證常用的幾個(gè)類文件和代碼1 TrainVerifyUtils TrainVerifyUtils.verifyRepeatRow(this, kdtEntrys, "type", "試題類型");2 TrainUtilsTrainUtils.getSelectedValues(tblMain);3 comm
46、onUtilFacade if (commonUtilFacade.checkColumnDup("CT_BD_QuaItem", "FNumber", editData.getNumber(), editData.getId() &
47、#160;MsgBox.showInfo(this, EASResource.getString(RES, "number_repeat"); SysUtil.abort(); 4 必錄項(xiàng)檢查 / 檢查必填項(xiàng)調(diào)用代碼 KDLabel
48、Container container = new KDLabelContainer contNumber, conttitle,contsystem,contBizDate,contstartTime,contendTime,conttotalScore,conttotalTime,contstate ; STException exc = STRequiredUtils
49、.checkRequiredItem(container); if (STUtils.isNotNull(exc) super.handUIExceptionAndAbort(exc); EAS多分錄單據(jù)分錄添加按鈕,加到最左邊EAS多分錄標(biāo)準(zhǔn)單據(jù)的分錄操作按鈕是在表格右上方的,有時(shí)由于業(yè)務(wù)需求,需要添加其它的操作按鈕,以滿足業(yè)務(wù)需求,
50、可以先通過(guò)BOS設(shè)計(jì)工具,在UI上任一位置添加好所需要的代碼,再通過(guò)如下代碼,把按鈕添加到多分錄表頭上。當(dāng)你把指定的按鈕添加到分錄的按鈕面板上后,UI上的自動(dòng)就不顯示了。先定義好方法。/* * 給分錄上添加按鈕,加到最左邊 * * author syj * date 2009-7-8 * * param table * param button */private void addButtonToHMDEntry(KDTable table, KDWorkButton button)
51、60;if (table.getParent() = null | table.getParent().getParent() = null) return; / 隱藏按鈕 Component c = table.getParent().getParent(); if (c instanceof DetailPanel) JPanel panel = (JPanel) c; JPanel controlPanel = null; / 獲取controlPanel &
52、#160;Component components = panel.getComponents(); for (int i = 0; i < components.length; i+) Component component = componentsi; if ("controlPanel".equals(component.getName() controlPanel = (KDPanel) component; &
53、#160; / 獲取btn if (controlPanel != null) Rectangle rect = table.getBounds(); int x = rect.width - (button.getWidth() + 86 + 5); controlPanel.add(button, new com.kingdee.bos.ctrl.swing.KDLayout.Constraints(x, 5
54、, button.getWidth(), 19, 9); 禁用EAS多分錄單據(jù)分錄上的操作按鈕EAS多分錄標(biāo)準(zhǔn)單據(jù)的分錄操作按鈕是在表格右上方的,有時(shí)由于業(yè)務(wù)需求,這部分?jǐn)?shù)據(jù)要自動(dòng)生成,不充許操作,可能需要禁用或隱藏這些按鈕,由于框架沒(méi)有提供相應(yīng)的接口,可以通過(guò)以下代碼來(lái)實(shí)現(xiàn) public static void disableHMDEntryButtons(KDTable table) if (table.getParent() = null | table.getParent().getParent() = null)
55、160; return; / 隱藏按鈕 Component c = table.getParent().getParent(); if (c instanceof DetailPanel) JPanel panel = (JPanel) c; JPanel controlPanel = null; / 獲取controlPanel Component components
56、 = panel.getComponents(); for (int i = 0; i < components.length; i+) Component component = componentsi; if ("controlPanel".equals(component.getName() controlPanel = (KDPanel) component;
57、160; / 獲取btn if (controlPanel != null) components = controlPanel.getComponents(); for (int j = 0; j < components.length; j+) Component component = component
58、sj; if (component instanceof KDWorkButton) KDWorkButton workButton = (KDWorkButton) component; workButton.setEnabled(false);
59、0; 顯示EAS標(biāo)準(zhǔn)單據(jù)自帶kdtable(kdtEntry) 右鍵導(dǎo)出 excel菜單框架在CoreUI中,把“導(dǎo)出到Excel”和“導(dǎo)出選擇部分到Excel”2個(gè)右鍵菜單給隱藏掉了,可以通過(guò)覆蓋下面的方法使這兩個(gè)菜單顯示。 /* * 顯示被框架隱藏的導(dǎo)出Excel的右鍵菜單 * author syj */ public KDTMenuManager getMenuManager(KDTable table) KDTMenuManager menuManager =
60、super.getMenuManager(table); if (menuManager != null) Component menus = menuManager.getMenu().getComponents(); for (int i = 0; i < menus.length; i+) if (menusi instanceof JMenuItem) JMenuItem menu =
61、 (JMenuItem) menusi; menu.setVisible(true); return menuManager; 列表界面根據(jù)情況設(shè)置單行背景色高亮列表的填充是在afterTableFillData之前進(jìn)行的,所以判斷的代碼可以加在這個(gè)方法里面。protected void afterTableFillData(KDTDataRequestEvent e)
62、0; super.afterTableFillData(e); int count = this.tblMain.getRowCount(); if(count>0) for(int i=0; i<count; i+)
63、 IRow row = tblMain.getRow(i); if(row.getCell("attentionM").getValue()!=null && "H".equals(row.ge
64、tCell("attentionM").getValue().toString().trim() row.getStyleAttributes().setBackground(new Color(255,80,30);
65、 else if(row.getCell("attentionM").getValue()!=null && "M".equals(row.getCell("attentionM").getValue().toString().trim() &
66、#160; row.getStyleAttributes().setBackground(Color.ORANGE); 另外有一個(gè)execQuery方法,如果加在這個(gè)方法里,那么只有當(dāng)有過(guò)濾條件和點(diǎn)刷新按鈕時(shí),
67、才會(huì)起作用。修改ListUI的表體列的顯示文字this.tblMain.getHeadRow(0).getCell(27).setValue("所屬管家");KDTable顯示枚舉覆蓋方法Java代碼 1. protected IQueryExecutor getQueryExecutor(IMetaDataPK queryPK, EntityViewInfo viewInfo) 2.
68、 IQueryExecutor executor = super.getQueryExecutor(queryPK, viewInfo); 3. executor.option().isAutoTranslateEnum = true; 4. return executor;
69、0; 5. 枚舉在KDTable中顯示數(shù)字解決在KDTable中,如果該列是枚舉,則顯示的value,不會(huì)顯示別名,要顯示別名有兩個(gè)方法:1、在Query中用case 語(yǔ)句,這個(gè)辦法比較笨,如果枚舉添加,或者比較多,需要重新修改Query。不建議使用。2、覆蓋父類方法getQueryExecutorJava代碼 1. protected IQueryExecutor getQueryExecutor(IMetaDataPK queryPK, 2.
70、160; EntityViewInfo viewInfo) 3. IQueryExecutor iec = super.getQueryExecutor(queryPK, viewInfo); 4. iec.
71、option().isAutoTranslateEnum = true;/顯示枚舉 5. iec.option().isAutoTranslateBoolean=true;/顯示checkbox 6. return iec; 7. 3、在KDTable的列中設(shè)置Editor。這樣該列也會(huì)顯示成下拉框:Java代碼 1. private void addCtrl() 2. tblMain.checkParsed(); 3. KDComboBox tblM
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教科版高中信息技術(shù)選修3說(shuō)課稿-1.2.2 網(wǎng)絡(luò)應(yīng)用中的安全
- 緊急通知:全國(guó)集中開(kāi)展大排查、大整治、大曝光、大約談、大督導(dǎo)行動(dòng)
- 陰莖疼痛的健康宣教
- 消防部隊(duì)作戰(zhàn)訓(xùn)練安全常識(shí)知識(shí)復(fù)習(xí)題庫(kù)
- 中藥對(duì)腎性視網(wǎng)膜病變治療效果的研究進(jìn)展
- RTX項(xiàng)目管理系統(tǒng)操作手冊(cè)
- 山西省呂梁市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)部編版競(jìng)賽題((上下)學(xué)期)試卷及答案
- 2024年貸款居間合同格式指南3篇
- 2024年規(guī)范版離職員工協(xié)議條款版
- 2024年股權(quán)讓與及反擔(dān)保合同
- 犯罪學(xué)學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫(kù)2023年
- 法律職業(yè)倫理考試題庫(kù)匯總含答案
- 呆滯品管理制度范本(3篇)
- 海底撈-新員工培訓(xùn)
- Cinema 4D從入門到精通PPT完整版全套教學(xué)課件
- T-SHSPTA 002-2023 藥品上市許可持有人委托銷售管理規(guī)范
- 我國(guó)雙語(yǔ)教育發(fā)展現(xiàn)狀以及建議
- 保研推免個(gè)人簡(jiǎn)歷
- 《計(jì)算機(jī)組成原理》武漢大學(xué)2023級(jí)期末考試試題答案
- 廣東廣州白云區(qū)2021學(xué)年第二學(xué)期期末學(xué)生學(xué)業(yè)質(zhì)量診斷調(diào)研六年級(jí)語(yǔ)文(含答案)
- 公安院校公安專業(yè)招生體檢表
評(píng)論
0/150
提交評(píng)論