Makro über Doppelklick auf Tabellenzeile Formular öffnen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Jany84
Beiträge: 3
Registriert: Do, 19.11.2015 10:26

Makro über Doppelklick auf Tabellenzeile Formular öffnen

Beitrag von Jany84 »

Hallo,

ich hoffe, jemand hier weiß einen Rat für mich und mein Problem:

Ich bin gerade dabei, eine Datenbank zu erstellen, in der es um Auftragsbearbeitung in einer Kfz-Werkstatt geht. Zu diesem Zweck habe ich unter anderem eine Abfrage erstellt, mit der ich die offenen Reparaturaufträge einsehen kann und diese als Tabelle in ein Formular eingefügt.

Nun bin ich mit der ganzen OOo Base noch nicht so vertraut, aber ich lerne täglich dazu und dieses Forum hat mir dabei schon sehr geholfen. Ich hoffe, dass es überhaupt eine Möglichkeit gibt, meine Idee in die Tat umzusetzen, eventuell über ein Makro:

Was ich gerne hätte, wäre folgendes: Ich habe mir das Formular mit den offenen Aufträgen aufgerufen und im idealsten Fall würde ich gerne über einen Doppelklick auf den gewünschten Datensatz in der Tabelle ein weiteres Formular mit ebendiesem Datensatz aufrufen, in welchem ich den Auftrag dann weiter bearbeiten kann.

Hat vielleicht jemand von euch eine Idee, wie ich das ganze umsetzen könnte? Oder ob das überhaupt funktioniert, wie ich mir das vorstelle?

Ich hoffe, ich habe alles halbwegs verständlich erklärt und jemand von euch kann mir einen Tipp geben.

Vielen Dank
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Makro über Doppelklick auf Tabellenzeile Formular öffnen

Beitrag von F3K Total »

Hallo Jany84,
ein Beispiel für eine ähnliche Lösung findest du hier.
Gruß R
Jany84
Beiträge: 3
Registriert: Do, 19.11.2015 10:26

Re: Makro über Doppelklick auf Tabellenzeile Formular öffnen

Beitrag von Jany84 »

Hallo R

vielen Dank erst einmal für deinen Tipp. Ich hab mir die Datenbank angeschaut und das funktioniert auch so, wie ich mir das vorstelle.

Das zugehörige Makro sieht auch wirklich ziemlich kompliziert aus, jedenfalls für mich, die ich mich gerade erst in das Thema einarbeite (sozusagen Learning by Doing). Nun habe ich probiert, das Makro entsprechend meinen Formularen umzubauen. Immerhin geht das gewünschte Formular schon mal auf, allerdings wird mir gleich ein Fehler im Makro angezeigt.

Vielleicht kannst du mir sagen, was genau ich falsch mache?

Ich wäre dir wirklich dankbar für deine Hilfe.
Dateianhänge
Werkstattverwaltung.odb
(111.52 KiB) 116-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Makro über Doppelklick auf Tabellenzeile Formular öffnen

Beitrag von F3K Total »

Hi,
versuchs so:
...
odetailForm = ocomponent.drawpage.forms.AuftragBearbeiten
odetailForm.filter = "( ""Auftragsverwaltung"".""ID"" = "+nID+" )"'Nach der Person mit der aus dem ersten Formular ausgelesenen ID filtern
odetailform.reload
end sub
und alles ..

Code: Alles auswählen

sub S_open_Form_menue
    oform = thisComponent.drawpage.forms.offeneAuftraege
    nID = oform.getint(1)'hier wird die Kundennummer aus Spalte 1 der zugrundeliegenden Tabelle ausgelesen
'    msgbox "Jetzt ist der Kunde mit der ID "+nID+" ausgewählt"
    Verbindung = oform.activeconnection
    'Rechnungsformular öffnen
    oFormDoc = ThisDatabasedocument.getformdocuments.getbyname("AuftragBearbeiten")
    ocomponent = oFormDoc.Component
    if not isnull (ocomponent) then
        ocomponent = oFormDoc.Component
        if isnull(ocontroller) then 
             oFormDoc.open
             ocomponent = oFormDoc.Component
             ocontroller = ocomponent.currentcontroller
        else
             ocontroller = ocomponent.currentcontroller
             ocontroller.frame.containerwindow.toFront
        endif
    else
         Dim oParms(0) As New com.sun.star.beans.PropertyValue
         oParms(0).name="ActiveConnection"
         oParms(0).value = Verbindung
         oFormDocs = ThisDatabasedocument.FormDocuments
         ocomponent = oFormDocs.loadComponentFromURL("AuftragBearbeiten", "", 0, oParms())
         ocontroller = ocomponent.currentcontroller
    endif
    odetailForm = ocomponent.drawpage.forms.AuftragBearbeiten
    odetailForm.filter = "( ""Auftragsverwaltung"".""ID"" = "+nID+" )"'Nach der Person mit der aus dem ersten Formular ausgelesenen ID filtern
    odetailform.reload
end sub
Gruß R
Jany84
Beiträge: 3
Registriert: Do, 19.11.2015 10:26

Re: Makro über Doppelklick auf Tabellenzeile Formular öffnen

Beitrag von Jany84 »

Ich bin begeistert, klappt wunderbar!!!

Ich danke Dir tausendmal!!! :D
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Makro über Doppelklick auf Tabellenzeile Formular öffnen

Beitrag von F3K Total »

Hast Du verstanden weswegen? Ich empfehle, dir Deine Formulare mal mit dem Formularnavigator anzusehen ...
Antworten