SSL语言学习笔记

/数据类型***/
/* Number(数值型),Boolean(布尔型),String(字符型),Date(日期型),Array(数组)
/* 注: 1, 数值型包括整型和浮点型
/* 2, 布尔型包括,T.和.F.
/* 3. 数组有一维数组和多位数组,数组里可以存在不同的数据类型
/* 不解:Empty()只返回True或False,不知道为什么手册上将Empty()归类于数据类型;

/常用函数***/
/* LimsTypeEx(v) --> 获取变量类型 v:一个值
/* Len(v) --> 获取数组或者字符串的长度 v:一个值
/* Empty(v) --> 判断v是否为空(NIL),返回true或false, v:一个值(可以不传入参数,Empty()返回true)
/* DoProc(procName,argsArray) --> 调用存储过程,procName:存储过程的名称,字符串 argsArray:传入存储过程的参数,数组
/* Today() --> 返回当天的时间,格式为:2015-10-17 0:00:00;
/* usrmes(v1,v2) --> 用于日志调试,在JScript中调用此脚本文件的时候会在Server Log中显示相关调试信息,v1:一个固定值,v2:用于被比较的值
/* Chr(13) --> 表示回车换行符;
/* Chr(39) --> 表示单引号;
/* Chr(59) --> 表示分号;
/* LimsString(v) --> 将其他类型转化为字符串,v:被转化为字符串的值;
/* ExecFunction(funcName,avgsArray) --> 执行一个函数,funcName:被执行的函数名,字符串,avgsArray:参数数组
/* BuildString(array) --> 将一个数组里的内容转化为字符串,与LimsString函数的区别:
LimsString将其他类型转化为字符串类型,内容不变,BuildString将数组的内容转化为字符串,
例如,LimsString({1,2,3})返回字符串类型的{1,2,3},而BuildString({1,2,3})返回字符串类型的1,2,3
/* SqlExecute(sqlStr) --> 执行一条SQL语句,sqlStr:SQL语句,字符串。返回值:如果是select语句,返回一个二维表,否则返回true或false
/* ExtractCol(arData,colNum) --> 提取一个结果集第colNum列所有数据的数组,arData:结果集,col:列数(从1开始)
/* GetRegion(regionName) --> 获取名为regionName的REGION内的代码,返回字符串类型
/* ExecUDF(script,avgsArray) --> 动态执行脚本script,avgsArray是参数列表,如果不需要传入参数,则avgsArray可以省略

/* :DECLARE关键字与:RETURN关键字;

/* 不解:手册上说VarType(a)会返回INT32,然而却报错了: Invalid built-in function: VarType ;

/* :DECLARE a;
/* a := 2;
/* :RETURN LimsTypeEx(a); /* NUMERIC
/* :RETURN VarType(a);

/* :PROCEDURE关键字, ENDPROC关键字, :IF关键字 , :ENDIF关键字, :WHILE关键字, :ENDWHILE关键字
/* Len() --> 获取数组或者字符串的长度
/* DoProc() --> 调用存储过程;

/* :RETURN DoProc(“CompareArrays”,{{1,2,3,4},{1,2,3,4}});
/* :RETURN DoProc(“StringsAreDifferent”,{“abbc”,“abbc”});
/* :PROCEDURE StringsAreDifferent;
/* :PARAMETERS s1,s2;
/* :IF s1 <> s2;
/* :RETURN “Strings are not equal”;
/* :ENDIF;
/* :RETURN “Strings are equal”;
/* :ENDPROC;
/* :PROCEDURE CompareArrays;
/* :PARAMETERS arr1,arr2;
/* :DECLARE len1,len2;
/* :DECLARE i;
/* len1 := Len(arr1);
/* len2 := Len(arr2);
/* :IF len1 <> len2;
/* :RETURN .F.;
/* :ENDIF;
/* i := 0;
/* :WHILE(i += 1) <= len1;
/* :IF arr1[i] != arr2[i];
/* :RETURN .F.;
/* :ENDIF;
/* :ENDWHILE;
/* :RETURN .T.;
/* :ENDPROC;

/* String字符串加减操作
/* +运算符代表字符串拼接;
/* -代表将第一个字符串内后面的空格去掉之后再和第二个字符串拼接;
/* 可以使用[]返回指定字符串下标的字符,从1开始,如"abc"[1]返回"a";
/* :DECLARE s;
/* s := “ab”;
/* s := s + "c ";
/* s := s - “d”;
/* :RETURN “|” + s + “|”; /* |abcd|;

/* :DECLARE d;
/* d := Today();
/* d := d + 10;
/* d := d - 3;
/* :RETURN d; /* 2015-10-17 0:00:00 ;

/* usrmes(“TestNumericOperators”, DoProc(“TestNumericOperators”) );
/* usrmes(“TestStringOperators”, DoProc(“TestStringOperators”) );
/* usrmes(“TestDateOperators”, DoProc(“TestDateOperators”) );
/* :PROCEDURE TestNumericOperators;
/* :DECLARE n;
/* n := 2;
/* n += 3;
/* n ^= 2;
/* n = 3;
/
n /= 5;
/* n %= 4;
/* n -= 1;
/* :RETURN n;
/* :ENDPROC;
/* :PROCEDURE TestStringOperators;
/* :DECLARE s;
/* :DECLARE dummy;
/* s := “ab”;
/* /* This will not work;
/* /s += “c”;
/
/* This will work;
/* dummy := s += "c ";
/* dummy := s -= “d”;
/* :RETURN s;
/* :ENDPROC;
/* :PROCEDURE TestDateOperators;
/* :DECLARE d;
/* d := Today();
/* d += 3;
/* d -= 1;
/* :RETURN d;
/* :ENDPROC;

/* IIf(condition,result1,result2)相当于一个三目运算符,
/* 如果condition为真,返回result1的值,如果为假,返回result2的值;

/* :DECLARE a, b;
/* :DECLARE s1, s2;
/* a := 2;
/* b := 3;
/* /* Implemented in classic way ;
/* :IF a < b;
/* s1 := “a is less than b”;
/* :ELSE;
/* s1 := “a is greater than b”;
/* :ENDIF;
/* /* Implemented using IIf operator;
/* s2 := IIf(a < b, “a is less than b”, “a is greater than b”);
/* :RETURN s1 + Chr(13) + s2;

/相当于switch分支语句;
/
:DECLARE a;
/* :DECLARE b;
/* a := 10;
/* b := 0;
/* :BEGINCASE;
/* :CASE a > 3;
/* b := 4;
/* :EXITCASE;
/* :CASE a > 7;
/* b := 7;
/* :EXITCASE;
/* :CASE a < 0;
/* b := -1;
/* :EXITCASE;
/* :OTHERWISE;
/* b := -2;
/* :EXITCASE;
/* :ENDCASE;
/* :RETURN b;

/:LOOP相当于java中的continue,表示跳过本次循环,;
/
:DECLARE ar, s;
/:DECLARE i, n;
/s := “”;
/ar := {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
/n := Len(ar);
/i := 0;
/
:WHILE (i += 1) < n;
/
:IF i == 5;
/
:LOOP;
/
:ENDIF;
/
/* :IF i == 6;
// :EXITLOOP;
// :ENDIF;
/* s := s + “i=” + LimsString(i) + Chr(13);
/:ENDWHILE;
/
:RETURN s;

/:DECLARE strSql;
/
:DECLARE arData;
/*strSql := “SELECT * FROM CAOBT_USERS”;
/*arData := SqlExecute(strSql);
/arData := ExtractCol(arData, 1);
/
:RETURN arData;

/* :REGION/:ENDREGION 代码块;

/* :DECLARE a, b;
/* :DECLARE s;
/* a := “2”;
/* b := “3”;
/* /s := GetRegion(“ClientScriptTemplate”, {“ a " , " a", " a","b”}, {a, b} );
/
s := s + Chr(13) + GetRegion(“SimpleClientScript”);
/* :RETURN s;
/* :REGION ClientScriptTemplate;
/* var par1 = $a;
/* var par2 = $b;
/* var ret = form.ShowModalDialog( formAddress, [par1, par2] );
/* :ENDREGION;
/* :REGION SimpleClientScript;
/* var a = ret[0];
/* var b = ret[1];
/* lims.CallServer(“Math.Add”, [a, b]);
/* :ENDREGION;

/* Chr(59)是分号;

/*:DECLARE script;
/*script := “”;
/*script := script + “:PARAMETERS x, y” + Chr(59) + Chr(13);
/script := script + “:RETURN x + y” + Chr(59) + Chr(13);
/
:DECLARE sum;
/sum := ExecUDF(script, {2, 3});
/
:RETURN sum;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值