起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 815|回复: 1

方法

[复制链接]
发表于 2004-8-4 14:01:23 | 显示全部楼层 |阅读模式
如果想不关闭功能,实现逐个流转,即第一次流转后,不关闭功能,再次点击“流转”按钮启动第二次流程。

与前面那个帖子写的步骤稍稍有些出入,步骤如下:

1、实现前面帖子的第一步

2、在入口功能中增加一个“业务信息策略”,取消“数据集”的“禁止流程过滤”选项

3、在入口功能中增加一个“业务语义策略”,并定义“业务数据范围”(参考前面帖子的第三步的第三点)

4、实现前面帖子的第二步,

5、在入口功能的流程代理(FlowBroker)的 BeforeFlowOut  事件中,实现不关闭入口功能等,参考代码如下:
  Command.FuncTerminate := False;
  if Command.FlowControl.FlowStartuped then
    Command.FlowControl.RegisterANewFlow;

6、实现前面帖子的第三步的前面两点。

报表问题.rar

822.33 KB, 下载次数: 108

回复

使用道具 举报

发表于 2004-10-10 10:09:57 | 显示全部楼层
还有一种方法:用功能A作为录入功能,写发起流程代码的功能,功能B是流程的入口功能,发起流程。
一、在功能A中启动流程入口功能B
procedure TMainForm111.BitBtn1Click(Sender: TObject);
var
  lFuncItem: TOperatorFuncItem;
begin
  lFuncItem := CommonComponentLibrary.TCommonComponentLibrary.UserSystem.FindFuncItem('Biz:\CSMX\FUNC\LCGN1.Func');
  if lFuncItem <> nil then
    Systemcore.TSystemCore.FuncManager.RunFunc(lFuncItem, '')
  else
    Dialogs.ShowMessage('找不到功能');
end;

引用业务模型\系统空间\用户界面基础\库\公共组件库、业务模型\系统空间\系统运行库\系统核心库

二、进行数据过滤。

1、如果功能A中的数据集,和功能B的数据集所连的数据表是一个,那么你应该是把功能B的数据集进行过滤,显示你的那条数据就可以了。

2、如果功能A中的数据集,和功能B的数据集所连的数据表不是一个,那么你应该在功能B的数据集中添加一条纪录,并且把相应的数据传给功能B,功能B的数据集进行相应的赋值。

第一种情况:
需要一下几步:
1、定义业务参数组1并且隔离级设置为全局,定义业务参数。
2、在数据集中添加数据条件,数据表1.字段1 = &[业务参数1]。
3、对业务参数进行赋值
var
  lParam: Business.Model.TBizParam;
begin
      lParam := JUSTEPCOMMONUNIT.TJUSTEPCOMMONUNIT.GetParam(Self.Context,
          'Biz:\CSMX\DICT\YWCSZ1.ParamGroup', 'YWCS1');
      //调用启动窗体
      lParam.Value := 'aaaaa';
  end;
end;
5、在被调用的功能中重新打开数据集
procedure TMainForm.BizFormShow(Sender: TObject);
begin
  if DataSetBroker1.DataSet.Active=true then
  Begin
    DataSetBroker1.DataSet.Active:=false;
    DataSetBroker1.DataSet.Open;
  end;
end;
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-22 23:56 , Processed in 0.038232 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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