新版本加分类任务工作台的方法是这样的
1、模仿 业务模型\协同系统\任务\任务中心信息\任务导航(待办)2 做一个新的工作台。代码要一模一样,注意,因为这个是继承的,直接复制不行,必须手工继承 业务模型\协同系统\任务\任务中心信息\任务导航(基类),copy代码。 我的新的工作台叫:业务模型\协同系统\任务\任务中心信息\任务导航(待办类别|XXX)
2、我利用 任务表的扩展字段 ESField06 做分类,比如有XXX的,为我要过滤出来的任务。
业务模型\协同系统\任务\任务中心资源
在 TFilterBuilder = class(TObject) 的public里面加一个变量
……
public
//按照自定义类型过滤任务
FNewTaskType:String;
function GetNewFilter: string;
……
加一个构造sql的函数
//new
function TFilterBuilder.GetNewFilter: string;
var
Fsql:string;
begin
fsql:='ESField06 = ''%s''';
result:='';
if FNewTaskType<>'' then
result:=sysutils.Format(fsql,[FNewTaskType]);
end;
//添加这个新的限制
function TFilterBuilder.GetFilter: string;
begin
Result := AddFilter('', GetTypeFilter);
Result := AddFilter(Result, GetDateRangeFilter);
Result := AddFilter(Result, GetOrgFilter);
//new
Result := AddFilter(Result, GetNewFilter);
// Result := AddFilter(Result, GetStateFilter);
end;
//创建这个对象的时候,把我的变量赋初值
constructor TFilterBuilder.Create(AContext: TContext);
begin
//new
FNewTaskType:='';
……
3、业务模型\协同系统\任务\任务中心信息\任务导航(待办类别|XXX 代码里面添加
procedure TRWDH_JHMDB_2.FormDocCreate(Sender: TObject);
begin
Inherited;
// new
FFilterBuilder.fNewTaskType:='XXX';
FilterTypeStr := TRTLConsts.NeedProcessTaskTypeStr;
end;
4、把这个工作台配置到桌面上即可。如果发现你的工作台里面又套一个待办任务,请按照待办任务(2)修改,把不要的控件隐藏起来。
5我们这个工作台的更多也链接 我的任务,但没有按照XXX过滤
。如果需要过滤功能,需要修改 业务模型\协同系统\任务\任务中心资源\任务桌面过滤,和 业务模型\协同系统\任务\我的任务
具体方法 和上面类似 ,只不过是修改 任务桌面过滤的 FFilterBuilder: TFilterBuilder; 里面的构造sql部分,并自定义规则,把参数传递进来 |