FlexQue主页地址:http://blog.youkuaiyun.com/flexitime/archive/2008/02/25/2118623.aspx
终于写好了FlexQue,现在增加了Executor模式,这个模式可以支持执行一些脚本,同时再显示数据,这些用于执行的脚本可以是Delete, Update等语句,也可以是StoreProcedure,另外还可以是Insert语句,这样有助于从一个数据库中交换到另一个数据库中,基本上可以满足报表的生成及显示,这样比起之前单一使用Select要功能强得多。
唯一有小小遗憾的是,这些窗单的设置没有使用XML格式,这是由于当时太懒,懒得学XML(其实XML我是懂一点点的,之前也有个程序用XML来做设定),而且觉得XML对于这个应用来说的话有点大材小用,所以就不用了。最后列一下Executor的设置帮助:
@#MARK_BEGIN#@ ========================================================
当FormType为Executor时
存在两种Control段,以ScriptType来分类,分别是
Executor
执行段。
脚本有Insert、Insert_s、Command、NotRun四种模式,通过ActionType的值进行分类。
全文脚本中可以有多个Executor段,以StepIndex来区分执行顺序
Display
显示段。
用于显示执行后的结果
@#MARK_END#@ ==========================================================
@#MARK#@ ===========================================================
@#MARK#@ ===== Executor 段(Command模式) =============================
@#CONTROL_BEGIN#@
@#MARK#@ == Executor段的声明
@#SECTION#@ ScriptType
@#BEGIN#@
Executor
@#END#@
@#MARK#@ == 采用Command的模式
@#SECTION#@ ActionType
@#BEGIN#@
Command
@#END#@
@#MARK#@ == 指定数据库连接串
@#SECTION#@ ConnectName
@#BEGIN#@
flextest
@#END#@
@#MARK#@ == 执行的顺序,注:可不按完整的数字顺序,程序只比较该段的字符串值来决定执行顺序
@#SECTION#@ StepIndex
@#BEGIN#@
1
@#END#@
@#MARK#@ == 执行时显示的提示文字说明
@#SECTION#@ Caption
@#BEGIN#@
更新 Amount/Year....
@#END#@
@#MARK#@ == 此Command模式下所占用的步长值(整数值),用于显示。Command模式专用,
@#MARK#@ == 省缺为1
@#SECTION#@ StepCount
@#BEGIN#@
2
@#END#@
@#MARK#@ == 用于执行的SQL语句,各语句间使用‘;’号作分隔,如果语句中要用分号,
@#MARK#@ == 需要表示成‘/;’的形式。注意:这些语句都不能有返回值,即便有返回值,
@#MARK#@ == 程序也不作处理,一般可用于update, delete , create table等
@#SECTION#@ SQL
@#BEGIN#@
update Pivot set amount = amount + 1;
update pivot set year = year - 1;
update pivot set kf = 'Ctrl1.Value';
@#END#@
@#CONTROL_END#@
@#MARK#@ ==========================================================
@#MARK#@ ===== Executor 段(Insert模式) ============================
@#CONTROL_BEGIN#@
@#MARK#@ == Executor段的声明
@#SECTION#@ ScriptType
@#BEGIN#@
Executor
@#END#@
@#MARK#@ == 采用Insert的模式
@#SECTION#@ ActionType
@#BEGIN#@
Insert
@#END#@
@#MARK#@ == 指定数据库连接串
@#SECTION#@ ConnectName
@#BEGIN#@
flextest
@#END#@
@#MARK#@ == 执行的顺序,注:可不按完整的数字顺序,程序只比较该段的字符串值来决定执行顺序
@#MARK#@ == 另此执行顺序的编号将与Loader段相关
@#SECTION#@ StepIndex
@#BEGIN#@
2
@#END#@
@#MARK#@ == 执行时显示的提示文字说明
@#SECTION#@ Caption
@#BEGIN#@
插入 prntest....
@#END#@
@#MARK#@ == 用于插入的SQL语句
@#SECTION#@ SQL
@#BEGIN#@
insert prntest(prn , bname , cydate, days) values (:1, :2, :3, :4)
@#END#@
@#MARK#@ == 用于读取的SQL语句,注意:返回的字段数必须与插入语句的参数值对应。
@#SECTION#@ Load_SQL
@#BEGIN#@
select prn, name, cydate, days from ba2
where cydate >= '@#CTRL1.Begin.YYYY/MM/DD#@'
and cydate < '@#CTRL1.AfterEnd.YYYY/MM/DD#@'
@#END#@
@#MARK#@ == 用于读取的数据库连接串
@#SECTION#@ Load_ConnectName
@#BEGIN#@
flextest_otherdb
@#END#@
@#CONTROL_END#@
@#MARK#@ ==========================================================
@#MARK#@ ===== Executor 段(Insert_S模式)(分日期片插入,作用与Insert一样,
@#MARK#@ ===== 但将会自动将日期段值分拆成逐天执行,主要用于大规模的数据交换。)
@#CONTROL_BEGIN#@
@#MARK#@ == Executor段的声明
@#SECTION#@ ScriptType
@#BEGIN#@
Executor
@#END#@
@#MARK#@ == 采用Insert的模式
@#SECTION#@ ActionType
@#BEGIN#@
Insert_S
@#END#@
@#MARK#@ == 指定数据库连接串
@#SECTION#@ ConnectName
@#BEGIN#@
flextest
@#END#@
@#MARK#@ == 执行的顺序,注:可不按完整的数字顺序,程序只比较该段的字符串值来决定执行顺序
@#MARK#@ == 另此执行顺序的编号将与Loader段相关
@#SECTION#@ StepIndex
@#BEGIN#@
3
@#END#@
@#MARK#@ == 执行时显示的提示文字说明
@#SECTION#@ Caption
@#BEGIN#@
插入 prntest....
@#END#@
@#MARK#@ == 分片时关联的日期段控件的序号,可省略,默认值为1。注:Insert_S特有
@#SECTION#@ RelatedDateSegmentControl
@#BEGIN#@
2
@#END#@
@#MARK#@ == 用于插入的SQL语句
@#SECTION#@ SQL
@#BEGIN#@
insert prntest(prn , bname , cydate, days) values (:1, :2, :3, :4)
@#END#@
@#MARK#@ == 用于读取的SQL语句,注意:返回的字段数必须与插入语句的参数值对应。
@#SECTION#@ Load_SQL
@#BEGIN#@
select prn, name, cydate, days from ba2
where cydate >= '@#CTRL1.Begin.YYYY/MM/DD#@'
and cydate < '@#CTRL1.AfterEnd.YYYY/MM/DD#@'
@#END#@
@#MARK#@ == 用于读取的数据库连接串
@#SECTION#@ Load_ConnectName
@#BEGIN#@
flextest_otherdb
@#END#@
@#CONTROL_END#@
@#MARK#@ ==========================================================
@#MARK#@ ===== Executor 段(NotRun模式)(用于暂定某段使用)
@#CONTROL_BEGIN#@
@#MARK#@ == Executor段的声明
@#SECTION#@ ScriptType
@#BEGIN#@
Executor
@#END#@
@#MARK#@ == 采用Insert的模式
@#SECTION#@ ActionType
@#BEGIN#@
NotRun
@#END#@
…
…
…
@#CONTROL_END#@
@#MARK#@ ==========================================================
@#MARK#@ ===== Display 段,内容与Dyna或SampleEdit类似 ==========
@#CONTROL_BEGIN#@
@#SECTION#@ ScriptType
@#BEGIN#@
Display
@#END#@
@#SECTION#@ ConnectName
@#BEGIN#@
flextest
@#END#@
@#SECTION#@ QueryType
@#BEGIN#@
normal
@#END#@
@#SECTION#@ SQL
@#BEGIN#@
select * from Pivot
@#END#@
@#SECTION#@ FieldCaptions
@#BEGIN#@
客;年
@#END#@
@#SECTION#@ FieldWidths
@#BEGIN#@
@#END#@
@#CONTROL_END#@