Just nu i M3-nätverket
Gå till innehåll

If satser urval


artlind

Rekommendera Poster

Hej har fastnat i denna fas. 

 

Här är alla värden.

 

1W1, 2W1, 2W2, 4W1, 4W2, 4W3, 4W4

 

Formel ovan:

1=Varje vecka /2=Varannan vecka /4=Var fjärde vecka 

Week

Startvecka

 

Har jag inga problem att visa upp produkterna på utgiven förinställd leverans baserad på startveckorna enligt ovan. Men om jag istället bestämmer att kundens val av startvecka ska väga före så får jag inte ihop ekvationen.

 

Säg att jag väljer att kund ska ha startvecka 3, oavsett om produkterna är listade som startvecka 1,2,4 så vill jag visa allt efter kundens startvecka.

 

Exempel:

 

vald vecka: 2

 

if CInt(objRS("Week")) = 2 OR CInt(objRS("Week")) = 4 then

 cWeek="Even"

else

 cWeek="Odd"

end if

 

if CInt(request.item("Week")) = CInt(objRS("Week")) then

 cShow="Visa 1w, 2w och 4w"

elseif

 if cWeek="Even" then

 cShow="Visa alla 1w och alla jämna veckor"

 elseif cWeek="Odd" then

 cShow="Visa bara 1W leveranser"

 end if

end if

 

 

If "från villkoren ovan" then

 

Här ska valda produkter visas baserat på oavstående kod.

 

End if

 

 

EXEMPEL hur utdatan ska se ut

 

Vald nuvarande vecka: 2

 

kund startv produkt

KUND1 2 1W1, 2W2, 4W4

KUND2 1 1W1 (2W1 OCH 4W3 SYNS EJ HÄR)

KUND3 4 1W1, 2W2 (4W2 SYNS INTE)

KUND4 2 1W1, 2W1, 4W3

KUND5 3 1W1, (2W1 SYNS INTE)

KUND6 1 (4W3 SYNS INTE)

 

Länk till kommentar
Dela på andra webbplatser

Kan du förklara tydligare vad du menar!

 

och kontrollera att utdata vecka 2 verkligen stämmer samt ge utdata när nuvarande vecka är 1, 3, 4 och 5

Länk till kommentar
Dela på andra webbplatser

Är det så att du har produkter som ska levereras med olika intervall?

T.ex.

Produkt A med leveranskod 1w1 ska levereras varje vecka

Produkt B med leveranskod 2w1 ska levereras varannan vecka (antingen v1+3 eller v2+4 beroende på kundens startvecka)

Produkt C med leveranskod 4w1 ska levereras var 4:e vecka, alltså v1+5 etc om kunden har startvecka 1

Produkt C med leveranskod 4w1 ska levereras var 4:e vecka, alltså v2+6 etc om kunden har startvecka 2

Produkt C med leveranskod 4w1 ska levereras var 4:e vecka, alltså v3+7 etc om kunden har startvecka 3

Produkt C med leveranskod 4w1 ska levereras var 4:e vecka, alltså v4+8 etc om kunden har startvecka 4

 

Produkt D med leveranskod 4w2 ska levereras var 4:e vecka start v2, alltså v2+6 etc om kunden har startvecka 1

Produkt D med leveranskod 4w2 ska levereras var 4:e vecka start v2, alltså v3+7 etc om kunden har startvecka 2

Produkt D med leveranskod 4w2 ska levereras var 4:e vecka start v2, alltså v4+8 etc om kunden har startvecka 3

Produkt D med leveranskod 4w2 ska levereras var 4:e vecka start v2, alltså v5+9 etc om kunden har startvecka 4

Länk till kommentar
Dela på andra webbplatser

Hej,

 

 

Det är korrekt att i original koden jag skev så fungerar leveransscheman så här

 

1w1 varje vecka

2w1 varannan vecka udda veckor

2w2 varannan vecka jämna veckor

4w1 var fjärde, startv 1 (löper 1,5,9 osv)

4w2 var fjärde, startv 2 (löper 2,6,10 osv)

4w3 var fjärde, startv 3 (löper 3,7,11 osv)

4w4 var fjärde, startv 4 (löper 4,8,12 osv)

 

Detta visades upp genom att jag tog "DAGENS STARTVECKA" och sedan visade upp de produkter som är kopplad till rätt vecka. Denna kod ligger på varje produkt. Och listade upp kunden så fort den produkten skulle levereras. Jag väljer bara att visa vecka 1-4 och inte räkna vidare för att spara tid och kraft, det är mest för att kunna få en överblick.

 

Men när jag ska testa mig fram om jag väljer att kunden får en startvecka istället som går före vad som står på produkterna. Tex. jag vill att kunden ska ha en startvecka 3 och visar då alla fyrveckors oavsett om det står 4w2 samt jämna veckor fast att det står 2w1. Bara ta hänsyn till vilken typ av leveransschema det är och inte vilket startvecka den har i det andra skriptet jag har. Detta för att kunna laborera så fort man tycker att det är för mycket leveransuppdrag kopplat till den bilen/dag/vecka och sedan ändra leveransschemat på produkterna när man är nöjd med den nya ändringen.

 

Tanken är att kunna leka med schemat och kunna se hur mycket leveranser det blir utan att förstöra den faktiska leveransschemat samt att slippa ändra alla produktscheman för att se att det blir bra fördelat.

Länk till kommentar
Dela på andra webbplatser

Här är ett utdrag ur koden som jag visar upp faktiska leverans scheman:

 

OBS, jag har upp till 12 veckor men lägg ingen vikt på detta jag får anpassa lösningen efter detta.

 

