起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 229|回复: 12

数据集更新问题。**

[复制链接]
发表于 2007-10-17 15:57:41 | 显示全部楼层 |阅读模式
我有2个业务信息 业务信息1(表格文档1)、业务信息2(表格文档2),每个信息中都有各自的数据集1、数据集2,两个数据集用的都是同一个表的相同字段,在新建一个业务功能1,它把上面两个表格文档分页显示。在有一个功能2继承功能1。然后新建一个流程:开始--》功能1---》功能2--》结束。在启动规则中--》模式--》新建,流程id也设好了。

现在用一个用户登录协同系统后,运行功能1,我在分页1(表格文档1)中添加新数据后,先保存,然后在刷新的时候,所有数据都没了。但是在表里已经存进去了。请问是怎么回事。
回复

使用道具 举报

发表于 2007-10-17 16:30:12 | 显示全部楼层
启动规则的启动模式是什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-17 16:35:08 | 显示全部楼层
是处理时
回复 支持 反对

使用道具 举报

发表于 2007-10-17 17:23:50 | 显示全部楼层
是这样的,如果不做流程就能看到,或者说直接在设计期间运行业务功能1能看到吧

如果是,那应该跟流程的“启动规则”的 “启动模式”和“重复处理数据范围”有关,

至于这两个如何设置,需要结合你自己的业务需求了,如果进入功能后,界面是空的,那么“重复处理数据范围”设置为 “新建”或者“新建并自动填充”,且保存后启动流程实例,那么“启动模式”设置为“处理时”,

请楼主参考《用户手册》的第9章 业务流程9.5.1 的相关说明

像你这样,应该是保存后,在代办会出现一条任务,数据需要从代办任务进来打开功能就能看到了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-18 15:50:51 | 显示全部楼层
我的流程开始代码是这样的(如下),如果在流程中“重复处理数据范围”设置为 “新建并自动填充”,那他就报这个错 “ 流程字段"流程ID元素"的值必须  是"E2F18F90E705493896100B164435C658"! ”,看看了帖子,我的错误应该是已经手动添加了流程字段所以在报错,请帮我看看代码那我手动加了,并且在原由基础上怎么改?谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-18 15:52:20 | 显示全部楼层
unit SQZCT;

interface

uses
  Business.System, Business.Model, Business.Forms, Business.Data,
  Business.Model.Flow;

type
  TSQZCT = class(TForm)
    FuncBroker: TFuncBroker;
    InfoBrokerXKSQXX: TInfoBroker;
    InfoBrokerJTXZXKSQSXSCYJXX: TInfoBroker;
    InfoBrokerJTXZXKSQBYSLTZXX: TInfoBroker;
    InfoBrokerLNGCSGXKZXX: TInfoBroker;
    InfoBrokerJTXZXKSQBZTZXX: TInfoBroker;
    InfoBrokerJTXZXKSQSLTZXX: TInfoBroker;
    ControlBar: TControlBar;
    DataNavigator: TDataNavigator;
    DocViewBar: TDocViewBar;
    PageControl: TPageControl;
    TabSheet: TTabSheet;
    DocViewXKSQXX_SQXK: TDocView;
    TabSheet2: TTabSheet;
    DocViewJTXZXKSQBYSLTZXX_JTXZXKSQBYSLTZS: TDocView;
    TabSheet4: TTabSheet;
    DocViewJTXZXKSQBZTZXX_JTXZXKSQBZTZS: TDocView;
    TabSheet5: TTabSheet;
    TabSheet1: TTabSheet;
    DocViewJTXZXKSQSXSCYJXX_JTXZXKSQSXSCYJB: TDocView;
    TabSheet3: TTabSheet;
    DocViewLNGCSGXKZXX_LNXZSGXKZ: TDocView;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    DataSetBroker1: TDataSetBroker;
    DocViewJTXZXKSQSLTZXX_JTXZXKSQSLTZS: TDocView;
    FlowBroker1: TFlowBroker;
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
    procedure FlowBroker1AfterFlowOut(Sender: TObject; Command: TFlowOutCommand);
  private
    {private declarations}
  public
    {public declarations}
  end;

