起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: gail

代码创建一个待办任务

[复制链接]
 楼主| 发表于 2006-9-28 16:00:51 | 显示全部楼层
麻烦我拷贝了这三个目录进我的业务空间,好象打开都有问题,麻烦你从新个BRP包给我就行了,不用发那么多功能给我,我只要能完成我的需求的功能类似的东西就行了,不好意思啊,
回复 支持 反对

使用道具 举报

发表于 2006-9-28 16:21:03 | 显示全部楼层
首先在平台中定义任务关联,然后创建任务。参考代码如下:
unit TaskPubFunc;

interface

uses
  Business.System, Business.Model, Business.Model.Flow, Business.Model.Org;

type
  TTaskPubFunc = class(TBizLibrary)
  private
    {private declarations}
  public
    procedure UserStartTask(AFuncURL, ATaskTypeName, ATaskTypeID, ASubject,
      ABizField, ABizFieldValue, ADept, APosition, APerson : string);
  end;

implementation

{无流程任务
任务表,任务业务数据表,业务数据表: 通过任务guid, 业务数据guid关联}
procedure TTaskPubFunc.UserStartTask(AFuncURL, ATaskTypeName, ATaskTypeID,
  ASubject, ABizField, ABizFieldValue, ADept, APosition, APerson : string);
VAR
  lOrgURL : TOrgURL;
  lTask   : TTask;
  lTaskBizData : TTaskBizData;
  lTaskBizDataRec : TTaskBizDataRec;
begin
  lTask := TTask.Create;

  {任务接受者}
  lOrgURl := TOrgURL.Create(ADept, APosition, APerson);

  {任务业务关联数据定义}
  lTaskBizData := TTaskBizData.Create;
  lTaskBizDataRec := TTaskBizDataRec.Create;
try
  lTaskBizDatarec.BizField := ABizField;       //业务数据的关键字段,用于检索业务数据
  lTaskBizDataRec.Value := ABizFieldValue;     //业务数据的关键字段值
  lTaskBizData.BizDataKeys.Add(lTaskBizDataRec);
  //lTaskBizData.BizDatas.Add(lTaskBizDataRec);

  {任务信息的定义}
  lTask.Subject := ASubject;
  lTask.Kind:= '';                             //无流程任务为空
  lTask.TaskType := ATaskTypeID;               //任务类型,如:工作任务:WORKTASKDEAL, WORKTASK
  lTask.TaskTypeName := ATaskTypeName;
  lTask.FuncURL := AFuncURL;                   //处理任务的功能
  lTask.SenderDeptID := ADept;
  lTask.SenderPositionID := APosition;
  lTask.SenderID := APerson;
  lTask.BizDatas.Add(lTaskBizData);            //设置业务数据与任务关联关系, 保存任务业务关联信息到‘系统空间\系统数据库\任务业务数据表’

  lTask.TaskMessages.AddTaskMessage(nil, lOrgURl, TTaskmessagestate.tmsSend, 0,
    False);                                    //添加到任务列表

  {保存任务}
  Flow.FlowEngine.SaveTask(lTask);             //保存任务信息到‘系统空间\系统数据库\任务表’,任务消息到‘任务消息表’
finally
  //lTaskBizDataRec.Free;
  //lTaskBizData.Free;
  lTask .Free;
  lOrgURL.Free;
end;

end;

end.
// *******************************************************************************

// 创建任务

procedure TDMCJWLCRW.CreateCustomTaskClick(Sender: TObject);
VAR
  tpf : TTaskPubFunc;
  AFuncURL, ATaskTypeName, ATaskTypeID, ASubject, ABizField, ABizFieldValue,
  ADept, APosition, APerson : string;
begin
  if dsb.DataSet.FieldByName('GUID').AsString = '' then exit;

  tpf := TTaskPubFunc.Create(Self.Context);
  try
    AFuncURL := 'Biz:\PXAL\ZDYYWGN.Func';                                 // 自定义任务关联功能
    ATaskTypeName := '我的功能';                                          // 自定义任务关联的任务名称
    ATaskTypeID := 'MYCUSTOMFUNCDEAL';                                    // 自定义任务关联的任务ID
    ASubject := dsb.DataSet.FieldByName('Subject').AsString;
    ABizField := 'BIZ:\PXAL\DEMOSJK.DATABASE\ZDYRWGLDEMOB.TABLE\GUID.Field';  // 关联字段
    ABizFieldValue := dsb.DataSet.FieldByName('GUID').AsString;               // 关联字段值
    ADept := dsb.DataSet.FieldByName('FDept').AsString;;                      // 接收部门
    APosition := dsb.DataSet.FieldByName('FPosition').AsString;;              // 接收岗位
    APerson := dsb.DataSet.FieldByName('FPerson').AsString;;                  // 接收人

    tpf.UserStartTask(AFuncURL, ATaskTypeName, ATaskTypeID, ASubject, ABizField,
      ABizFieldValue, ADept, APosition, APerson);

    jsDialogs.ShowMsg('启动 ' + ASubject + ' 成功', '启动无流程任务');
  finally
    tpf.Free;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-28 16:42:20 | 显示全部楼层
请打BRP包给我,我会只管的多,谢谢。
回复 支持 反对

使用道具 举报

发表于 2006-9-28 16:49:33 | 显示全部楼层
什么BRP包啊?我前面给你的就是这些代码。只是简单的调用,你需要在什么时候创建任务就直接使用上面的代码就好使。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-28 16:54:21 | 显示全部楼层
我试一下,谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-28 16:57:56 | 显示全部楼层
twins_tony 还有No.4的问题,还没回答。
回复 支持 反对

使用道具 举报

发表于 2006-9-28 17:39:12 | 显示全部楼层
是四楼的第二个问题嘛?
用表格文档就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-29 09:46:04 | 显示全部楼层
是不是我说的不明白?我是要导入数据库。
回复 支持 反对

使用道具 举报

发表于 2006-9-29 10:16:10 | 显示全部楼层
是要把Excel中的数据导入到数据库嘛?楼主参考一下平台中提供的ExcelToTable组件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-29 10:20:19 | 显示全部楼层
这个我早看过了,我问的是,我那中表格的形式可不可以导入,有多个EXCEL表,形式都跟4楼图类似,就是原料部分可以有多行,这个实现起来会不会有困难?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-2 05:43 , Processed in 0.039252 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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