Jag undrar om det går att skapa någon smartare funktion eller case för en if-sats som denna?
if strTyp ="d" and intSel = "W" then
Antal=intAntal*7
elseif strTyp="ww" and intSel ="W" then
Antal=intAntal
elseif strTyp="ww" and intSel="M" then
Antal=intAntal*4
elseif strTyp="d" and intSel="M" then
Antal=intAntal*31
elseif strTyp="m" and intSel="M" then
Antal=intAntal
elseif strTyp="m" and intSel="W" then
Antal=intAntal*4
end if
Med en så pass enkel kod som denna så har det ingen större betydelse vilken typ av konstruktion man använder. Det viktigaste är läsbarhet och att koden är lätt att förstå. Personligen tycker jag att det är tydligare att skriva så här
select case intsel
case "W"
select case strtyp
case "d" Antal=intAntal*7
case "ww" Antal=intAntal
case "m" Antal=intAntal*4
end select
case "M":
select case strtyp
case "d" Antal=intAntal*31
case "ww" Antal=intAntal*4
case "m" Antal=intAntal
end select
end select
Tack, min tanke var att få det så optimerat som det går. Det blev så här:
select case intSel
case "datDay"
select case strTyp
case "d" Antal=intAntal
case "ww" Antal=intAntal/7
case "m" Antal=intAntal/31
end select
case "datWeek"
select case strTyp
case "d" Antal=intAntal*7
case "ww" Antal=intAntal
case "m" Antal=intAntal/4
end select
case "datMonth"
select case strTyp
case "d" Antal=intAntal*31
case "ww" Antal=intAntal*7
case "m" Antal=intAntal
end select
end select
Hoppas att det blir rätt nu.
537 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91