Plan1W="1W1"
if Request.Item("w") = "2" then
Plan2W="2W2"
Plan3W="3W2"
Plan4W="4W2"
Plan8W="8W2"
Plan8bW="8W6"
Plan10W="10W2"
Plan10bW="10W6"
Plan10cW="10W10"
Plan12W="12W2"
Plan12bW="12W6"
Plan12cW="12W10"
elseif Request.Item("w") = "3" then
Plan2W="2W1"
Plan3W="3W3"
Plan4W="4W3"
Plan8W="8W1"
Plan8bW="8W5"
Plan10W="10W3"
Plan10bW="10W7"
Plan12W="12W3"
Plan12bW="12W7"
Plan12cW="12W11"
elseif Request.Item("w") = "4" then
Plan2W="2W2"
Plan4W="4W4"
Plan8W="8W4"
Plan8bW="8W8"
Plan10W="10W4"
Plan10bW="10W8"
Plan12W="12W4"
Plan12bW="12W8"
Plan12cW="12W12"
else
Plan2W="2W1"
Plan3W="3W1"
Plan4W="4W1"
Plan8W="8W1"
Plan8bW="8W5"
Plan10W="10W1"
Plan10bW="10W5"
Plan10cW="10W9"
Plan12W="12W1"
Plan12bW="12W5"
Plan12cW="12W9"
end if
 
 
 
 
if objRS("Plan") = Plan1W OR objRS("Plan") = Plan2W OR objRS("Plan") = Plan4W OR objRS("Plan") = Plan3W OR objRS("Plan") = Plan4W OR objRS("Plan") = Plan8W OR objRS("Plan") = Pla8bW  OR objRS("Plan") = Plan10W  OR objRS("Plan") = Plan10bW  OR objRS("Plan") = Plan10cW  OR objRS("Plan") = Plan12W  OR objRS("Plan") = Plan12bW  OR objRS("Plan") = Plan12cW then
 
 
produkterna visas här
 
end if

 

 

Kanske väldig invecklat och konstigt uppbyggt men det fungerar.

Länk till kommentar
Dela på andra webbplatser

Med denna kod lyckas jag visa alla och delar upp dom med bakgrundsfärger för att se att man har gjort rätt med uppdelning av kategorier. Hur gör jag om denna kod och omvandlar den så att man slipper göra en hemma gjord loop efter denna kod:

 

 

 

IF CInt(objRSk("WeekTour")) = 1 then

  IF CInt(objRSk("WeekTour")) = CInt(request.item("w")) then

strBgcolor="GREEN"

   cShow="1"

  ELSEIF CInt(request.item("w")) = 1 OR CInt(request.item("w")) = 3 then

strBgcolor="YELLOW"

   cShow="2"

  ELSE

strBgcolor="RED"

   cShow="3"

  END IF

 

ELSEIF CInt(objRSk("WeekTour")) = 3 then

  IF CInt(objRSk("WeekTour")) = CInt(request.item("w")) then

strBgcolor="GREEN"

   cShow="1"

  ELSEIF CInt(request.item("w")) = 1 OR CInt(request.item("w")) = 3 then

strBgcolor="YELLOW"

   cShow="2"

  ELSE

strBgcolor="RED"

   cShow="3"

  END IF

 

ELSEIF CInt(objRSk("WeekTour")) = 2 then

  IF CInt(objRSk("WeekTour")) = CInt(request.item("w")) then

strBgcolor="GREEN"

   cShow="1"

  ELSEIF CInt(request.item("w")) = 2 OR CInt(request.item("w")) = 4 then

strBgcolor="YELLOW"

   cShow="2"

  ELSE

strBgcolor="RED"

   cShow="3"

  END IF

 

ELSEIF CInt(objRSk("WeekTour")) = 4 then

  IF CInt(objRSk("WeekTour")) = CInt(request.item("w")) then

strBgcolor="GREEN"

   cShow="1"

  ELSEIF CInt(request.item("w")) = 2 OR CInt(request.item("w")) = 4 then

strBgcolor="YELLOW"

   cShow="2"

  ELSE

strBgcolor="RED"

   cShow="3"

  END IF

END IF

 

 

if cShow="2" then

 if objRSm("cwsPlan") = "1W1" OR objRSm("cwsPlan") = "2W1" ORobjRSm("cwsPlan") = "2W2" then

'visar en veckor och två veckors

'här vill man inte loopa om all output

 

elseif cShow="3" then

 if objRSm("cwsPlan") = "1W1" then

'visar en veckors

'här vill man inte loopa om all output

 

else

'cShow="1"

'visar allt

'här vill man inte loopa om all output
Länk till kommentar
Dela på andra webbplatser

Tyvärr så har jag inte tid att försöka hjälpa dig med detta.

För mycket och för svårt att exakt förstå vad du menar.

Länk till kommentar
Dela på andra webbplatser

Har inte satt mig in i problemet,i koden, men ser potentiella problem i hur den är skapt.

 

En enkel grundtanke när vi pratar programmering är atomära procedurer/funktioner.

 

Dvs varje funktion gör sin sak och är duktig på exakt detta. Fundera på om du inte kan ersätta trädet med komplexa IF-satser men några enstaka funktioner som du kan anropa med dina värden?

 

Samt minnas det enkla men visa i orden att:

Om det går att lösa med formler på bladet, gör det!

 

Spontant, efter en titt till i koden skulle jag nog skapa en lista med dina värden/villkor och resultat i.

Sedan skapa en loop som går igenom listan.kanske. och, som sagt, lägga så mycket "intelligens" som möjligt i fomler på bladet. 

 

Försök dela upp det hela i en mer generell kod. Det ovan är svårt att läsa och förstå vad som sker.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...