2011-01-11 6 views
0

Ich versuche, benutzerdefinierte Lookup (in .NET) unter Verwendung von 2 verknüpften Tabellen zu machen:AX2009 EP Benutzerdefinierte Lookup mit verknüpften Tabellen

AxLookup nameLookup = e.LookupControl; 
Proxy.QueryBuildDataSource emplTable = null; 
Proxy.QueryBuildDataSource dirPartyTable = null; 

using (Proxy.SysDataSetBuilder sysDataSetBuilder = proxy.SysDataSetBuilder.constructLookupDataSet(this.AxSession.AxaptaAdapter, TableMetadata.TableNum(this.AxSession, "EmplTable"))) 
{ 
    nameLookup.LookupDataSet = new DataSet(this.AxSession, sysDataSetBuilder.toDataSet());   
} 

using (Proxy.Query query = nameLookup.LookupDataSet.DataSetViews[0].MasterDataSource.query()) 
{ 
    emplTable = query.dataSourceNo(1); 
    dirPartyTable = emplTable.addDataSource(TableMetadata.TableNum(this.AxSession, "DirPartyTable")); 
    dirPartyTable.clearLinks(); 
    dirPartyTable.addLink(TableDataFieldMetadata.FieldNum(this.AxSession, "EmplTable", "PartyId"), TableDataFieldMetadata.FieldNum(this.AxSession, "DirPartyTable", "PartyId"));     
    dirPartyTable.joinMode = 6; //should be an exists join 
} 

nameLookup.LookupDataSet.Init(); 


nameLookup.Fields.Add(AxBoundFieldFactory.Create(this.AxSession, nameLookup.LookupDataSetViewMetadata.ViewFields["EmplId"])); 
nameLookup.Fields.Add(AxBoundFieldFactory.Create(this.AxSession, nameLookup.LookupDataSetViewMetadata.ViewFields["DirPartyTable!Name"])); //not working!! 

nameLookup.SelectField = "EmplId"; 

Nun, wenn ich die Lookup verwenden es gibt mir eine errror über das Namensfeld in DirPartyTable (Schlüssel nicht gefunden) Kann jemand ein Lookupfield in einer verbundenen Tabelle hinzufügen?

Ich bin sicher, dass der Join funktioniert, machte einige andere Lookups mit Bereichen in der verbundenen Tabelle (und natürlich keine Lookupfields auf der zweiten Tabelle) und das funktioniert ok.

Jede Hilfe ist willkommen!

+0

macht nichts, es ist behoben – user571457

Antwort

Verwandte Themen