起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 100|回复: 4

[搞定]刷新时要填充,值没了,是什么原因**

[复制链接]
发表于 2007-11-9 11:28:55 | 显示全部楼层 |阅读模式
procedure TMainForm.DataNavigator1BeforeAction(Sender: TObject; var Accept: Boolean);
//流程状态 处理人  ---S
Var
  I : Integer;
  lTaskParam: TLoadTaskParam;
  lFlowParam: TLoadFlowParam;
  lTasks: TTasks;
  lDataSet : TDataSet;
  SenderNameStr,TaskTypeNameStr:String;
//流程状态 处理人  ---E
begin
    case TBizDataSetAction(Sender).ID of
       BizActnConsts.ActionDataSetRefresh:
       begin
          //流程状态 处理人  ---S
            with DataSetBroker.DataSet do
            begin
              First;
              while not eof do
              begin//--循环列-开始
                        lDataSet := DataSetBroker.DataSet;
                        if not lDataSet.Active or lDataSet.Eof then
                          Exit;
                        lFlowParam := TLoadFlowParam.Create;
                        lTaskParam := TLoadTaskParam.Create;
                        lTasks := TTasks.Create;
                        try
                          //根据ProductID,找到对应的流程Guid值
                          DoGetFlowGUIDs(lDataSet.FieldByName('Inst_ID').AsString, lFlowParam.GUIDs);
                          lTaskParam.States := [TTaskState.tsStarted, TTaskState.tsProcessing, TTaskState.tsWaiting];
                          //流程模型的BizURL
                          lFlowParam.ProcURLs.Add('Biz:\DMISXT\ZDHXSBTZTCLC.Proc') ;
                          //以给定的条件查询任务(这里给定的条件由lFlowParam给出,根据流程Guid值查询,lTaskParam条件是按照任务状态,只查询出需要处理的任务)
                          Flow.FlowEngine.GetTasks(lFlowParam, lTaskParam, lTasks);
                           if lTasks.Count = 0 then
                                begin
                                    TaskTypeNameStr := '已完成';
                                    SenderNameStr := '';
                                end
                           else
                                begin
                                    TaskTypeNameStr := lTasks[0].TaskTypeName.ToString; //lTasks[0].ProcUnitID.ToString;
                                    SenderNameStr := lTasks[0].TaskMessages[0].ReceiverName; //lTasks[0].SenderName.ToString;
                                end;
                        finally
                          lFlowParam.Free;
                          lTaskParam.Free;
                          lTasks.Free;
                        end;
                edit;
                FieldByName('clr').AsString := SenderNameStr;
                FieldByName('zt').AsString := TaskTypeNameStr;
                next; //--循环列-结束
              end;
            end;

          //流程状态 处理人  ---E
       end;
    end;
end;
回复

使用道具 举报

发表于 2007-11-9 11:38:39 | 显示全部楼层
请把你的问题详细描述一下,值没了是什么值没了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-9 11:52:28 | 显示全部楼层
FieldByName('clr').AsString := SenderNameStr;
                FieldByName('zt').AsString := TaskTypeNameStr;

全是为空。。。这两个是临时字段
回复 支持 反对

使用道具 举报

发表于 2007-11-9 11:57:54 | 显示全部楼层
您调试了吗?运行到这里的时候 SenderNameStr和TaskTypeNameStr的值是什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-9 12:00:29 | 显示全部楼层
搞定  事件写错
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-29 23:02 , Processed in 0.041614 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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