首頁 | 關於知識網 | 會員規範 | 知識地圖| 本站連結 | JACKSOFT | 加入會員 |
電腦稽核 >> 電腦稽核軟體討論區 >>[分享]ACL的指令function介紹 ( 開頭字母A )
[分享]ACL的指令function介紹 ( 開頭字母A )

相信這裡有不少朋友已經跟ACL很熟了
本文希望提供ACL指令一個 quick review,讓有需要的朋友可以很快取得概念
而標題以字母排列是方便大家搜尋

另外在「技術百科」的「ACL技術百科」裡有更詳細的圖文範例
需要更詳細介紹的朋友可以去ACL技術百科裡面點選「下載」

ABSOLUTE( )

ABS( )會將指令中的數值以絕對值的方式傳回
在產生隨機樣本前,我們可以使用ABS( )來決定母體的絕對值

指令的格式

  ABS(number)

範例

  ABS(-7.2) = 7.2

  ABS(88.2) = 88.2

同樣我們也可以計算兩個欄位差的絕對值

  ABS(Amount1 - Amount2)

AGE( )

AGE( )回傳某特定日期與截止日期比較後,他們相差的天數
所以我們可以運用AGE( )比較兩個日期後,發掘過期的帳或執行帳齡分析

指令的格式

  AGE(date < , cutoff_date_yyyymmdd>)

AGE( )會回傳數值,指出兩個日期間所差的天數。
當你沒有填入 cutoff_date 時,ACL就會使用目前的系統時間作為 cutoff_date。
但當你填入 cutoff_date 時,ACL就會計算與會計年度終了或其他截止日期有關連的帳齡。

不論日期欄位是以如何的格式儲存,當你在使用常數時,這個常數一定要是:

表示成YYMMDD或YYYYMMDD的字元字串 表示成YYMMDD或YYYYMMDD的日期常數 合法的ACL日其表達方式

當日期是在截止日之前,那他就會回傳一個正數。
相反地,當日期是在截止日之後,那他就會回傳一個負數。

另外,日期的範圍要在1900 / 01 / 01 到 9999 / 12 / 31 之間才可以。

範例

假設目前的系統時間是 1996/ 01 / 01

  AGE('951220') = 12

  AGE('19960108') = -7

  AGE('19941220','950101') = 12

  AGE(Invoice_date) = 65

  AGE(Invoice_date,'961231') = 80

為了要抓出名字、數量、與發票日期都大於180天的物品(在會計年度終了時 )
我們可以使用以下的條件式:

  AGE(Invoice_date,'961231') > 180

ALLTRIM( )

ALLTRIM( )會將一個字串的頭尾空白都去掉,再回傳該字串,不過在字串裡面的空白則會被保留。

ALLTRIM( )與LTRIM( )相似,不過LTRIM( )僅能用來去掉開頭的空白。
ALLTRIM( )也與TRIM( )相似,不過TRIM( )是用來去掉結尾的空白。

指令的格式

  ALLTRIM(string)

範例

  ALLTRIM(" abc ") = "abc"

  ALLTRIM(" a bc ") = "a bc"

ASCII( )

ASCII( )會傳回第一個字元(character)或ASCII欄位的ASCII code十進位碼。本功能正好與CHR( )的功能相反。

當有些字元欄位值是不可以被print的字元,像是tabs,我們就可以使用ASCII( )以測試字元欄位的值。

功能的格式

  ASCII(character)

ASCII( )會分析character中第一個字元,然後回傳一個代表這個自元的十進位值。

如果character是一個常數,請確定它是被放在引號內。

範例

  ASCII("A") = 65

  ASCII("1") = 49

擷取Description欄位內開頭有制表符(假設十進位值為9 )的記錄:

  ASCII(Description) = 9

AT( )

AT( )會回傳其它字串中某特定製串的位置。
使用時,你要明確定義出哪個字串是你要找的。如果找不到,則會傳回0。

對大部分應用來說,只是關心這個字串是否出現,那我們在這種情況下只需使用FIND( )。
當你還需要字串的位置,或是你想要找發生事件的次數,那我們才要用AT( )。

AT( )可以用來找文字欄位(像是description, name 或地址)中一個特定的值

指令的格式

  AT(occurrence, string, character_field)

AT( )會搜尋在其它字串中的特定字串。

occurrence:定義出我們找的字串出現的次數。
string:定義出我們想找的字元字串。
character_field:定義出要搜尋的字串,也就是我們會在該字串裡搜尋我們想找的字元字串。

*在AT( )裡,"a" 不等於 "A"。
 如果你想要兩者都找,不妨考慮使用UPPER( )將資料都先轉換成大寫再搜尋

範例

  AT(1, "ABC", "ABCDEFG") = 1

  AT(2, "ABC", "ABCDEFGABCDEFG") = 8

  AT(2, "A", "ABCDEFGH") = 0

  AT(3, "ABC", "ABCDEFGABCDEFG") = 0

為了要擷取在地址欄位中每個包含"Wild"的地址資料,我們需要將指令定義成類似 if 條件式的樣子:

  AT(1, "WILD", UPPER(Address)) > 0

使用UPPER( )這個指令來將這個地址欄位轉換成大寫,如此我們搜尋就不會被大小寫干擾。
如果AT( )的回傳值大於0,那麼就表示在地址欄位中找到"Wild",另外紀錄也被擷取出。

*在這個例子中,我們會同時找到 " Wilder St. " 與 " Swilden Ave."
 為了要更仔細區別兩者,你可以再 "Wild " 前後加入空白。 



資料來源:
&nbsp;

2
 
 

   
相關標籤
   
回文 #1
回覆會員暱稱:
點數:
等級:初學者

榮譽勳章:初學者
發文篇數:500
回文時間:2009-09-09 20:48:30

不知有沒有適用軟體可供下載自學?
   
回文 #2
回覆會員暱稱:玉米
點數:7050
等級:知識長

榮譽勳章:知識長
發文篇數:344
回文時間:2009-09-09 20:47:44

看了那麼多篇,感覺ACL比較不陌生了
網站建議與問題回報 | 隱私權政策 | 網站管理規範 | 條款與政策