Daten aus Filterformular übernehmen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Marco Schade
**
Beiträge: 42
Registriert: Mi, 08.03.2017 20:46

Daten aus Filterformular übernehmen

Beitrag von Marco Schade »

Hallo Forum,
ich habe ein Rechnungserstellungs Formular ( Test-Filter) wo ich die Artikel nach Name und Art.-Nr filtern kann. (funktioniert)
im selben Formular vergebe ich eine Rechnungsnummer , wähle den Kunden aus und möchte das der ausgewählte Datensatz aus dem Filter (Ware suchen )als neuer Datensatz in das Tabellenkontrollfeld (Warenausgabe ) eingefügt wird .Ich aber trotzdem die Möglichkeit habe die Daten manuel zu ändern im Im Tabellenkontrollfeld (Warenausgabe) .

bis jetzt kann ich nur aus der listbox(Warenauswahl ) mir den Datensatz durch scollen oder durch Eingabe des Anfangsbuchstaben Filtern.(dazu muss ich halt immer die genaue Bezeichnung wissen , was bei ca. 500 Artikel schwierig wird)

Liebe Grüße Marco
Dateianhänge
Datenbank 1.1.odb
(174.74 KiB) 134-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Daten aus Filterformular übernehmen

Beitrag von F3K Total »

Sehr interessant...
Marco Schade
**
Beiträge: 42
Registriert: Mi, 08.03.2017 20:46

Re: Daten aus Filterformular übernehmen

Beitrag von Marco Schade »

Hallo R.

dank dir bin ich erst mal so weit gekommen. Nur wenn man nicht genau weis unter welchen Namen genau angelegt hat wirdes schwierig. Aus diesem Grund ist dieses Filterformular.

Hast du vielleicht eine Idee wie man das einbinden kann ?

Liebe Grüße

Marco
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Daten aus Filterformular übernehmen

Beitrag von RobertG »

Hallo Marco,

vermutlich verstehe ich Dein Anliegen nicht richtig. Ich öffne das Formular und sehe auf der rechten Seite ein Tabellenkontrollfeld mit der Gruppenbezeichnung "Waren Suchen". Sobald ich da auch "Suchen" klicke verschwindet die Ware. Um wieder eine Anzeige zu erhalten kann ich nur das Formular neu starten.

Was soll da genau wie funktionieren?

Wenn Du Probleme mit dem Umfang eines Listenfeldes hast: Auch Listenfelder können per Makro neu (z.B. über einen Filter) beschrieben werden. Gegebenenfalls erübrigt sich dann die Auswahl über "Waren Suchen" - oder ich habe das einfach nicht verstanden ...

Gruß

Robert
Marco Schade
**
Beiträge: 42
Registriert: Mi, 08.03.2017 20:46

Re: Daten aus Filterformular übernehmen

Beitrag von Marco Schade »

Hallo Robert,

Auf der rechten Seite ist die Gruppierung ware suchen, im listfeld gebe ich ein wo gesucht werden soll im Textfeld rechts daneben den Begriff, Drücke Button und die Ware wird gefiltert angezeigt im tabellenkontrollfeld. Auf der linkenseite gibt er die listboox Warenauswahl, die ich gerne durch die Gruppierung warensuche ersetzen möchte. Im umkerschluss bedeutet das


Neue Rechnungsnummer erzeugen
Kunde auswählen
Artikel suchen (Gruppierung Wäre suchen ) und ausgewählten Datensatz kopieren in Tabellenkontrollfeld warenausgabe
Jetzt die Anzahl der Ware eingeben, ggf. den Preis oder die Warenbezeichnung ändern

Fertig

Ich hoffe ich konnte es dir einigermaßen verständlich erklären.

Liebe Grüße
Marco
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Daten aus Filterformular übernehmen

Beitrag von RobertG »

Hallo Marco?
Marco Schade hat geschrieben: Mi, 22.03.2017 20:55 Auf der rechten Seite ist die Gruppierung ware suchen, im listfeld gebe ich ein wo gesucht werden soll im Textfeld rechts daneben den Begriff, Drücke Button und die Ware wird gefiltert angezeigt im tabellenkontrollfeld. Auf der linkenseite gibt er die listboox Warenauswahl, die ich gerne durch die Gruppierung warensuche ersetzen möchte.
Das klappt bei Dir vermutlich, weil Du AOO benutzt. Mit LO seit Version 4.1 kommt da nichts bei raus, weil CurrentValue sinnvollerweise den Wert wiedergibt, der auch bei einem Listenfeld an die darunterliegende Tabelle weitergegeben würde. Für LO ab Version 4.1 müsste da stehen:

Code: Alles auswählen

sSuchwort2 = oTypFeld.StringItemList(oTypFeld.SelectedItems(0))
Deshalb habe ich auch eine gesonderte Funktion zum Auslesen des Wertes geschrieben gehabt - nur in die andere Richtung. Mich interessierte weniger, was da angezeigt wurde, als der Wert, der von einem Listenfeld weitergegeben wurde.

Gruß

Robert
Marco Schade
**
Beiträge: 42
Registriert: Mi, 08.03.2017 20:46

Re: Daten aus Filterformular übernehmen

Beitrag von Marco Schade »

Hallo Robert ,

vielen Dank für deine Hilfe. Ich glaub ich stehe auf dem Schlauch. ich habe die Datei nochmal angehangen . es geht um das Formular Test-Filter eine Beschreibung wie der Ablauf in den Formular ist habe ich auch im Formular hinterlegt .
Bei deinem Code hat sich bei mir leider nix geändert es ist genau so geblieben

