RE: [de-users] Problem bei der Maro-Programmierung

2009-07-01 Diskussionsfäden openoffice
Hallo,



Ich hatte ein ähnliches Problem. Auch ich hatte statische
Button, aber es waren etwa 160. für jeden Button nun ein
eigenes Makro zu schreiben und es diesem zuzuweisen wäre
wenig praktikabel.

Daher war ich sehr froh über eine zufällige Lösung aus dem
Makrobuch zu Openoffice von Thomas Krumbein.

Hier wurden statt Button sogenannte Radiobutton verwendet.
Alle Button lösen bei Änderung ihres Status das gleiche
makro aus. Mittels einer einfachen Schleife kann jetzt
herausgefunden werden, welcher Radiobutton aktiv ist.

(if oDialog.getControl(optionButton1).state then ...)

diese einfache Abfrage hat zur Folge das wenn der Button
ausgewählt wurde das If statment 1 und somit wahr wird.
Jetzt kannst du einfach mitteles Abfrage des Labels
herausfinden, was der Nutzer mit dem Klick bezweckt hat.
Also welche Zeile etc.



Ich hoffe hier eine Anregung gegeben zu haben.
Vorraussetzung ist aber das die Radiobutton durch nummeriert
sind und somit nur anhand einer einfachen hochzählbaren
Variable unterscheiden. Sonst geht das Konzept der Schleife
nicht auf. Das Label ist unabhängig vom Namen des Buttons.



Viele Grüße und Erfolg





 -Ursprüngliche Nachricht-
  Von: Tobias Maurer 
  Gesendet: Tue. 30.06.09 (11:45)
  An: users@de.openoffice.org
  Betreff: [de-users] Problem bei der Maro-Programmierung
  
  Sehr geehrte Damen und Herren,
  ich befasse mich zurzeit mit der Konvertierung einiger
Excel-Dateien
  in Open-Office-Dateien. Dabei bin ich auf ein Problem
gestoßen,
  welches ich bisweilen auch unter Zuhilfenahme des
Internets nicht
  lösen konnte. Aus diesem Grund wende ich mich nun
vertrauensvoll an
  diesen Support.
  
  Mein Problem:
  Ich möchte über verschiedene Buttons an bestimmte
Stellen in
  verschiedenen Datenblättern springen. Bis dato kein
Problem. Jedoch
  möchte ich anhand der Aufschrift der Buttons an eben
diese Stellen
  springen.
  
  Soll heißen: Ich möchte beim Aufruf des Makros
herausfinden, von
  welchem Button aus es gestartet wurde. Bislang habe ich
jedoch nur
  herausgefunden, wie ich die auf die Eigenschaften mir
bekannter Items
  zugreifen kann, nicht jedoch auf mir zum Zeitpunkt des
Makrostarts
  unbekannte Items.
  
  Ich hoffe sie können mir bei meinem Problem behilflich
sein.
  Im anhang finden sie eine von mir erstellte Testdatei,
in welcher das
  Makro enthalten ist.(Für den Fall, dass meine
Ausführungen für
  Außenstehende etwas verwirrend klingen sollten).
  
  Vielen Dank im voraus.
  
  Mit besten Grüßen
  Tobias Maurer
  --
  Neu: GMX Doppel-FLAT mit Internet-Flatrate +
Telefon-Flatrate
  für nur 19,99 Euro/mtl.!*
http://portal.gmx.net/de/go/dsl02
  
  
  -Ursprüngliche Nachricht Ende-







#adBox3 {display:none;}



-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Problem bei der Maro-Programmierung

2009-07-01 Diskussionsfäden Gisbert Friege

Hallo Tobias,

Tobias Maurer schrieb:


Soll heißen: Ich möchte beim Aufruf des Makros herausfinden, von
welchem Button aus es gestartet wurde. 


Ich interpretiere deine Frage mal so:
du möchtest ein Makro bauen, das weiß, von welchem Button es 
aufgerufen wurde.


Ich habe das in Dmaths (eine unerschöpfliche Fundgrube für Ideen im Fach 
Makroprogrammierung mit OOo-sbasic) so gemacht wie Laurent Godard es mir 
damals geraten hatte:


Schreibe deinem Makro einen Parameter in die Klammer:

Sub Verweis(event)
Dim LS as string
LS = event.source.model.Label
msgbox LS
End Sub

Auf diese Weise können viele verschiedene Button dasselbe Makro nutzen, 
das dann in Abhängigkeit vom Wert von LS jeweils eine andere Aktion 
ausführen könnte.


Wenn du wirklich in die Programmierung von sbasic einsteigen willst 
solltest du dir Xray besorgen.

Dann kannst du mit der Befehlsfolge
xray event
xray event.source
xray event.source.model
schrittweise erforschen, was in dem Parameter event drin steckt.

Noch eine Tipp zu Xray: vor jeder Verwendung von Xray nach einem 
Neustart von OOo musst du es in der Makroverwaltung (unter Meine 
Makros) durch einen Klick auf die Ordner XrayDyn und XrayTool anmelden 
(die Ordnerfarbe wechselt dabei auf gelb).


Viel Erfolg!
Gisbert



