Der må kun være én i difference til hver side. Dvs dette er ok:
99 99 giver en difference på 0 = OK
46 47 giver en difference på -1 på den øverste værdi = OK
33 32 giver en difference på +1 på den øverste værdi = OK
64 66 giver en værdi på mere end én (-2) på den øverste værdi = Ikke OK
Dvs hvis differencen er -1 eller 0 eller +1, er det ok
Jeg vil gerne tydeliggøre bedre hvornår det er ok, og hvornår det ikke er.
Hvis differencen overholder kriterierne, skal begge værdier være grønne. For at understrege det tydeligere, vil jeg have udskrevet differencen set i forhold til hinanden:
GRØN: 5 / -1 6 / +1
14 14
6 / +1 5 / -1
Hvis der ikke er nogen difference, behøver der ikke stå
14 / 0 14 / 0
men blot
14 14
Hvis værdierne ikke overholder kriterierne, skal begge værdier være røde. Forskellen anskueliggøres.
RØD: 14 / +2 12 / -2
12 / -2 14 / +2
Hvis diff < 2 (1 eller 0 eller -1) så er det ok (GRØN) Hvis diff > 1 (2 eller -2, eller endnu større) så er det ikke ok (RØD)
Det burde være a walk in the park. Men det driller. Håber det er til at forstå, og håber en af Jer kan hjælpe.
c1 = RSCountTotal1("Number1") c2 = RSCountTotal2("Number2") d1 = c1 - c2 d2 = c2 - c1 if abs(d1) > 1 then col = "red" else col = "green" end if if d1 = 0 then s1 = "" else s1 = cstr(d1) end if if d2 = 0 then s2 = "" else s2 = cstr(d2) end if
<div><span class="< % If diff < -2 Or diff < 2 Then %>grøn_farve<% Else %>rød_farve<% End If %>"><%=RSCountTotal1("Number1")%><% If diff <> 0 Then %> / <%=[DIFF]%><% End If %></span></div>
<div><span class="< % If diff < -2 Or diff < 2 Then %>grøn_farve<% Else %>rød_farve<% End If %>"><%=RSCountTotal2("Number2")%><% If diff <> 0 Then %> / <%=[DIFF]%><% End If %></span></div>
Det kunne nok laves lidt smartere med CASE SELECT el.lign. Men det er idéen.
Nu kommer der et + tegn ind foran det positive tal. Men jeg får et + ind foran det negative tal også:
2 / +-1 3 / +1
Det ser således ud nu:
If vSum1 = 0 Then Diff1 = " 0" ElseIf vValue1 < 0 Then Diff1 = Cstr(vSum1) Else Diff1 = "+" & Cstr(vSum1) End If If vSum2 = 0 Then Diff2 = " 0" ElseIf vValue2 < 0 Then Diff2 = Cstr(vSum2) Else Diff2 = "+" & Cstr(vSum2) End If
If vSum1 = 0 Then Diff1 = " 0" ElseIf vValue1 < 0 Then ' <----------------- test vValue1 men skal nok vaere vSum1 Diff1 = Cstr(vSum1) Else Diff1 = "+" & Cstr(vSum1) End If
If ABS(vSum1) > 1 Then vStyle = "ColorRed" Else vStyle = "ColorGreen" End If
If vSum1 = 0 Then Diff1 = " 0" ElseIf vSum1 < 0 Then Diff1 = Cstr(vSum1) Else Diff1 = "+" & Cstr(vSum1) End If If vSum2 = 0 Then Diff2 = " 0" ElseIf vSum2 < 0 Then Diff2 = Cstr(vSum2) Else Diff2 = "+" & Cstr(vSum2) End If
Så kan man se hvor meget der skal rykkes op eller ned for at få balance i tingene.
Det lykkedes, det er testet igen og igen, og det virker :)
If Diff1 < -1 Or Diff1 > 1 Then delta1 = ABS(vSum1) \ 2 Else delta1 = "0" End If
If Diff2 < -1 Or Diff2 > 1 Then delta2 = ABS(vSum2) \ 2 Else delta2 = "0" End If
3 / -3 (0) 5 / +3 (1)
Dvs nu vises der, at der skal tages én fra den nederste og lægges op i den øverste.
Jeg har testet med langt større differencer og regnet på hvor meget der skal lægges op eller ned, og det virker hver gang!
Endnu en gang tak, Arne! Det er jo fantastisk :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.