implementation


procedure TSQZCT.RadioButton1Click(Sender: TObject);
begin
  if TRadioButton(Sender).Checked then
  Begin
  //  PageControl.ActivePage := TabSheet5;
    TabSheet2.Show;
    DataSetBroker1.DataSet.Edit;
    DataSetBroker1.DataSet.FieldByName('DJANHZT').AsString :='不受理';
  //  DataSetBroker1.DataSet.ApplyUpdates;
  end;
end;

procedure TSQZCT.RadioButton2Click(Sender: TObject);
begin
  if TRadioButton(Sender).Checked then
  Begin
  //  PageControl.ActivePage := TabSheet5;
    TabSheet4.Show;
    DataSetBroker1.DataSet.Edit;
    DataSetBroker1.DataSet.FieldByName('DJANHZT').AsString :='受理';
  //  DataSetBroker1.DataSet.ApplyUpdates;
  end;
  TabSheet4.Show;
end;

procedure TSQZCT.RadioButton3Click(Sender: TObject);
begin
  if TRadioButton(Sender).Checked then
  Begin
  //  PageControl.ActivePage := TabSheet5;
    TabSheet5.Show;
    DataSetBroker1.DataSet.Edit;
    DataSetBroker1.DataSet.FieldByName('DJANHZT').AsString :='受理';
  //  DataSetBroker1.DataSet.ApplyUpdates;
  end;
end;

procedure TSQZCT.RadioButton4Click(Sender: TObject);
begin
  if TRadioButton(Sender).Checked then
  Begin
    TabSheet3.Show;
    DataSetBroker1.DataSet.Edit;
    DataSetBroker1.DataSet.FieldByName('DJANHZT').AsString :='当场颁发许可';
  //  DataSetBroker1.DataSet.ApplyUpdates;
  end;
end;

procedure TSQZCT.SpeedButton1Click(Sender: TObject);
begin
   TabSheet1.Show;
end;

procedure TSQZCT.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
var
  I: Integer;
  lUnits: TList;
  lContextCurrent: TContextCurrent;
begin
  lUnits := TList.Create;
  try
  FlowBroker1.FlowControl.CurrentProcUnit.GetSuccedentUnits(lUnits,[TProcUnitKind.ukCondition],True);
  for I := 0 to lUnits.Count - 1 do
    begin
   //   dialogs.ShowMessage(TProcUnit(lUnits[I]).ID + TProcUnit(lUnits[I]).DisplayName);
      if (TProcUnit(lUnits[I]).ID = 'BZ') AND RadioButton2.Checked then
      begin
        command.FlowTasks[0].Subject := '等待补正:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
      end
      else
      if (TProcUnit(lUnits[I]).ID = 'SL') And RadioButton3.Checked then
      begin
        command.FlowTasks[0].Subject := '大队审查意见:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
      end;
    end;
  finally
    lUnits.Free;
  end;
end;

procedure TSQZCT.FlowBroker1AfterFlowOut(Sender: TObject; Command: TFlowOutCommand);
var
  I: Integer;
  lUnits: TList;
  lContextCurrent: TContextCurrent;
