




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄如何使得KDTable支持多行文本的顯示: 1如何設(shè)置KDTable向下鍵自動(dòng)新增行 2如何設(shè)置KDTableTab鍵和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和Editor 6如何在取數(shù)之后,調(diào)整KDTable單元格的內(nèi)容或者顯示格式 6KDTable刷新后,滾動(dòng)條跳到最后修改位置 7如何通過(guò)代碼控制KDTable新增行 7對(duì)于分錄設(shè)置排序 8EASBos合計(jì)行代碼 8EASBos對(duì)于某個(gè)權(quán)限的驗(yàn)證 10關(guān)于Bos開(kāi)發(fā)中使用字段類(lèi)型是選擇已有基礎(chǔ)資料的的源代碼 10關(guān)于對(duì)EASbos分錄設(shè)定默認(rèn)值 11關(guān)于eas單據(jù)中有多個(gè)分錄的情況下,默認(rèn)是哪個(gè)實(shí)現(xiàn)了排序 11easbos客戶(hù)端常用代碼 12關(guān)于驗(yàn)證常用的幾個(gè)類(lèi)文件和代碼 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的列設(shè)置一個(gè)多行顯示的屬性即可。設(shè)置的方法:
col.getStyleAttributes().setWrapText(true);
如何設(shè)置KDTable向下鍵自動(dòng)新增行
KDTableHelper里面的方法
1./**
2.*在table的最后一行按下箭頭自動(dòng)新增行。
3.*
4.*@paramtable
5.*@paramisAddRow
6.*是否自動(dòng)新增行
7.*@paramactionAfterAddRow
8.*新增行后將觸發(fā)的事件
9.*/
10.publicstaticvoiddownArrowAutoAddRow(KDTabletable,booleanisAddRow,ActionactionAfterAddRow)
如何設(shè)置KDTableTab鍵和Enter鍵自動(dòng)新增行
KDTableHelper的這個(gè)方法可以滿(mǎn)足這個(gè)需求:
1./**
2.*修改Enter鍵的行為使它于Tab一致
3.*
4.*@paramtable
5.*@paramisAddRow
6.*焦點(diǎn)到了最后一行,再次按下enter和tab是否自動(dòng)增加新行
7.*@paramactionAfterAddRow
8.*添加新行后的事件
9.*/
10.publicstaticvoidupdateEnterWithTab(KDTabletable,booleanisAddRow,ActionactionAfterAddRow)
如何調(diào)整KDTable的Tab鍵和enter鍵的行為
KDTable默認(rèn)情況下Tab鍵和Enter鍵分別起到單元格選擇調(diào)整的作用,Tab鍵跳到右側(cè)單元格,Enter鍵跳到下方的單元格。
KDTableHelper提供了一些方法用于修改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的兩行(或者列)之間的邊線(xiàn),將會(huì)根據(jù)內(nèi)容自動(dòng)調(diào)整行高(列寬)。
通過(guò)調(diào)用KDTableHelper的autoFitRowHeight和autoFitColumnWidth這兩個(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ò)繼承并重寫(xiě)KDTSortManager的sort方法來(lái)實(shí)現(xiàn)。例如ListUI的就是重寫(xiě)了這個(gè)sort方法,在這個(gè)方法中清楚KDTable中的數(shù)據(jù),然后刷新KDTable,用新的排序方式重新向服務(wù)端取數(shù)。
1.KDTSortManagersm=newKDTSortManager(table)
2.{
3.publicvoidsort(intcolIndex,intsortType)
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.//降序
15.}
16.}
17.};
復(fù)制代碼
實(shí)模式:KDTSortManager內(nèi)置了實(shí)模式下的排序方式,不需要重寫(xiě)sort方法即可實(shí)現(xiàn)實(shí)模式的排序,當(dāng)然,你也可以重寫(xiě)sort方法來(lái)實(shí)現(xiàn)自己的排序邏輯。
1.KDTSortManagersm=newKDTSortManager(table)
2.sm.setSortAuto(true);
KDTable中如何調(diào)整行高列寬
有些時(shí)候,KDTable中單元格的文本內(nèi)容過(guò)長(zhǎng),單元格顯示不下,需要調(diào)整行高或者列寬,通過(guò)鼠標(biāo)雙擊行或者列的邊框線(xiàn),KDTable會(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)致的。主要分為一下幾類(lèi):
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只是示例,數(shù)字格式還有很多種,具體可以參考前面顯示格式的介紹。
3、日期類(lèi)型數(shù)據(jù)導(dǎo)出excel后顯示格式不正確。
解決辦法:給KDTable的列設(shè)置格式串(col.getStyleAttributes().setNumberFormat("yyyy-MM-dd"))。這里的yyyy-MM-dd只是示例,日期格式還有很多種,具體可以參考前面顯示格式的介紹
如何控制KDTable的顯示格式
KDTable提供了格式化的功能,通過(guò)格式化的功能可以控制單元格的顯示格式,設(shè)置列格式的方法:table.getColumn(colIndex).getStyleAttributes().setNumberFormat(formatString);
目前KDTable已能支持Excel2003的格式串,只有個(gè)缺陷:格式串中有中文導(dǎo)出尚有問(wèn)題,中文變亂碼,建議將來(lái)都使用Excel2003的格式串,但舊的格式化串還支持,但是如果該表需要導(dǎo)出到excel,必須使用新的格式串,否則導(dǎo)出到excel,可能會(huì)顯示不一致。
文本類(lèi):
1、@指定內(nèi)容按文本顯示,主要用于編碼、手機(jī)號(hào)等用數(shù)字表示的文本。設(shè)定該格式后,可以保證導(dǎo)出excel時(shí),此類(lèi)文本不會(huì)被轉(zhuǎn)成數(shù)字顯示。
數(shù)值類(lèi):
1、0.00表示兩位小數(shù),例如3.10367顯示為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;[Red]0.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ù)字格式串,后邊再加上;""(空格)即表示數(shù)據(jù)為0時(shí)不顯示。
日期類(lèi):
1、yyyy-m-d
2、yyyy-MM-dd
3、yyyy-MM-ddhh: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)的,例如文本繪制器將進(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é)束編輯的方法有(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)用一次則DataFillListener將被調(diào)用一次,而且DataFillListener的事件參數(shù)中的起始行和結(jié)束行也是和取數(shù)事件的參數(shù)一致的。需要注意的是在DataFillListener中只能訪(fǎng)問(wèn)事件參數(shù)中的起始行和結(jié)束行范圍的行,千萬(wàn)不要在這個(gè)事件里訪(fǎng)問(wèn)table的所有行,因?yàn)槿绻谶@里訪(fǎng)問(wèn)不在事件參數(shù)范圍內(nèi)的行,可能導(dǎo)致再次觸發(fā)取數(shù)事件。KDTable刷新后,滾動(dòng)條跳到最后修改位置kdtEntrys.getLayoutManager().scrollRowToShow(rowInde);
如何通過(guò)代碼控制KDTable新增行
方法一:
//增行
EmpEnrollBizBillEntryInfo
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(kdtEntries.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)品線(xiàn)
newRow.getCell("Period").setValue(obei.getPeriod());//期數(shù)對(duì)于分錄設(shè)置排序 KDTSortManagersortManager=newKDTSortManager(kdtEntrys); sortManager.setSortAuto(true); sortManager.setClickCount(1); for(inti=0;i<kdtEntrys.getColumnCount();i++){ this.kdtEntrys.getColumn(i).setSortable(true); }EASBos合計(jì)行代碼 /** *功能:添加合計(jì)行 * *@paramtable *指定的KDTable *@paramfields *需要合計(jì)的列 */ publicstaticvoidapendFootRow(KDTabletable,Stringfields[]){ intsize=fields.length; if(size==0) return; MapsumValue=newHashMap(); //利用getRowCount的到的行可能不正確 intcount=table.getRowCount3(); for(inti=0;i<fields.length;i++){ sumValue.put(fields[i],newBigDecimal("0.00")); } IRowfootRow=null; KDTFootManagerfootManager=table.getFootManager(); if(footManager==null){ footManager=newKDTFootManager(table); footManager.addFootView(); table.setFootManager(footManager); } //計(jì)算所有指定行的合計(jì)值 footRow=footManager.getFootRow(0); for(inti=0;i<count;i++){ IRowrow=table.getRow(i); for(intj=0;j<fields.length;j++){ sumValueForCell(row,fields[j],sumValue); } } if(footRow==null){ footRow=footManager.addFootRow(0); } //設(shè)置合計(jì)行顯示樣式 StringcolFormat="%{0.00}f"; Stringtotal=EASResource.getString(FrameWorkClientUtils.strResource +"Msg_Total"); table.getIndexColumn().setWidthAdjustMode(KDTIndexColumn.WIDTH_MANUAL); table.getIndexColumn().setWidth(30); footManager.addIndexText(0,total); footRow.getStyleAttributes().setBackground(newColor(0xf6,0xf6,0xbf)); for(inti=0;i<size;i++){ StringcolName=fields[i]; footRow.getCell(colName).getStyleAttributes().setNumberFormat( colFormat); footRow.getCell(colName).getStyleAttributes().setHorizontalAlign( HorizontalAlignment.RIGHT); footRow.getCell(colName).getStyleAttributes().setFontColor( Color.black); } //設(shè)置合計(jì)行的值 for(inti=0;i<fields.length;i++){ footRow.getCell(fields[i]).setValue(sumValue.get(fields[i])); } } privatestaticvoidsumValueForCell(IRowrow,Stringkey,MapsumValue){ ICellcell=row.getCell(key); if(cell!=null){ Objectobj=cell.getValue(); if(obj!=null){ BigDecimalkeyValue=(BigDecimal)sumValue.get(key); keyValue=keyValue.add(newBigDecimal(obj.toString())); sumValue.put(key,keyValue); } } }
EASBos對(duì)于某個(gè)權(quán)限的驗(yàn)證s
BOSUuiduserId=SysContext.getSysContext().getCurrentUserInfo().getId();
BOSUuidorgId=SysContext.getSysContext().getCurrentOrgUnit().getId();
ObjectUuidPKuserPK=newObjectUuidPK(userId);
ObjectUuidPKorgPK=newObjectUuidPK(orgId);
com.kingdee.eas.base.permission.IPermissionperm=null;
try{
perm=PermissionFactory.getRemoteInstance();
perm.hasFunctionPermission(userPK,orgPK,"custom_qua_QuaTarget_addnew");
}catch(Exceptione){
e.printStackTrace();
}關(guān)于Bos開(kāi)發(fā)中使用字段類(lèi)型是選擇已有基礎(chǔ)資料的的源代碼s
publicvoidkdtPerson_Changed(introwIndex,intcolIndex)throwsException{
if("number".equalsIgnoreCase(kdtPerson.getColumn(colIndex).getKey())){
Stringname=(com.kingdee.bos.ui.face.UIRuleUtil
.getString(com.kingdee.bos.ui.face.UIRuleUtil.getProperty(
(com.kingdee.bos.dao.IObjectValue)kdtPerson
.getCell(rowIndex,"number").getValue(),
"name")));
kdtPerson.getCell(rowIndex,"name").setValue(name);
}
}關(guān)于對(duì)EASbos分錄設(shè)定默認(rèn)值 kdtEntrys_detailPanel.addAddListener(newcom.kingdee.eas.framework.client.multiDetail.IDetailPanelListener(){ publicvoidbeforeEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEventevent)
throwsException{ IObjectValuevo=event.getObjectValue(); vo.put("type","1"); vo.put("count",newInteger(10)); } publicvoidafterEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEventevent)throwsException{ } });關(guān)于eas單據(jù)中有多個(gè)分錄的情況下,默認(rèn)是哪個(gè)實(shí)現(xiàn)了排序
protectedKDTablegetDetailTable(){
returnkdtEntrys;
}關(guān)鍵就是看這個(gè)方法中的分錄是那個(gè)分錄,那個(gè)分錄就默認(rèn)實(shí)現(xiàn)了排序的工程。對(duì)于其他的,可以自己使用代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)單的排序
KDTSortManagersortManager=newKDTSortManager(kdtEntrys);
sortManager.setSortAuto(true);
sortManager.setClickCount(1);
for(inti=0;i<kdtEntrys.getColumnCount();i++){
this.kdtEntrys.getColumn(i).setSortable(true);
}
easbos客戶(hù)端常用代碼 publicvoidonLoad()throwsException{ super.onLoad(); contname.setEnabled(false); contname.setVisible(true); KDTDefaultCellEditorworkArea_editor=(KDTDefaultCellEditor)kdtEntrys .getColumn("workArea").getEditor(); KDBizPromptBoxworkArea_prompt=(KDBizPromptBox)workArea_editor .getComponent(); workArea_prompt .setQueryInfo("com.kingdee.eas.custom.quality.basedata.app.F7GongquCategoryQuery"); KDTDefaultCellEditorprofessional_editor=(KDTDefaultCellEditor)kdtEntrys .getColumn("professional").getEditor(); KDBizPromptBoxprofessional_prompt=(KDBizPromptBox)professional_editor .getComponent(); professional_prompt .setQueryInfo("com.kingdee.eas.custom.quality.basedata.app.F7SubjectTypeQuery"); KDTDefaultCellEditoroutPerson_editor=(KDTDefaultCellEditor)kdtEntrys .getColumn("outPerson").getEditor(); KDBizPromptBoxoutPerson_prompt=(KDBizPromptBox)outPerson_editor .getComponent(); outPerson_prompt.setDisplayFormat("$cardId$"); outPerson_prompt.setEditFormat("$cardId$"); outPerson_prompt.setCommitFormat("$cardId$"); kdtEntrys_detailPanel.setTitle("外包人員信息"); CompUtil.setTitlePanelLength(kdtEntrys_detailPanel,120); } protectedvoidverifyInput(ActionEvente)throwsException{ KDLabelContainer[]container=newKDLabelContainer[]{contcontractNum, contsubUnit,contprojectItem}; STExceptionexc=STRequiredUtils.checkRequiredItem(container); if(STUtils.isNotNull(exc)){ super.handUIExceptionAndAbort(exc); } String[]columnNames=newString[]{"outPerson","team","workArea","professional","startDate"}; STExceptionexc2=STRequiredUtils.checkEntryRequiredItem(kdtEntrys, columnNames); if(STUtils.isNotNull(exc2)){ super.handUIExceptionAndAbort(exc2); } super.verifyInput(e); }關(guān)于驗(yàn)證常用的幾個(gè)類(lèi)文件和代碼1TrainVerifyUtils
TrainVerifyUtils.verifyRepeatRow(this,kdtEntrys,"type","試題類(lèi)型");
2TrainUtils
TrainUtils.getSelectedValues(tblMain);
3commonUtilFacade
if(commonUtilFacade.checkColumnDup("CT_BD_QuaItem","FNumber",
editData.getNumber(),editData.getId())){
MsgBox.showInfo(this,EASResource.getString(RES,"number_repeat"));
SysUtil.abort();
}
4必錄項(xiàng)檢查
//檢查必填項(xiàng)調(diào)用代碼
KDLabelContainer[]container=newKDLabelContainer[]{contNumber,
conttitle,contsystem,contBizDate,contstartTime,contendTime,conttotalScore,conttotalTime,contstate};
STExceptionexc=STRequiredUtils.checkRequiredItem(container);
if(STUtils.isNotNull(exc)){
super.handUIExceptionAndAbort(exc);
}EAS多分錄單據(jù)分錄添加按鈕,加到最左邊EAS多分錄標(biāo)準(zhǔn)單據(jù)的分錄操作按鈕是在表格右上方的,有時(shí)由于業(yè)務(wù)需求,需要添加其它的操作按鈕,以滿(mǎn)足業(yè)務(wù)需求,可以先通過(guò)BOS設(shè)計(jì)工具,在UI上任一位置添加好所需要的代碼,再通過(guò)如下代碼,把按鈕添加到多分錄表頭上。當(dāng)你把指定的按鈕添加到分錄的按鈕面板上后,UI上的自動(dòng)就不顯示了。先定義好方法。
/**
*給分錄上添加按鈕,加到最左邊
*
*@authorsyj
*@date2009-7-8
*
*@paramtable
*@parambutton
*/
privatevoidaddButtonToHMDEntry(KDTabletable,KDWorkButtonbutton){
if(table.getParent()==null||table.getParent().getParent()==null)
return;
//隱藏按鈕
Componentc=table.getParent().getParent();
if(cinstanceofDetailPanel){
JPanelpanel=(JPanel)c;
JPanelcontrolPanel=null;
//獲取controlPanel
Component[]components=panel.getComponents();
for(inti=0;i<components.length;i++){
Componentcomponent=components[i];
if("controlPanel".equals(component.getName())){
controlPanel=(KDPanel)component;
}
}
//獲取btn
if(controlPanel!=null){
Rectanglerect=table.getBounds();
intx=rect.width-(button.getWidth()+86+5);
controlPanel.add(button,newcom.kingdee.bos.ctrl.swing.KDLayout.Constraints(x,5,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)
publicstaticvoiddisableHMDEntryButtons(KDTabletable){
if(table.getParent()==null||table.getParent().getParent()==null)
return;
//隱藏按鈕
Componentc=table.getParent().getParent();
if(cinstanceofDetailPanel){
JPanelpanel=(JPanel)c;
JPanelcontrolPanel=null;
//獲取controlPanel
Component[]components=panel.getComponents();
for(inti=0;i<components.length;i++){
Componentcomponent=components[i];
if("controlPanel".equals(component.getName())){
controlPanel=(KDPanel)component;
}
}
//獲取btn
if(controlPanel!=null){
components=controlPanel.getComponents();
for(intj=0;j<components.length;j++){
Componentcomponent=components[j];
if(componentinstanceofKDWorkButton){
KDWorkButtonworkButton=(KDWorkButton)component;
workButton.setEnabled(false);
}
}
}
}
}
顯示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的右鍵菜單
*@authorsyj
*/
publicKDTMenuManagergetMenuManager(KDTabletable){
KDTMenuManagermenuManager=super.getMenuManager(table);
if(menuManager!=null){
Componentmenus[]=menuManager.getMenu().getComponents();
for(inti=0;i<menus.length;i++)
if(menus[i]instanceofJMenuItem){
JMenuItemmenu=(JMenuItem)menus[i];
menu.setVisible(true);
}
}
returnmenuManager;
}列表界面根據(jù)情況設(shè)置單行背景色高亮列表的填充是在afterTableFillData之前進(jìn)行的,所以判斷的代碼可以加在這個(gè)方法里面。
protectedvoidafterTableFillData(KDTDataRequestEvente){
super.afterTableFillData(e);
intcount=this.tblMain.getRowCount();
if(count>0){
for(inti=0;i<count;i++){
IRowrow=tblMain.getRow(i);
if(row.getCell("attentionM").getValue()!=null&&"H".equals(row.getCell("attentionM").getValue().toString().trim())){
row.getStyleAttributes().setBackground(newColor(255,80,30));
}elseif(row.getCell("attentionM").getValue()!=null&&"M".equals(row.getCell("attentionM").getValue().toString().trim()))
row.getStyleAttributes().setBackground(Color.ORANGE);
}
}
}
另外有一個(gè)execQuery方法,如果加在這個(gè)方法里,那么只有當(dāng)有過(guò)濾條件和點(diǎn)刷新按鈕時(shí),才會(huì)起作用。修改ListUI的表體列的顯示文字this.tblMain.getHeadRow(0).getCell(27).setValue("所屬管家");KDTable顯示枚舉覆蓋方法Java代碼
protected
IQueryExecutor
getQueryExecutor(IMetaDataPK
queryPK,
EntityViewInfo
viewInfo)
{
IQueryExecutor
executor
=
super.getQueryExecutor(queryPK,
viewInfo);
executor.option().isAutoTranslateEnum
=
true;
return
executor;
}
枚舉在KDTable中顯示數(shù)字解決在KDTable中,如果該列是枚舉,則顯示的value,不會(huì)顯示別名,要顯示別名有兩個(gè)方法:1、在Query中用case語(yǔ)句,這個(gè)辦法比較笨,如果枚舉添加,或者比較多,需要重新修改Query。不建議使用。2、覆蓋父類(lèi)方法getQueryExecutorJava代碼
protected
IQueryExecutor
getQueryExecutor(IMetaDataPK
queryPK,
EntityViewInfo
viewInfo)
{
IQueryExecutor
iec
=
super.g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆四川省綿陽(yáng)市部分校中考生物對(duì)點(diǎn)突破模擬試卷含解析
- 農(nóng)戶(hù)鏟車(chē)出售合同范例
- 代理勞務(wù)派遣工合同范例
- 出租單價(jià)合同范例
- 第三單元 第1節(jié) 溫度 教學(xué)設(shè)計(jì)- 2024-2025學(xué)年人教版物理 八年級(jí)上冊(cè)
- 勞務(wù)總包合同范本
- 因材施教的個(gè)性化教育計(jì)劃
- 城建行業(yè)保安工作總結(jié)計(jì)劃
- 前臺(tái)文員的職業(yè)培訓(xùn)與發(fā)展路徑計(jì)劃
- 分析不同財(cái)務(wù)工具的適用場(chǎng)景計(jì)劃
- 貝利嬰幼兒發(fā)展量表
- 血液透常見(jiàn)并發(fā)癥及處理課件
- 全國(guó)中小學(xué)幼兒園教職工安全素養(yǎng)培訓(xùn)課程試題
- 長(zhǎng)輸管道工程施工組織設(shè)計(jì)
- 說(shuō)課比賽一等獎(jiǎng)《醫(yī)用化學(xué)》說(shuō)課課件
- 靜設(shè)備安裝課件(PPT 91頁(yè))
- 英格索蘭空壓機(jī)知識(shí)
- 2022年度高等學(xué)??茖W(xué)研究?jī)?yōu)秀成果獎(jiǎng)(科學(xué)技術(shù))提名工作手冊(cè)
- 完整版地下人防工程施工方案
- (完整word版)格拉布斯(Grubbs)臨界值表
- 汽車(chē)離合器的檢測(cè)與維修畢業(yè)論文
評(píng)論
0/150
提交評(píng)論