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.
|
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/ |