起步软件技术论坛-X3

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

【搞定】流转的时候遇到了点问题(command.FlowTasks[0].ProcUnit.ID)**

[复制链接]
发表于 2007-9-6 16:59:30 | 显示全部楼层 |阅读模式
流程如图。界面如图。

我是通过点击单选按钮给某个字段赋值,并通过这个字段判断流转到那。我现在需要提交任务后把在‘待办任务’中显示的名称改成我需要的。并且我要先判断他是转到那个功能中,根据这个功能显示名称(代码如下)。

出现的问题是:我在点击‘补正’和‘受理’任意一个按钮(流程图中的补正和受理)流转没有错误,但是在点击‘不受理’和‘当场颁发许可’(流程图中的不予受理和颁发许可)就报错,


procedure TSQZCT.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
begin

   if command.FlowTasks[0].ProcUnit.ID = 'JTXZXKSQSXSCDDYJGN' then
    begin
      command.FlowTasks[0].Subject := '大队审查意见:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
    end;
    if command.FlowTasks[0].ProcUnit.ID = 'SQGN' then
    begin
      command.FlowTasks[0].Subject := '等待补正:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
    end;

    if command.FlowTasks[0].ProcUnit.ID = 'FINISH3' then
    begin
      command.FlowTasks[0].Subject := '不予受理:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
    end;
    if command.FlowTasks[0].ProcUnit.ID = 'FINISH4' then
    begin
      command.FlowTasks[0].Subject := '当场颁发许可证:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
    end;
end;

a.jpg

748.87 KB, 下载次数: 118

回复

使用道具 举报

 楼主| 发表于 2007-9-6 17:01:43 | 显示全部楼层
功能界面

a.jpg

259.93 KB, 下载次数: 125

回复 支持 反对

使用道具 举报

发表于 2007-9-6 17:17:28 | 显示全部楼层
‘不受理’和‘当场颁发许可’直接就结束流程了,你还改subject干什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-6 17:39:40 | 显示全部楼层
你的意思就是把‘不受理’和‘当场颁发许可’两个注释掉就没有错了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-6 17:50:11 | 显示全部楼层
注释掉‘不受理’和‘当场颁发许可’行还是有错!我把这个功能页面的代码发上来你看下吧!谢谢


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;
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    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;
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);
begin

    if command.FlowTasks[0].ProcUnit.ID = 'JTXZXKSQSXSCDDYJGN' then

    begin
      command.FlowTasks[0].Subject := '大队审查意见:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
    end;
    if command.FlowTasks[0].ProcUnit.ID = 'SQGN' then
    begin
      command.FlowTasks[0].Subject := '等待补正:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
    end;
    {
    if command.FlowTasks[0].ProcUnit.ID = 'FINISH3' then
    begin
      command.FlowTasks[0].Subject := '不予受理:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
    end;
    if command.FlowTasks[0].ProcUnit.ID = 'FINISH4' then
    begin
      command.FlowTasks[0].Subject := '当场颁发许可证:' + DataSetBroker1.DataSet.FieldByName('JTXZXKSQSXJNR').AsString;
    end;
    }
end;

procedure TSQZCT.FlowBroker1AfterFlowOut(Sender: TObject; Command: TFlowOutCommand);
begin
  if command.FlowTasks[0].ProcUnit.ID = 'JTXZXKSQSXSCDDYJGN' then
  begin
    DataSetBroker1.DataSet.Edit;
    DataSetBroker1.DataSet.FieldByName('XZXKZT').AsString :='4';
    DataSetBroker1.DataSet.ApplyUpdates;
  end;

  if command.FlowTasks[0].ProcUnit.ID = 'FINISH3' then
  begin
    DataSetBroker1.DataSet.Edit;
    DataSetBroker1.DataSet.FieldByName('XZXKZT').AsString :='0';
    DataSetBroker1.DataSet.ApplyUpdates;
  end;

  if command.FlowTasks[0].ProcUnit.ID = 'FINISH4' then
  begin
    DataSetBroker1.DataSet.Edit;
    DataSetBroker1.DataSet.FieldByName('XZXKZT').AsString :='2';
    DataSetBroker1.DataSet.ApplyUpdates;
  end;
end;

end.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-7 09:40:38 | 显示全部楼层
顶上去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-7 11:46:39 | 显示全部楼层
2007-09-06 17:17 回了一次话,然后就没反应了。现在是 2007-09-07 11:40。
回复 支持 反对

使用道具 举报

发表于 2007-9-7 11:49:43 | 显示全部楼层
报什么错误?
代码停在哪里?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-7 12:43:03 | 显示全部楼层
报的错如图,
报错代码位置为 5楼 标红部分。

a.jpg

189.05 KB, 下载次数: 107

回复 支持 反对

使用道具 举报

发表于 2007-9-7 13:48:23 | 显示全部楼层
加个判断试试:
if not Assigned(command.FlowTasks[0]) then exit;
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-16 00:25 , Processed in 0.054148 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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