Formular mit bestimmter id aufrufen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

mormel
Beiträge: 4
Registriert: Fr, 25.06.2004 12:05

Formular mit bestimmter id aufrufen

Beitrag von mormel »

Hallo,

unten findet Ihr den relevanten Code.

Zur Situation:
Ich habe ein Formular, das mit der Tabelle Kunden verknüpft ist. Darin gibt es einen Button (per auslösen verknüpft mit cmdKundenadressenZeigen_Click()), der ein weiteres Formular öffnet, das mit der Tabelle Kundenadressen verknüpft ist.

Mein Problem:
Ich schaffe es nicht, dem neu geöffneten Formular Kundenadressen eine ID zu übergeben, so dass nur die Adressen zum aktuellen Datensatz übergeben werden. Meine Angaben zu command und commandType werden völlig ignoriert. Ich habe auch versucht, einen Filter zu setzen, dies wird aber auch ignoriert, es werden imm alle Datensätze von Kundenadressen angezeigt.

Hat irgendjemand einen Tipp für mich?

VG mormel

Code: Alles auswählen

Private Sub cmdKundenadressenZeigen_Click(oEvent as variant)
  init
  kundenId = oForm.getColumns.getByName("id").value
  OpenForm(oEvent, "FKundenadressen")
  oForm.CommandType = 2
  oForm.Command = "SELECT * FROM ""TKundenadressen"" WHERE ""id""=" + kundenId
End Sub

Sub init
  DBConnect
  Set_oForm("Standard")
End Sub

Sub DBConnect
  Dim DatabaseContext As Object
  Dim DataSource As Object
  Dim InteractionHandler as Object
  DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
  DataSource = DatabaseContext.getByName("datenbank")
  If Not DataSource.IsPasswordRequired Then
    Connection = DataSource.GetConnection("","")
  Else
    InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
    Connection = DataSource.ConnectWithCompletion(InteractionHandler)
  End If
End Sub

Sub Set_oForm(Fname As String)
  oDoc = ThisComponent
  oForm = oDoc.drawpage.forms.getByIndex(0)
End Sub

Sub OpenForm(oEvent as variant, aFormName as string)
  Dim args(3) As New com.sun.star.beans.PropertyValue
  Dim container as variant

  container = oEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments

  args(0).Name = "ActiveConnection"
  args(0).Value = oEvent.Source.Model.Parent.ActiveConnection
  args(1).Name = "OpenMode"
  args(1).Value = "open"

  container.loadComponentFromURL(aFormName,"_blank",0,args())
End Sub
sarotti
****
Beiträge: 105
Registriert: So, 12.03.2006 17:40
Wohnort: Nähe Krefeld

Re: Formular mit bestimmter id aufrufen

Beitrag von sarotti »

Hallo Mormel,

an dem "Problem" bin ich auch schon mal fast verzweifelt.

Aber eigentlich ganz einfach. Du liest die Filterkriterium (also z.B. eine ID) aus Deinem aktuellen Datensatz des offenen Formulars, öffnest ein zweites (in dem Du filtern möchtest) und setzt dieses Kriterium bei diesem alsl Filter.

schau mal hier:

viewtopic.php?f=8&t=16573&p=69004

...sollte Dir zumindest genug Anregungen geben, wie Du das realisieren kannst. Hoffe Du wirst hieraus schlau!

Gruß
sarotti
Antworten