Lieben Gruß

Marco
Dateianhänge
Datenbank 1.3.odb
(175.97 KiB) 156-mal heruntergeladen
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Daten aus Filterformular übernehmen

Beitrag von RobertG »

Hallo Marco,

das war nur der Code, den ich (für LibreOffice) einbauen musste, damit die Suchfunktion überhaupt lief. Das hat noch nichts mit einer Lösung für Dein Problem zu tun. Bei der Behandlung des Wertes eines Listenfeldes unterscheidet sich einfach LO und AOO.

Alle andere später.

Gruß

Robert
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Daten aus Filterformular übernehmen

Beitrag von RobertG »

Hallo Marco,

ich habe von Deinem Beispiel ausgehend ein Makro hinzugefügt, das aus dem Listenfeld rechts die Werte mit einem Klick auf den Datensatz ausliest und in das Tabellenkontrollfeld links unten überträgt.

Damit die Suche bei Dir auch funktioniert musst Du das Makro für das Listenfeld in der Suche wieder ändern. Gegebenenfalls muss einmal das Listenfeld bei der Suche bearbeitet werden, damit die Änderung nicht notwendig ist.

Gruß

Robert
Dateianhänge
Datenbank 1.3.odb
Werteübertragung Suche - Eingabeformular
(116.67 KiB) 150-mal heruntergeladen
Marco Schade
**
Beiträge: 42
Registriert: Mi, 08.03.2017 20:46

Re: Daten aus Filterformular übernehmen

Beitrag von Marco Schade »

Hallo Robert ,

Super echt klasse , das ist genau das was ich gesucht habe , Vielen Dank.

Kurze Frage, das makro kann ich aber nicht an einen Butten hinterlegen, das müsste immer im Kontrollfeld sein?
Was müsste ich den machen, das er im ziel Kontrollfeld automatisch einen neuen Datensatz anlegt und dann erst reinkopiert ?



Vielen Lieben Dank

Gruß Marco
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Daten aus Filterformular übernehmen

Beitrag von RobertG »

Hallo Marco,

wenn Du das mit einem Button machen möchtest, dann muss dieser in dem Formularfeld liegen, in dem auch Dein Tabellenkontrollfeld für die Ausgangsdaten liegt. Über

Code: Alles auswählen

oForm = oEvent.Source.Model.Parent 
kommst Du vom Button aus an das Formular. Über

Code: Alles auswählen

nName = oForm.findColumn("Name")
sName = oForm.getString(nName)
bekommst Du z.B. den Inhalt des aktuell ausgewählten Datensatzes aus der Spalte der zugrundeliegenden Tabelle, die "Name" heißt.

Wenn bei dem Zielformular noch kein neuer Datensatz existiert, so könnte dies über

Code: Alles auswählen

oZielForm.moveToInsertRow()
laufen

Gruß

Robert
Marco Schade
**
Beiträge: 42
Registriert: Mi, 08.03.2017 20:46

Re: Daten aus Filterformular übernehmen

Beitrag von Marco Schade »

Hallo Robert,

vielen Dank für deine Hilfe, mit dem Button wäre schon echt eine tolle Sache ,ich bekomm es einfach nicht hin , ich glaub ich steh auf dem Schlauch das Ding will einfach nicht laufen :-( .
Ich hab es genau so gemacht wie du es beschrieben hast

viele Grüße
Marco
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Daten aus Filterformular übernehmen

Beitrag von RobertG »

Hallo Marco,

habe ich eben einmal entsprechend geändert.

Gruß

Robert
Dateianhänge
Datenbank 1.3.odb
(116.78 KiB) 141-mal heruntergeladen
Marco Schade
**
Beiträge: 42
Registriert: Mi, 08.03.2017 20:46

Re: Daten aus Filterformular übernehmen

Beitrag von Marco Schade »

Hallo Robert ,

super vielen Dank es geht genau so wie ich es mir vorgestellt habe,
Jetzt wollte ich das Unterformular aktualisieren lassen, damit der GesamtPreis im Unterformular "Abgang" berechnet wird und ich gleich den nächsten Artikel einfügen kann ohne vorher ins Unterformular "Abgang "zu klicken

dazu habe ich folgendes Makro

Sub aktualisierenABGANG
oDoc = ThisComponent
oForm_Ziel = oDoc.DrawPage.Forms.GetByName("Rechnungen").GetByName("Abgang")
oForm_Ziel.UpdateRow() 'geänderten Datensatz speichern
oForm_Ziel.reload() 'Formular neu einlesen


das liegt im Formular frmSuche
TblCntrMaterial
und wird
"Maustaste gedrückt" aktiviert


es kommt wieder Fehlermeldung


Was ist den da falsch

liebe Grüße
Marco
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Daten aus Filterformular übernehmen

Beitrag von RobertG »

Hallo Marco,

Du hast einen Datensatz neu erstellt:

Code: Alles auswählen

oForm.moveToInsertRow()
Dann muss darauf

Code: Alles auswählen

oForm.insertRow()
erfolgen.
Wenn Du hingegen einen Datensatz änderst, der bereits abgespeichert war, dann

Code: Alles auswählen

oForm.updateRow()
Allround geht das natürlich auch:

Code: Alles auswählen

IF oForm.isNew THEN
oForm.insertRow()
ELSE
oForm.updateRow()
END IF
Ich nehme an, dass das die Fehlermeldung ist, die Du nicht genau angibst.

Gruß

Robert
Antworten