Allmänt meddelande

Collapse
No announcement yet.

Nollställnings-script

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Nollställnings-script

    Rikard,
    jag försöker få till ett script som nollställer celler kl.09.45, men det fungerar
    inte, kan du se vad som är fel? När scriptet ansluts tömmer det cellerna med en gång....
    Scriptet ska vara aktivt kl.09.45 till kl.09.55.


    tim1:=09
    min1:=45
    morgon:=add(mult(tim1,60),min1)
    start:=DIV(morgon,1440)
    inom1:=LE(frac(DATE()),start)
    tim2:=09
    min2:=55
    kväll:=add(mult(tim2,60),min2)
    slut:=DIV(kväll,1440)
    inom2:=GE(frac(DATE()),slut)
    { Systemklockan användes }
    utanför:=OR(inom1,inom2)
    tidskontroll:=not(utanför)
    {-----------------------------------------------------------------}
    tittabakåt:=44
    nollställ:=Not(eqv(int(ref(d,tittabakåt)),int(d)))
    nollställn1:=SetGVarIf(0,110,nollställ)
    nollställn2:=SetGVarIf(0,120,nollställ)
    nollställn3:=SetGVarIf(0,130,nollställ)
    nollställn4:=SetGVarIf(0,140,nollställ)
    i45(
    test1=And(tidskontroll,nollställn1)
    test2=And(test1,nollställn2)
    test3=And(test2,nollställn3)
    test4=And(test3,nollställn4)
    )

  • #2
    Problemet är nog att det förekommer några namn som är delnamn av andra variabler. Det blir kaos.

    Tex "nollställ" som är del av "nollställn1" osv. Unika namn så fungerar det som tänkt.

    Comment


    • #3
      Ursprungligen postat av Rikard Nilsson Visa inlägg
      Problemet är nog att det förekommer några namn som är delnamn av andra variabler. Det blir kaos.

      Tex "nollställ" som är del av "nollställn1" osv. Unika namn så fungerar det som tänkt.

      Hmm, lurigt.
      Jag har ändrat nollställ till nollstall, får se om det hjälper imorgon.

      Comment


      • #4
        Sorry,
        det fungerade inte.
        När jag uppdaterade layouten på j-terminen nollställdes cellerna...

        Comment


        • #5
          Jag anslöt scriptet på den andra AT8 installationen och wipps,
          så var alla linjerna borta där med, och klockan är nu innan 09.45,
          så scriptet fungerar inte.

          Jag tror det har något med And-villkoren att göra.

          Tidsintervallet addas med 4 värdena i cellerna.
          Det verkar som man kanske behöver någon flagga som slås på/av.

          Jag hittade scriptet i forumet Rikard där du hjälpte en annan kund med
          något liknande "10 punkter vinst och stopp för dagen".

          Synd att inte scriptet fungerar här..

          Comment


          • #6
            Du har fortfarande delnamn av variabler som krockar. Och som raden med nollställ ser ut nu nollar den cellerna de första 44 perioderna varje dag, och eftersom scriptet körs i 45-perioders upplösning blir det ju hela dagen.

            Jag är inte riktigt med på vad scriptet ska returnera för värde sist? Som det är nu ANDas en del "skräpdata" ihop. Raderna med SetGVarIf returnerar inget vettigt, de programmerar bara celler. Så variabeltilldelningen behövs inte där.

            Jag skulle nog använda minutupplösning för att kunna styra tiderna lite mer exakt när olika saker ska hända:


            tidnu:=Frac(DATE())
            minutersedanmidnatt:=Mult(tidnu,1440)
            inom0945_0955:=And(Gt(minutersedanmidnatt,585),Lt(minutersedanmidnatt,595))

            Det här blir sant mellan kl 09:45 och 09:55, så det kan användas till att programmera celler eller nollställa. Men det vore bra med lite mer info om vad scriptet ska göra. Ring om du vill, jag är på kontoret det mesta av dagen.

            Comment


            • #7
              Det enda scriptet ska göra är att nollställa cellerna
              110,120,130,140
              en gång kl.09.45, inte svårare än så.

              Nu ser scriptet ut så här:



              tim1:=09
              min1:=45
              morgon:=add(mult(tim1,60),min1)
              start:=DIV(morgon,1440)
              inom1:=LE(frac(DATE()),start)
              tim2:=09
              min2:=55
              kväll:=add(mult(tim2,60),min2)
              slut:=DIV(kväll,1440)
              inom2:=GE(frac(DATE()),slut)
              { Systemklockan användes }
              utanför:=OR(inom1,inom2)
              tidskontroll:=not(utanför)
              {---------------------------------------------------------------------}
              tittabakåt:=44
              nollstall:=Not(eqv(int(ref(d,tittabakåt)),int(d)))
              nollställn1:=SetGVarIf(0,110,nollstall)
              nollställn2:=SetGVarIf(0,120,nollstall)
              nollställn3:=SetGVarIf(0,130,nollstall)
              nollställn4:=SetGVarIf(0,140,nollstall)
              i45(
              test1=And(tidskontroll,nollställn1)
              test2=And(test1,nollställn2)
              test3=And(test2,nollställn3)
              test4=And(test3,nollställn4)
              )

              Comment


              • #8
                Ok, vi ändrar lite:

                tidnu:=Frac(DATE())
                minutersedanmidnatt:=Mult(tidnu,1440)
                inom0945_0955:=And(Gt(minutersedanmidnatt,585),Lt(minutersedanmidnatt,595))
                {---------------------------------------------------------------------}
                nollställn1:=SetGVarIf(0,110,inom0945_0955)
                nollställn2:=SetGVarIf(0,120,inom0945_0955)
                nollställn3:=SetGVarIf(0,130,inom0945_0955)
                nollställn4:=SetGVarIf(0,140,inom0945_0955)
                i60(
                test1=And(inom0945_0955,nollställn1)
                test2=And(test1,nollställn2)
                test3=And(test2,nollställn3)
                test4=And(test3,nollställn4)
                )

                Nu har vi ett script som ska vara aktivt
                inom0945_0955
                nollställn1 till nollställn4 sätter 0 till cellerna
                Villkoret AND:as ihop för att köras i 60min intervall

                dvs vad jag vill är att
                nollställn1 till nollställn4 bara sätter 0 till cellerna
                inom0945_0955
                rätt tänkt?

                Comment


                • #9
                  Då går det att skriva mycket enklare:


                  tidnu:=Frac(DATE())
                  minutersedanmidnatt:=Mult(tidnu,1440)
                  nollställ:=And(Gt(minutersedanmidnatt,585),Lt(minutersedanmidnatt,595))
                  i1(
                  SetGVarIf(0,110,nollställ)
                  SetGVarIf(0,120,nollställ)
                  SetGVarIf(0,130,nollställ)
                  SetGVarIf(0,140,nollställ)
                  )

                  Comment


                  • #10
                    Ok, har lagt in.
                    Vi får se på måndag om det fungerar.

                    Comment


                    • #11
                      Rikard,
                      det fungerar. Enda nackdelen verkar vara att AT8 ej uppdaterar arbetsytan
                      med de borttagna scripten, de syns kvar fastän nytt kursdata kommer in.

                      Enda sättet att ej se de borttagna scripten i cellerna är att klicka i arbetsytan eller ladda om layouten, då försvinner de fastän alternativet "alltid omritning av bakgrund" är ikryssat.

                      Comment


                      • #12
                        Om du ritar kurvorna med Draw-satser vid varje insamling försvinner de om cellernas värde sätts till noll. Det ska ske utan omladdning av arbetsytan.

                        Gissningsvis är något fel med scriptet som ritar.

                        Comment


                        • #13
                          Ursprungligen postat av Rikard Nilsson Visa inlägg
                          Om du ritar kurvorna med Draw-satser vid varje insamling försvinner de om cellernas värde sätts till noll. Det ska ske utan omladdning av arbetsytan.

                          Gissningsvis är något fel med scriptet som ritar.
                          Njae, scriptet som ritar kurvorna fungerar bra, men det aktiveras ej förrän kl.09.58. Mellan kl.09.45 och 09.58 visas linjerna i cellerna från gårdagen, hade
                          varit snyggt om linjerna försvunnit kl.09.45 innan de nya skapas kl.09.58, men man kan väl inte få allt.

                          Det viktiga är att scriptet tar bort dom, vill man se att de är borta mellan 09.45 och 09.58 får man väl klicka i intraday-graf rutan så de försvinner.

                          Comment

                          Working...
                          X