-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Problem bei der Maro-Programmierung

2009-07-01 Diskussionsfäden Volker Heggemann

Gisbert Friege schrieb:

Hallo Tobias,

Tobias Maurer schrieb:


Soll heißen: Ich möchte beim Aufruf des Makros herausfinden, von
welchem Button aus es gestartet wurde. 


Ich interpretiere deine Frage mal so:
du möchtest ein Makro bauen, das weiß, von welchem Button es 
aufgerufen wurde.


Ich habe das in Dmaths (eine unerschöpfliche Fundgrube für Ideen im 
Fach Makroprogrammierung mit OOo-sbasic) so gemacht wie Laurent Godard 
es mir damals geraten hatte:


Schreibe deinem Makro einen Parameter in die Klammer:

Sub Verweis(event)
Dim LS as string
LS = event.source.model.Label
msgbox LS
End Sub

Auf diese Weise können viele verschiedene Button dasselbe Makro 
nutzen, das dann in Abhängigkeit vom Wert von LS jeweils eine andere 
Aktion ausführen könnte.

Tobias, das klappt tadelos.
In dem Macro was ich dir zugesandt habe sieht das dann so aus:
___
Sub button1(event)
 dim suche
 dim found
 dim oSheet
 Dim LS as string
 LS = event.source.model.Label
 msgbox LS
 rem Suche von button1 aus
 oSheet = ThisComponent.getsheets().getbyname(Tabelle2)  
 suche = LS

 found=SimpleSheetSearch(suche, oSheet, true)
 MsgBox(Von Button 1 gefunden:found.getstring(),,INFORMATION)
 rem oder einfach:  print found.getstring()
 rem selektiere die Zelle
 ThisComponent.CurrentController.Select(found)
end sub



mfg
Volker

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Problem bei der Maro-Programmierung

2009-06-30 Diskussionsfäden Volker Heggemann

Hallo Tobias,

Tobias Maurer schrieb:

Sehr geehrte Damen und Herren,
  
nun mal nicht so förmlich, wir sind hier aller per Du. (Es handelt sich 
um das Openoffice USER Forum)

ich befasse mich zurzeit mit der Konvertierung einiger Excel-Dateien in 
Open-Office-Dateien.

Das ist ein weites Feld. Aber gut.

 Dabei bin ich auf ein Problem gestoßen, welches ich bisweilen auch unter 
Zuhilfenahme des Internets nicht lösen konnte. Aus diesem Grund wende ich mich 
nun vertrauensvoll an diesen Support.
  
Wie gesagt, das hier ist nicht eine Support Abteilung, sondert eine User 
Liste. Wir helfen uns gegenseitig!
Daher ist es auch nicht so sinnvoll, gleich bei der Ersten Anfrage 
gleich eine Datei im Anhang zu schicken. Immerhin bekommen das gleich 
ein paar 1000 User (ungefragt) zugesandt!
Also immer erst das Problem beschreiben und dann, ggf. auf Anfrage 
jemandem die Beispieldatei per email zuschicken!!
Mein Problem: 
Ich möchte über verschiedene Buttons an bestimmte Stellen in verschiedenen Datenblättern springen. Bis dato kein Problem. Jedoch möchte ich anhand der Aufschrift der Buttons an eben diese Stellen springen.
  
Die Buttons erzeugst du in der Formularansicht? Dann sind sie doch 
statisch, und es ist somit möglich jedem Button ein entsprechendes Macro 
zuzuweisen?
Also Button1 - Maustaste gedrückt - Macro.Button1 - Call 
SucheeineZelle(Button1,Suchstr,Tabelle) usw.
   Button2 - Maustaste gedrückt - Macro.Button2 - Call 
SucheeineZelle(Button2,Suchstr,Tabelle) usw.

Soll heißen: Ich möchte beim Aufruf des Makros herausfinden, von welchem Button 
aus es gestartet wurde. Bislang habe ich jedoch nur herausgefunden, wie ich die 
auf die Eigenschaften mir bekannter Items zugreifen kann, nicht jedoch auf mir 
zum Zeitpunkt des Makrostarts unbekannte Items.
  
Da du wie gesagt, einem Button ein Macro zuweisen must, ist es bekannt, 
welcher Button welches Macro aufruft.

Ich hoffe sie können mir bei meinem Problem behilflich sein.
Im anhang finden sie eine von mir erstellte Testdatei, in welcher das Makro 
enthalten ist.(Für den Fall, dass meine Ausführungen für Außenstehende etwas 
verwirrend klingen sollten).

  
Ich habe dir per email mal deine Geändertde Datei gesendet. In dieser 
befindet sich auch ein etwas anderer Ansatz für das Arbeiten mit Macros. 
(Ohne den ständigen Aufruf der Dispatcher Methode)
Hier sie immer noch einmal auf die wirklich hilfreichen Macros von 
Andrew Pitonyak hingewiesen! Eine unerschöpfliche Quelle!!

Link? : http://www.pitonyak.org/oo.php

Vielen Dank im voraus.

Mit besten Grüßen
Tobias Maurer
  

Gruß zurück
Volker Heggemann

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org