BOS開發(fā) - KDTable常用處理代碼_第1頁
BOS開發(fā) - KDTable常用處理代碼_第2頁
BOS開發(fā) - KDTable常用處理代碼_第3頁
BOS開發(fā) - KDTable常用處理代碼_第4頁
BOS開發(fā) - KDTable常用處理代碼_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

目錄如何使得KDTable支持多行文本的顯示: 1如何設(shè)置KDTable向下鍵自動新增行 2如何設(shè)置KDTableTab鍵和Enter鍵自動新增行 2如何調(diào)整KDTable的Tab鍵和enter鍵的行為 3KDTable如何根據(jù)內(nèi)容自動調(diào)整行高列寬 3KDTable的排序要如何實現(xiàn) 3KDTable部分數(shù)據(jù)導出到excel后顯示格式不一致 4如何控制KDTable的顯示格式 5如何理解KDTable的Render和Editor 6如何在取數(shù)之后,調(diào)整KDTable單元格的內(nèi)容或者顯示格式 6KDTable刷新后,滾動條跳到最后修改位置 7如何通過代碼控制KDTable新增行 7對于分錄設(shè)置排序 8EASBos合計行代碼 8EASBos對于某個權(quán)限的驗證 10關(guān)于Bos開發(fā)中使用字段類型是選擇已有基礎(chǔ)資料的的源代碼 10關(guān)于對EASbos分錄設(shè)定默認值 11關(guān)于eas單據(jù)中有多個分錄的情況下,默認是哪個實現(xiàn)了排序 11easbos客戶端常用代碼 12關(guān)于驗證常用的幾個類文件和代碼 13EAS多分錄單據(jù)分錄添加按鈕,加到最左邊 14禁用EAS多分錄單據(jù)分錄上的操作按鈕 15顯示EAS標準單據(jù)自帶kdtable(kdtEntry)右鍵導出excel菜單 16列表界面根據(jù)情況設(shè)置單行背景色高亮 17修改ListUI的表體列的顯示文字 18如何使得KDTable支持多行文本的顯示:

只需要給KDTable的列設(shè)置一個多行顯示的屬性即可。設(shè)置的方法:

col.getStyleAttributes().setWrapText(true);

如何設(shè)置KDTable向下鍵自動新增行

KDTableHelper里面的方法

1./**

2.*在table的最后一行按下箭頭自動新增行。

3.*

4.*@paramtable

5.*@paramisAddRow

6.*是否自動新增行

7.*@paramactionAfterAddRow

8.*新增行后將觸發(fā)的事件

9.*/

10.publicstaticvoiddownArrowAutoAddRow(KDTabletable,booleanisAddRow,ActionactionAfterAddRow)

如何設(shè)置KDTableTab鍵和Enter鍵自動新增行

KDTableHelper的這個方法可以滿足這個需求:

1./**

2.*修改Enter鍵的行為使它于Tab一致

3.*

4.*@paramtable

5.*@paramisAddRow

6.*焦點到了最后一行,再次按下enter和tab是否自動增加新行

7.*@paramactionAfterAddRow

8.*添加新行后的事件

9.*/

10.publicstaticvoidupdateEnterWithTab(KDTabletable,booleanisAddRow,ActionactionAfterAddRow)

如何調(diào)整KDTable的Tab鍵和enter鍵的行為

KDTable默認情況下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)容自動調(diào)整行高列寬

雙擊KDTable的兩行(或者列)之間的邊線,將會根據(jù)內(nèi)容自動調(diào)整行高(列寬)。

通過調(diào)用KDTableHelper的autoFitRowHeight和autoFitColumnWidth這兩個方法也可以調(diào)整行高列寬。計算行高和列寬需要結(jié)合字體、Graphics上下文,是比較耗時的,應(yīng)有時需要注意。

KDTable的排序要如何實現(xiàn)

KDTable的排序都是由KDTSortManager來實現(xiàn)的。分為實模式和虛模式兩種應(yīng)用模式。

虛模式:排序的具體實現(xiàn)由外部通過繼承并重寫KDTSortManager的sort方法來實現(xiàn)。例如ListUI的就是重寫了這個sort方法,在這個方法中清楚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.};

復制代碼

實模式:KDTSortManager內(nèi)置了實模式下的排序方式,不需要重寫sort方法即可實現(xiàn)實模式的排序,當然,你也可以重寫sort方法來實現(xiàn)自己的排序邏輯。

1.KDTSortManagersm=newKDTSortManager(table)

2.sm.setSortAuto(true);

KDTable中如何調(diào)整行高列寬

有些時候,KDTable中單元格的文本內(nèi)容過長,單元格顯示不下,需要調(diào)整行高或者列寬,通過鼠標雙擊行或者列的邊框線,KDTable會自動調(diào)整行高或者列寬到合適位置。

如果想要通過代碼在后臺調(diào)整行高列寬到合適位置,下面的方法分別對應(yīng)行高、列寬、表頭行高:

KDTableHelper的autoFitRowHeight、autoFitColumnWidth、autoFitHeadRowHeight

