1. 操作符 操作符用于執(zhí)行程序代碼運算,會針對一個以上操作數(shù)項目來進行運算 操作符 說明 操作對象 示例 + 加號 數(shù)或單元格 2+3 - 減號 數(shù)或單元格 A1-B1 * 乘號 數(shù)或單元格 A1*2 / 除號 數(shù)或單元格 A3/3 % 取余,求余數(shù) 數(shù)或單元格 5%2為1 && 條件與,需要兩個操作數(shù)的值都是true時,才取值true 條件 A&&B || 或,只要兩個操作數(shù)中有一個是true取值就為true 條件 A||B & 取單元格所在行列 單元格 &A1 ! 取非,即取條件的反面 條件 !A,如果A是true,!A是false == 等于 數(shù)或變量 A==2 != 不等于 數(shù)或變量 A!=null : 到 ,用于取一段連續(xù)范圍的單元格 單元格 如A1:B3 即取A1到B3這個單元格集合 > 大于 數(shù)或變量或單元格 3>2 < 小于 數(shù)或變量或單元格 A1<2 >= 大于等于 數(shù)或變量或單元格 A1>=2 <= 小于等于 數(shù)或變量或單元格 A1<=2 . 引用對象或方法 對象或方法 ds1.select(#1) $ 參數(shù)引用符或絕對定位 參數(shù)或絕對定位 前者如$para 后者是在層次坐標中用的如B1=$B1 # 列序號 列 ds1.select(#1) ${} 宏定義 參數(shù) 如在sql中 select * from table ${"where 1=2"},會先計算出${}里面的值,然后拼接出完整的sql語句 Cell[] 層次坐標操作符 單元格 A2[A1:-1] $$$ 表示當前單元格的值即當前值 有數(shù)據(jù)的單元格 if($$$=0,"",$$$)表示如當前值為0則顯示空,否則為當前值 \\ 引用“\”,值即為\ 單元格 如\"表示引用"號 \n 換行符 字符串 如字符串a(chǎn)abb,希望bb換行顯示,則填寫aa\nbb 例句: =if(type = 1, ds1.group(年份), (if(type = 2, ds1.group(月份), ds1.group(訂單_訂購日期)))) ds1.select()和ds1.group()函數(shù)的使用 1. 概述 一般情況下,我們直接使用數(shù)據(jù)列的拖拽就能制作出想要的報表,但對于習慣編程的用戶或者希望根據(jù)不同的條件控制某個單元使用哪個數(shù)據(jù)列時,我們也同樣支持直接在單元格中使用來實現(xiàn),這樣的函數(shù)我們稱為數(shù)據(jù)集函數(shù)。 以下列出所有的數(shù)據(jù)集函數(shù)及用法。 2. tablename.select(colname,篩選條件1,篩選條件2,......) 說明:選出數(shù)據(jù)集某列中符合條件的數(shù)據(jù),返回結果是一個數(shù)組,相同數(shù)據(jù)不會合并。 其中tablename表示數(shù)據(jù)集名稱,注意是報表數(shù)據(jù)集或者是服務器數(shù)據(jù)集名,而非數(shù)據(jù)庫中的表名; colname表示列名,大小寫不區(qū)分。 示例:如數(shù)據(jù)集ds1取出內置FRDemo數(shù)據(jù)庫中的銷量表 在單元格中輸入=ds1.select(銷售員),返回數(shù)據(jù)集ds1銷售員列中的所有值。 在單元格中輸入=ds1.select(銷售員, 地區(qū) = "華東", 銷量 > 200),返回數(shù)據(jù)集ds1華東地區(qū)銷售總額超過200的銷售員。 3. tablename.group(colname,篩選條件1 && 篩選條件2,升降序) 說明:選出數(shù)據(jù)集某列中符合條件的數(shù)據(jù)并分組,還可以按照該列進行升降序排列。 其中tablename表示數(shù)據(jù)集名稱、colname表示列名; 升降序為布爾值,true表示升序,false表示降序。 示例:如數(shù)據(jù)集ds1取出內置FRDemo數(shù)據(jù)庫中的銷量表 在單元格中輸入=ds1.group(銷售員),返回數(shù)據(jù)集ds1銷售員列中的值,并且相鄰數(shù)據(jù)若相同會進行合并。 在單元格中輸入=ds1.group(銷售員,true,false)或=ds1.group(銷售員,,false),返回數(shù)據(jù)集ds1銷售員列中的值,并且其中只要相同就會進行合并,結果為降序排列,中間的參數(shù)為條件,若沒有條件,可以不寫或者使用true,但是不能省略。 在單元格中輸入=ds1.group(銷售員,地區(qū)=="華東"),返回數(shù)據(jù)集ds1華東地區(qū)的銷售員,并且相鄰數(shù)據(jù)若相同會進行合并。 在單元格中輸入=ds1.group(銷售員,地區(qū)=="華東",true),返回數(shù)據(jù)集ds1華東地區(qū)的銷售員,并且會合并所有相同項,結果為升序排列。 注:tablename.group()中只能有一個篩選條件。 4. tablename.select(#0) 說明:返回數(shù)據(jù)集ds1中的行號。 示例:如數(shù)據(jù)集ds1取出內置FRDemo數(shù)據(jù)庫中的銷量表 在單元格中輸入=ds1.select(#0),數(shù)據(jù)集ds1中一共有45條數(shù)據(jù),因此返回行號1,2,3,......45。 5. tablename.value(row,col/colname) 說明:獲取數(shù)據(jù)集ds1中某行某列的值。 示例:如數(shù)據(jù)集ds1取出內置FRDemo數(shù)據(jù)庫中的銷量表 在單元格中輸入=ds1.value(3,2),返回數(shù)據(jù)集ds1中第3行第2列的值。 在單元格中輸入=ds1.value(3,"銷售員"),返回數(shù)據(jù)集ds1中第3行銷售員列的值。 6. 實例 6.1 實例1:數(shù)據(jù)集函數(shù)返回的數(shù)據(jù)進行擴展 直接將數(shù)據(jù)列拖拽到單元格時會自動從上到下擴展。但是使用數(shù)據(jù)集函數(shù)獲得數(shù)據(jù)為一個數(shù)組,是顯示在一個單元格中的,需要另外給單元格設置擴展屬性,數(shù)據(jù)才會進行擴展。 6.2 實例2:根據(jù)不同條件選擇使用哪個字段 在單元格中輸入如下公式: =if(條件,ds1.group(customerid),ds2.group(customerid)) 并設置其擴展屬性為從上到下。 說明條件為真,則單元格使用數(shù)據(jù)集ds1中的customerid列,否則使用ds2中的customerid列。 6.3 實例3:對數(shù)據(jù)集函數(shù)返回的數(shù)據(jù)再進行運算 如公式=sum(ds1.select(銷量)),返回數(shù)據(jù)集ds1銷量列的總和。 sum求和公式也可以換用其他如count、max等。 注:表單中暫不支持使用ds1.select(),ds1.group()等數(shù)據(jù)集函數(shù)。 |
|