OMR Code auf Adobe Form

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

OMR Code auf Adobe Form

Postby Pelin1208 » Mon Apr 22, 2013 2:44 pm

Hallo,

ich benötige auf einem Adobe-Form (Entgeltnachweis) eine OMR-Codierung für unsere Kuvertiermaschine. Muss ich die Logik selber mit kleinen Kästchen programmieren, oder gibt es bessere Möglichkeiten?

Im einfachsten Fall sind es zwei Striche an wechselnden Positionen die der Maschine sagen, wann sie einen Brief zumachen soll. In der Komfortstufe läuft ein Binärcode aus weiteren vier Strichen mit, der immer von 1 bis 32 hochzählt und sicherstellt, dass keine Seite "verschluckt" wird.

Wäre toll, wenn jemand ein paar Hinweise für die Umsetzung geben könnte, ich bin recht neu im Thema Adobe Designer.

Danke
donny
Pelin1208
...
...
 
Posts: 388
Joined: Tue Feb 21, 2006 11:50 am

Gelöst: OMR Code auf Adobe Form

Postby Pelin1208 » Wed Apr 24, 2013 1:37 pm

Ich habe das jetzt wie folgt selber gelöst:

Eine kleine einspaltige Tabelle "TabOMR" am Linken Rand der Masterseite eingefügt. Die darin enthaltenen Textfelder mit schwarzem Hintergrund und weißem Rand so definiert, dass sie passende Striche für den OMR-Leser ergeben.
Dann per Script alle Zeilen der Tabelle auf "hidden" setzen und dann gezielt abhängig vom Seitenzähler wieder sichtbar schalten:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. if (xfa.layout.page(this) == xfa.layout.pageCount())
  2.    {TabOMR-Zeile1.presence="visible";
  3.     TabOMR-Zeile2.presence="visible";}  
  4.    {TabOMR-Zeile1.presence="visible";
  5.    TabOMR-Zeile3.presence="visible";}
  6.  
GeSHi ©


Die Sequenzkontrolle könnte man hier analog programmieren, die benötige ich aber derzeit nicht.

Gruß
donny
Pelin1208
...
...
 
Posts: 388
Joined: Tue Feb 21, 2006 11:50 am

Re: OMR Code auf Adobe Form

Postby Levke869 » Thu May 07, 2015 12:55 pm

Hallo,

ich habe ihren Beitrag gelesen, der schon einige Tage alt ist. Wir sind gerade bei den selben Problem, das wir das Abrechnungsformular auf HRForms umgestellt haben und unsere Kuvertiermaschine nur OMR Codes lesen kann.
Funktioniert die Umsetzung der OMR-Codes auf ihrem Formular? Haben sie auch Abfragen eingebaut, ob auch die richtige Anzahl von Seiten pro Umschlag eingetütet werden?
Können sie uns hier detaillierter Informationen für ihre Umsetzung zukommen lassen?

Vielen Dank!
Levke869
.
.
 
Posts: 1
Joined: Thu May 07, 2015 12:55 pm

Re: OMR Code auf Adobe Form

Postby Amina4654 » Wed Sep 30, 2015 6:39 pm

Hallo,

wir steuern unsere OMR-Codes auch auf diese Art. Und zwar sowohl das Kuvertier-Signal wie auch den Zähler für die Sequenzkontrolle und ein Paritäts-Bit. Unser Code (nicht JavaScript sondern FormCalc) sieht damit so aus:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. var maxPagesPerPackage = 3
  2.  
  3. currentPageCount = $.parent.index + 1 ; Für Zähler pro Kuvert: Pro Dokument bei 1 anfangen zu zählen
  4. overallPageCount = $record.G_TOTAL_PAGECOUNT.value +  $.parent.index ; Pro Dokument bei 0 anfangen zu zählen
  5. pagesInDocument  = $layout.pageCount()
  6.  
  7. if ( Mod(overallPageCount,2)    >= 1) then OMRBit0 = 1 else OMRBit0 = 0 endif
  8. if ( Mod(overallPageCount/2, 2) >= 1) then OMRBit1 = 1 else OMRBit1 = 0 endif
  9. if ( Mod(overallPageCount/4, 2) >= 1) then OMRBit2 = 1 else OMRBit2 = 0 endif
  10.  
  11. if ((currentPageCount == pagesInDocument) or Mod (currentPageCount,maxPagesPerPackage) == 0) then
  12.   OMRPackage = 1
  13.   OMRPackage = 0
  14.  
  15. // Paritätsbit: Gesamtzahl aller Striche muss gerade sein.
  16. OMRParity = Mod (OMRBit0 + OMRBit1 + OMRBit2 + OMRPackage + 1, 2) ; +1 wegen Start-Markierung
  17.  
  18. //****************************
  19. if (OMRPackage) then LinieKuv.presence    = "visible"    else LinieKuv.presence    = "invisible" endif
  20. if (OMRBit2)    then LinieBit2.presence   = "visible"    else LinieBit2.presence   = "invisible" endif
  21. if (OMRBit1)    then LinieBit1.presence   = "visible"    else LinieBit1.presence   = "invisible" endif
  22. if (OMRBit0)    then LinieBit0.presence   = "visible"    else LinieBit0.presence   = "invisible" endif
  23. if (OMRParity)  then LinieParity.presence = "visible"    else LinieParity.presence = "invisible" endif
  24.  
GeSHi ©


Allzu kompliziert sieht die Lösung eigentlich nicht aus, aber ich habe seinerzeit auch eine ganze Weile gebraucht, bis ich die richtigen Felder für die Seitenzähler (pro Dokument und insgesamt) zusammen hatte. Das Feld G_TOTAL_PAGECOUNT habe ich der Datenstruktur des Formulars hinzugefügt.
Amina4654
.
.
 
Posts: 7
Joined: Fri Aug 09, 2013 5:35 pm


Return to ABAP® Core

Who is online

Users browsing this forum: No registered users and 6 guests