我无法找到自定义字段的本地名称。我试图使用PSI自定义字段服务,但没有运气。它似乎只是获得了企业领域。我真的不确定隐藏当地名字的地方。
我可以从ReadProjectDataSet调用中获取自定义字段,但它不包含自定义字段的名称。
这是我的代码,我认为这是从projtool示例中复制的:
public static SvcCustomFields.CustomFieldDataSet ReadCustomFields( )
{
CheckAccess();
using (var scope = new OperationContextScope(projectClient.InnerChannel))
{
ProjectAuthentication.UseCorrectHeaders(isImpersonated);
return customFieldsClient.ReadCustomFields(string.Empty, false);
}
}
这是一个如何显示项目桌面的截图:
答案 0 :(得分:1)
代码是这样的:
CustomFieldDataSet cfDS = new CustomFieldDataSet();
PSLibrary.Filter cfFilter = new Microsoft.Office.Project.Server.Library.Filter();
cfFilter.FilterTableName = cfDS.CustomFields.TableName;
cfFilter.Fields.Add(new PSLibrary.Filter.Field(cfDS.CustomFields.TableName, cfDS.CustomFields.MD_PROP_NAMEColumn.ColumnName));
cfFilter.Fields.Add(new PSLibrary.Filter.Field(cfDS.CustomFields.TableName, cfDS.CustomFields.MD_PROP_IDColumn.ColumnName));
cfFilter.Fields.Add(new PSLibrary.Filter.Field(cfDS.CustomFields.TableName, cfDS.CustomFields.MD_PROP_UIDColumn.ColumnName));
cfFilter.Fields.Add(new PSLibrary.Filter.Field(cfDS.CustomFields.TableName, cfDS.CustomFields.MD_LOOKUP_TABLE_UIDColumn.ColumnName));
cfFilter.Fields.Add(new PSLibrary.Filter.Field(cfDS.CustomFields.TableName, cfDS.CustomFields.MD_PROP_TYPE_ENUMColumn.ColumnName));
cfDS = ReadCustomFields(cfFilter.GetXml(), false);
该示例是作为CustomFieldsClient的附加内容编写的。它读取自定义字段的名称,ID,UID,查找表的UID和字段的类型。
但它只读取字段的名称。字段中有用户定义的标签,标签在Project Pro中定义,并存储在仅通过Project Pro提供的表定义中。