SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Listen-Nachschlagespalte im Designer benutzen

Unbeantwortet Dieser Beitrag hat 4 Antworten

Ohne Rang
496 Beiträge
Derby erstellt 8 Mai 2013 12:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich bin auf der Suche wie ich die Nachschlagespalte einer SharePoint Liste im Designer benutzen kann.

Situation:

Liste A für Status:

Besteht nur aus 1 Spalte (Status) mit je einem Eintrag für jeden Status

Liste B mit Nachschlagefeld (Status) auf Liste A (Spalte Status) in :

Jetzt möchte ich im Designer ein Bedingung einbauen:

Wenn Status(Liste A) entspricht Wert --> Und hier kommt das Problem, da es sich bei der Spalte um eine Nachschlagspalte handelt, habe ich kein Auswahl wie in einem Choice-Feld.

An dieser Stelle ist nur der Designer-Nachschlagevorgang möglich, bei dem man aber einen Vergleichswert  "eintippen" muss, was aber zu Falscheingaben führen kann.

Bisherige Möglichkeiten:

  1. Auswahlfeld benutzen ---> wäre möglich, soll aberein Status hinzugefügt/geändert werden, muss das Auswahlfeld im Contenttype geändert werden.
    Das soll möglichst verhindert werden wegen:
    Usability --> Ändern in Liste Benutzerfreundlicher
    Deployment, Contenttype wird über Lösung deployed, bei Update der Lösung wird Änderung im Contenttype überschrieben
  2. Textfeld benutzen --> die einfachste aber fehleranfälligste Lösung da man sich verschreiben kann.

Die für mich einfachste Lösung wäre wenn im Designer die Werte der Nachschlagespalte ebenfalls als Auswahl angezeigt würden, was ja aber nicht funktioniert. Hat jemand ne praktikable Lösung oder Idee wie man das bewerkstelligen kann?

Grüße Derby

Alle Antworten

Ohne Rang
508 Beiträge
Tom Scheuermann Als Antwort am 11 Mai 2013 16:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi !

Ich bin mir noch nicht ganz sicher, ob ich Dein Problem richtig verstanden habe - aber vielleicht hilft ja folgendes:

Nachschlagefelder speichert SharePoint intern in einem splitbaren Format (z.B. 1;Wert - wobei 1 die ID darstellt). Das führt mitunter zu Problemen ....
Evtl. hilft es Dir weiter, wenn Du ein berechnetes Feld auf das Auswahlfeld erstellst und darauf dann die bedingte Formatierung durchführst ?

Greets

Tom

ts (-at-) computer-kreativ.de

Microsoft Certified IT Professional: SharePoint 2010 Administration
Microsoft Certified Technoligie Specialist: SharePoint 2010 Configuring

Ohne Rang
496 Beiträge
Derby Als Antwort am 13 Mai 2013 11:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke, aber ne berechnete Spalte bringt mir nix, ich brauch ne Auswahlmöglichkeit. Ich hab mein Problem nochmal Grafisch dargestellt, vielleicht ist das verständlicher.

 

kurz gefasst, wie bekomme ich den Inhalt der Elemente einer bestimmten Spalte+Liste in ein Auswahlfeld, welches im SP-Designer zur Verfügung steht

Vielleicht hat auch jemand ne Idee wie man das per Script/Code bewerkstelligen kann. Eventuell gibts dafür schon eine Workflow-Action.

 

Gruß Derby

Ohne Rang
496 Beiträge
Derby Als Antwort am 16 Mai 2013 18:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nach einiger Suche im Netz habe ich jetzt erstmal eine Möglichkeit gefunden, Listeneinträge in eine Choice-Field zu importieren. Dafür benutze ich erstmal ein Powershellscript:

 

if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {

     Add-PSSnapin Microsoft.SharePoint.PowerShell;

}

#Variablen

    $web = "Websitenname" #Name der Website

    $sourceListName = "Listenname" #Name der Quellliste

    $choicelistName = "Listenname"   #Name der Zielliste des Auswahlfeldes

    $choicelistfield ="Feldname"         #Name des Auswahlfeldes

#Stauswerte aus Liste holen

function GetListitems()

{

    #Stauswerte aus Liste holen

    Write-Host "-----------------------------------"

    Write-Host "///Hole items aus Liste"

    $spSourceWeb = Get-SPWeb $web

    Write-Host "Listen Website: $web Name: $spSourceWeb"

    Write-Host "-----------------------------------"

    $spSourceList = $spSourceWeb.Lists[$sourceListName]

    Write-Host "Liste: $spSourceList"

    Write-Host "-----------------------------------"

    $global:spSourceItems = $spSourceList.GetItems() | select name 

    $global:spSourceItems

    Write-host "////Werte ermittelt"

    Write-Host "-----------------------------------"

    }

#Auswahlfeld editieren

function SetFielditems()

{

    #Hole entsprechendes Choice-Fiel

    $spchoiceWeb = Get-SPWeb $web

    Write-Host "Listen Website: $web Name: $spchoiceWeb"

    Write-Host "-----------------------------------"

    $choicelist = $spchoiceWeb.lists[$choicelistName]

    Write-Host "Liste: $choicelist"

    Write-Host "-----------------------------------"

    $choice = $choicelist.fields[$choicelistfield]

    Write-Host "Feld: $choice"

    Write-Host "-----------------------------------"

    Write-Host "Alte Werte:"

    Write-Host $choice.choices   

    Write-Host "-----------------------------------"

    Write-Host "///Fülle Choicefield mit Werten"

    #Auswahl leeren

    $choice.choices.clear()

    #Auswahl korrigieren

    $choiceArrayNew = @()

    $global:spSourceItems | foreach-object {$choiceArrayNew += $_.Name }  

    #Auswahl in Choice schreiben

    $choice.choices.addrange($choiceArrayNew)

    $choice.update()

    #$choice.choices

    Write-Host "-----------------------------------" 

    Write-Host "Neue Werte:"

    Write-Host $choiceArrayNew

    Write-Host "-----------------------------------"    

    Write-Host "///Choice-Field befüllt"

    Write-Host "-----------------------------------"

}

GetListitems

SetFielditems

 

Läst sich mit Sicherheit noch kürzen, die ganzen Write Einträge sind nur zur Kontrolle. 

Jetzt muss das nur noch in den Code der Lösung importiert werden, damit bei jedem Eintrag in der Liste das Auswahlfeld korrigiert wird.

Wie kann man hier Code "lesbarer" einfügen?

Derby

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 17 Mai 2013 09:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Derby"]Jetzt muss das nur noch in den Code der Lösung importiert werden, damit bei jedem Eintrag in der Liste das Auswahlfeld korrigiert wird[/quote]

Dazu müßte dann ein EventReceiver entwickelt werden...

[quote user="Derby"]Wie kann man hier Code "lesbarer" einfügen?[/quote]

Das ist ein echtes Problem. Ich gehe meist den Umweg über Notepad, d.h. zuerst nach Notepad kopieren und erst dann hierher. Dabei gehen dann aber alle Formatierungen verloren.

Viele Grüße
Andi
af @ evocom de
Blog