案例一.单元格实现多文件点击分别打开附件功能
SELECT T.FILEID,
T.SEQ,
T.CLAIM_FILEID,
T.PAYER,
T.FEE_TYP,
T.CURRENCY_CD,
T.EXCHANGERATE,
T.TOCURRCODE,
T.ACC_AMT,
T.USD_AMT,
T.CLAIMFEE_FILEID,
T.REMARK,
T.FEE_REMARK,
I.Claim_Amt,
(select replace(replace(replace(replace(wmsys.wm_concat(to_char('<a target=$_blank$ href=$/scripts/common/ntko/AttachmentsShow.jsp?tableName=XT_DOCUMENT#fileID=' ||
FILEID || '$>' ||
replace(FILETITLE,
',',
'~') ||
'</a>')),
',',
';<br/>'),
'~',
','),
'$',
'"'),
'#',
'&')
from XT_DOCUMENT
where REFERENCEID = I.FILEID) ATTACHMENT,
'' AS ATTACHID
FROM SH_INS_CLAIMBILL_DETAIL T
INNER JOIN SH_INS_ACCIDENT_CLAIMFEE I
ON I.FILEID = T.CLAIMFEE_FILEID
1.replace:先把字符串的","转为"~",
2.replace:把拼接的字符串的分隔符","转化为";",
3.replace:再把"~"还原为",",
以上3步实现了把字符串拼接,以";"进行分隔。wmsys.wm_concat()函数只支持以","分隔。
4.replace:因为公司平台的原因,如果在字符串里拼接包含双引号""",视图界面会乱码,所先以“$”代替又引号来拼接,还以还原。
5.replace:因拼接的字段串中包含&,执行sql时会报错,所以先以“#”代码"&",再以还原。
案例二:单无格实现多个操作
在bean的get方法里拼接html代码
public String getOPERATION() {
String handle="";
if(this.getCP_STATE().equals("2")){
if(this.getCP_FORM_NM().contains("/")){
String[] fromNM = this.getCP_FORM_NM().split("/");
handle = "<a href=\"javascript:genVCVoyOrder(\'"+this.getFILEID()+"\',\'"+this.getCP_FORM_CD()+"\',\'"+this.getVYG_NO()+"\',\'"+this.getCP_STATE()+"\')\"> "+fromNM[0]+" </a>";
handle += "<a href=\"javascript:genVCVoyOrder(\'"+this.getFILEID()+"\',\'\',\'0\',\'"+this.getCP_STATE()+"\')\"> "+fromNM[1]+" </a>";
}else{
handle = "<a href=\"javascript:genVCVoyOrder(\'"+this.getFILEID()+"\',\'"+this.getCP_FORM_CD()+"\',\'"+this.getVYG_NO()+"\',\'"+this.getCP_STATE()+"\')\">"+this.getCP_FORM_NM()+"</a>";
}
}else if (this.getCP_STATE().equals("3")) {
handle = "<a href=\"javascript:genVCVoyOrder(\'"+this.getFILEID()+"\',\'"+this.getCP_FORM_CD()+"\',\'"+this.getVYG_NO()+"\',\'"+this.getCP_STATE()+"\')\">"+this.getCP_FORM_NM()+"</a>";
}else{
}
return handle;
}