Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ZebraDesigner Pro - VBScript

Maciej Zembaty 13 Sty 2018 08:26 783 19
  • #1 13 Sty 2018 08:26
    Maciej Zembaty
    Poziom 12  

    Witam,
    Tworząc etykietę w ZebraDesigner potrzebuję spełnić takie działanie:
    Modulo = Licznik Mod 11 i jeśli Modulo jest równe 10 to wstaw znak X.
    Kombinowałem na różne sposoby i nie udało mi się zrealizować tego wymogu. Edytor jest jednolinijkowy co dodatkowo komplikuje sprawę.

    Ktoś może pomóc?

    Pozdrawiam.

    0 19
  • #2 14 Sty 2018 00:31
    lanzul
    Poziom 26  

    Tzn. że w vbscript nie można zapisać "Ifa" w jednej linii (?):

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    0
  • #3 15 Sty 2018 07:00
    Maciej Zembaty
    Poziom 12  

    Niestety, wywala błąd składni.

    0
  • #4 15 Sty 2018 16:24
    lanzul
    Poziom 26  

    ? Składni (?), czy może deklaracji zmiennych ?

    https://msdn.microsoft.com/en-us/library/5h27x7e9(v=vs.84).aspx

    "Single-Line syntax:
    If condition Then statements [Else elsestatements ]"

    i dodatkowo:

    "The following example illustrates the use of the single-line syntax.
    If A > 10 Then A = A + 1 : B = B + A : C = C + B"

    a tak ?

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    0
  • #5 16 Sty 2018 06:40
    Maciej Zembaty
    Poziom 12  

    Nadal błąd składni. Nie deklaracji zmiennych.

    0
  • #8 16 Sty 2018 14:01
    lanzul
    Poziom 26  

    No dobrze, a w vbs to w ogóle jest takie np. 'Mod', bo może nie ma i stąd błąd ?
    Przyznam, że nie sprawdzałem ... :-(

    Edyc:
    Nie no jest, jak najbardziej jest ...

    0
  • #9 16 Sty 2018 14:04
    Maciej Zembaty
    Poziom 12  

    Sprawdzałem i jest. Zrobiłem do tej pory działanie Modulo = Licznik Mod 11 i działa, lecz muszę mieć też ten wymóg kiedy Modulo = 10 to wstaw X i nie da rady tego zrobić. Support też milczy.

    0
  • #10 16 Sty 2018 14:18
    clubs
    Poziom 30  

    Mod jest w vbs ale bardziej mnie zastanawia czy ta drukarka obsługuje vbs-a

    ZebraDesigner Pro - VBScript

    0
  • #11 16 Sty 2018 14:52
    JacekCz
    Poziom 36  

    clubs napisał:
    Mod jest w vbs ale bardziej mnie zastanawia czy ta drukarka obsługuje vbs-a


    Drukarka sądzę nie obsługuje VBS wcale. Oprogramowanie pewnie tak.


    Maciej Zembaty napisał:
    Sprawdzałem i jest. Zrobiłem do tej pory działanie Modulo = Licznik Mod 11 i działa, lecz muszę mieć też ten wymóg kiedy Modulo = 10 to wstaw X i nie da rady tego zrobić. Support też milczy.


    Zgaduję, odnoszę się do innych przypadków wbudowania języka A do silnika B. Kto wie, może być tak, że wielokomendowe sekwencje nie są akceptowane (czy to się podoba, czy nie).

    Jak "rasowy C-owiec" ;) wszędzie szukam "elvis operatora" x ? y : z
    W vbasicach sprawdź z czymś takim:
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    albo dla ujednolicenia typu spróbuj coś mnie więcej tak:
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/operators/if-operator

    W starszych dialektach, gdybys taki miał, ta notacja się pisała iif (przez dwa 'i')

    0
  • #12 16 Sty 2018 14:56
    lanzul
    Poziom 26  

    Hmm ... uruchomilem z bata takiego skrypta, wszystko w jednej linii:

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    przy pomocy takiej komendy: "wscript scrptmodulo.vbs", gdzie scrptmodulo.vbs = nazwa skryptu i działa ... wychodzi więc na to, że "drukarka winna" ... (?)

    0
  • #13 16 Sty 2018 15:01
    JacekCz
    Poziom 36  

    lanzul napisał:
    .... i działa ... wychodzi więc na to, że "drukarka winna" ... (?)


    Raczej sposób osadzenia jednego języka w drugiej platformie.

    Tej nie znam, ale znam liczne analogie, silniki do raportowania, makrogeneratory, języki reguł biznesowych itd... . W pewnych kontekstach ma być 'expression', 'command' (jedna komenda) ale nie '[command]' (sekwencja komend), oczywiście podane przykładowo itd...

    0
  • #14 16 Sty 2018 15:01
    lanzul
    Poziom 26  

    JacekCz napisał:
    ta notacja się pisała iif (przez dwa 'i')

    W vbscript niestety nie ma IIF'a ... :( ... można stworzyć własną funkcję zastępczą ... przynajmniej tak piszą ... "oni" w sieci ...

    Edyc:
    "Podają" taki zamiennik:
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    0
  • #15 16 Sty 2018 15:58
    clubs
    Poziom 30  

    lanzul napisał:
    Drukarka sądzę nie obsługuje VBS wcale. Oprogramowanie pewnie tak.

    Tak miałem na myśli software

    JacekCz napisał:
    W vbasicach sprawdź z czymś takim:
    Kod: vbnet Zwiń Zaznacz wszystko
    Modulo = If( Licznik Mod 11 = 10, "X", Licznik Mod 11)
    albo dla ujednolicenia typu spróbuj coś mnie więcej tak:
    Kod: vbnet Rozwiń Zaznacz wszystko
    Modulo = If( Licznik Mod 11 = 10, "X", Licznik Mod 11+"")


    Tu akurat dałeś przykład z VB
    Gdzie VBS jest "lekką" odmiana VB z ograniczeniami

    0
  • #16 17 Sty 2018 06:23
    Maciej Zembaty
    Poziom 12  

    Dzięki za liczne odpowiedzi.
    Niestety podane przez Was skrypty kończą się błędem składni :/

    0
  • #17 23 Sty 2018 06:27
    Maciej Zembaty
    Poziom 12  

    Jeśli kogoś by interesowało to dostałem odpowiedź od supportu:
    "Konsultowaliśmy temat z Producentem i otrzymaliśmy informację, iż składnia VB zawierająca polecenie if..then...else nie są w programie Zebra Designer Pro obsługiwana ze względu na ich charakter muliti-line."

    Dzięki za chęci :)

    0
  • #18 23 Sty 2018 08:03
    rajszym
    Poziom 19  

    Maciej Zembaty napisał:
    Jeśli kogoś by interesowało to dostałem odpowiedź od supportu:
    "Konsultowaliśmy temat z Producentem i otrzymaliśmy informację, iż składnia VB zawierająca polecenie if..then...else nie są w programie Zebra Designer Pro obsługiwana ze względu na ich charakter muliti-line."

    A czy if..then (bez else)jest obsługiwane?

    0
  • #19 23 Sty 2018 12:13
    lanzul
    Poziom 26  

    Maciej Zembaty napisał:
    ... od supportu:
    "Konsultowaliśmy temat z Producentem i otrzymaliśmy informację, ... polecenie if..then...else nie są ... obsługiwana ze względu na ich charakter muliti-line."

    :D ... tzw. "ściemniactwo wciskane" ... ot taką prostą formułką zbyli "natarczywego" klienta ...

    ... bo tego 'If...Then...Else...' nie można w jednej lini zapisywać ... :D ... przepisy międzynarodowe "o wspólnym handlu z Marsjanami" tego zabraniają.

    Taką wymówkę można zastosować do wszystkiego ... po co w takim razie to-coś w ogóle obsługuje tego vbscripta, przecież on jako całość ma właśnie charakter "multi-line" .... ? :D ...
    Więcej ... po co w ogóle robią tego swojego "ze... ner" skoro to też ma charakter multi-line, no bo chyba etykiety nie wychodzą z układem tylko i wyłącznie "z lewa na prawo" ... ale przede wszystkim "z góry na dół" ...

    0
  • #20 29 Sty 2018 19:32
    Maciej Zembaty
    Poziom 12  

    Popróbowałem samo if / else i nie działa. Czyli taki skrypt jak z koziej pupy trąba moim zdaniem.
    Problem rozwiązałem przy użyciu bazy danych.
    Dzięki wszystkim za poświęcony czas i chęć pomocy!

    0