Seite 1 von 2
Formular mit GET/POST
Verfasst: Di, 20.09.2011 16:53
von S.Eder
Hallo Forum,
Ich spiele mich schon wieder 1 std und schaffe es nicht ein einfaches Formular zu erstellen!
Ich würde gern ein Formular erstellen indem ich einen Wert eingebe ( Primärschlüßel ) und danach erscheint der Datensatz aus Tabelle A.
Danach sind noch ein paar Felder auszufühlen und dann wird der komplette Datensatz in Tabelle B geschrieben!
Mein Lösungsansatz:
Ein Formular mit POST und ein Unterformular mit GET, jedoch funktioniert es so nicht

!
FA = das Feld zum ausfüllen

- OOForum.jpg (115.78 KiB) 2203 mal betrachtet
Re: Formular mit GET/POST
Verfasst: Di, 20.09.2011 17:36
von komma4
S.Eder hat geschrieben:Mein Lösungsansatz:
Ein Formular mit POST und ein Unterformular mit GET, jedoch funktioniert es so nicht

!
Kein Wunder!
Aus der Programmhilfe F1, Formular, Register "Allgemein"
Art des Submits
Geben Sie hier die Methode für die Übermittlung der Daten im ausgefüllten Formular an.
Anhand der Methode "get" werden die Daten aller Kontrollfelder als Umgebungsvariablen übertragen. Sie werden in der Form "?Kontrollelement1=Inhalt1&Inhalt2=Inhalt2&..." an den URL angehängt, und die Zeichenkette wird auf dem Empfangsserver durch ein Programm ausgewertet.
Bei Verwendung der Methode "post" wird aus dem Inhalt des Formulars ein Dokument erstellt und dieses an den angegebenen URL gesendet.
Du brauchst einen formularbasierten Filter für Deinen Primärschlüssel, dann können die anderen "gefühlten" Felder auch in Datensatz B geschrieben werden.
Hole Dir mal
FilterExamples.zip aus
diesem Thread
Hilft das weiter?
Re: Formular mit GET/POST
Verfasst: Mi, 21.09.2011 09:51
von S.Eder
Jaein, da ich nur geringe SQL Kenntnisse habe.
____________________
Nochmal zum Schema:
Rot = zum Ausfüllen
Schwarz = "Auto - Feld" - Filter ( aus tab_FA )
Gelb= zum Ausfüllen
Speichern in tab_smd

- OOForum.jpg (95.97 KiB) 2182 mal betrachtet
aus dem Tutorial:
Code: Alles auswählen
Select "Filter" .* FROM "Filter" As "Filter" WHERE "ID"=0
mein Fall:
Code: Alles auswählen
Select "tab_FA" .* FROM "tab_FA" AS "tab_FA" WHERE "ID"=0

- OOForum1.jpg (107.7 KiB) 2182 mal betrachtet
Jedoch bekomm ich hier schon einen syntax error.
lg
Re: Formular mit GET/POST
Verfasst: Mi, 21.09.2011 11:04
von komma4
Zunächst zum Formular-Aufbau:
Dein Auswahlfeld
FA sollte zum
MainForm gehören, dessen Daten der zu schreibenden Tabelle zugeordnet sind.
Eigenschaften des Kontrollfeldes
FA
Datenfeld: FA (wie auch immer es in der Ziel-Tabelle heisst)
Ereignis>Bei FokusverlustMakro
refresh_FA/color] zuordnen
Deine Anzeigefelder werden aber einer anderen SubForm zugeordnet (die werden ja auch nicht in die Tabelle geschrieben, oder?)
Diese SubForm beziehen ihre Daten aus der Tabelle, welche die Einzelheiten des FA enthält.
Mit dem Makro setzt Du die Inhalte der anderen Kontrollfelder, durch Setzen eines Filters
IN ETWA (da ungetestet!)
Code: Alles auswählen
Sub refresh_FA( oEvent )
' Routine zum Einstellen der FA-Daten
' alle Formulare
oForms = oEvent.Source.Model.Parent.Parent
oForm = oForms.getByName( "MainForm" )
ofrm_FA = oForms.getByName( "frm_FA" )
'aktuellen Wert
oFeld = oForm.getByName( "FA")
sFA = oFeld.String
With ofrm_FA
.filter = "FA = " & sFA
.ApplyFilter=true
.reload
End With
End Sub
Für weitere Hilfestellung ist es praktisch unerlässlich, dass Du Deine ODB mal hochlädst.
Achte darauf, dass keine personenbezogenen Daten enthalten sind.
Re: Formular mit GET/POST
Verfasst: Mi, 21.09.2011 11:44
von S.Eder
Ne irgendwie bekomm ichs nicht hin, ich lade mal die DB hoch.
Wenn du mal ein Auge darauf werfen könntest wäre mir weitergeholfen.
lg
Re: Formular mit GET/POST
Verfasst: Mi, 21.09.2011 12:44
von komma4
Ich helfe gerne, andere vielleicht aber auch.
Deine DB enthält auch keine schützenswerten Daten, deshalb wäre es sinnvoll ein neues Archiv OHNE PASSWORT zu erstellen.
Bin erstmal ein paar Stunden zum Abendessen unterwegs - vllt. kann ich später nochmal auf Dein Problem zurück kommen, vllt. kann ein anderer helfen (wenn Du ihm die Chance gibst

)
Re: Formular mit GET/POST
Verfasst: Mi, 21.09.2011 14:07
von S.Eder
Ja ich gebe einfach das Passwort bekannt

