日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

sortable 拖拽时互换目标的位置_报表如何实现行列互换效果?

發(fā)布時(shí)間:2025/5/22 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sortable 拖拽时互换目标的位置_报表如何实现行列互换效果? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通常我們?cè)O(shè)計(jì)的二維的交叉報(bào)表,橫向的維度和縱向的維度是固定的,而用戶希望更希望能根據(jù)自己的需要快速轉(zhuǎn)換橫向縱向維度來(lái)查看報(bào)表。

如上圖所示,我們通過(guò)點(diǎn)擊一個(gè)按鈕或文字,就可將報(bào)表的行列維度互相轉(zhuǎn)換,這樣的動(dòng)態(tài)轉(zhuǎn)換效果要怎么設(shè)置實(shí)現(xiàn)呢?

這里我介紹兩種方法實(shí)現(xiàn)方法:

1. 兩張報(bào)表超鏈接

2. 單張報(bào)表動(dòng)態(tài)判斷

兩張報(bào)表超鏈接

實(shí)現(xiàn)思路:

二維的交叉報(bào)表行列維度有兩種情況,我們只需對(duì)應(yīng)兩種情況做兩張報(bào)表,切換的按鈕用超鏈接實(shí)現(xiàn),連接的目標(biāo)就是另一張報(bào)表。

具體實(shí)現(xiàn):

1. 新建一張報(bào)表,文件名為行列轉(zhuǎn)換 1.rpx, 數(shù)據(jù)源使用潤(rùn)乾設(shè)計(jì)器下自帶的 demo 數(shù)據(jù)源,數(shù)據(jù)集使用 SQL 檢索方式,SQL 為:SELECT 訂單. 貨主地區(qū), 訂單. 訂單金額, 雇員. 姓氏 + 雇員. 名字 as 雇員 FROM 訂單, 雇員 WHERE 訂單. 雇員 ID = 雇員. 雇員 ID 。

2. 設(shè)置報(bào)表單元格表達(dá)式,潤(rùn)乾設(shè)計(jì)器中單元格可以直接寫表達(dá)式,也支持拖拽字段生成表達(dá)式。

B1 單元格我們通過(guò)拖拽字段的方式生成表達(dá)式:在設(shè)計(jì)器右下角的數(shù)據(jù)集面板中可以看到我們剛才新建的數(shù)據(jù)集和字段,選擇對(duì)應(yīng)字段,然后選擇分組,將字段拖拽到 B1 單元格中,

B1 單元格就會(huì)出現(xiàn) =ds1.group(貨主地區(qū); 貨主地區(qū));

A2 單元格同 B1 的操作,不同的是選擇雇員字段拖拽,生成的表達(dá)式為 =ds1.group(雇員; 雇員:1);

B2 單元格選擇訂單金額,選擇匯總,匯總方式為求和,拖拽字段到 B2 單元格中,表達(dá)式為 =ds1.sum(訂單金額)。

3. 修改單元格擴(kuò)展方式,單元格的擴(kuò)展方向默認(rèn)為縱向,選中 B1,在右側(cè)屬性面板中設(shè)置擴(kuò)展方式為橫向擴(kuò)展。

4.A1 單元格中直接寫上行列互換,設(shè)置超鏈接表達(dá)式:“./showReport.jsp?rpx=/30 交互報(bào)表 / 行列互換 2.rpx”,超鏈接窗口為:_self。

5. 將當(dāng)前報(bào)表另存一張,保存文件名為“行列轉(zhuǎn)換 2.rpx”,將 B1 和 A2 單元格表達(dá)式對(duì)調(diào),將 A1 的超鏈接表達(dá)式修改為:“./showReport.jsp?rpx=/30 交互報(bào)表 / 行列互換 1.rpx”。

經(jīng)過(guò)以上設(shè)置,我們就完成了最不燒腦的二維報(bào)表行列互換報(bào)表的制作,使用 showReport.jsp 訪問(wèn)行列轉(zhuǎn)換 1.rpx,點(diǎn)擊行列轉(zhuǎn)換那幾個(gè)字就會(huì)變成行列轉(zhuǎn)換 2.rpx,用戶盡管點(diǎn)擊切換,不用做條件判斷。

單張報(bào)表動(dòng)態(tài)判斷

實(shí)現(xiàn)思路:

根據(jù)標(biāo)志 flag 當(dāng)前值,來(lái)改變他的值,根據(jù)這個(gè)值確定橫向分組和縱向分組使用的字段。

具體實(shí)現(xiàn)

1. 將行列轉(zhuǎn)換 1.rpx 另存一個(gè)報(bào)表,文件名為行列轉(zhuǎn)換.rpx。

2. 報(bào)表中增加一個(gè)普通參數(shù),參數(shù)名稱為 change, 數(shù)據(jù)類型為整數(shù),默認(rèn)的參數(shù)值為 1;

兩個(gè)動(dòng)態(tài)參數(shù):參數(shù)名稱 group1, 數(shù)據(jù)類型為字符串,值表達(dá)式為 if(change==1,“貨主地區(qū)”,“雇員”;

參數(shù)名稱 Group2, 數(shù)據(jù)類型為字符串,值表達(dá)式為 if(change==1,“雇員”,“貨主地區(qū)”)。

3. 修改單元格表達(dá)式

橫向分組和縱向分組的字段通過(guò)動(dòng)態(tài)參數(shù)的值,動(dòng)態(tài)變化,將 B1 的表達(dá)式修改為 =ds1.group(${group1};${group1}:1),將 A2 的表達(dá)式修改為 =ds1.group(${group2};${group2}:1)。

4. 修改行列互換的超鏈接表達(dá)式

超鏈接表達(dá)式為:“./showReport.jsp?rpx=/30 交互報(bào)表 / 行列互換.rpx&change=”+if(change==1,-1,1)

經(jīng)過(guò)以上設(shè)置,我們通過(guò) showReport.jsp 訪問(wèn)行列轉(zhuǎn)換.rpx, 在瀏覽器地址欄中,輸入 url:

http://localhost:6868/demo/reportJsp/showReport.jsp?rpx=/30 交互報(bào)表 / 行列轉(zhuǎn)換.rpx訪問(wèn)。

當(dāng)點(diǎn)擊表頭中的行列轉(zhuǎn)換文字,刷新的報(bào)表還是當(dāng)前的報(bào)表,但 change 的參數(shù)值已經(jīng)變成了 -1,并且行列的分組字段也發(fā)生了變化。

通過(guò)上面介紹的兩種方法都能快速的實(shí)現(xiàn)報(bào)表行列互換的效果,如果不想做多張報(bào)表來(lái)實(shí)現(xiàn),推薦使用第二種實(shí)現(xiàn)方法,如果不習(xí)慣條件判斷的設(shè)置,可以使用第一種方法,雖然涉及到兩張報(bào)表,只是另存第一張報(bào)表,簡(jiǎn)單修改就行,修改的工作量可忽律不計(jì),也沒(méi)有第二種方法的小彎彎繞,具體根據(jù)自己的情況選擇合適的方法吧。

附件中是兩種方法實(shí)現(xiàn)的報(bào)表實(shí)例,方便對(duì)照文章實(shí)現(xiàn)行列互換的需求。

總結(jié)

以上是生活随笔為你收集整理的sortable 拖拽时互换目标的位置_报表如何实现行列互换效果?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。