|
|
|
|
Strona 1 z 1
|
[ Posty: 4 ] |
|
Kody paskowe w dokumencie RTF
Autor |
Wiadomość |
Yacek
Rejestracja: 2012-11-20, 09:41 Posty: 4
|
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ę
|
2012-11-20, 15:11 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
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 [ 2.9 KiB | Przeglądany 2474 razy ]
|
2012-11-20, 23:08 |
|
|
Yacek
Rejestracja: 2012-11-20, 09:41 Posty: 4
|
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.
|
2012-11-21, 10:26 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
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
|
2012-11-21, 12:57 |
|
|
|
Strona 1 z 1
|
[ Posty: 4 ] |
|
Kto jest online |
Użytkownicy przeglądający to forum: Google [Bot] i 15 gości |
|
Nie możesz tworzyć nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników
|
|
|
|