Ich habe eine Schaltfläche (Scriptzeilen ausführen), die den Nutzer zu einer Ansicht wechseln soll und diese Ansicht filtern. Wenn die Ansicht bereits geöffnet ist, als man den Button clickt, dann läuft das Skript richtig – die Ansicht wird gewechselt, der Filter wird gesetzt und die richtigen Daten werden angezeigt. Aber wenn die Ansicht beim Buttonklick noch nicht geöffnet ist, dann ist etwas beim Filtersetzten falsch – zwar wird die Filterung angewandt, aber ich sehe keine Datensätze, als ob keine gefunden wurden. Der Code:
Dim sViewName : sViewName = "LieferAngeboteVerwendung"
Dim oVerwendungView : Set oVerwendungView = cRM.CurrentProject.OpenActiveViewByName(sViewName)
If (oVerwendungView Is Nothing) Then
Set oVerwendungView = cRM.CurrentProject.OpenNewViewByName(sViewName)
End If
GroupId = cRM.CurrentProject.ActiveViews.ActiveView.CurrentInputForm(2).GetContentsValueByName("GroupID")
Dim sSQL : sSQL = "SELECT v.RecordId " & _
"FROM LieferantenangeboteVerwendung v " & _
"INNER JOIN Factura_Belege b ON b.RecordId = v.BelegRecordId " & _
"WHERE b.GroupID = 0x" & GroupID
Dim rsVerwendung : Set rsVerwendung = oVerwendungView.CurrentRecordSet()
rsVerwendung.SetFilterDirectSQL(sSQL)
Call oVerwendungView.Activate
' set table view mode
Call oVerwendungView.InvokeMenu(32782, True)
Das Problem scheint irgendwie auf die Stelle bezogen zu werden, wo der Filter angewandt wird. Ich habe bereits Dokus zu den Methoden nochmals gelesen und versucht Einzelteile dieses Skriptes umzusortieren. Das hat noch nicht geholfen.
Ich wäre dankbar falls mir jemand helfen könnte.