Seite 1 von 1

GELÖST Zugriff auf leeres Grid

Verfasst: Fr, 09.05.2014 18:22
von WSO
Ich verzweige per Satzmarkierung und Pushbutton per Mako auf ein Folgeformular.
Das Makro stüzt ab, wenn das aufrufende Formular leer ist, klar der Zugriff auf das Grid greift ins Leehre, weil keine Zeile markiert ist.

Code: Alles auswählen

sub AussenstaendeOpenFilter (oEvent AS OBJECT)

	DIM oDoc AS OBJECT
  	DIM oDrawpage AS OBJECT
 	Dim oForm As Object
 	Dim oBearbForm As Object
   	Dim oFormDocs As Object
  	Dim oFeld As Object
  	
   
   	DIM nID as integer
  	
  	
  ' Formlarfeld holen
  
  
    oDoc=thisComponent
	oDrawpage=oDoc.Drawpage
	oForm = ThisComponent.Drawpage.Forms.getByName("fAussenstaende")
	oFeld = oForm.getByName("MainForm_Grid").getByName("kud_id")                   <----   Absturz
  
   	nID = oFeld.getCurrentValue()

 	
   ' Bearbeitungsmaske öffnen
   oFormDocs = ThisDatabaseDocument.FormDocuments.getByName("fAussenstaendeDetail").open
   oBearbForm = oFormDocs.Drawpage.Forms.getByName("fAussenstaendeDetail")

  ' Filter setzen
   oBearbForm.Filter = " ""RecKudID"" LIKE '" & nID & "'"
  
   oBearbForm.ApplyFilter = True
   oBearbForm.reload()
   
   	
 end SUB  
Wie kann ixh das verhindern?
On Error fällt mir ein, ist aber nicht wirklich elegant ...

Re: Zugriff auf leeres Grid

Verfasst: Fr, 09.05.2014 19:58
von RobertG
Hallo WSO,

wenn Du viel mit Makros machen willst, dann solltest Du Dir dringend so ein Tool wie xray zulegen. Ich habe gerade einmal die Eingeschaften des Formulares nachgesehen. Vielleicht reicht eine Abfrage mit oForm.InNew oder oForm.IsRowCountFinal. Wenn das True ist, dann kannst Du auf einen Eintrag nicht zugreifen.

Gruß

Robert

Re: Zugriff auf leeres Grid

Verfasst: Sa, 10.05.2014 08:57
von WSO
Hallo Robert,
dabke dafuer.
habe mir jetzt das xray geholt und schaue mal was tas tut.
Gruss,
Wolfram

Re: Zugriff auf leeres Grid

Verfasst: Sa, 10.05.2014 09:23
von WSO
Nachtrag:
mit der Version 4.2.4.2 hat sich das Problem ohnehin gelöst.
Das Makro läuft jetzt mit jeder Datenkonstellation durch.

Re: Zugriff auf leeres Grid, (xray geht nicht)

Verfasst: Sa, 10.05.2014 12:49
von WSO
Hi Robert,
bekomme das xray tool nicht zum laufen.
Version 6 installiert:
screenshot.png
screenshot.png (116.84 KiB) 2330 mal betrachtet
Makro beim start von oO eingefuegt:

Code: Alles auswählen

BasicLibraries.LoadLibrary("XrayTool")
erster Versuch:

Code: Alles auswählen

	oFeld=oForm.getByName("Leistung")
	
rem	BasicLibraries.LoadLibrary("XrayTool")
	Xray oFel
führt zum Abbruch
BASIC-Laufzeitfehler.
Sub- oder Function-Prozedur nicht definiert.

und so:

Code: Alles auswählen

	BasicLibraries.LoadLibrary("XrayTool")
	Xray(oFeld)
ergibt : BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.container.NoSuchElementException

Ich glaube, ich trete bei meiner Evaluierung in jedes Fettnäpfchen ....

Message: .

Re: Zugriff auf leeres Grid

Verfasst: Sa, 10.05.2014 13:37
von acco
hallo Wolfram,

hast Du Dich genau an die Anleitung auf Seite7 von xray gehalten?
Makro in Meine Makros & Dialoge.Standard
eingetragen?

und Speichern in : LibreOffice (oder AO) ? Nicht in Deiner Datenbank?

Bei mir funktioniert es nach dieser Anleitung einwandfrei.

Dein erster Versuch kann nicht funktionieren, da Du xray mit rem am Zeilenbeginn auskommentiert hast.


Gruß

acco

Re: Zugriff auf leeres Grid

Verfasst: Sa, 10.05.2014 16:30
von WSO
Habe es noch mal neu installiert und geht jetzt.
Bin mal gespannt ...