Öffnen von Formularen über Schaltflächen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Orca
Beiträge: 3
Registriert: Do, 11.05.2006 14:27

Öffnen von Formularen über Schaltflächen

Beitrag von Orca »

Ich versuche schon seit einiger Zeit über eine Schaltfläche in einem Formular ein anderes Formular zu öffnen. Ich kriege es leider nicht mal ansatzweise hin. Wäre super lieb, wenn mir jemand weiterhelfen könnte!

Vielen Dank!
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Orca,

hmm, wieviel Ahnung hast du denn vom Programmierern? Wie hast du dein erstes Formular geöffnet? Wie arbeitest du überhaupt?

Base hat eine einfache Struktur, die in den meisten Fällen ausreichend ist. Willst du mehr, geht das alles über die API - also direkte Programmierung zum Beispiel per Basic.

Also, ich nehme nicht an, dass du hier von jemanden eine fertige Lösung erwartest - andererseits lieferst du viel zu wenig Informationen, wie weit du schon bist.

Kurz: Per Mausklick und mit Drag&Drop ist das nicht zu realisieren. Über Programmierung jederzeit - bedarf aber entsprechender Vorkenntnisse und Vorarbeiten.

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Orca
Beiträge: 3
Registriert: Do, 11.05.2006 14:27

Beitrag von Orca »

Hi Thomas!

Ich habe ne Prozedur, um von Form1 auf Form2 zu kommen:

sub onClickForm2Button( oev as variant )
with OpenForm( getFormsTC, getConnectionTC, "Form2" )
.CurrentController.Frame.Title = "My FORM 2"
end with
end sub

Da passiert bloß leider gar nichts;( Richtige Ahnung habe ich leider nicht!

Wäre trotzdem nett, wenn Du mir helfen könntest!!!
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Orca,

wo hast du die denn her? Kann ich wenig mit anfangen., ohne mehr Infos zu haben. Wer oder was ist "oev"? Wo erzeugst du diese Varaible, wozu brauchst du die? Für die Sub jedenfalls nicht, wozu dann übergeben?
Erscheint mir generell keine OOo Funktion zu sein, bzw wo ist die Funktion OpenForm() ? Was gibt die zurück? Ansonsten setzt lie ledigllich den Titel des Frames (also des sichtbaren Fensters) - wechselt aber nicht das Formular.

Also, da kann ich dir aktuell wenig helfen.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Orca
Beiträge: 3
Registriert: Do, 11.05.2006 14:27

Beitrag von Orca »

Hi Thomas!

Die Funktionen hat mir jemand aus Amiland gegeben. Zur Info, was ich eigentlich will:

Ich möchte mir ein Kontaktverwaltungsprogramm erstellen. Dazu möchte ich ein Hauptmenü haben, auf dem ein Button sichtbar ist. Wenn ich diesen Button drücke, soll sich die Eingabemaske (Formular "Kontaktperson") öffnen. Dort kann ich dann alle Kontaktdaten inkl. Historie, Wiedervorlage etc. eintragen.

Ein zweiter Button im Hauptmenü soll mich zu den Abfragen bringen. Hier will ich mir dann zum Beispiel alle Kontakte anzeigen lassen, die ich wieder in der KW 21 ansprechen möchte etc.

Vielleicht gibt es ja auch einen anderen Weg, die beiden Formulare zu verlinken?. Ich hab in den Foren leider noch nicht das richtige gefunden;(
venkman
Beiträge: 4
Registriert: Do, 25.05.2006 17:09

Beitrag von venkman »

Ich hab's so ohne Programmierung hinbekommen:

1) Formulare erstellen

2) Formulare speichern als Kopie

3) "Externe" Formulare öffnen und an die Datenbank binden im Menü "Bearbeiten"-> "Datenbank austauschen" (Datenbank muß dafür angemeldet sein).

4) Datenquelle in den Formulareigenschaften eintragen (diese Verbindung geht beim Speichern als externe odt-Datei leider verloren).

5) Schaltflächen erstellen und unter "Aktion" für die Schaltfläche "Dokument/Website öffnen" wählen. Pfad in dem Eingabefeld "URL" eingeben, entweder absolut oder relativ. Wenn alle Formulare in einem Ordner sind, sollte der Dateiname reichen.

Das war's.

OO zeigt übrigens noch ein merkwürdiges Verhalten dabei: wenn man von einem Datenbank-internen Formular auf ein extern gespeichertes zugreift, läßt sich das externe nicht mehr schließen und das interne wird nicht mehr angezeigt.
Werden alle Formular extern gespeichert gibt es kein Problem.

Viel Erfolg!
Odenforest
Beiträge: 5
Registriert: Mi, 04.01.2006 21:06

Beitrag von Odenforest »

Hallo,

kleine Ergänzung im Schritt 4):

venkman hat geschrieben:Ich hab's so ohne Programmierung hinbekommen:

4) Datenquelle in den Formulareigenschaften eintragen (diese Verbindung geht beim Speichern als externe odt-Datei leider verloren).
Es darf zusätzlich nicht vergessen werden, bei Formular-Eigenschaften, Register Daten, im Feld "Inhalt" die gewünschte Tabelle bzw. Abfrage auszuwählen.

Gruss

Thomas
Gabriel123
***
Beiträge: 65
Registriert: Mo, 14.01.2008 19:31

Re: Öffnen von Formularen über Schaltflächen

Beitrag von Gabriel123 »

Habs schon gefunden, so läufts richtig mit schreibzugriff:

Code: Alles auswählen

function OpenForm(    formContainer as variant, _
               oConnection as variant, _
               sFormName as string, _
               optional strMode as string) as variant
Dim aProp(1) As New com.sun.star.beans.PropertyValue
dim openMode as string
   if ismissing( strMode ) then
      openMode = "open"
   else
      openMode = strMode
      endif
    aProp(0).Name = "ActiveConnection"
    aProp(0).Value = oConnection
    aProp(1).Name = "OpenMode"
    aProp(1).Value = strMode
    OpenForm = formContainer.loadComponentFromURL(sFormName,"_blank",0,aProp())
end function 

sub onClick( oEvent as variant )
   OpenForm( OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, _
           OEvent.Source.Model.Parent.ActiveConnection, _
           "auftragserfassung") 
           end sub
Antworten