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:如何在Scri
QlikView Script 基础教程3 -组合键处理
QlikView装载数据时,如果有两个或以上表中存在两个或以上相同的字段时就会自动产生组合键。组合键实际上是产生了表间的多对多关系,这种关系逻辑上可能是对的。组合键会引起QlikView性能隐患,存储所有出现的组合值,在数据量很大时会消耗太多的内存。组合键越多Qlikview的运行性能下降越厉害,百万级数据量情况下如果4-5个组合键,系统可能运行都成问题。如何处理出现的组合键呢?Case1:源数据表中组合的字段并不具有逻辑的组合含义,采用重命名方式解决[@more@]例如:订单:Load 订单号,订单日期,订单金额,操作员,操作时间From Db.Sale
QlikView Script 基础教程2- MapSubString()使用
MapSubString() 是很实用的字符串处理函数,可以替代Replace()和PurgeChar()函数。例子:ReplaceMap:MAPPING LOAD * INLINE [ char replaceChar) (" , / - ] (delimiter is ' '); 结果为:LOAD*,MapSubString('ReplaceMap', Orgdata) as ReplacedString;LOAD * INLINE [Orgdata(123)456-7890(111)456,7890"222"456-7890/333/456/7890] (delimiter is ' ');[@more@]MapSubString() 是很实用的字符串处理函数,可以替代Replace()和PurgeChar()函数。例子:ReplaceMap:MAPPING LOAD * INLINE [ char replaceChar) ( " ,
QlikView Script 基础教程1 - 注释
在编写脚本时,使用注释是实用的做法。增加注释可以加强脚本的可读性、可维护性。1、在Main Tab页建议增加注释,用来描述内容:/*************************************模块创建者:创建时间:模块用途:修改记录:*************************************/ 2、在每个数据来源中描述数据来源的位置和配置和目的如://ODBC TestPlanDB 获取测试数据库的数据表 ODBC CONNECT TO [TestPlanDB;DBQ=Test ] (XUserId is XXXX, XPassword is XXXX);3、对每个数据表,加入备注来描述表的用途//****************************Products Table//*******