mojaSymfonia FORUM
https://forum.mix-soft.pl/

Kody paskowe w dokumencie RTF
https://forum.mix-soft.pl/viewtopic.php?f=2&t=4510
Strona 1 z 1

Autor:  Yacek [ 2012-11-20, 15:11 ]
Tytuł:  Kody paskowe w dokumencie RTF

Witam,
Posiadam HM 2013.a
Próbuję "wrzucić" do RTF'a (mowa o dokumencie "Zamówienie Obce w formacie rtf") kod paskowy, który byłby odzwierciedleniem numeru tego właśnie dokumentu. Efektem miałoby być wyświetlenie się nr dokumentu zarówno w postaci treści jak i w postaci kodu EAN128.

Sama zamiana czcionki treści makra "@NumerDok" w szablonie RTF'a np. na czcionkę "Code128" niczego nie zmienia, gdyż do prawidłowego wyświetlenia potrzebna jest m.in. wyliczona suma kontrolna. Próbuję wykorzystać rozwiązanie z innego, posiadanego raportu, który wylicza sumę kontrolną (poniżej fragment tego kodu), ale z uwagi na zbyt słabe doświadczenie w materii ambasica, nie czuję się na siłach, żeby zmodyfikować raporty poprawnie bez uprzedniej konsultacji.
Z moich prób wyciągnąłem następujące wnioski, proszę o ewentualne poprawienie i sugestie:
- zmiany powinny obejmować raport "Engine do dokumentów RTF", gdzie trzeba dołożyć dodatkowe makro np. @NumPask
- to makro powinno być zastępowane przez treść "i, kod, suma", gdzie "i" to znak startu kodu paskowego, "kod" - to nr dokumentu oraz "suma" to suma kontrolna i znak stop informujący o końcu kodu kreskowego..
Przykład: Zamówienie o nr: ZOK/0033/07/2012 powinno po tej edycji wyglądać tak: ÌZOK/0033/07/2012\Î
Dzięki temu po zmianie czcionki np. na EFN KK 128 pojawia się prawidłowy kod, który można bezproblemowo skanować.

Poniżej wspomniany wcześniej fragment kodu z wyliczaniem sumy kontrolnej (a przynajmniej wg moich przypuszczeń):


int sub SumaKontrolna1(string tekst)
//--------------------------------------------
int i, kod, suma
for i = 1 to i > len(tekst)
kod = tekst(i)
suma += (kod - 32) * i
next i
suma += C128_START
SumaKontrolna1 = suma % 103
if SumaKontrolna1 > 94 then
SumaKontrolna1 += 100
else
SumaKontrolna1 += 32
endif
endsub



Czy ktoś mógłby pomóc w tej sprawie? Z góry dziękuję

Autor:  rafal [ 2012-11-20, 23:08 ]
Tytuł:  Re: Kody paskowe w dokumencie RTF

Dlaczego nie użyjesz CODE39 zamiast EAN.
Tu zamiast wyliczania sumy kontrolnej dodajesz gwiazdki na początku i końcu ciągu.

Załączniki:
HMCODE39.gif
HMCODE39.gif [ 2.9 KiB | Przeglądany 2418 razy ]

Autor:  Yacek [ 2012-11-21, 10:26 ]
Tytuł:  Re: Kody paskowe w dokumencie RTF

Pomogło! ;)
Wielkie dzięki!

Drobna uwaga, dla tych, którzy chcieliby wykorzystać to rozwiązanie:
W pliku RTF wstawienie np. *@NrDok* i zmianę czcionki tego tekstu na Code39 spowoduje, że po pobraniu danych z HM kod zmieni postać na *NrDok* przez co kod jest nieprawidłowy i po skanowaniu wyświetla "NrDok".
Rozwiązaniem jest (może trochę przekombinowanym, ale działa;): gdzieś w dokumencie umieścić @NrDok jako nagłówek tekstu, wybrać w Wordzie opcję "Odsyłacz" (Menu Odwołania->odsyłacz) do tego nagłówka i dodać z przodu i z tyłu gwiazdki ze spacjami oddzialającymi od odsyłacza. Następnie zamienić uzyskany tekst na czcionkę Code39. I gotowe.
Zdarza się, że jakakolwiek próba zmiany, m.in. zmiana wielkości czcionki spowoduje nieprawidłowe wyświetlanie. W tym przypadku trzeba po prostu powtórzyć wstawianie odsyłacza z gwiazdkami z zmianę wielkości czcionki wprowadzać przed zmianą na Code39.

Autor:  rafal [ 2012-11-21, 12:57 ]
Tytuł:  Re: Kody paskowe w dokumencie RTF

a może na podstawie viewtopic.php?f=2&t=4157&p=21364 dorobić nowe makro i gwiazdki dodawać w raporcie AMBasic a nie w szblonie RTF

Kod:
            if find regular at "@NrDokCode39" then
               myReplace( "@NrDokCode39", "*" +sNumerDok+ "*" ) : found=1
            endif

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/