起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 328|回复: 14

功能速度优化**

[复制链接]
发表于 2008-8-21 16:32:37 | 显示全部楼层 |阅读模式
流程A,B是流程发起环节,打开功能B的速度很慢,查看MonitorLog.sqb日志,发现select从数据库取数这步耗时,InfoBroker的“自动打开信息”钩去掉了的,代码中也没有主动去打开数据集,这个是不是跟流程有关?发起一个流程的时候,数据集会自动打开?
回复

使用道具 举报

发表于 2008-8-21 16:50:38 | 显示全部楼层
能自动打开数据据的地方很多,最好一层一层去检查.

由业务信息控制:
使用业务信息(Info)中的自动打开数据集(DataSetPolicies)属性来设置当业务信息打开时,业务信息中的哪些业务数据集也要随之打开。

由文档控制:
设置文档(例如:表单文档、表格文档等)的自动打开数据集(AutoOpenDataSet)属性
True(默认值),当文档打开时就会自动的打开文档所用到的所有数据集
False,当文档打开时则不去打开自己用到的数据集

由信息策略控制:
使用信息策略(InfoPolicy)中的数据集策略(DataSets)属性来设置目标信息中的各数据集是否自动打开(AutoOpen)。如果是自动打开,则会在信息打开时打开数据集。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-21 17:02:10 | 显示全部楼层
功能B 的show事件中要判断这个数据集的记录数,文档的自动打开数据集去掉后,执行到判断记录数时就会报错,不能对关闭的数据集进行操作,还是要主动去打开数据集,有啥办法可以优化呢?
回复 支持 反对

使用道具 举报

发表于 2008-8-21 17:31:52 | 显示全部楼层
要判断这个数据集的记录数
文档的自动打开关闭时
可以用一个TQuery直接去查询记录数如:  select Count(*) from table
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-22 08:17:39 | 显示全部楼层
流程的处理模式为“所有”,发起一个流程时,只是对table中的一条记录进行编辑。show事件中的判断记录数,判断当前流程中的记录数是否为1,如果是1的话,就根据流程字段到table中找到相应的记录(用户发起一个流程,保存但未流转),不为1的话就新增。用select Count(*) from table不得,有什么办法能够判断当前流程的记录数?
回复 支持 反对

使用道具 举报

发表于 2008-8-22 08:32:04 | 显示全部楼层
看来楼主的描述有点晕

既然定义流程处理模式为所有,那么就是在流程的入口功能显示业务数据的所有记录。出于啥原因又要判断当前流程中的记录数是否为1呢?且不为1的话就新增,这样的情况只要一个,就是本身业务数据集就一条记录,记录为空,或者记录个数大于1都需要新增。

说说你的原始需求吧?主要怕楼主走偏了,本来很简单就能实现的,最后绕了一大圈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-22 08:51:23 | 显示全部楼层
我表达能力有问题,我想想该怎么来说这个事
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-22 09:16:05 | 显示全部楼层
判断记录数是否为1,是为了解决用户发起一个流程,选择表中的一条数据进行编辑,保存但未流转,还在待办任务上,再次打开该任务时显示相应数据。记录数为1,就根据流程字段取相应的数据。
回复 支持 反对

使用道具 举报

发表于 2008-8-22 09:25:45 | 显示全部楼层
我这样说,你看是否对,
用户进入入口功能,入口数据后,仅仅做了保存但没有流转,那么会在代办任务出现一条任务,当打开代办任务后,弹出相应的业务数据。如果抛开这个,是否用户打开入口功能,记录数是0,要求用户录入需要处理的数据呢?如果是我说的 那么不需要这样做

1、设置流程处理模式为新建或者新建并自动填充,(自动填充意味着流程字段是一个GUID值,如果是需要根据根据业务规则填充的的,那么选择新建)
2、流程的启动模式为 处理时

其他的,例如判断打开数据集是否记录为1、如果为1就读取,不为1就新建这些代码控制的代码都屏蔽掉,你按照我说的做做看,如果实现后,某些地方没有达到你的需求,你就点并截取运行界面图上来,我们再沟通
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-22 15:43:38 | 显示全部楼层
入口数据是选择已有数据的表A中的一条记录进行补充完整,我想知道流程处理模式“新建”“所有”的区别,新建是往数据表A中插入一条新的数据,还是说往任务表中插入一条新的记录而不是在A中插入一条数据?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-21 03:33 , Processed in 0.044169 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表