我的业务对象(sms)与另一个模块的业务对象(公司)有一对多的关系。所以我在模块类的CustomizeTypesInfo方法中建立了这个关联。
我进行了调试,并且我确定已创建此关联,但是当我点击我的公司对象时,我无法看到短信列表。我希望短信列表在单独的选项卡中打开。我怎样才能做到这一点?
public override void CustomizeTypesInfo(ITypesInfo typesInfo)
{
base.CustomizeTypesInfo(typesInfo);
ITypeInfo firmTypeInfo = typesInfo.FindTypeInfo(typeof(Firm));
ITypeInfo smsReportTypeInfo = typesInfo.FindTypeInfo(typeof(Sms));
IMemberInfo memberInfoSms = smsReportTypeInfo.FindMember("Firm");
if (firmTypeInfo != null && smsReportTypeInfo != null)
{
XPDictionary xpDictionary = XpoTypesInfoHelper.GetXpoTypeInfoSource().XPDictionary;
XPClassInfo firmClassInfo = xpDictionary.GetClassInfo("crm.net.Module", "crm.net.Module.BusinessObjects.Firm");
if (firmTypeInfo.FindMember("SmsList") == null)
{
AssociationAttribute assoc1 = new AssociationAttribute("Firm_SmsReports", typeof(SmsReport));
xpDictionary.GetClassInfo("crm.net.Module", "crm.net.Module.BusinessObjects.Firm").
CreateMember("SmsList", typeof(XPCollection<Sms>), true,
new AssociationAttribute(),
assoc1);
}
if (xpDictionary.GetClassInfo(typeof(Sms)).FindMember("Firm") != null)
{
if(memberInfoSms.FindAttribute<AssociationAttribute>() == null)
memberInfoSms.AddAttribute(new AssociationAttribute("Firm_SmsReports", typeof(Sms)));
}
XafTypesInfo.Instance.RefreshInfo(firmTypeInfo.GetType());
XafTypesInfo.Instance.RefreshInfo(typeof(Sms));
((XafMemberInfo)memberInfoSms).Refresh();
}
}
答案 0 :(得分:0)
打开模型设计器(在运行时) - 找到“Firm_DetailView”。
检查它是否有属性“SmsList” 如果不是 - 在模型中手动添加
转到布局 - 并将该属性添加到布局