|
发表于 2009-7-9 11:06:18
|
显示全部楼层
这是3002版本的缺陷,在使用系统主窗体的“被代理”菜单时出现,可以修改资源解决:
替换“系统空间\系统功能\组织机构\组织机构资源库\被代理岗位窗体”窗体的Deputied函数。
static function TDEPUTIEDPOSFORM.Deputied(AContext: TContext; ADeputiedURLs: TObjectList; ADeptManager: TDeptManager): Boolean;
var
I, FirstParentheses, LastParentheses: Integer;
lOrgUnit: TOrgUnit;
lItem: TOrgDeputyItem;
lID: string;
lCacheLocalCacheEnabled: Boolean;
begin
//jhm 关闭缓存
lCacheLocalCacheEnabled := FSMNGR.OrgSystemManager.UseLocalCache;
FSMNGR.OrgSystemManager.UseLocalCache := False;
with TDEPUTIEDPOSFORM.Create(AContext) do
try
FDeptManager := ADeptManager;
FDeputiedURLs := ADeputiedURLs;
FChangedOrgUnits := TObjectList.Create;
try
InitUI;
Result := ShowModal = Business.Forms.Controls.mrOK;
if Result then
begin
Cursor := Business.Forms.Controls.crHourGlass;
try
for I := 0 to FDeputiedURLs.Count - 1 do
begin
lOrgUnit := OrgSys.OrgSystem.FindUnit(TPersonMember(FDeputiedURLs[I]).BizURL);
lOrgUnit.Module.Deputies.Clear;
OrgSys.OrgSystem.SaveUnit(lOrgUnit);
end;
for I := 0 to lvOrgSelect.Items.Count - 1 do
begin
lOrgUnit := OrgSys.OrgSystem.FindUnit(TBizURL(lvOrgSelect.Items[I].Data));
FirstParentheses := StringUtils.Pos('(',lvOrgSelect.Items[I].SubItems.Text);
LastParentheses := StringUtils.Pos(')',lvOrgSelect.Items[I].SubItems.Text);
lID := StringUtils.Copy(lvOrgSelect.Items[I].SubItems.Text, FirstParentheses + 1, LastParentheses - FirstParentheses - 1);
lItem := TOrgDeputyItem(lOrgUnit.Module.Deputies.AddItem('','' , lID));
lItem.Enabled := True;
lItem.StartTime := FTime;
OrgSys.OrgSystem.SaveUnit(lOrgUnit);
end;
TCommonFunc.OrgChanged;
finally
Cursor := Business.Forms.Controls.crDefault;
end;
end;
finally
//jhm 打开缓存
FSMNGR.OrgSystemManager.UseLocalCache := lCacheLocalCacheEnabled;
FChangedOrgUnits.Free;
end;
finally
Free;
end;
end; |
|