GELÖST Zugriff auf leeres Grid

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

GELÖST Zugriff auf leeres Grid

Beitrag 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 ...
Zuletzt geändert von WSO am Mo, 14.07.2014 23:35, insgesamt 1-mal geändert.
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Zugriff auf leeres Grid

Beitrag 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
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Zugriff auf leeres Grid

Beitrag von WSO »

Hallo Robert,
dabke dafuer.
habe mir jetzt das xray geholt und schaue mal was tas tut.
Gruss,
Wolfram
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Zugriff auf leeres Grid

Beitrag 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.
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

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

Beitrag von WSO »

Hi Robert,
bekomme das xray tool nicht zum laufen.
Version 6 installiert:
screenshot.png
screenshot.png (116.84 KiB) 2328 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: .
acco
***
Beiträge: 52
Registriert: So, 04.05.2014 19:54

Re: Zugriff auf leeres Grid

Beitrag 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
openSUSE 13.1, LibreOffice 4.3.2.2
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Zugriff auf leeres Grid

Beitrag von WSO »

Habe es noch mal neu installiert und geht jetzt.
Bin mal gespannt ...
Antworten