• Offizieller Beitrag

    Da es ja heutzutage nur noch "Apps" gibt :D und meine Damen im Büro dauernd die Zuordnung PLZ zu Bundesland benötigen, habe ich mal kurz diese "App" erstellt.
    Eingabe PLZ und das zugehörige Bundesland wird ausgespuckt.
    Vielleicht hat ja noch jemand Verwendung dafür. Nicht vergessen die "PLZ_BuLa.db" in das Skriptverzeichnis zu packen (als *.zip im Anhang).

    Spoiler anzeigen
    [autoit]

    #Region - TimeStamp
    ; 2011-10-08 22:24:40 v 1.0
    #EndRegion - TimeStamp

    [/autoit] [autoit][/autoit] [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GUIOnEventMode', 1)
    Local $aResult, $iRows, $iColumns
    Local $sDB = @ScriptDir & '\PLZ_BuLa.db'
    If Not FileExists($sDB) Then Exit MsgBox(0, 'Fehler', 'Datei: "PLZ_BuLa.db" befindet sich nicht im Skriptordner.')

    [/autoit] [autoit][/autoit] [autoit]

    $GUI = GUICreate("PLZ - Zuordnung Bundesland", 360, 111, 192, 124)
    GUISetBkColor(0x4876FF)
    GUISetOnEvent(-3, '_exit')
    GUICtrlCreateLabel("PLZ", 80, 59, 33, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Bundesland", 24, 19, 89, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $inBuLand = GUICtrlCreateInput("", 128, 15, 200, 28, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_READONLY))
    GUICtrlSetBkColor(-1, 0xFFEC8B)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $inPLZ = GUICtrlCreateInput("", 128, 54, 60, 28, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_NUMBER))
    GUICtrlSetBkColor(-1, 0xF0FFF0)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    [/autoit] [autoit][/autoit] [autoit]

    ToolTip('')
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    [/autoit] [autoit][/autoit] [autoit]

    _SQLite_Startup ()
    _SQLite_Open($sDB)

    [/autoit] [autoit][/autoit] [autoit]

    While True
    Sleep(50)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    _SQLite_Shutdown()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local Static $fShow = 0
    Local $iIDFrom, $iCode, $hWndEdit, $sRead, $index
    $hWndEdit = GUICtrlGetHandle($inPLZ)
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $ilParam
    Case $hWndEdit
    Switch $iCode
    Case $EN_CHANGE
    $sRead = GUICtrlRead($iIDFrom)
    If StringLen($sRead) < 5 Then
    If $fShow Then
    GUICtrlSetData($inBuLand, '')
    $fShow = 0
    EndIf
    Return $GUI_RUNDEFMSG
    ElseIf StringLen($sRead) = 5 Then
    _SQLite_GetTable(-1, "SELECT bula FROM tabelle WHERE plz = '" & $sRead & "';", $aResult, $iRows, $iColumns)
    If $iRows Then
    GUICtrlSetData($inBuLand, $aResult[2])
    Else
    GUICtrlSetData($inBuLand, 'Keine gültige Postleitzahl!')
    EndIf
    $fShow = 1
    Else
    GUICtrlSetData($iIDFrom, StringLeft($sRead, 5))
    EndIf
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • Nicht schlecht.

    Auch sinnvoll, wenn man mal die Feiertage für eine Versandanschrift braucht ;)

    Spannend auch, daß einige Postleitzahlen (z.B. 21039) in mehreren Bundesländern präsent sind. Aber was schert die Post die Landesgrenze.

    • Offizieller Beitrag

    Spannend auch, daß einige Postleitzahlen (z.B. 21039) in mehreren Bundesländern präsent sind


    :D Da scheint man sich nicht entscheiden zu können. Grundsätzlich ist es: Stadt Hamburg - also auch Bundesland Hamburg.
    Aber... im Zuge von Eingemeindungen kamen im Laufe der Zeit hinzu:
    Börnsen
    Hamburg Curslack
    Escheburg
    Hamburg Bergedorf
    Hamburg Neuengamme
    Hamburg Altengamme
    Und schon haben wir einen Mischmasch aus Hamburg/Schleswig-Holstein. :wacko:

  • Wenn man nur für die Feiertage abhebt (man z.B. den nächsten "Werktag" für ein Versand Zustelldatum sucht) ist es in diesem Fall kein Problem da HH und SH ja in Feiertagen identisch ist. Man kann unter der Postleitzahl (Marschbahndamm) auch gut Fahrradfahren ;)

    In anderen Fällen muss man sich ggf. anders behelfen und "auf die Straße gehen". Evtl helfen dann
    http://opengeodb.giswiki.org/wiki/OpenGeoDB oder Openstreemaps weiter.