您好,登錄后才能下訂單哦!
報表,我們習(xí)慣于認為主要用來呈現(xiàn)數(shù)據(jù)匯總、排序、分組對比的效果,一般都是“橫平豎直”的效果,也就是我們常說的二維表格,最多也就是通過一些斜線、合并表示一些特殊的數(shù)據(jù)關(guān)系。事實上,報表還可以通過實行各種不規(guī)則的布局,來發(fā)揮更大的作用。
首先,我們就拿我們每個人幾乎都遇到過的大大小小的各種考試來舉例。每逢考試就一定會有考場座位分布圖,以便考生對號入座參加考試。這里看一個具體的案例,來自于某地的一次職業(yè)技能考試,總共涉及數(shù)十所所學(xué)校,數(shù)千名考生,每人參加 4 門學(xué)科,需要按照專業(yè)、場次、時間以及一定的隨機規(guī)則進行座次安排,最終輸出座位分布圖,然后打印并在各個考場張貼。要求每名考生的座位標(biāo)簽如下圖所示:
整個教室的作為分布如下圖所示:
這種形式的報表就不再是簡單的“橫平豎直”了,而是我們所說的不規(guī)則布局。具體第說,這種布局有一個形象的名稱“龍形布局”,也就是每個小的局部作為標(biāo)簽具有自己的布局,好像是龍的鱗片,而整體上又按照一定的寬度(這里是 2 列)進行縱向排布。
那么,有什么方法可以簡單、快捷地一下子制作出數(shù)千人的“龍形布局”座次分布圖呢?——潤乾報表就可以!
話不多說,下面我們一起看一下潤乾報表中如何輕松搞定這類不規(guī)則布局的吧!
首先,根據(jù)效果圖繪制報表樣式和框架,如下:
這里偷偷泄露一個小【技巧】,我們使用“to 函數(shù) + 縱向擴展”控制每列放幾張桌子,就是上圖 C4 單元格的表達式。
接下來,填入考生信息,如下
其中:
A4 單元格中表達式為:=ds1.group(ZYGZMC;ZYGZMC:1),合并單元格 A4-A8, 縱向擴展,分組取出職業(yè)名稱并升序排列,后面的數(shù)據(jù)將默認以 A4 單元格為主格跟隨擴展取數(shù)。
B4 單元格中表達式為:=ds1.group(KCMC;KCMC:1),操作同上,KCMC 代表考場名稱
D5 單元格中表達式為:=valueat(ds1.select(LLKCZWH:-1,LLKCZWH<6),C4),給每個桌子貼上理論考場座位號
E4 單元格中表達式為:= “理論:”+ds1.select(LLPD,LLKCZWH==D5),ds.select 函數(shù)根據(jù)理論考場座位號(LLKCZWH)取出理論評審(LLPD)成績
F4 單元格中表達式為:=ds1.select(ZHPD:-1,LLKCZWH==D5),操作同 E4,ZHPD 代表 綜合評審成績
E5 單元格中表達式為:=”實踐:”+ds1.select(SCPD,LLKCZWH==D5),操作同 E4,SCPD 代表實踐評審成績
E6 單元格中表達式為:=”綜合評審:”+ ds1.select(ZHPD,LLKCZWH==D5),操作同 E4,ZHPD 代表綜合評審成績
E7 單元格中表達式為:=ds1.select(XM,LLKCZWH==D5),操作同 E4,XM 代表考生姓名
E8 單元格中表達式為:=ds1.select(ZKZH,LLKCZWH==D5) ,操作同 E4,ZKZH 代表考生準(zhǔn)考證號
到這里,我們已經(jīng)將左邊 1 列的 5 位同學(xué)安排妥當(dāng)了,接下來的操作相對就簡單一些了,主要是把 D、E、F 列的內(nèi)容復(fù)制到 H、I、J 列,然后做一些小的修改:
H5 單元格中表達式為:=valueat(ds1.select@r(LLKCZWH:1,LLKCZWH>5),C4),復(fù)制粘貼得時候別忘記修改取數(shù)的范圍奧。
I4 單元格中表達式為:= “理論:”+ds1.select@r(LLPD,LLKCZWH==H5),注意注意,這里有一丟丟變化奧, ds.select 函數(shù)使用 @r 選項是為了保證數(shù)據(jù)從根數(shù)據(jù)集中取數(shù)不受前面那列的影響奧。
J4 單元格中表達式為:=ds1.select@r(ZHPD:-1,LLKCZWH==H5)
I5 單元格中表達式為:=”實踐:”+ds1.select@r(SCPD,LLKCZWH==H5)
I6 單元格中表達式為:=”綜合評審:”+ds1.select@r(ZHPD,LLKCZWH==H5)
I7 單元格中表達式為:=ds1.select@r(XM,LLKCZWH==H5)
I8 單元格中表達式為:=ds1.select@r(ZKZH,LLKCZWH==H5)
Bingo!有木有很意外,做到這里就已經(jīng)輕松搞定考場分布報表了,是不是趕腳很簡單,時間也節(jié)省了不少?多出來的時間您一定不介意(壞笑)我再多說些什么吧…..
上面我們所完成的布局屬于平面規(guī)劃的直觀展示,接下來,我們再看一種非常實用的業(yè)務(wù)場景:
以倉儲行業(yè)為例,在實現(xiàn)了條碼管理的倉庫,出入庫單據(jù)可以通過簡單的掃碼完成貨品的歸位或取出,這時,出入庫單據(jù)上就需要印制多個條目,每一項都會有相應(yīng)的條目,如果按照常規(guī)布局的話,如下
但是這種布局有一個問題,就是很有可能會出現(xiàn)錯行掃描的情況!為此,潤乾報表又偷偷給關(guān)注的我們程序猿哥哥發(fā)福利了——制作打印以下這種“錯位”形式的“入場券”:
是不是已經(jīng)迫不及待想要進場了解下這種條碼不規(guī)則“錯位“布局是怎么被搞定的了? 別著急,我們這就開始說道說道:
將左右錯位的 2 個條形碼看做一組,先弄出個樣子,然后填寫相應(yīng)的數(shù)據(jù)表達式,如下:
其中:
A4 單元格中表達式為:
=if(ds1.count()%2==0,to(1,ds1.count()/2),to(1,ds1.count()/2+1)),根據(jù)條碼總數(shù)是奇數(shù)還是偶數(shù),確定總共需要縱向擴展幾組。
B4 單元格中表達式為:=ds1.select(field1)(A4[-1]+A4),意從結(jié)果集 ds1.select(field1) 中根據(jù)行號取出條形碼
C4 單元格右鍵 選擇“條形碼”,內(nèi)容表達式為:=B4,同時勾選“顯示文字”, 指定條形碼按照指定單元格數(shù)據(jù)呈現(xiàn)
B5 單元格右鍵 選擇“條形碼”,內(nèi)容表達式為:=C5
C5 單元格中表達式為:=ds1.select(field1)(A4[-1]+A4+1)
然后……就沒有然后了……“噹噹噹”,是不是嚇一跳,到這里又一個看似復(fù)雜的布局“錯位條碼清單”就這么輕松搞定了,忍不住想要動手試試了,那就別猶豫了“擼起袖子,做起來吧 !!!”。
最最后,劃重點圈知識點啦,不看的話,明天用到可別怪我沒告訴您奧。
如何控制布局:
【知識點】使用 to() 函數(shù)來做一些特殊報表格式的控制,根據(jù)條件限定行列數(shù);
如何從一個集合中取出指定的成員
【知識點】valueat() 常用于從數(shù)組或者集合表達式中取出的某一個元素;
如何排除前面列的影響直接從總結(jié)果集拿數(shù)據(jù)
【知識點】比如考場座位圖中 @r 選項的使用
小提示:
【操作技巧】制作此類報表如果不能一眼找出數(shù)據(jù)呈現(xiàn)的規(guī)律以及取數(shù)方式不妨拿出紙筆,在紙上寫出一部分數(shù)據(jù),或許一下就明白了。
說到這里,關(guān)于“報表布局技巧與應(yīng)用”的簡單介紹真的真的告一段落了,實現(xiàn)上面的效果我們僅僅是在常規(guī)展現(xiàn)的報表基礎(chǔ)上使用了 1-2 個函數(shù)(比如:to()、valueat()、if())就做出了考場座位圖、錯位條碼清單的效果,有木有感覺 So easy,幾個函數(shù)輕松搞定。從此以后,做表再也不用害怕遇到神馬倉庫貨位管理展示圖、學(xué)生宿舍的分布….. 的情況了
詳情鏈接: http://c.raqsoft.com.cn/article/1533026639184?r=gxy
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。