E8-整理一些关于表单的表

起因

今天想给一个工作流对应的表写个触发器,本想抄以前写过的,但发现我想不起来之前是为哪个工作流做过类似的开发。看来有必要把哪些表,对应的哪个流程,做过哪些开发这些内容记录下来。

经过

那么,首先想办法把表单管理里的现有的表单都导出来。

简单说一下过程,开着SQL Server Profiler跟踪数据库操作的同时,访问表单管理,找到了视图view_workflowForm_selectAll。

CREATE VIEW [dbo].[view_workflowForm_selectAll] AS 

select id,formname,formdesc,subcompanyid,0 as isoldornew 
from workflow_formbase 
union all 
select t1.id,indexdesc,formdes,subcompanyid,1 as isoldornew 
from workflow_bill t1,HtmlLabelIndex t2 
where t1.namelabel=t2.id

view_workflowForm_selectAll视图主要有两部份组成,第一部份是表workflow_formbase(工作流表单信息表),第二部份是表workflow_bill(工作流单据信息表)。

workflow_formbase,这里定义的表单,是不允许自行添加字段的自定义表单。

workflow_bill,这里定义的表单,包括自行创建对应以formtable_main开头的表,可以自行维护字段的表单。

在这视图里还用到了一张表,HtmlLabelIndex,它的结构非常简单,就两个字段,id 和 indexdesc,根据视图的代码可以分析出来,表单的名称,和对应表单的id,是存在这张表里的。查询了一下这张表,发现除了表单的名字存在这里之外,还有很多其它的信息,这里不做分析。勾起我一个好奇心。查了一下同一个id是否会对应不同的indexdesc。我们这系统里居然还真有这种情况。不知道是用在哪里的。

至于系统表单和自定义表单是怎么区分的,SQL Server Profiler里,关于自定义表单的查询语句,跟踪到了这么一条,它的作用是求当自定义表单的数量:

select count(id) from  view_workflowForm_selectAll   where (isoldornew = 0 or id <0)  and id not in (select distinct(formid) from ModeFormExtend where isvirtualform=1) 

结合视图的代码,把这语句分析一下,首先,要满足这么个条件,id不在ModeFormExtend(虚拟表单信息表)里被定义成isvirtualform=1(是否虚拟表单:1为虚拟表单、0为实际表单)的表单;然后如果是定义在workflow_formbase里的,isoldornew = 0的,认为是自定义表单,如果定义在workflow_bill里的,id < 0的。被认为是自定义表单。

结合自己的需求,写了以下的语句,输出现有的表单名称和对应的表。至于关联的哪个流程,暂时先不研究。

select    t1.tablename,t2.indexdesc,t1.id
from    workflow_bill t1,HtmlLabelIndex t2 
where    t1.namelabel=t2.id    and
        t1.tablename like 'formtable_%'
order    by    tablename

结果

把执行结果复制到电子表格里,再找哪个表里写了存储过程。完善到电子表格里,以备以后查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rarenmen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值