- Im Formular sollen die Leerzeichen selbstverständlich eingegeben und angezeigt werden. Dazu habe ich das Textfeld durch ein maskiertes Feld ersetzt. Ich verstehe aber noch nicht, wie ich es erreiche, dass die Leerzeichen für die Anzeige automatisch eingefügt und beim Speichern automatisch entfernt werden. Muss ich das durch zwei Makros und Ereignisse steuern oder besser in der Abfrage oder durch einen Trigger vor dem Speichern?
- Wie steuere ich am besten die unterschiedlichen Varianten: AT mit 20, CH mit 21, DE mit 22 Stellen? Ist es sogar sinnvoll, die Eingabe auf 3 Felder aufzuteilen - Lkz, Prüfzahl, Kontoangaben?
- Ist es sinnvoll, nach der Eingabe die Prüfziffer zu berechnen und zu kontrollieren? Welches Ereignis ist dafür am besten geeignet: Fokusverlust oder ein anderes?
- Zumindest für deutsche Banken kann aus der IBAN die BLZ und das Konto ausgelesen werden. Ist es sinnvoll, diese Angaben zusätzlich anzuzeigen?
- Oder ist es heute noch angemessen, BLZ/Konto als Eingabefelder vorzusehen und daraus die IBAN zu errechnen?
- Aus der BLZ-Datei der Deutschen Bundesbank - siehe Merkblatt und Download - können Bankname und BIC ausgelesen werden. Ist es sinnvoll, diese Angaben automatisch zu holen und nur zur Kontrolle anzuzeigen, oder ist die zusätzliche Eingabe sinnvoller?
Formular zu Bankdaten (IBAN, BIC usw.)
Moderator: Moderatoren
Formular zu Bankdaten (IBAN, BIC usw.)
Hallo, ich habe eine Datenbank-Tabelle Banking mit den Feldern Kontoinhaber und IBAN (Wikipedia). Die IBAN ist (natürlich) mit VARCHAR(34) festgelegt, weil die üblichen Leerzeichen bei Datenübertragungen nichts zu suchen haben; also werden sie auch nicht in der Datenbank gespeichert. Dazu habe ich ein paar theoretische und praktische Fragen; vielleicht kann mir das jemand unter den Base-Bedingungen erläutern. Bisher war die IBAN hier noch kein Thema.
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Formular zu Bankdaten (IBAN, BIC usw.)
Wenn Du Lektüre suchst, die kannst Du hier finden: http://de.libreoffice.org/hilfe-kontakt/handbuecher/.
Dein Vorhaben ist ohne gute StarBasic-Kenntnisse nicht zu verwirklichen.
- Umrechnung der Buchstabenfolge wie z. B. DE in Dezimalzahlen um eine eine Nach- oder Berechnung der Prüfziffer vornehmen zu können
- Berechnung der Prüfziffer im Modul-97-, bzw. Modul-98-Verfahren.
- Entfernen von Leerzeichen vor der Speicherung
- und, und, und
Ferner ist absehbar, dass BIC im internationalem Zahlungsverkehr wegfallen wird, da den Herrn aufgefallen ist, dass die nationale BLZ in der IBAN enthalten ist.
Dein Vorhaben ist ohne gute StarBasic-Kenntnisse nicht zu verwirklichen.
- Umrechnung der Buchstabenfolge wie z. B. DE in Dezimalzahlen um eine eine Nach- oder Berechnung der Prüfziffer vornehmen zu können
- Berechnung der Prüfziffer im Modul-97-, bzw. Modul-98-Verfahren.
- Entfernen von Leerzeichen vor der Speicherung
- und, und, und
Ferner ist absehbar, dass BIC im internationalem Zahlungsverkehr wegfallen wird, da den Herrn aufgefallen ist, dass die nationale BLZ in der IBAN enthalten ist.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: Formular zu Bankdaten (IBAN, BIC usw.)
Hallo Jürgen,
maskierte Felder stellen eine Maske dar, die mit abgespeichert wird. Das ist vermutlich nicht das, was Du suchst. Spontan fällt mir nur ein, lauter einzelne Felder zu machen und die auch so in die Datenbank zu übernehmen. Wie weit Du ansonsten mit einer Base-Abfrage und dem Entfernen der Maskierung kommst habe ich nicht getestet.
Gruß
Robert
maskierte Felder stellen eine Maske dar, die mit abgespeichert wird. Das ist vermutlich nicht das, was Du suchst. Spontan fällt mir nur ein, lauter einzelne Felder zu machen und die auch so in die Datenbank zu übernehmen. Wie weit Du ansonsten mit einer Base-Abfrage und dem Entfernen der Maskierung kommst habe ich nicht getestet.
Gruß
Robert
Re: Formular zu Bankdaten (IBAN, BIC usw.)
Dann ist vermutlich mein Gedanke mit getrennten Eingabefeldern sinnvoll: Lkz, Prüfzahl, Kontoangaben. Die Kontoangaben werden mit Leerzeichen gegliedert und genauso gespeichert. Gleichzeitig speichert die Datenbank per Trigger die eigentliche IBAN (REPLACE Leerzeichen durch nichts). Für die Eingabe und Anzeige im Formular werden die getrennten Felder verwendet. Das ist zwar etwas Datenredundanz, aber die dürfte vertretbar sein.RobertG hat geschrieben:maskierte Felder stellen eine Maske dar, die mit abgespeichert wird.
Was glaubst du eigentlich, mit was für einem Idioten du es zu tun hast? Wenn ich nach konkreten Informationen frage, dann hilft mir der allgemeine Hinweis auf die Handbücher nicht sehr weit. Glaubst du, ich habe vergeblich in der Impress-Einführung gesucht? - Wer eine OOP-Programmiersprache beherrscht, wird sich auch in andere Sprachen hineinfinden; insofern stellt StarBasic vermutlich weniger Anforderungen. Das Hauptproblem liegt in der exakten Definition von Typen, Routinen und Variablen, aber nicht im grundsätzlichen Verständnis. - Wenn ich die Prüfziffernberechnung oder das Einfügen und Entfernen der Leerzeichen anspreche, weiß ich doch offensichtlich, wovon ich spreche. Also wenn du nicht mehr zu meinen Fragen beizutragen hast (ist es sinnvoll, ist es angemessen, was ist besser), dann lass' es besser ganz bleiben. Dein einziger nützlicher Hinweis (die Zukunft der BIC) bringt im Moment auch nichts.pmoegenb hat geschrieben:Wenn Du Lektüre suchst, die kannst Du hier finden:
Bisher habe ich von dir hilfreiche Antworten gelesen. Was willst du mir mit diesem Beitrag sagen? Dass ich mich zum Teufel scheren und euch nicht mit Fragen belästigen soll? Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Formular zu Bankdaten (IBAN, BIC usw.)
Nun, ich habe dies aufgrund dieses Textesjuetho hat geschrieben:Was glaubst du eigentlich, mit was für einem Idioten du es zu tun hast? Wenn ich nach konkreten Informationen frage, dann hilft mir der allgemeine Hinweis auf die Handbücher nicht sehr weit.
auf Base bezogen. Deshalb der allgemeine Link zu den Handbüchern von LibO.juetho hat geschrieben: Da ich mich gleichzeitig in Base einarbeite, kann es sein, dass ich die passenden Informationen noch nicht gefunden habe. Ihr dürft mich also gerne einfach auf die Dokumentationen verweisen (Buch, Kapitel, Abschnitt).
Wenn dem so ist, was ich nicht bezweifle, wundert es mich, dass Du Dein Vorhaben mit einer Office-Umgebung und nicht mit einer Entwicklungsumgebung verwirklichen möchtest. Außerdem sei der Hinweis gestattet, dass die in BASE integrierte Datenbank HSQLDB nicht mehrbenutzerfähig ist.juetho hat geschrieben: Wer eine OOP-Programmiersprache beherrscht, wird sich auch in andere Sprachen hineinfinden; insofern stellt StarBasic vermutlich weniger Anforderungen.
juetho hat geschrieben:
Das Hauptproblem liegt in der exakten Definition von Typen, Routinen und Variablen, aber nicht im grundsätzlichen Verständnis.
Hier haben sich DELPHI schon Einige mit IBAN beschäftigt. Ist zwar Object-Pascal, aber das dürfte ja kein Problem sein. Auf der Website einfach IBAN eingeben und die Suche starten.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
-
- ***
- Beiträge: 52
- Registriert: Mi, 09.05.2007 23:25
Re: Formular zu Bankdaten (IBAN, BIC usw.)
Hallo Jürgen!
Ich weiß nicht, ob Du inzwischen eine Lösung gefunden hast.
Hab heute erst die Frage gelesen.
Wenn ich Dich richtig verstanden habe, kann ich Dir evtl. Deine Frage 1 und 2 beantworten.
Dazu habe ich Dir nachfolgend mal ein kleines Makro geschrieben,
was Leerzeichen automatisch in die Iban einfügt,
Länderabhängig (musst Du noch ergänzen),
fehlertolerante Eingabe des Benutzers.
Einfaches Textfeld, kein maskiertes Feld(damit hab ich immer Probleme...). Das Makro würd ich dann mit 'Bei Fokusverlust' starten.
Du brauchst die Iban also nicht in verschieden Felder aufteilen.
War es das, wonach Du gefragt hast?
Würd mich freuen, wenn ich Dir helfen konnte.
Viele Grüße,
Hotti
Ich weiß nicht, ob Du inzwischen eine Lösung gefunden hast.
Hab heute erst die Frage gelesen.
Wenn ich Dich richtig verstanden habe, kann ich Dir evtl. Deine Frage 1 und 2 beantworten.
Dazu habe ich Dir nachfolgend mal ein kleines Makro geschrieben,
was Leerzeichen automatisch in die Iban einfügt,
Länderabhängig (musst Du noch ergänzen),
fehlertolerante Eingabe des Benutzers.
Einfaches Textfeld, kein maskiertes Feld(damit hab ich immer Probleme...).
Code: Alles auswählen
Sub Ibanleerzeichen
' Library laden für 'ReplaceString'
If Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools") Then GlobalScope.BasicLibraries.LoadLibrary("Tools")
' Iban-Eingabe durch Dein Textfeld.
'Iban = "DEpp bbbb bbbb kkkk kkkk kk" ' (Aus Wikipedia)
Iban = "DE12 A234 B234 C234 D234 E2" ' Test-Iban
' Leerzeichen löschen, für den Fall, daß der Benutzer diese ausversehen falsch gesetzt hat:
' z.B. "D E12 A2 34B24 C234 D2 34E2" wird trotzdem korrekt umgesetzt
Iban = ReplaceString(Iban,""," ")
' Falls der Benutzer die LKZ kleingeschrieben hat, diese in Großbuchstaben umwandeln.
Iban = ReplaceString(Iban, UCase(Left(Iban,2)), Left(Iban,2))
' Länderauswahl
Select Case Left(Iban, 2)
Case "DE"
' Wenn Länge nicht stimmt, ist Iban falsch.
If Len(Iban) <> 22 Then Msgbox "Iban stimmt nicht, falsche Länge" : Exit Sub
' Hier Leerzeichen einfügen.
' 1.Zahl in Mid ist die Iban-Stelle, 2. Zahl ist Anzahl der Zeichen.
Iban = Left(Iban, 4) + " " + Mid(Iban,5, 4) + " " + Mid(Iban,9, 4) + " " + Mid(Iban,13, 4) + " " + Mid(Iban,17, 4)+ " " + Right(Iban, 2)
Case "AU"
If Len(Iban) <> 20 Then Msgbox "Iban stimmt nicht, falsche Länge" : Exit Sub
' Hier Zeile für Österreich eingeben.
Case "CH"
If Len(Iban) <> 21 Then Msgbox "Iban stimmt nicht, falsche Länge" : Exit Sub
' Hier Zeile für Schweiz eingeben.
Case Else:
MsgBox "Land unbekannt." : Exit Sub
End Select
' Zeile mit eingefügten Leerzeichen in das Textfeld zurückschreiben. (Hier nur anzeigen)
Msgbox Iban
' Zeile ohne Leerzeichen für die Datenbank. (Hier nur anzeigen)
Iban = ReplaceString(Iban,""," ")
Msgbox Iban
End Sub
Du brauchst die Iban also nicht in verschieden Felder aufteilen.
War es das, wonach Du gefragt hast?
Würd mich freuen, wenn ich Dir helfen konnte.
Viele Grüße,
Hotti
Re: Formular zu Bankdaten (IBAN, BIC usw.)
Danke, so etwa hatte ich mir einen Kommentar vorgestellt. Das hilft mir sowohl für die Konzeption als auch für die Umsetzung sehr (abgesehen davon, dass ich für das Einfügen der Leerzeichen eine Schleife verwenden werde; die kann dann für alle Länder gleich sein).
Gruß Jürgen
Gruß Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC