webForumDet fria alternativet

Problem med formula (Sharepoint)

Webbutveckling

10 svar · 1 157 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Har satt upp en sandlåda i MOSS 2010 och testar lite saker.

Jag har ett 'document library' där jag har skapat en kolumn där jag vill visa olika status för ett dokument. Version 0.x är draft, 1.x är Review 1 osv...
Versionsnummren finns i en annan kolumn som heter Version.

Jag har testat med denna formula, men den fungerar inte helt:

=IF(ISNUMBER(FIND("0.",Version)),"Draft",IF(ISNUMBER(FIND("1.",Version)),"Review 1",IF(ISNUMBER(FIND("2.",Version)),"Review 2",IF(ISNUMBER(FIND("3.",Version)),"Final"))))

Är helt grön på Sharepoint, men förhoppningsvis är det någon här som kan mer.
Någon som har tips på hur det ska vara?

Medlem sedan juni 20006 031 inlägg
#2

Verkar vara fel ställe att ställa sharepoint frågor. Får nog leta mig vidare...

Medlem sedan juni 2009920 inlägg
#3

Jag förstår ärlig talat inte problemet, vill du ha en kolumn som visar dokumentets "status"? Vore det inte enklare att använda den inbyggda versionshanteringen?

Medlem sedan juni 20006 031 inlägg
#4

Om du menar den inbyggda versionshanteringen som visar Approved etc så är svaret att vi inte vill använda den utan dom statusar jag har angett i mitt första inlägg.
Alltså ett dokument som har version 1.x ska ha statusen 'Review 1' även om den inbyggda versionshanteringen säger 'Draft', 'Approved' eller något annat.

Medlem sedan juni 2009920 inlägg
#5

Skapa en eventreceiver för dokumentbiblioteket, (itemadding, itemupdating) där du kollar värdet i kolumnen version och uppdaterar texten i en annan kolumn efter versionsnumret

Med reservation för att jag krånglar till det onödigt, ska kolla så fort jag orkar släpa mig till datorn

EDIT: såg att du tänkte lösa det med formula, läste inte riktigt ordentligt först

Medlem sedan juni 20006 031 inlägg
#6

Som sagt, jag är helt noob när det gäller sharepoint så jag vet inte vilka möjligheter det finns att uppnå resultatet jag vill ha. Så alla förslag är välkommna.

Medlem sedan juni 2009920 inlägg
#7

Problemet är att metoden FIND inte returnerar en boolean (om strängen innehåller en annan sträng), utan var i strängen som värdet finns. Du kan läsa mer här: http://office.microsoft.com/en-us/windows-sharepoint-services-help/find-function-HA001160996.aspx

Medlem sedan juni 20006 031 inlägg
#8

Jag vet. FIND returnerar en siffra om det är en träff, det är därför jag har ISNUMBER som returnerar boolean om FIND returnerar e siffra.
Men finns det något bättre sätt än att använda formula?

Medlem sedan juni 2009920 inlägg
#9

Egentligen inte, man kan göra på andra sätt, men det är bara krångligt. Har du kollat så att version verkligen står på det sättet du tror?

Medlem sedan juni 20006 031 inlägg
#10

Ja, ibland visar den rätt för Draft och Final men aldrig för dom andra.
Har även testat en del med att använda OR på olika sätt utan att lyckas.
Hittar inte så mycket dokumentation om formulas heller.

Medlem sedan juni 20006 031 inlägg
#11

Ok, lyckades få till min formula för några dagar sen. Postar den här om någon har nytta av det. (Den skulle vara nästlad)

=IF(ISNUMBER(FIND("0.",Version)),"Draft",IF(ISNUMBER(FIND("1.",Version)),"Internal Review",IF(ISNUMBER(FIND("2.",Version)),"Review 1",IF(ISNUMBER(FIND("3.",Version)),"Approved"))))

Problemet jag har nu är att allt fungerar så länge en fil inte ändras.
Väljer man t.ex att skapa en ny major version så returnerar formulan blankt.
Går jag in och sparar kolumn inställningarna igen, utan att ändra något, så uppdateras kolumnen som den ska.

Är det något jag kan påverka, eller är det så i Sharepoint?

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)