数据源定义
- 查询定义
预处理查询<PRESQL>
{#addon and/where #} 如果这里指定此内容标识 addon参数和colfilter 都应用在此处。 而不是加载最后的sql中
</PRESQL>
查询语句<SQL></SQL>
<POSTSQL> 固定的sql语句用于清除环境
drop temporary table if exists tmp_result;
</POSTSQL>
可以是任意SQL语句系统除了将其中的参数替换外,不进行任何语法检查,直接交给数据库系统执行。
- 子数据集
<SUBDS ERI="..EDITDSSUB" CODE="CM" NAME="生产指令报表" TYPE="RELATIVE" ALIAS="DEFAULT">
<RETRIEVEPARAM CODE="scznid" VALUE="scznid"/>
参数定义:code 子数据集的参数名称,
value 用来在主数据集中计算参数的表达式用查询结果的第一行计算。若主数据集没有结果,则也同样查询,不设置数据行进行查询
</SUBDS>
- 查询前后的脚本
<DSSCRIPT>
<BEF>
通过主题域domain获得参数值,可以转化为正确类型 param 类型为ObjAlias
var list = new List();
list.add(domain.getParamValue(param,'begintime') ); //获得参数值,domain.getParamValue(..) 可以吧‘今日' 转化为 具体的日期(根据参数定义的数据类型转化)
list.add(domain.getParamValue(param,'endtime'));
request.db().exeUpdate(" set @qc =?; set @qm = ? ",list);
script.returnValue = 1;
var lstore = result;
var lr = lstore.addRow();
lstore.fv(0,'ename',"脚本文件");
</BEF>
<AFT>
script.returnValue = 1;
var lstore = result;
var lr = lstore.addRow();
lstore.fv(0,'ename',"脚本文件");
</AFT>
</DSSCRIPT>
- 通过脚本生成结果数据
通过脚本生成可以用于访问外部接口,生成结果数据 以数据集的形式提供给系统参与等主题与使用。
脚本中的参数变量 :
param : ObjAlias 查询提供的参数的对象
result : ObjDatastore 用于返回结果。
<ATTRIBUTE TYPE="DS" PROGID="PPDomainDataSetSvr" >
<RETRIEVE TYPE="BASE">
<SCRIPT>
script.returnValue = 1;
var lstore = result;
var lr = lstore.addRow();
lstore.fv(0,'ename',"脚本文件");
</SCRIPT>
<PRESQL>
</PRESQL>
... ...
- 对象存储定义
<OBJSTORE TYPE="1" COL="objid" VALIDTIME="" THUMBNAIL='false'/>
TYPE DATA属性中的类型
ERI’如果数据集查询的对象存储不属于本实体需要指定对应的实体和DATA属性的地址,本实体不需要指定
COL 列名称
THUMBNAIL 默认为"FALSE" 需要缩略图的还是普通的图形
VALIDTIME 有效时间,单位分钟,0或未指定默认为 8小时
- 从文件中添加字段内容
* <OBJBLOB PATHEXP="'c:\srp\'+ecode+'.'+jpg" FIELD="字段内容base64" KEYFIELD='文件名称'/>
将文件内容读取出来放在字段中,进行base64编码,
KEYFIELD 保存文件名
FIELD 保存内容base64字符串
PATHEXP 通过记录计算文件的路径
- 更新表和主键定义
<UPDATE TABLE="t_xsdd" />
编辑数据后保存到的表,数据集在编辑中使用时,一个数据集只能更新一个表
TABLE :被更新的表
<IDCOLS> xsdid</IDCOLS>
数据集记录的ID,一般是主表的id
- 列定义
<COLUMNS>
数据集查询后的列定义
<COL DBNAME="t_xsdd.xsdid" DATATYPE="3" ALIGNMENT="1" EXPRESSION="" SIZE="0" PRECISION="0" CODE="xsdid" NAME="xsdid" FORMAT="" MASK="" DEFAULTVALUE="" INWHERE=’FALSE’ FORMAT=’###.##’/>
DBNAME: 列对应的数据库表和列名称
DATATYPE: 数据类型,3为整数 1为字符串 11为日期,18为decimal
ALIGNMENT:字段中数据显示的对齐方式。0左对齐,1为右对齐,2居中
SIZE :小数位数
PRECISION : 字段的长度
CODE: 列的名称,是SQL中 AS之后或者= 之前的列名称
NAME:列的汉字名称
FORMAT: 数据显示格式
MASK : 数据格式
DEFAULTVALUE: 数据的默认值,在新建记录的时候自动填充这个值。 如果设定为@ 表示在录入的时候去上一次录入的值。
FORMAT: 对数值有效: ##,###.00 保留两位小数,不足两位补 0
##,###.## 保留两位小数,不足两位不补零
</COLUMNS>
- 参数定义
<PARAMS>定义的内容</PARAMS>
<CONCOLS>ecode~createby </CONCOLS>
可以作为查询条件的列,在查询数据集中,只有出现在其中的列才是可以作为查询条件的,一般ID号等不作为查询条件。
<PARAM TYPE="INSQL" CODE="xsdid" REQUIRED="TRUE" NAME="实体主键参数" DATATYPE="3" />
参数定义。
TYPE: 有三种类型 INSQL,ADDON和OPTION ,INSQL 是直接写在sql中的参数, 必须定义参数的数据类型,要使用数据集,INSQL的参数是必须提供的;ADDON 是有系统将参数定义中的条件加到SQL标签中的WHERE 后面的条件,ADDON类型的参数在查询数据集由REQUIRED 属性定义是否必须提供;OPTION 是最灵活的参数,可以放在SQL中的任何位置, 其他方面同ADDON类型参数.
CODE ; 参数的名字
REQUIRED :查询数据集的时候是否必须提供此参数。如果为TRUE必须提供参数才能查询数据集。
NAME : 参数的名字,用于显示查询条件的时候,作为输入参数的标签。
DATATYPE:参数的数据类型,取值同列。
举例:
<PARAM CODE="ecode" TYPE="ADDON" REQUIRED="FALSE" NAME="" DATATYPE="1" >
ADDON类型参数定义
AND ( t_cpcz.ecode = :ecode )
如果提供参数,系统将用参数替换此处表达式,然后再将替换后的结果放在SQL查询的Where后面。
</PARAM>
<PARAM TYPE="OPTION" CODE="_YWY" REQUIRED="FASLE" NAME="业务员" DATATYPE="3">
OPTION 类型参数定义
and s_employee.ecode in (:_YWY)
如果提供参数,系统将用参数替换此处表达式,然后再将替换后的结果替换SQL查询中对应的参数。
</PARAM>
- Groupby定义
用于多维查询,当用户减少列的显示时,sql group by 随之变化,减少统计列
<GROUPBY>c_zcdn_ecode~zczt~c_cfdd_ecode~ ... .... </GROUPBY>
Created with the Personal Edition of HelpNDoc: News and information about help authoring tools and software