|
本帖最后由 zorsite 于 2016-4-12 15:40 编辑
以一个非常简单的模型为例。
现在要把临时实体的生成时间、离开暂存区的时间写入全局表。
首先创建一个名为“测试全局表”的全局表。
重置触发代码:- /**重置全局表*/
- treenode current = ownerobject(c);
- settablesize("测试全局表",1,1);
- clearglobaltable(1);
- settableheader("测试全局表",1,1,"");
- settableheader("测试全局表",2,1,"");
复制代码 离开触发代码:- /**将离开时间写入全局表*/
- treenode item = param(1);
- treenode current = ownerobject(c);
- int port = param(2);
- /*
- 假设要把临时实体生成时间、离开暂存区的时间写入全局表,同时给出备注。
- */
- var table = "测试全局表";
- int columns = 3;//要写入3列数据
- intarray array = makearray(columns);
- fillarray(array,1,1,2);//定义全局表每列的数据类型。1是数值型,2是文本型。
- stringarray arraystr=makearray(columns);
- fillarray(arraystr,"生成时间","离开时间","备注");//定义列标题。
- if (getoutput(current) == 0)
- //如果是第一个临时实体
- //请注意,这里的判断根据自己的需要来设定,目的是为了判断是否是第一次向全局表中写入数据
- {
- settablesize(table,1,columns);//在第一次写入之前会制定全局表的列数,这里是1行3列
- for (int index=1; index<=columns; index++)
- {
- nodeadddata(gettablecell(table,1,index),array[index]);//设置列数据类型
- settableheader("测试全局表",2,index,arraystr[index]);//设置列标题
- }
- } else settablesize(table,gettablerows(table)+1,columns);//如果不是第一次写入全局表,新增一行
- double rows = gettablerows(table);//获取行数
- settableheader("测试全局表",1,rows,concat("第",numtostring(getoutput(current)+1),"个"));
- //设置行标题
- int i = 1;
- settablenum(table, rows, i, getcreationtime(item)); i++;//写入数据
- settablenum(table, rows, i, time()); i++;
- settablestr(table, rows, i, concat("备注",numtostring(duniform(1,100)))); i++;
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|