I min pågående försök att ge en mer användbar uppslagskolumnen med hjälp av BDC, Jag träffade en vägg med BDC-plockaren. Om du inte ser det, BDC-plockaren liknar en Personväljaren förutom att det fungerar med kolumner av typen "business data".
Du åt plockaren genom att klicka på symbolen med öppna boken av en affärsdatakolumn som visas:
Ovanstående bild visar en affärsdatakolumn som kallas "Master dokument-Id". Kolumnen är ansluten, via BDC, till en webbtjänst.. Webbtjänsten returnerar två kolumner med information: Dokument-ID och titel. Business Syftet här är att ge en "detta dokument är baserad på" funktionen. Användare väljer en "master" dokumentet och när de sparar, en händelsemottagare kopieras meta datafälten från refererade master.
Som standard, BDC-plockaren ser ut så här när jag söker efter ett dokument vars ID = "38":
Det är bra, men inte tillräckligt bra. Människor tror inte i form av ID: N, de tycker om titlar och/eller andra metadata. Plockaren kan du söka på andra kolumner (t.ex. Avdelning) men kommer inte att Visa faktiska listan över titlar det Funna, bara deras DocId: s som visas här:
(Skärmbilden är inte så bra eftersom jag inte plocka en sökning som returnerar alla giltiga resultat, men du kan se att om det hade funnit vissa resultat, Det skulle bara ha visat docids, inte titlar).
Jag sökte högt och lågt för svaret på detta och kunde inte. Min kollega, den ärevördiga Jonathan Bradshaw, hade haft och löst problemet. När jag nådde ut till honom om hjälp, Han pekade mig i rätt riktning.
Konfigurera färgväljaren för att visa flera kolumner via "ShowInPicker" egendom i den automatiska Dokumentmataren:
<Egenskapen Namn="ShowInPicker" Typ="System.Boolean">sant</Egenskapen>
Mer i detalj:
<!-- Avdelning -->
<TypeDescriptor TypeName="System.String" Namn="Avdelning" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">Avdelning</LocalizedDisplayName>
</LocalizedDisplayNames>
<Egenskaper>
<Egenskapen Namn="DisplayByDefault" Typ="System.Boolean">sant</Egenskapen>
<Egenskapen Namn="ShowInPicker" Typ="System.Boolean">sant</Egenskapen>
</Egenskaper>
</TypeDescriptor>
Anger den här egenskapen medför ett mindre problem. Så snart du ställa in den en gång, Du måste ange det för varje kolumn som du vill visa. I mitt fall, BDC-picker visade DocId som standard. Men, När jag lagt till "ShowInPicker" till titel, DocId inte längre visas. Jag löste det genom att uttryckligen ange egenskapen ShowInPicker för Doc-ID.
Här är resultatet:
(Jag ska förklara de besynnerliga "168 – CamlSchema.xsd" konstruktion i ett framtida blogginlägg. I korthet, Det är en sammanfogade strängen som möjliggör en något bättre användarupplevelse).
Självklart, att ha skrivit denna bloggpost, Jag gjorde en sökning efter "ShowInPicker" och hittade många träffar, inklusive denna: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Det förklarar innebörden av fastigheten tillsammans med några andra bra BDC-saker.
</slutet>
Prenumerera på min blogg!