.
Das Passwort lautet:"com"
Re: Formular mit GET/POST
Verfasst: Do, 22.09.2011 11:42
von komma4
Habe Dir mal ein Beispiel gebastelt:
Das Listenfeld
FA oben wird aus der
tab_FA gespeist.
Bei einem Wechsel des angezeigten Werts greift das (
Eigenschaften>Ereignisse>)
Modifiziert-Makro und setzt die Felder der Unterform
frm_FA durch Hinzufügen eines Filters.
Den Rest darfst Du selbst basteln.
Viel Erfolg!
- db_fehler.odb
- ODB mit Listenfeld-Filter im Formular
- (36.59 KiB) 80-mal heruntergeladen
Re: Formular mit GET/POST
Verfasst: Fr, 23.09.2011 10:53
von S.Eder
Hey,
Echt toll geworden, jedoch wollte ich es jetzt ohne Listenfeld probieren und mit einem normalen Textfeld funktioniert es nicht ( liegt das am Makro oder).
Da es nachher zuviele FA's geben würde um die zu suchen
Desweiteren wollte ich ein Marko erstellen damit die Felder FA mit FA verknüpft werden.
Code: Alles auswählen
Sub refresh_FA( oEvent )
' Routine zum Einstellen
' 2011 - 23 - 09
' alle Formulare
oForms = oEvent.Source.Model.Parent.Parent
oForm = oForms.getByName( "MainForm" )
ofrm_FA = oForms.getByName( "frm_FA" )
'aktuellen Wert in ein anderes Feld schreiben
oFeld.getbyName("txtFA") = oForm.getByName( "lst_FA")
oFeld.getbyName("txtBaugruppe") = oForm.getByName( "lst_FA")
oFeld.getbyName("txtVersion") = oForm.getByName( "lst_FA")
oFeld.getbyName("txtStückzahl FA gesamt") = oForm.getByName( "lst_FA")
End Sub
bekomme jedoch einen Fehler das er die Variable nicht kennt?
Kann ich so Textfelder nicht ansprechen ?
Gibt es hier ein gutes Tutorial ? Wie man Formulare/Felder anspricht per Makro
Re: Formular mit GET/POST
Verfasst: Fr, 23.09.2011 11:15
von komma4
Code: Alles auswählen
Sub refresh_FA( oEvent )
' Routine zum Einstellen
' 2011-09-16
' 2011-09-23
' alle Formulare
oForms = oEvent.Source.Model.Parent.Parent
oForm = oForms.getByName( "MainForm" )
ofrm_FA = oForms.getByName( "frm_FA" )
'aktuellen Wert
oFeld = oForm.getByName( "lst_FA")
id = oFeld.String
With ofrm_FA
.filter = "FA = '" & id & "'"
.ApplyFilter=true
.reload
End With
oForm.getByName( "txtFA" ).String = id
End Sub
Gebunden an Ereignis "Fokusverlust" des ehemaligen Listenfeldes.
Standardtipps zum Erlernen von StarBasic:
Andrews Makro-Dokument
und ein Objekt-Inspektions-Tool, wie
XRAY
siehe auch:
Andrews Base-Dokument
OOo Base Tutorials: http://www.tutorialsforopenoffice.org/c ... /base.html
Re: Formular mit GET/POST
Verfasst: Fr, 23.09.2011 12:45
von S.Eder
Bekomme hier einen Laufzeitfehler!?
Moderation,4: Vollzitat gekürzt
Re: Formular mit GET/POST
Verfasst: Fr, 23.09.2011 13:34
von komma4
S.Eder hat geschrieben:Bekomme hier einen Laufzeitfehler!?
Bitte genauen Text evtl. Fehlermeldungen angeben!
Prüfe, ob das Kontrollelement "txtFA":
- ein Textfeld ist
- im Formular MainForm liegt (Formular-Navigator); da ist es jedenfalls in meiner Beispieldatei
Re: Formular mit GET/POST
Verfasst: Mo, 26.09.2011 08:56
von S.Eder
Ja ist es eigendlich.
Ich hab mal einen Screen gemacht von der Fehlermeldung, und werde mich jetzt mal in die Tutorials einlesen.

- OOForum2.jpg (24.29 KiB) 2088 mal betrachtet
lg
Re: Formular mit GET/POST
Verfasst: Mo, 26.09.2011 09:25
von komma4
Die Fehlermeldung sagt, dass eine falsche Anzahl Parameter übergeben wird:
Du rufst über
[rechte Maustaste]Kontrollfeld...>Ereignisse>Modifiziert auf - da wird der
EVENT Parameter übergeben
Deine
SUB sieht dann so aus:
Re: Formular mit GET/POST
Verfasst: Di, 27.09.2011 14:15
von S.Eder
Hi,
könntest du neben den Befehlen kurz eine Beschreibung hinterlassen.
Damit ich das Makro mal verstehe.
Bsp:
Code: Alles auswählen
If(A==1) {} // wenn die Variable A 1 ist wird die IF Anweisung durchlaufen.
Also das mit den wrong parametern ist einfach ein "Variablen - Übergabe" Fehler? = So verstehe ich es jetzt aufjedenfalls
lg