那哪位大神帮忙看看Java语言有错不

如图,finereport怎么设置点击名称内容,根据数据类型内容弹出对应的超级链接,比如,如果是学校就弹出学校的超级链接然后链接到网络报表学校.cpt,如果是学生就弹出学生的超级链接然后链接到网络报表学生.cpt,同时要进行传参,A2/C2的数据要和对应的网络报表对应上d205a230-c7b1-47e5-94c0-a8a15626476f.png

/ 获取当前行号(FineReport行号从0开始)  

var row = this.row;  

// 读取数据类型(B列)、名称(A列)、单位(C列)的值  

var dataType = contentPane.getCellValue("B", row + 1);  

var name = contentPane.getCellValue("A", row + 1);  

var policeStation = contentPane.getCellValue("C", row + 1);  

// 拼接报表链接(需替换为实际服务器地址)  

var serverUrl = "http://192.168.2.207:8080/webroot/decision";  

var reportLink = "";  

if (dataType === "学校") {  

    reportLink = `${serverUrl}/view/report?viewlet=学校.cpt&name=${encodeURIComponent(name)}&policeStation=${encodeURIComponent(policeStation)}`;  

} else if (dataType === "内部单位") {  

    reportLink = `${serverUrl}/view/report?viewlet=内部单位.cpt&name=${encodeURIComponent(name)}&policeStation=${encodeURIComponent(policeStation)}`;  

}  

// 打开链接  

if (reportLink) {  

    window.open(reportLink, "_blank"); // 在新标签页打开链接  

} else {  

    FR.Msg.alert("提示", "未匹配到对应数据类型的报表链接!");  

}  

FineReport 帆软用户MdvQbhNPuc 发布于 2025-3-7 19:35
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CovidLv3高级互助
发布于2025-3-7 20:17(编辑于 2025-3-7 20:18)

var serverUrl = "http://192.168.2.207:8080/webroot/decision";

var reportLink = "";

if (dataType == "学校") {

reportLink = serverUrl + "/view/report?viewlet=学校.cpt&name=" + encodeURIComponent(name) + "&policeStation=" + encodeURIComponent(policeStation) + "";

else if (dataType == "学生") {

reportLink = serverUrl + "/view/report?viewlet=学生.cpt&name=" + encodeURIComponent(name) + "&policeStation=" + encodeURIComponent(policeStation) + "";

}

else{

reportLink="";

}

// 打开链接  

if (reportLink) {

window.open(reportLink, "_blank"); // 在新标签页打开链接  

} else {

FR.Msg.alert("提示", "未匹配到对应数据类型的报表链接!");

}

image.png

最佳回答
0
青春只因年少Lv6中级互助
发布于2025-3-7 19:40(编辑于 2025-3-7 19:40)
// 获取当前行号(FineReport 行号从 0 开始) var row = this.row; // 读取数据类型(B列)、名称(A列)、单位(C列)的值 var dataType = contentPane.getCellValue("B", row + 1); // 注意:列名区分大小写! var name = contentPane.getCellValue("A", row + 1); var policeStation = contentPane.getCellValue("C", row + 1); // 拼接报表链接(需替换为实际服务器地址) var serverUrl = "http://192.168.2.207:8080/webroot/decision"; var reportLink = ""; // 根据数据类型动态生成链接 switch (dataType) {     case "学校":         reportLink = `${serverUrl}/view/report?viewlet=学校.cpt&name=${encodeURIComponent(name)}&policeStation=${encodeURIComponent(policeStation)}`;         break;     case "学生":         reportLink = `${serverUrl}/view/report?viewlet=学生.cpt&name=${encodeURIComponent(name)}&policeStation=${encodeURIComponent(policeStation)}`;         break;     default:         reportLink = ""; // 未匹配到类型时清空链接 } // 打开链接(新标签页) if (reportLink) {     window.open(reportLink, "_blank"); } else {     FR.Msg.alert("提示", "未匹配到对应数据类型的报表!"); }

最佳回答
0
CD20160914Lv8专家互助
发布于2025-3-7 21:10

比如在D2要传A2-C2的值

D3的时候要传A3-C3的值

语句如下

复制就行

var location = this.options.location; //获取当前控件的位置

var cr = FR.cellStr2ColumnRow(location);

var col = cr.col; //列号

var ro = cr.row; //行号

//如果语句在D列的话,你就改减列的数字就行了,因为帆软中A列的列序号是从0开始的

var dataType = contentPane.getCellValue(0,col-2,ro)//B列的内容

var name = contentPane.getCellValue(0,col-3,ro)//A列的内容

var policeStation = contentPane.getCellValue(0,col-1,ro)//C列的内容

var reportLink = ""; 

if (dataType === "学校") { 

    reportLink = encodeURI(encodeURI("/webroot/decision/view/report?viewlet=学校.cpt&name="+name+"&policeStation="+policeStation));

} else if (dataType === "内部单位") {  

    reportLink = encodeURI(encodeURI("/webroot/decision/view/report?viewlet=内部单位.cpt&name="+name+"&policeStation="+policeStation));   

}  // 打开链接  

if (reportLink) {  

    window.open(reportLink, "_blank"); // 在新标签页打开链接  

} else {  

    FR.Msg.alert("提示", "未匹配到对应数据类型的报表链接!");  

}  

  • 3关注人数
  • 33浏览人数
  • 最后回答于:2025-3-7 21:10
    请选择关闭问题的原因
    确定 取消
    返回顶部