起步软件技术论坛-X3

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

[结贴]编译出错了,**

[复制链接]
发表于 2007-8-29 19:26:40 | 显示全部楼层 |阅读模式
//Business平台的人员并没有“性别”、“电话”的等人员对象的扩展属性信息。
//但是可以通过在Business平台的人员表中增加“E”字母开头的字段来实现增加人员的扩展属性,
//增加后的属性可以在系统功能的“人员设计器”中看到。
//但是有时需要使用代码获取这些扩展信息,以下为使用代码获取人员扩展信息的示例。
procedure TMainForm.btnGetExtInfoClick(Sender: TObject);
var
  I: integer;
  FieldList: TStrings;
  lTableDef: TBizTableDef;
  lFieldDef: TBizFieldDef;
  lDataField: TUserDataField;
  ExtendInfoKind: TOrgSysExtendInfoKind;
  OrgObjectURL: TBizURL;
  lFileAttribute: TFileAttribute;
  lField: TDataField;
  lAttribStr: string;
  DataSetExtInfo: TUserDataSet;
begin
  {获取系统表}
  DataSetExtInfo := TUserDataSet.Create(self);
  ExtendInfoKind := TOrgSysExtendInfoKind.eikPerson;
  lTableDef := TOrgSysExtendInfoManager.GetOrgSysTableDef(ExtendInfoKind);
  if lTableDef = nil then Exit;
  FieldList := TStringList.Create;
  OrgObjectURL := TBizURL.Create;
  try
    FieldList.Clear;
    OrgObjectURL.URL := 'Org:\PERSON\ZXX.psn';
    lFileAttribute := FileSys.FileSystem.CreateAttribute(OrgObjectURL.FileName,
      SysUtils.fmOpenRead);
    TOrgSysExtendInfoManager.GetOrgSysTableExtendFields(ExtendInfoKind, FieldList);
    if FieldList.Count = 0 then Exit; //如果没有扩展字段则退出
    for I := 0 to FieldList.Count - 1 do
    begin
      lFieldDef := TBizFieldDef(FieldList.Objects[I]);
      lDataField := TUserDataField.Create(DataSetExtInfo);
      lDataField.DataSet := DataSetExtInfo;
      lDataField.ID := lFieldDef.ID;
      lDataField.DisplayName := lFieldDef.DisplayName;
      lFieldDef.AssignAttrTo(lDataField);
    end;
    DataSetExtInfo.Open;
    DataSetExtInfo.Edit;
    for I := 0 to DataSetExtInfo.FieldCount - 1 do
    begin
      lField := DataSetExtInfo.Fields[I];
      case lField.DataType of
        TFieldType.ftGraphic, TFieldType.ftBlob, TFieldType.ftOraBlob:
          TOrgSysExtendInfoManager.LoadBlobFieldFromOrgExtTable(OrgObjectURL,
            TBlobField(lField), ExtendInfoKind)
      else
        lAttribStr := lFileAttribute.ValuesAsString[lField.FieldName];
        lField.AsString := lAttribStr;
        MemoResult.Lines.Add('扩展字段ID:' + lField.FieldName + ',显示名称:'
          + lField.DisplayName + ',字段值:' + lAttribStr);
        if lField.FieldName = 'EXB' then edtEXB.Text := lField.AsString;
        if lField.FieldName = 'EDH' then edtEDH.Text := lField.AsString;
      end;
    end;
    DataSetExtInfo.Post;
  finally
    DataSetExtInfo.Free;
    lFileAttribute.Free;
    FieldList.Free;
  end;
end;

[错误]Biz:\GYSCGLXT\GGGN\TESTYUE\YWGN4.FUNC.DIR\MainForm.Form.pas(30, 19): Undeclared identifier "TOrgSysExtendInfoKind"
[错误]Biz:\GYSCGLXT\GGGN\TESTYUE\YWGN4.FUNC.DIR\MainForm.Form.pas(33, 11): Undeclared identifier "TDataField"
[错误]Biz:\GYSCGLXT\GGGN\TESTYUE\YWGN4.FUNC.DIR\MainForm.Form.pas(39, 3): Undeclared identifier "ExtendInfoKind"
[错误]Biz:\GYSCGLXT\GGGN\TESTYUE\YWGN4.FUNC.DIR\MainForm.Form.pas(40, 16): Undeclared identifier "TOrgSysExtendInfoManager"
[错误]Biz:\GYSCGLXT\GGGN\TESTYUE\YWGN4.FUNC.DIR\MainForm.Form.pas(49, 5): Undeclared identifier "TOrgSysExtendInfoManager"
[错误]Biz:\GYSCGLXT\GGGN\TESTYUE\YWGN4.FUNC.DIR\MainForm.Form.pas(64, 7): Undeclared identifier "lField"
[错误]Biz:\GYSCGLXT\GGGN\TESTYUE\YWGN4.FUNC.DIR\MainForm.Form.pas(65, 12): Undeclared identifier "lField"
回复

使用道具 举报

发表于 2007-8-30 10:07:10 | 显示全部楼层
http://bbs.justep.com/forum.php? ... 9%D5%B9%D7%D6%B6%CE

提示: 此示例使用了“组织机构公共库”业务单元,需要在代码所属业务功能的“配置项目属性”中引入“系统空间\系统功能\组织机构\组织机构公共库”业务单元。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-30 13:51:28 | 显示全部楼层
由 gaoys 于 2004-09-06 10:53 最后编辑

现在X3更新换代,也很快。 好像组织机构公共库也有变化了。 还有了 组织机构资源库
有没有适合现行系统的新的方法呢?  用2楼的方法,会不会给系统升级带来麻烦呢?
我用的是 X3 2619
回复 支持 反对

使用道具 举报

发表于 2007-8-30 13:58:20 | 显示全部楼层
版本升级会考虑到这些的,尽量不会动公共库的位置。2619和后续版本公共库方面变动不是特别的大。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-30 16:20:13 | 显示全部楼层
恩,好的,先这么用了。谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-15 17:43 , Processed in 0.038783 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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