smartsuitefaq.martinholz.de

Aktuellen Datensatz beim Ansichtswechsel beibehalten (verb. Datenbanken)

Ich hatte das Problem, daß ich Approach nicht beibringen konnte, den Datensatz in meiner Rechnungserfassung (drei verbundene Dbs, Rechnungskopf, Rechnungspositionen und Rechnungsadressen) beim Wechsel vom Eingabeformular in die Druckansicht (ein Tabellenbericht) exklusiv beizubehalten. Mir wurden immer alle jemals eingegebenen Rechnungen (=Datensätze) angezeigt.

Das Script kopiert die Rechnungsnummer des aktuellen Datensatzes, also der aktuellen Rechnung in der Formularansicht, in eine lokale Variable, die Datensatznummer in eine globale Variable, wechselt dann in die Berichtsansicht/Druckvorschau und führt dort eine Suche nach der gespeicherten Rechnungsnummer durch. Dadurch wird jetzt in der Berichtsansicht/Druckvorschau nur noch die gerade bearbeitete Rechnung angezeigt.

Mit einer entsprechenden Schaltfläche in der Druckansicht kommt der Anwender wieder zurück zum Eingabeformular, dabei werden erst alle Datensätze gesucht, dann wird die Ansicht gewechselt und zum Schluß wird mit der globalen Variable der ursprüngliche Datensatz wieder aufgerufen (nicht gesucht, dann wären die anderen Datensätze nicht sichtbar). Ein Beispiel finden Sie hier: rechnung.zip

Hier nun die Scripte, "rgnummer" ist der Feldname, "RgDruckansicht" ist der Name der Berichtsansicht und "EingabeForm" der Name des Eingabeformulars:

Globals / Declarations
'Diese Variable wird global deklariert, weil sie von der einen
'Subroutine gefüllt und von der anderen ausgelesen wird.
Dim DSnummer As Integer
Sub Drucken
'© 2002 Rainer Schmidt
'Ein kleines Script um den aktuellen Datensatz im Bericht (=Druckansicht)
'exklusiv zur Verfügung zu haben. Wenn dies nicht gemacht werden würde,
'müßte man immer sehr aufpassen, daß die richtige Seite gedruckt wird,
'weil in dem Bericht standardmäßig alle Datensätze angezeigt werden.

'Variablen für die Suche und für die Aufnahme der RgNummer werden
'deklariert.
Dim DruckFind As New find
Dim varRgNum As String
'Die Datensatznummer wird in der globalen Variable DSnummer gespeichert,
'um von der Druckansicht wieder zurück zur Eingabemaske zu kommen und
'da sowohl alle Datensätze zur Verfügung zu haben, als auch beim selben
'Datensatz wie vorher zu landen und nicht beim ersten DS.
DSnummer = CurrentApplication.ActiveDocWindow.CurrentRecord

'Die Rechnungsnummer des aktuell sichtbaren Datensatzes wird der
'Variablen zugewiesen.
varRgNum = CurrentView.Body.rgnummer.Text

'Die Ansicht wird von der aktuellen zur Berichtsansicht gewechselt.
Set CurrentWindow.ActiveView = CurrentDocument.RgDruckansicht

'Die Suche nach der oben in der Variablen gespeicherten Rechnungsnummer
'wird ausgeführt.
DruckFind.And "rgnummer", varRgNum
CurrentWindow.FindSort DruckFind
End Sub
Sub zurueckEingabe

'Nachdem im Script 'Wechseln zur Druckansicht' ein bestimmter Datensatz
'gesucht wurde, müssen jetzt erstmal wieder alle Datensätze verfügbar
'gemacht werden.
CurrentApplication.ActiveDocWindow.FindAll

'Die Ansicht wird wieder zurück zum Eingabeformular gewechselt.
Set CurrentWindow.ActiveView = CurrentDocument.EingabeForm

'Die in der globalen Variablen gespeicherte Datensatznummer wird
'genommen um zu diesem Datensatz zu gehen.
CurrentApplication.ActiveDocWindow.CurrentRecord = DSnummer
End Sub

Wenn Sie Anregungen oder Ergänzungen haben, mailen Sie diese bitte an den Autor. Danke schön.

Über diesen ArtikelArtikelbewertung
Stand: 30.03.2003
Autor(en): Rainer Schmidt
Durchschnittsnote: 2.3
1 2 3 4 5 6