由于計算合適行高列寬,需要結(jié)合當前Graphics以及字體等信息進行計算,這個動作是相對比較耗時的,因此這些方法要結(jié)合實際情況使用,大數(shù)據(jù)量下使用這些方法,將可能導致性能問題。

KDTable部分數(shù)據(jù)導出到excel后顯示格式不一致

這種問題一般是由于沒有給KDTable設(shè)置正確的格式導致的。主要分為一下幾類:

1、由數(shù)字組成的長字符串導出excel后顯示為科學計數(shù)法或字符串顯示不完整,例如手機

解決辦法:給KDTable的列設(shè)置格式串(col.getStyleAttributes().setNumberFormat("@")),指定該列為字符型即可。

2、數(shù)字位過多的大數(shù)字導出excel后顯示為科學計數(shù)法或精度丟失。

解決辦法:給KDTable的列設(shè)置格式串(col.getStyleAttributes().setNumberFormat("0.00"))。這里的0.00只是示例,數(shù)字格式還有很多種,具體可以參考前面顯示格式的介紹。

3、日期類型數(shù)據(jù)導出excel后顯示格式不正確。

解決辦法:給KDTable的列設(shè)置格式串(col.getStyleAttributes().setNumberFormat("yyyy-MM-dd"))。這里的yyyy-MM-dd只是示例,日期格式還有很多種,具體可以參考前面顯示格式的介紹

如何控制KDTable的顯示格式

KDTable提供了格式化的功能,通過格式化的功能可以控制單元格的顯示格式,設(shè)置列格式的方法:table.getColumn(colIndex).getStyleAttributes().setNumberFormat(formatString);

目前KDTable已能支持Excel2003的格式串,只有個缺陷:格式串中有中文導出尚有問題,中文變亂碼,建議將來都使用Excel2003的格式串,但舊的格式化串還支持,但是如果該表需要導出到excel,必須使用新的格式串,否則導出到excel,可能會顯示不一致。

文本類:

1、@指定內(nèi)容按文本顯示,主要用于編碼、手機號等用數(shù)字表示的文本。設(shè)定該格式后,可以保證導出excel時,此類文本不會被轉(zhuǎn)成數(shù)字顯示。

數(shù)值類:

1、0.00表示兩位小數(shù),例如3.10367顯示為3.10

2、0.##表示兩位小數(shù),當小數(shù)末位為0時,0將不顯示。例如3.10顯示為3.1

3、"#,##0.00"表示兩位小數(shù),且顯示千份位

4、#,##0.00;[Red]#,##0.00表示負數(shù)紅字

5、0.00;[Red]0.00;""表示負數(shù)紅字,且數(shù)據(jù)為0時不顯示

6、0.00;[Red](0.00);""表示正數(shù)時兩位小數(shù),負數(shù)時兩位小數(shù)并顯示紅色,0時不顯示。0.00;[Red](0.00)只是一個示例,可以為任意的數(shù)字格式串,后邊再加上;""(空格)即表示數(shù)據(jù)為0時不顯示。

日期類:

1、yyyy-m-d

2、yyyy-MM-dd

3、yyyy-MM-ddhh:mm:ss

4、yyyy年MM月dd日

百分比:

1、0%

2、0.00%

……詳細請打開Excel2003,單元格右鍵,設(shè)置單元格格式,選一種格式,點自定義即可看到該格式的格式串;有的Excel格式串后有帶”_”,在使用時,必須去掉。

如何理解KDTable的Render和Editor

Render即為繪制器,KDTable的每個單元格都是對應(yīng)的繪制器繪制出來的,例如文本繪制器將進行文本的繪制,CheckBox繪制器將在單元格繪制CheckBox的樣子,圖片繪制器將在單元格繪制圖片等。

Editor即為編輯器,當單元格進入編輯狀態(tài)后,會在單元格的位置顯示編輯器,通過編輯器可以修改單元格的值。在同一時刻,只能有一個單元格進入編輯狀態(tài)。進入編輯狀態(tài)的方法有(1)雙擊或者單擊某個單元格,有些編輯器是雙擊以后再進入,有些編輯器是單擊后進入;(2)選中某個單元格,按F2可以進入編輯器;(3)選中某個單元格,按下編輯器能接受的按鍵,例如文本編輯器可以接受任意可見字符,checkbox可以接受空格鍵作為切換選擇的鍵,按下這些鍵后,單元格也將進入編輯狀態(tài)。結(jié)束編輯的方法有(1)在編輯器中按下Enter鍵或者Tab鍵;(2)在編輯狀態(tài)下點擊表格的其他單元格;(3)表格控件失去焦點。在編輯狀態(tài)下按下Esc鍵將取消編輯。結(jié)束編輯和取消編輯的區(qū)別在于,結(jié)束編輯時會將單元格的值修改為編輯器的值,取消編輯器將保持單元格的舊值。

如何在取數(shù)之后,調(diào)整KDTable單元格的內(nèi)容或者顯示格式

table.addKDTDataFillListener這個事件將在取數(shù)事件之后被調(diào)用,在這個事件當中,取數(shù)事件獲取的數(shù)據(jù)已經(jīng)填充到KDTable當中,可以直接獲取KDTable的行及單元格進行操作。DataFillListener和取數(shù)事件是一一對應(yīng)的,取數(shù)事件調(diào)用一次則DataFillListener將被調(diào)用一次,而且DataFillListener的事件參數(shù)中的起始行和結(jié)束行也是和取數(shù)事件的參數(shù)一致的。需要注意的是在DataFillListener中只能訪問事件參數(shù)中的起始行和結(jié)束行范圍的行,千萬不要在這個事件里訪問table的所有行,因為如果在這里訪問不在事件參數(shù)范圍內(nèi)的行,可能導致再次觸發(fā)取數(shù)事件。KDTable刷新后,滾動條跳到最后修改位置kdtEntrys.getLayoutManager().scrollRowToShow(rowInde);

如何通過代碼控制KDTable新增行

方法一:

//增行

EmpEnrollBizBillEntryInfo

entry

=

new

EmpEnrollBizBillEntryInfo();//創(chuàng)建分錄的實體

entry.setEmpName(name);//設(shè)置實體屬性

entry.setIDCardNo(id);

editData.getEntrys().add(entry);//將實體新增到editData的實體列表中。

loadFields();//重新加載分錄信息

方法二:

//增行

addLine(kdtEntries);

IRow

newRow

=

kdtEntries.getRow(kdtEntries.getRowCount()-1);//獲取新增的行對象

//設(shè)置分錄的實體

newRow.setUserObject(new

ReceivingBillEntryInfo());

//設(shè)置分錄實體的屬性

newRow.getCell("Band").setValue(obei.getBand());//品牌

newRow.getCell("ProductSeries").setValue(obei.getProductSeries());//產(chǎn)品線

newRow.getCell("Period").setValue(obei.getPeriod());//期數(shù)對于分錄設(shè)置排序 KDTSortManagersortManager=newKDTSortManager(kdtEntrys); sortManager.setSortAuto(true); sortManager.setClickCount(1); for(inti=0;i<kdtEntrys.getColumnCount();i++){ this.kdtEntrys.getColumn(i).setSortable(true); }EASBos合計行代碼 /** *功能:添加合計行 * *@paramtable *指定的KDTable *@paramfields *需要合計的列 */ 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); } //計算所有指定行的合計值 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è)置合計行顯示樣式 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è)置合計行的值 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對于某個權(quá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開發(fā)中使用字段類型是選擇已有基礎(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)于對EASbos分錄設(shè)定默認值 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ù)中有多個分錄的情況下,默認是哪個實現(xiàn)了排序

protectedKDTablegetDetailTable(){

returnkdtEntrys;

}關(guān)鍵就是看這個方法中的分錄是那個分錄,那個分錄就默認實現(xiàn)了排序的工程。對于其他的,可以自己使用代碼實現(xiàn)一個簡單的排序

KDTSortManagersortManager=newKDTSortManager(kdtEntrys);

sortManager.setSortAuto(true);

sortManager.setClickCount(1);

for(inti=0;i<kdtEntrys.getColumnCount();i++){

this.kdtEntrys.getColumn(i).setSortable(true);

}

easbos客戶端常用代碼 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)于驗證常用的幾個類文件和代碼1TrainVerifyUtils

TrainVerifyUtils.verifyRepeatRow(this,kdtEntrys,"type","試題類型");

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必錄項檢查

//檢查必填項調(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多分錄標準單據(jù)的分錄操作按鈕是在表格右上方的,有時由于業(yè)務(wù)需求,需要添加其它的操作按鈕,以滿足業(yè)務(wù)需求,可以先通過BOS設(shè)計工具,在UI上任一位置添加好所需要的代碼,再通過如下代碼,把按鈕添加到多分錄表頭上。當你把指定的按鈕添加到分錄的按鈕面板上后,UI上的自動就不顯示了。先定義好方法。

/**

*給分錄上添加按鈕,加到最左邊

*

*@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多分錄標準單據(jù)的分錄操作按鈕是在表格右上方的,有時由于業(yè)務(wù)需求,這部分數(shù)據(jù)要自動生成,不充許操作,可能需要禁用或隱藏這些按鈕,由于框架沒有提供相應(yīng)的接口,可以通過以下代碼來實現(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標準單據(jù)自帶kdtable(kdtEntry)右鍵導出excel菜單框架在CoreUI中,把“導出到Excel”和“導出選擇部分到Excel”2個右鍵菜單給隱藏掉了,可以通過覆蓋下面的方法使這兩個菜單顯示。

/**

*顯示被框架隱藏的導出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之前進行的,所以判斷的代碼可以加在這個方法里面。

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);

}

}

}

另外有一個execQuery方法,如果加在這個方法里,那么只有當有過濾條件和點刷新按鈕時,才會起作用。修改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,不會顯示別名,要顯示別名有兩個方法:1、在Query中用case語句,這個辦法比較笨,如果枚舉添加,或者比較多,需要重新修改Query。不建議使用。2、覆蓋父類方法getQueryExecutorJava代碼

protected

IQueryExecutor

getQueryExecutor(IMetaDataPK

queryPK,

EntityViewInfo

viewInfo)

{

IQueryExecutor

iec

=

super.g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論