1 参数设置

在创建SQL数据集时可以对SQL语句的某些位置进行参数替换,用参数来代替SQL语句中的某些值。达到灵活创建SQL数据集的目的。
参数与项目存在绑定关系。参数可以在一个项目的数据集、图表、图册内使用。但如果切换到了其他的项目后参数需要重新添加与编辑。

1.1 参数添加

进入项目后可以在右上角位置找到参数设置按钮:
./img/389
点击后出现参数设置界面:
./img/389
点击参数添加后出现参数添加界面:
./img/390
点击下拉列表按钮可以进行参数类别选择,目前可以选择字符串、字段、整形、浮点型、日期类型5种不同类别。其中字符串与字段类别区别将在后面进行说明。
参数标签用于界面显示,可以用于提示用户该参数的名称,可包含汉字。
参数标识为参数的唯一标识,用于编辑SQL语句时进行占位替换。由于SQL语句含有特殊的语法解析规则,参数名称不能包含汉字与特殊字符。
是否必填选框控制该参数是否需要有默认值,并在默认值为空并保存时给予用户提示。
是否可见选框控制该参数能否在播放页面上方显示该参数的播放控件。
在创建参数时可以输入默认值,该默认值在添加了该参数后默认生效。

1.2 参数在SQL数据集内使用

在进入SQL数据集设置界面后可以在左侧看到该项目下已经添加的参数列表:
./img/394
在SQL输入界面输入相应的SQL语句后拖动该参数到SQL语句的位置上,该参数即可添加成功。也可以通过${参数标识}的方式来添加。
./img/395
在添加该参数后,如果该参数设置了默认值,参数会被该参数添加的默认值替换。如果没有默认值并且则SQL句完整情况下对参数位置进行恒等替换,该参数不生效。

1.3 参数在图表内使用

在选择了数据集后,如果该数据集包含了参数并且参数含有默认值,则参数最后添加的默认值生效,进行SQL语句替换生成SQL数据集。
在下方有参数选框,可以拖动需要的参数到图表上方的区域,进行参数选定。在设定好相应的参数内容后点击确定,参数即可生效。
./img/396
./img/397
为保证参数的独立性,避免修改参数时造成其他图表的改变,图表的参数在首次添加时与该项目下的参数含有继承关系,但添加后该参数与此图表绑定,与该项目的参数没有关联关系, 修改图表内的参数时,其他使用了该参数的图表、图册的参数设置并不会随之改变。再次点选上方参数可以打开参数的修改界面。

1.4 参数在图表播放时使用

在播放含有参数并且参数可见的图表时可以在播放页进行参数修改,但是播放时的对参数的修改并不会保存,在关闭播放页时,参数仍与图表编辑页面的参数设置相同。

1.5 参数在图图册内使用

与参数在图表页的使用相同,参数需要在左下方进行拖动选择,但与图表不同的是该参数会作用于所有图表,并且值会覆盖所有图表的对应参数。 ./img/398 参数在拖到上方控件上后,也可以拖到图册的自由块中,以一个参数控件形式存在。 ./img/399

1.6 参数在图册播放时使用

与图表播放时参数的使用方法相同,图册页会显示图册页添加并且可见的参数。修改参数值会作用于所有图表。

1.7 参数在图册播放时使用

在项目下添加了参数后,可以在图册图表内进行参数拖动使用。拖动后的参数设置界面多了许多新的功能。 ./img/397
自动刷新数据选框控制该参数在更改时是否直接进行图表数据刷新,如果关闭该选框则需要点击上方的确认后才进行图表刷新。 设置控件宽度选框当开始时可以进行控件宽度设置。 地址传参可以将当前参数的JSON格式信息做显示,方便进行复制与URL传参。 控件样式设置可以对控件的样式进行修改,以一个JS对象形式进行保存,播放时生效。

1.7.1 在图册或图表内进行字符串与字段型参数修改

参数类型为字符串或字段类型时,可以修改与设置参数在播放时的控件样式。有三种不同的控件类型分别为输入框,单选框与多选框。 ./img/397
其中单选框与多选框需要在详细设置下进行选框内容绑定。目前共有数据集、自定义数据、系统变量三种内容绑定方式。其中自定义数据可以输入不同的选框内容,以逗号作为两个不同取值的间隔。 ./img/400

1.7.2 在图册或图表内进行整形与浮点型参数修改

整形与浮点型的参数控件类型默认带一个滑动条,可以在详细设置里修改滑动条的属性,或取消隐藏滑动条。
./img/401

1.7.2 在图册或图表内进行日期参数修改

日期类型可以在设置界面修改不同的控件类型,包括日期与时间,单独时间,单独日期三种不同的控件类型。
./img/402

1.8 Url传参

除了手动拖动参数进行参数添加外,还可以通过Url的方式来进行参数添加。添加的方式为在Url(如果Url包含“#”则在“#”之前)添加"&paramList=[]"。

单个参数的JSON模板为:

{
"paramName": "Name",
"paramType": "STRING",
"defaultValueList": ["1"],
"viewable": false,
"required": false
}

分别对应参数标识名,参数类型:

  "STRING" //字符串, 
   "FIELD" //字段,  
   "INT" //整形,   
   "FLOAT" //浮点型,
   "DATE" //日期类型

参数默认值(“可为多个,格式与JSON数组格式相同”),是否可见,是否必填。

多个参数见用“,”相隔填入&paramList=[]的“[]”内部。除此之外由于要放在Url上需要对传参内容进行UrlEncode编码。
完成未编码前参数示例为:

&paramList=[{
  "paramName": "param1",
  "paramType": "STRING",
  "defaultValueList": ["1"],
  "viewable": true,
  "required": false},
  {
  "paramName": "param2",
  "paramType": "FIELD",
  "defaultValueList": ["2"],
  "viewable": true,
  "required": false}]

1.9 不同参数类别的优先级

Url参数优先级>图册参数优先级>图表优先级,高优先级会覆盖低优先级的参数。

1.10 SQL语句的替换规则及不同类型参数的区别

其他参数类别较好理解,字符型与字段型的区别为,字符型在替换时会在前后添加引号作为字符型标识,字段型则不会。

举例说明,同样的参数值为value,字符型会替换成“value”,字段型只会替换成value,不添加其他的内容。

参数对于较为容易进行语法分割并进行恒等替换的SQL语句运行时,即使参数指定值,也可以成功查询。

比如select from db where id = ${param} 当不指定参数值时,会被替换为select from db。where选择不生效。

而当语句为select from db where id in (${param}) 时语法分割会出现问题,无法进行恒等替换,此时需要手动对需要用{}对恒 等替换的位置进行指定 SQL为 select from db where {#id in ($param)#} 此时可顺利查询。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""