3 Replies Latest reply on Apr 25, 2015 1:53 AM by Markus Schneider

    Script zur Überprüfung einer Steuer-ID

    patomic

      Hallo Zusammen

       

      Nachdem ich nichts vergleichbares gefunden habe, musste ich mir für eine Anwendung ein Script zur Überprüfung der Steuer-ID stricken. Denn es kam bei der Eingabe immer wieder zu Fehleingaben oder zur Verwechslung mit der Steuernummer. Das soll folgendes Script abfangen und den User bereits bei der Eingabe warnen. Die Regeln zur Steuer-ID hab ich aus Wikipedia.

       

      Es ist sicher noch optimierbar, aber bei mir läuft es so ganz gut. Vielleicht kann es jemand gebebrauchen.

       

      Viel Spaß

       

       

      Variable setzen [ $Fehler; Wert:0 ]

       

      # leeres Feld "Steuer ID" ignorieren

       

      Wenn [ IstLeer ( Adressen::Steuer ID ) ]

       

      # Hier werden ein Statusfeld und ein Anzeigesymbol zurückgesetzt.

       

               Feldwert setzen [ Adressen::Symbol_StID_OK ; "" ]

               Feldwert setzen [ Adressen::Status SteuerID ; "" ]

       

      Sonst

       

      # Regeln Prüfen: Genau eine Ziffer von 0 bis 9 ist doppelt vorhanden, genau eine gar nicht und die restlichen 8 je einmal.

      #

      # Schritt 1: Anzahl der einzelnen Ziffern (0 bis9) überprüfen.

       

               Variable setzen [ $SI0; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "0") ]

               Variable setzen [ $SI1; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "1") ]

               Variable setzen [ $SI2; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "2") ]

               Variable setzen [ $SI3; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "3") ]

               Variable setzen [ $SI4; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "4") ]

               Variable setzen [ $SI5; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "5") ]

               Variable setzen [ $SI6; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "6") ]

               Variable setzen [ $SI7; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "7") ]

               Variable setzen [ $SI8; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "8") ]

               Variable setzen [ $SI9; Wert:MusterAnzahl ( ZeichenLinks ( LiesAlsText ( Adressen::Steuer ID ); 10); "9") ]

       

      # Schritt 2: Die zehn Ergebnisse zu einem String zusammenfügen

       

               Variable setzen [ $Sstring; Wert:LiesAlsText ( $SI0 ) & LiesAlsText ( $SI1 ) & LiesAlsText ( $SI2 ) & LiesAlsText ( $SI3 ) &

      LiesAlsText ( $SI4 ) & LiesAlsText ( $SI5 ) & LiesAlsText ( $SI6 ) & LiesAlsText ( $SI7 ) & LiesAlsText ( $SI8 ) & LiesAlsText ( $SI9 ) ]

       

      # Schritt 3: Im String muss die "1" achtmal, die "0" und die "2" je einmal vorkommen. Abweichungen davon sind nicht zulässig.

      Ansonsten wird $Fehler auf 1/TRUE gesetzt.

       

      Wenn [ ( MusterAnzahl ( $Sstring; "1") 8 ) ODER ( MusterAnzahl ( $Sstring; "0") 1 ) ODER ( MusterAnzahl ( $Sstring; "2") 1 ) ]

                         Variable setzen [ $Fehler; Wert:1 ]

               Ende (wenn)

       

      # Prüfziffer berechnen

       

               Variable setzen [ $J; Wert:1 ]

               Variable setzen [ $produkt ; Wert:10 ]

               Variable setzen [ $summe ; Wert:0 ]

               Schleife (Anfang)

                         Variable setzen [ $summe ; Wert:Mod ( LiesAlsZahl ( ZeichenMitte ( Adressen::Steuer ID; $J; 1) ) + $produkt; 10) ]

                         Wenn [ $summe = 0 ]

                                  Variable setzen [ $summe ; Wert:10 ]

                         Ende (wenn)

                         Variable setzen [ $produkt ; Wert:Mod ( $summe * 2; 11) ]

                         Variable setzen [ $J; Wert:$J + 1 ]

                         Verlasse Schleife wenn [ $J = 11 ]

               Schleife (Ende)

               Variable setzen [ $pz; Wert:11 - $produkt ]

               Wenn [ $pz = 10 ]

                         Variable setzen [ $pz; Wert:0 ]

               Ende (wenn)

       

               Wenn [ (LiesAlsZahl ( ZeichenMitte ( Adressen::Steuer ID; 11; 1) ) $pz) ODER ( Länge ( Adressen::Steuer ID ) 11 )

               ODER $Fehler ]

                         Eigenes Dialogfeld anzeigen [ Titel: "Steuer-ID Überprüfung"; Mitteilung: "Die Steuer-ID scheint falsch zu sein. Bitte

                         korrigieren"; Standardtaste: “OK”, Schreiben: “Ja” ]

       

      # Fehler erkannt: Fehlerdialog wird angezeigt und Statusfeld sowie Symbol entsprechend gesetzt.

       

                         Feldwert setzen [ Adressen::Symbol_StID_OK ; HoleWiederholfeldwert ( Filter Adressen Einstellungen::Symbole; 2) ]

                         Feldwert setzen [ Adressen::Status SteuerID ; "2" ]

               Sonst

       

      # kein Fehler erkannt: Statusfeld sowie Symbol werden entsprechend gesetzt.

       

                         Feldwert setzen [ Adressen::Symbol_StID_OK ; HoleWiederholfeldwert ( Filter Adressen Einstellungen::Symbole; 1) ]

                         Feldwert setzen [ Adressen::Status SteuerID ; "1" ]

                         Gehe zu Feld [ ]

               Ende (wenn)

      Ende (wenn)