起步软件技术论坛-X3

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

【搞定】文件"PERSON00402.psn"不存在 急,急[请求]**

[复制链接]
发表于 2007-5-17 10:47:52 | 显示全部楼层 |阅读模式
我自己做了一个人员录入界面,保存时经常会碰到如下图错误
,再点保存就会出现,  文件"Orgerson23010.dfd00402.psn"已经存在   错误
代码如下
     lPersonID := DataSetsdsDetail.FieldByName('PersonID').AsString;

          lDisplayName := DataSetsdsDetail.FieldByName('PersonName').AsString;
          lDeptURL := DataSetsdsDetail.FieldByName('DeptID').AsString;
          lDept :=Business.Model.Org.OrgSys.OrgSystem.FindUnit(lDeptURL,'','');
          lDeptURL := '';
          lDeptURL := lDept.BizURL.URL;

          nLength := Length(lDeptURL);
          lDeptURL := Business.System.StringUtils.Copy(lDeptURL, 5, nLength - 4);

           lPositionID := DataSetsdsDetail.FieldByName('PositionID').AsString;
          CreatePersonAndAllocate(lPersonID, lDisplayName, lDeptURL, lPositionID);










procedure TFJ_3_RYJBXX.CreatePersonAndAllocate(APersonID, APersonDisplayName,
  ADeptURL, APositionID: string);
var
  lDeptURL: string;
  lDeptBizURL, lPositionBizURL: TBizURL;
  lPerson: TPerson;
  lPositionMember: TOrgUnit;
begin
  { 存储时候没有'Org:', 对象使用时候都有前缀名 }
  lDeptURL := FileSys.cOrgFilePrefix + ADeptURL;

  lDeptBizURL := TBizURL.Create;
  
  try
    lDeptBizURL.URL := lDeptURL;

    DataSetuse.open;
    DataSetuse.Filter := 'FGUID = '''+ APositionID+'''';
    DataSetuse.Filtered := true;
   
    APositionID := DataSetuse.FieldByName('FID').asString;
   
    lPositionBizURL:= Org.OrgSys.OrgSystem.FindPosition(APositionID).BizURL;


    lPerson := Org.OrgSys.OrgSystem.CreatePerson(lDeptBizURL, APersonID, APersonDisplayName);

    lPositionMember := GetPositionMember(lDeptBizURL, APositionID);
    { 如果指定岗位在指定部门下还没有,需要先分配岗位成员 }
    if lPositionMember = nil then
      lPositionMember := Org.OrgSys.OrgSystem.AssignPosition(lDeptBizURL, lPositionBizURL);
    Org.OrgSys.OrgSystem.AssignPerson(lPositionMember.BizURL, lPerson.BizURL);

    jsDialogs.showmsg('录入人员成功,人员编号是:'+APersonID, '返回信息');
  finally
   
    lDeptBizURL.Free;
  
  end;
end;

aa.jpg

54.76 KB, 下载次数: 84

回复

使用道具 举报

 楼主| 发表于 2007-5-17 11:10:35 | 显示全部楼层
一般在先运行组织机构,再运行本功能的时候会出现这个问题

我再studio中从初始化运行,错误定位在这里

aa.jpg

44.68 KB, 下载次数: 81

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-17 13:25:27 | 显示全部楼层
我已经知道原因了
回复 支持 反对

使用道具 举报

发表于 2007-5-21 09:18:09 | 显示全部楼层
ok,请楼主分享一下错误原因。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-22 14:44:10 | 显示全部楼层
具体怎么解决我还不知道

就是2楼的错误
为了区分党群和公司的组织机构,我重写了组织机构中的函数
procedure otvOrgTreeViewInserting(Sender: TObject; ANode: TBaseNode; var Allow: Boolean);
不重写就好了
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-10 16:55 , Processed in 0.040777 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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