I min igangværende forsøg på at give en mere nyttigt opslagskolonnen ved hjælp af BDC, Jeg ramte en mur med BDC-picker. Hvis du ikke ser det, BDC-picker er svarende til en mennesker picker, bortset fra at det virker med kolonner af typen "business data".
Du få adgang til vælgeren til ved at klikke på symbolet for den åbne bog af en firmadatakolonne som vist:
Ovenstående billede viser en firmadatakolonne, kaldet "Master dokument Id". Denne kolonne er forbundet, via BDC, til en webtjeneste. Webtjenesten returnerer to kolonner med oplysninger: Dokument-ID og titel. Den forretningsmæssige formål her er at give en "dette dokument er baseret på" funktion. Brugerne vælger en "master" dokument, og når de gemmer, en event modtager kopier meta datafelter fra den refererede master.
Som standard, BDC-picker ser sådan her ud når jeg søger efter et dokument med ID'ET = "38":
Det er nyttigt, men ikke godt nok. Folk tænker ikke i id'er, de tror i titler og/eller andre metadata. Farvevælger kan du søge på andre kolonner (strømsparetilstand. Titel) men ikke vil vise den aktuelle liste af titler det fundet, bare deres DocId's som vist her:
(Skærmbilledet er ikke så stor, fordi jeg ikke vælge en søgning, der returnerer nogen gyldige resultater, men du kan se, at hvis det havde fundet nogle resultater, Det ville kun have vist Docids, ikke titler).
Jeg søgte højt og lavt efter svar på dette og mislykkedes. Min kollega, de ærværdige Jonathan Bradshaw, havde stillet og løst problemet. Da jeg nåede til ham for at få hjælp, han pegede mig i den rigtige retning.
Konfigurere picker for at vise flere kolonner via "ShowInPicker" ejendom i ADF'EN:
<Ejendom Navn="ShowInPicker" Type="System.Boolean">True</Ejendom>
Mere detaljeret:
<!-- Titel -->
<TypeDescriptor TypeName="System.String" Navn="Titel" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">Titel</LocalizedDisplayName>
</LocalizedDisplayNames>
<Egenskaber>
<Ejendom Navn="DisplayByDefault" Type="System.Boolean">True</Ejendom>
<Ejendom Navn="ShowInPicker" Type="System.Boolean">True</Ejendom>
</Egenskaber>
</TypeDescriptor>
Angiver denne egenskab indfører et mindre problem. Så snart du indstille det én gang, Du skal angive det for hver kolonne, du vil vise. I mit tilfælde, BDC-picker viste DocId som standard. Dog, Når jeg tilføjet "ShowInPicker" til titel, DocId ikke længere vises. Jeg løste det ved eksplicit at angive egenskaben ShowInPicker for Doc ID.
Her er resultatet:
(Jeg vil forklare de mærkeligt udseende "168 – CamlSchema.xsd" konstruktion i et kommende blogindlæg. Kort sagt, Det er en sammenkædede streng, der giver mulighed for en lidt bedre brugeroplevelse).
Selvfølgelig, efter at have skrevet denne blog, Jeg gjorde netop en søgning efter "ShowInPicker" og fundet mange hits, herunder denne ene: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Det forklarer betydningen af ejendommen sammen med nogle andre gode BDC-ting.
</slutningen>
Abonner på min blog!