QlikView Script – 進階篇1 Script呼叫Macro之變化
做一個簡單例子:
在Macro中增加一個函式
function dosomeTest()
'如果取消Msgbox註釋,8.20+版本不執行
'msgbox test
end function
在Load Script定義
Let abc = dosomeTest();
[@more@]Case1: 如果'msgbox test修改為msgbox test。
在Qv8.01版本執行會彈出一個對話方塊 顯示“Test”。但如果在Qv8.20以後,該功能會導致abc變數為Null。
原因分析:Qv8.20開始,Script訪問Macro不再支援對ActiveDocument的訪問,雖然沒有提Msgbox全稱可以這樣寫ActiveDocument.GetApplication.MsgBox("Test")。所以也屬於不支援之列。
Case2:如何在Script中獲取當前文件的報表
Qv8.01版本寫法:
Macro:
function countReports
set ri = ActiveDocument.GetDocReportInfo
end function
function getReportInfo (i)
set ri = ActiveDocument.GetDocReportInfo
set r = ri.Item(i) & "," & r.Name & CHR(10)
end function
Script:
let noOfReports = countReports();
For i = 0 to noOfReports-1
let reportInfo = getReportInfo($(i));
reportInfo:
Load * INLINE [
reportID, reportName
$(reportInfo)];
Next
Qv8.20+版本寫法:
為了滿足對類似上述的需求,Qv增加了函式:NoOfTables, TableName, TableNumber, Report-
Name, NoOfReports, ReportId, ReportNumber and ReportComment。
因此可以這樣修改:
let noOfReports = NoOfReports();
For i = 0 to noOfReports-1
Let repName = ReportName(i);
Let repID = ReportId(i);
reportInfo:
Load * INLINE [
reportID, reportName
$(repID),$(repName)];
Next
Case3:如果正常呼叫非Qv物件函式
如同dosomeTest()函式例項,在所有Qv版本中都可以呼叫。來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10158957/viewspace-1023706/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JS 之 script標籤JS
- 請說說`<script>`、`<script async>`和`<script defer>`的區別
- Script
- Nodejs 呼叫 R 指令碼 / Nodejs Call R ScriptNodeJS指令碼
- Shell Script
- shell script
- 前端效能優化---將script標籤放在body之後前端優化
- Elasticsearch script sort 排序Elasticsearch排序
- npm script中&&和&NPM
- MySQL Server Startup ScriptMySqlServer
- JavaScript <script>標籤JavaScript
- IDM-Activation-Script
- 頁面中多個script塊之間方法與變數共享問題變數
- 熟悉的< script >標籤
- 淺談script標籤
- React進階篇1React
- IE報錯SCRIPT5011:不能執行已釋放Script的程式碼
- java Script 的if判斷2Java
- [20181219]script使用小技巧.txt
- MySQL5.7: sql script demoMySql
- shell script的簡單使用
- vue3 script setup 定稿Vue
- 頁面中多個script塊之間的關係
- Script標籤的async和defer
- Flask系列教程(26)——Flask-ScriptFlask
- Script of Narrative Writing from different point of viewView
- Java Script網頁設計案例Java網頁
- [20180321]toad下execute as script的fetch
- gradle中的build script詳解GradleUI
- ps1 is not digitally signed. You cannot run this script解決方案Git
- 解釋nginx.conf.default 中關於fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;NginxAST
- 解決 "Script Error" 的另類思路Error
- PostgreSQL DBA(148) - pgAdmin(Show script for psql command)SQL
- script標籤中的async和defer
- FastCGI sent in stderr: "Primary script unknown" 報錯AST
- C#指令碼引擎CS-ScriptC#指令碼
- FindBugs Security JSP 無法識別 jsp 頁面<script>jstl</script>程式碼中的 xss 漏洞問題JS
- 說一說 HTML 中的 script 標籤HTML
- CocoaPods 支援 自定義指令碼(script_phase)指令碼