lib/dtaus/dta_generator.rb
def segment_e
      result  = '0128'                              #  4 Zeichen  Länge des Datensatzes, immer 128 Bytes, also immer "0128"
      result += 'E'                                 #  1 Zeichen  Datensatz-Typ, immer 'E'
      result += ' ' * 5                             #  5 Zeichen  5 Blanks
      result += '%07i' % @datensatz.buchungen.size  #  7 Zeichen  Anzahl der Datensätze vom Typ C
      result += '0' * 13                            # 13 Zeichen  Kontrollsumme Beträge in DM
      result += '%017i' % checksum_konto            # 17 Zeichen  Kontrollsumme Kontonummern
      result += '%017i' % checksum_blz              # 17 Zeichen  Kontrollsumme Bankleitzahlen
      result += '%013i' % checksum_betrag           # 13 Zeichen  Kontrollsumme Beträge in Euro
      result += ' '  * 51                           # 51 Zeichen  51 Blanks
      
      raise IncorrectSize.new("E-Segment: #{result.size}, 128 erwartet") if result.size != 128
      
      result
    end
def segment_e
      result  = '0128'                              #  4 Zeichen  Länge des Datensatzes, immer 128 Bytes, also immer "0128"
      result += 'E'                                 #  1 Zeichen  Datensatz-Typ, immer 'E'
      result += ' ' * 5                             #  5 Zeichen  5 Blanks
      result += '%07i' % @datensatz.buchungen.size  #  7 Zeichen  Anzahl der Datensätze vom Typ C
      result += '0' * 13                            # 13 Zeichen  Kontrollsumme Beträge in DM
      result += '%017i' % checksum_konto            # 17 Zeichen  Kontrollsumme Kontonummern
      result += '%017i' % checksum_blz              # 17 Zeichen  Kontrollsumme Bankleitzahlen
      result += '%013i' % checksum_betrag           # 13 Zeichen  Kontrollsumme Beträge in Euro
      result += ' '  * 51                           # 51 Zeichen  51 Blanks
      
      raise IncorrectSize.new("E-Segment: #{result.size}, 128 erwartet") if result.size != 128
      
      result
    end
def segment_e result = '0128' #  4 Zeichen  Länge des Datensatzes, immer 128 Bytes, also immer "0128" result += 'E' #  1 Zeichen  Datensatz-Typ, immer 'E' result += ' ' * 5 #  5 Zeichen  5 Blanks result += '%07i' % @datensatz . buchungen . size #  7 Zeichen  Anzahl der Datensätze vom Typ C result += '0' * 13 # 13 Zeichen  Kontrollsumme Beträge in DM result += '%017i' % checksum_konto # 17 Zeichen  Kontrollsumme Kontonummern result += '%017i' % checksum_blz # 17 Zeichen  Kontrollsumme Bankleitzahlen result += '%013i' % checksum_betrag # 13 Zeichen  Kontrollsumme Beträge in Euro result += ' ' * 51 # 51 Zeichen  51 Blanks raise IncorrectSize . new ( "E-Segment: #{result.size}, 128 erwartet" ) if result . size != 128 result end
Erstellt E-Segment (Prüfsummen) der DTAUS-Datei
--
 Aufbau des Segments:

 Nr. Start Länge   Beschreibung
 1   0   4 Zeichen   Länge des Datensatzes, immer 128 Bytes, also immer "0128"
 2   4   1 Zeichen   Datensatz-Typ, immer 'E'
 3   5   5 Zeichen   5 Blanks
 4   10  7 Zeichen   Anzahl der Datensätze vom Typ C
 5   17  13 Zeichen  Kontrollsumme Beträge
 6   30  17 Zeichen  Kontrollsumme Kontonummern
 7   47  17 Zeichen  Kontrollsumme Bankleitzahlen
 8   64  13 Zeichen  Kontrollsumme Euro, nur belegt, wenn Euro als Währung angegeben wurde (A12, C17a)
 9   77  51 Zeichen  51 Blanks
++
 Insgesamt 128 Zeichen
Erstellt E - Segment ( Prüfsummen ) der DTAUS - Datei -- Aufbau des Segments :