1. 函數作用
在制作報表時,我們可能需要根據某一單元格的值對數據集進行檢索并返回對應的值。
此情況時,可使用 map() 函數,根據數據集的名字,找到對應的數據集,找到其中索引列的值爲 key 所對應的返回值。 map() 函數首先檢索模板數據集,再檢索服務器數據集。
示例:
MAP(1001,"employee",1,2)返回 employee 數據集,第 1 列中值爲 1001 那條記錄中第 2 列的值。
MAP(1001,"employee","name","address")返回 employee 數據集,name 列中值爲 1001 那條記錄中 address 列的值。注:只返回第一個找到的值。
2. 使用說明
MAP(object,string,int,int):根據數據集的名字,找到對應的數據集,找到其中索引列的值爲 key 所對應的返回值。
object:索引值,需要查詢的内容。
string:數據集的名字,定義的數據查詢的名字。
int:索引值所在列序号。
int:返回值所在列序号。
注:後兩個參數也可以寫列名代替。根據數據集的名字,找到對應的數據集,找到其中索引列的值爲key所對應的返回值。數據集的查找方式是依次從報表數據集找到服務器數據集。索引列序号與返回值序列号的初始值爲1。
3. 示例
3.1 報表設計
3.1.1 數據準備
新建數據查詢 ds1 ,SQL 語句如下SELECT * FROM 供應商,如下圖所示:
3.1.2 模板設計
新建普通報表,分别給 A1~A5 單元格賦值,單擊 A2 單元格,右鍵選擇單元格元素,選擇插入公式,公式如下:
MAP(A1, "ds1", "公司名稱", "供應商ID")返回 ds1 數據集,“公司名稱”列中值爲 A1 那條記錄中“供應商 ID”列的值。
MAP(A1, "ds1", 2, 1)返回 ds1 數據集,第 2 列中值爲 A1 那條記錄中第1列的值。
MAP("妙生", "ds1", "公司名稱", "供應商ID")返回 ds1 數據集,“公司名稱”列中值爲“妙生”那條記錄中“供應商 ID”列的值。
MAP("妙生", "ds1", 2, 1)返回 ds1 數據集,第2列中值爲“妙生”那條記錄中第1列的值。
3.2 效果預覽
1)PC端
保存模板,點擊分頁預覽,如下圖所示:
2)移動端
4. 模板下載
點擊下載模板:Map函數.cpt