起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 170|回复: 5

【结贴】[请求]自己实现的工作台如何在保存后自动刷新待办列表**

[复制链接]
发表于 2008-3-20 11:00:37 | 显示全部楼层 |阅读模式
曾经问过一个问题《自己实现的工作台如何在流转流程后自动刷新待办列表》

http://bbs.justep.com/forum.php?mod=viewthread&tid=21731

这个问题已经解决。

我们现在要实现一个效果,保存工作票以后,工作台待办列表也要更新。仅仅保存,没有流转。
回复

使用道具 举报

发表于 2008-3-20 13:39:23 | 显示全部楼层
用alang写的那个分享贴。x3平台 发送消息那个。
回复 支持 反对

使用道具 举报

发表于 2008-3-20 13:43:40 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2008-3-20 14:27:36 | 显示全部楼层
楼主,一楼的方法不适用你现在的需求。

如果想在一个功能中主动刺激工作刷新任务数据(从数据库刷新),可以考虑利用平台的业务消息机制。
http://bbs.justep.com/forum.php?mod=viewthread&tid=18235
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-21 10:10:43 | 显示全部楼层
上面的方法都比较麻烦,下面给出我的解决方法:

//更新
type
  TTaskUpdate = class(System.Object)
  public
    static function TaskUpdateNotifies : TDotNetObjectList;
    static procedure TaskUpdateNotify(name: string);
  end;

//更新回调(事件源功能名)
TTaskUpdateDelegate = procedure(name: string) of Object;

implementation
var
   FTaskUpdateNotifies: TDotNetObjectList;

static function TTaskUpdate.TaskUpdateNotifies : TDotNetObjectList;
begin
    if (FTaskUpdateNotifies = nil) then
        FTaskUpdateNotifies := TDotNetObjectList.Create;
    begin
        Result := FTaskUpdateNotifies;
        exit
    end
end;

static procedure TTaskUpdate.TaskUpdateNotify(name: string);
var
  i:integer;
  obj:Object;
  item:TTaskUpdateDelegate;
begin
  if TaskUpdateNotifies=nil then exit;
  for i:=0 to TaskUpdateNotifies.Count-1 do
  begin
    obj:=TaskUpdateNotifies.Items;
    if (obj is TTaskUpdateDelegate) then
    begin
      item:=obj as TTaskUpdateDelegate;
      item.Invoke(name);
    end;
  end;
end;


在工作票的主数据集的AfterCommit事件中:
TTaskUpdate.TaskUpdateNotify('');

仿任务库设计,比较简单一点
回复 支持 反对

使用道具 举报

发表于 2008-3-21 10:38:06 | 显示全部楼层
存储变量的方式。也行,谢谢楼主分享
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 23:25 , Processed in 0.039427 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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