begin
  lUnits := TList.Create;
  try
  FlowBroker1.FlowControl.CurrentProcUnit.GetSuccedentUnits(lUnits,[TProcUnitKind.ukCondition],True);
  for I := 0 to lUnits.Count - 1 do
    begin
   //   dialogs.ShowMessage(TProcUnit(lUnits[I]).ID + TProcUnit(lUnits[I]).DisplayName);
      if (TProcUnit(lUnits[I]).ID = 'BYSL') AND RadioButton1.Checked then
      begin
        DataSetBroker1.DataSet.Edit;
        DataSetBroker1.DataSet.FieldByName('XZXKZT').AsString :='0';//不许可
   //     DataSetBroker1.DataSet.ApplyUpdates;
      end
      else
      if (TProcUnit(lUnits[I]).ID = 'CONDITION') AND RadioButton4.Checked then
      begin
        DataSetBroker1.DataSet.Edit;
        DataSetBroker1.DataSet.FieldByName('XZXKZT').AsString :='2';//申请通过
    //    DataSetBroker1.DataSet.ApplyUpdates;
      end
      else
      if RadioButton2.Checked then
      begin
        DataSetBroker1.DataSet.Edit;
         DataSetBroker1.DataSet.FieldByName('XZXKZT').AsString :='4';//受理中
    //      DataSetBroker1.DataSet.ApplyUpdates;
      end
      else
      if (TProcUnit(lUnits[I]).ID = 'SL') And RadioButton3.Checked then
      begin
        DataSetBroker1.DataSet.Edit;
        DataSetBroker1.DataSet.FieldByName('XZXKZT').AsString :='4';//受理中
    //    DataSetBroker1.DataSet.ApplyUpdates;
      end;
    end;
  finally
    lUnits.Free;
  end;
  try
  lContextCurrent := TContextCurrent.Create(Self.Context);
//  dialogs.ShowMessage('当前操作者部门ID:' + lContextCurrent.Dept.ID);
//  dialogs.ShowMessage('当前操作者岗位成员编号:' + lContextCurrent.PositionMember.ID);
  if DataSetBroker1.DataSet.FieldByName('DLRYid').AsString <>nil then
  begin
    DataSetBroker1.DataSet.Edit;
    DataSetBroker1.DataSet.FieldByName('DLBMBH').AsString := lContextCurrent.Dept.ID;
    DataSetBroker1.DataSet.FieldByName('DLGWBH').AsString := lContextCurrent.PositionMember.ID;
    DataSetBroker1.DataSet.FieldByName('DLRYid').AsString := lContextCurrent.Operator.ID;
//   DataSetBroker1.DataSet.ApplyUpdates;
  end;
  finally
    lContextCurrent.Free;
  end;
// DataSetBroker1.DataSet.ApplyUpdates;
end;

end.
回复 支持 反对

使用道具 举报

发表于 2007-10-18 16:16:01 | 显示全部楼层
回答5楼。
对于“在流程中“重复处理数据范围”设置为 “新建并自动填充”这个描述,不知道楼主是否看了《用户手册》第9章 业务流程9.5.1 的相关说明,见附件图,
像你这样的,应该是在流程中“重复处理数据范围”设置为 “新建”

就可以了。

1.gif

28.44 KB, 下载次数: 124

回复 支持 反对

使用道具 举报

发表于 2007-10-18 16:22:18 | 显示全部楼层
在说1楼的现象“ 在分页1(表格文档1)中添加新数据后,先保存,然后在刷新的时候,所有数据都没了。”
结合3楼说的启动模式定义的是处理时,
看《用户手册》第9章 业务流程9.5.1 的说明,见附件
就是说保存数据,就启动流程实例,刷新数据就没有了,怎么找到刚才提交的数据呢,你可以在提交前看一下代表任务,提交后再看一下代办任务,就会发现多出一条任务(或者说一条记录),这条任务就是你刚才你的保存动作生成了一个流程实例,同时产生的一条任务,你通过右键 处理 该任务,就会看到你刚才提交的些数据集了

1.gif

21.5 KB, 下载次数: 124

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-18 16:35:31 | 显示全部楼层
是,我在保存以后,虽然在这个功能页面上的数据都没了,就想你说的在“代办任务”中已经有了一条记录了,打开后在修改数据后在刷新就不会出现1楼的问题,可是我不能让用户保存完了以后在关闭这个功能,在从“代办任务”在点开吧。所以我希望在第一次保存的时候,我刷新不会出现1楼的问题。

我把加在表中的元素改放到数据集里了,还是不行。
回复 支持 反对

使用道具 举报

发表于 2007-10-18 16:57:15 | 显示全部楼层
缺陷,谢谢楼主的发现。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-28 23:37 , Processed in 0.041175 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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