Makrokopie_Schaltflä+Pfad neu_im Formular gleicher Link

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Makrokopie_Schaltflä+Pfad neu_im Formular gleicher Link

Re: Makrokopie_Schaltflä+Pfad neu_im Formular gleicher Link

von rübli » Sa, 08.09.2012 12:45

Hallo Karolus,

"
Wie ist es möglich, die Makros hoch zuladen und im welchen Format damit sie im Beitrag als extra Datei sichtbar gemacht werden können?

Meine allgemeine Frage zum Schluss bezieht sich auf das Fenster "Code: Alles auswählen" :
Wie kann ich das Fenster aufrufen und das Makro platzsparend unterbringen. Ich versuche das "Prozedere" langsam zu lernen, damit ich schneller, unkomplizierter und genauer bei der Lösung des eigentlichen Problems beitragen kann.


Aber die Lösung meines Hauptthemas besteht immer noch.
Es wäre schön, wenn du mir dabei helfen könntest.
Aber Karolus trotzdem vielen Dank

Viele Grüße
Rübli

Re: Makrokopie_Schaltflä+Pfad neu_im Formular gleicher Link

von Karolus » Mi, 05.09.2012 11:11

Hallo
Wie ist es möglich, die Makros hoch zuladen und im welchen Format damit sie im Beitrag als extra Datei sichtbar gemacht werden können?
Einfach 'copy and paste' in

Code: Alles auswählen

[code]code-tags
(die Schaltfäche mit der Aufschrift 'Code' oberhalb eines 'Antwort-/Beitrag-erstellen' Fensters)[/code]

Karolus

Re: Makrokopie_Schaltflä+Pfad neu_im Formular gleicher Link

von rübli » Di, 04.09.2012 11:38

Hallo ejomi, komma4, StephanG und ihr anderen cracks,

ich bin ja noch Anfänger und ejomi hatte mir mit seinem gut beschriebenen Makrodialog FilePicker freundlicherweise Starthilfe gegeben, um im Formular mit Links auf Zusatzdokumente auch im Netzwerk zu greifen zu können. Mit der Zeit habe ich Stück für Stück mehr Einblick bekommen. Da haben sich jetzt mehrere Fragen ergeben.

Zum 1. Punkt
- Warum wird im Formular trotz 3er Schaltflächen, namentlich unterschiedliche neuer Makros (ehemals ejomis Makro) und neuer Startpfad zugeordnet, immer das zuerst eingestellte Dokument, aufgerufen?
- Gibt es hier eine Routine, die selbstständig abläuft, denn egal was ich eingebe, es wird immer das selbe aufgerufen?
- Ist der Starpfad den ich eingebe richtig oder mache ich grundlegende Fehler?
Makro Dokumentation
Sub Dokumentation.odt
Dialog FilePicker
(14.31 KiB) 74-mal heruntergeladen
Zum 2.Punkt
Ich habe ein bisschen im Buch Markros in Openoffice.org 3, von Thomas Krumbein, rumgestöbert und eine Möglichkeit gefunden, wie man auf Ordner zugreifen kann, nämlich der Dialog OfficeFolderPicker. Vielleicht liegen hier die Pobleme des 1. Punkt begründet. Auf jedem Fall habe ich das Beispielmakro Sub GetFolder1 ausprobiert und es hat funktioniert. Dazu sind natürlich Fragen entstanden.
- Ich kann nur auf den Arbeitsspeicher aber nicht auf bestimmte Dateien zugreifen. Wie kann man dies realisieren?
- Wie ist dann möglich, wenn man über ein Netzwerk auf bestimmte Dateien zu greifen möchte?
Makro GetFolder1
Sub GetFolder1.odt
Dialog OfficeFolderPicker
(11.75 KiB) 97-mal heruntergeladen
Zum Schluß habe ich noch eine grundsätzliche Frage:
Wie ist es möglich, die Makros hoch zuladen und im welchen Format damit sie im Beitrag als extra Datei sichtbar gemacht werden können?

Viele Grüße
Rübli

Re: Makrokopie_Schaltflä+Pfad neu_im Formular gleicher Link

von rübli » Do, 30.08.2012 13:20

Hallo Cracks,

ich habe ein bisschen im "Makros in Openoffice.org 3" von Thomas Krumbein gestöbert und da ist mir aufgefallen, das das an den Dialogbefehlen Filepicker/(Office)Folderpicker liegen könnte.
Jetzt habe ich mal eine Forlage mit dem FolderPicker ausprobiert und siehe da, es ist jetzt möglich auf Ordner zu zugreifen.
Leider geht das nur auf dem lokalen Computer.
Hier stell sich für mich die Frage:
Was muss ich am Makro ändern, wenn ich über ein Netzwerk auf die Ordner zugreifen möchte?
Ich habe mal die Vorlage als Makro eingegeben. Ich hoffe ihr könnt mir helfen.

Makro
Sub GetFolder1
Dim oDlg as Object,oPS as Object, sPfad as string
oD1g = CreateUnoService("com.sun.star.ui.dialogs.OfficeFolderPicker")
oPS = CreateUnoService("com.sun.star.util.PathSettings")
oD1g.setTitle("Bitte ein Verzeichnis auswählen")
oD1g.setDisplayDirectory(oPS.work)
if oD1g.execute() then
sPfad = oD1g.getDirectory
startPath = Environ("exchange on 'Samba Server ISM (ism)' (Z:)") & Environ("/exchange/Mitarbeiter/7_Werkstatt+Labor/Datenbank/Labor_Messstrecken_Dokumentation_Messkurven/Dokumentation")
msgbox ConvertFromURL(sPfad)
end if
End Sub

Re: Makrokopie_Schaltflä+Pfad neu_im Formular gleicher Link

von rübli » Di, 28.08.2012 11:23

Hallo komma4 und ejomi,

ich habe jetzt den sStartPath für den Netzwerkbetrieb geändert:

sStartPath = Environ("exchange on 'Samba Server ISM (ism)' (Z:)") & Environ("/exchange/Mitarbeiter/7_Werkstatt+Labor/Datenbank/Labor_Messstrecken_Dokumentation_Messkurven/Dokumentation")

geändert.

Leider konnte ich nicht über eine ausgewählte Schaltfläche(eigenes Makro(Link)) auf einen anderen Ordner zugreifen.
Ich habe festgestellt, ich kann den Startpfad ändern wie ich möchte, der zu erst eingestellte Link bleibt und wird immer wieder aufgerufen.
Gibt es da einen Ablauf, der dann automatisch immer abläuft?
Ich habe jetzt das Makro geändert und die Kommentare entfernt. Vielleicht könnt ihr mir ein paar Tips geben, was ich falsch mache und wie ich es ändern muss.
Hier das gänderte Makro:

Sub Dokumentation

Dim i As Integer, GotItAsURL As Boolean, sStartPath As String, aFilesCollection() As String
Dim sDocURL As String, sPickerTitle As String, oFilePicker As Object, oDocument As Object
Dim aFileProps() as new com.sun.star.beans.PropertyValue


Dim FilterDescriptn(3) As String, FilterExtension(3) As String


sStartPath = Environ("exchange on 'Samba Server ISM (ism)' (Z:)") & Environ("/exchange/Mitarbeiter/7_Werkstatt+Labor/Datenbank/Labor_Messstrecken_Dokumentation_Messkurven/Dokumentation")


FilterDescriptn(0) = "Writer-Textdokumente"
FilterDescriptn(1) = "Calc-Tabellendokumente"
FilterDescriptn(2) = "Impress-Präsentationen"
FilterDescriptn(3) = "Alle Datei-Typen"
FilterExtension(0) = "*.odt"
FilterExtension(1) = "*.ods"
FilterExtension(2) = "*.odp"
FilterExtension(3) = "*.*"

sPickerTitle = "Wählen Sie die zu öffnende Datei ..."

GotItAsURL = False

oFilePicker=createunoservice("com.sun.star.ui.dialogs.FilePicker")

For i = 0 To UBound(FilterDescriptn)
oFilePicker.appendFilter(FilterDescriptn(i), FilterExtension(i))
Next

oFilePicker.DisplayDirectory = sStartPath

oFilePicker.Title = sPickerTitle

If oFilePicker.execute() Then

aFilesCollection = oFilePicker.getFiles()

If GotItAsURL = True Then
sDocURL = aFilesCollection(0)
Else
sDocURL = ConvertToUrl(aFilesCollection(0))
EndIf
Else

MsgBox "Sie haben keine Datei gewählt - also passiert auch nix!", MB_ICONEXCLAMATION, "Der Dateimanager wurde abgebrochen!"
sDocURL = ""
End If

oFilePicker.Dispose()

If sDocURL <> "" Then
oDocument = StarDesktop.loadComponentFromURL(sDocURL, "_blank", 0, aFileProps() )
EndIf



End Sub

Re: Makrokopie_Schaltflä+Pfad neu_im Formular gleicher Link

von rübli » Do, 23.08.2012 11:15

Hallo komma 4
Hier habe ich die Makrovorlage von enjomi verwendet und den Start-Pfad für das Netzwerk
"/home/exchange/Mitarbeiter/7_Werkstatt+Labor/Datenbank/Labor_Messstrecken_Dokumentation_Messkurven/Dokumentation" eingegeben.

Es sollen drei Links zu den Unterordnern (Messstrecken, Dokumentation, Messkurven) enstehen. Ich habe das unten angezeigte Makro namentlich dahingehend abgespeichert (siehe Unterordner) und den Start-Pfad dafür z.B. geändert (siehe oben).
Dies habe ich mit allen drei gemacht und im Kontrollfeld der jeweiligen Schaltfläche als Makro zu geordnet.
Wenn ich nun die Entwurfsansicht verlasse und auf die drei Schaltflächen mit Link gehe, wird immer der selbe Unterordner aufgerufen.
Das ist also mein Problem.
Ich wollte das Makro als Datei dranhängen, aber ich wusste nicht wie, deshlab also so.


Makro

Code: Alles auswählen

Sub Dokumentation

  ' Funktion zum oeffnen einer OO-Datei (oder sonstigen Datei) mit Hilfe des Dateimanagers.
  ' Kommentare (wie dieser) beginnen immer mit einem einfachen Hochkomma

  ' So funktioniert's:
  '   Eine Schaltflaeche muss unter seinen "Eigenschaften", Registerkarte "Ereignisse"
  '   dieses Makro in der 2. Zeile bei "Aktion ausfuehren" zugewiesen bekommen.

  ' Einige wichtige System- und Objekt-Variablen bereitstellen:
  Dim i As Integer, GotItAsURL As Boolean, sStartPath As String, aFilesCollection() As String
  Dim sDocURL As String, sPickerTitle As String, oFilePicker As Object, oDocument As Object
  Dim aFileProps() as new com.sun.star.beans.PropertyValue
   
  ' Array, d.h. eine Variable mit n Elementen, vordefinieren (hier jeweils 4 Elemente von Nr. 0 - 3)
  ' um spaeter mehrere Dateifilter fuer den Dateimanager festlegen zu koennen:
  Dim FilterDescriptn(3) As String, FilterExtension(3) As String
   
  ' Den Start-Pfad festlegen (hier beispielhaft der Pfad zu "Eigene Dateien"):
  ' Lokales Benutzerprofil (Standard), entnommen der WINDOWS-Umgebungsvariable %USERPROFILE%:
  sStartPath = Environ("ism") & "/home/exchange/Mitarbeiter/7_Werkstatt+Labor/Datenbank/Labor_Messstrecken_Dokumentation_Messkurven/Dokumentation"
  ' Falls die "Eigenen Dateien" im Netzwerk ausgelagert wurden, geht's nur so:
  'sStartPath = Environ("HOMEDRIVE") & Environ("HOMEPATH")
  ' Oder einfach statisch - das kann natuerlich dann alles moegliche sein:
  ' sStartPath = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien"

  ' Dateifilter festlegen (werden als Auswahl im Dateimanager angeboten):
  FilterDescriptn(0) = "Writer-Textdokumente"
  FilterDescriptn(1) = "Calc-Tabellendokumente"
  FilterDescriptn(2) = "Impress-Präsentationen"
  FilterDescriptn(3) = "Alle Datei-Typen"
  FilterExtension(0) = "*.odt"
  FilterExtension(1) = "*.ods"
  FilterExtension(2) = "*.odp"
  FilterExtension(3) = "*.*"
   
  ' Fenster-Titel des Dateimanagers festlegen:
  sPickerTitle = "Wählen Sie die zu öffnende Datei ..."

  ' Diese Variable dient nur als Schalter, fuer den Fall dass
  ' der Dateimanager bereits URL-kodierte Pfade liefert
  ' (macht er unter WINDOWS  n i c h t ! )
  GotItAsURL = False
   
  ' Das Objekt zum WINDOWS-Dateimanager bereitstellen:
  oFilePicker=createunoservice("com.sun.star.ui.dialogs.FilePicker")

  ' Die Anzahl der Datei-Filter wird durch die Array-Groesse bestimmt
  ' und diese Filter werden nun nacheinander dem Dateimanager uebergeben:
  For i = 0 To UBound(FilterDescriptn)
    oFilePicker.appendFilter(FilterDescriptn(i), FilterExtension(i))
  Next

  ' Der Start-Pfad wird uebergeben:   
  oFilePicker.DisplayDirectory = sStartPath

  ' Der Fenster-Titel wird uebergeben:
  oFilePicker.Title = sPickerTitle
   
  ' Nur wenn der Dateimanager korrekt gestartet und wieder beendet wurde ...
  If oFilePicker.execute() Then
    ' ... kann der gewaehlte Dateiname eingelesen werden:
    aFilesCollection = oFilePicker.getFiles()
    ' Je nach oben festgeleter Schalter-Einstellung wird URL-kodiert:
    If GotItAsURL = True Then
      sDocURL = aFilesCollection(0)
    Else 
      sDocURL = ConvertToUrl(aFilesCollection(0))
    EndIf
  Else
    ' ... ansonsten war der Dateimanager offenbar abgebrochen worden:
    MsgBox "Sie haben keine Datei gewählt - also passiert auch nix!", MB_ICONEXCLAMATION, "Der Dateimanager wurde abgebrochen!"
    sDocURL = ""
  End If 

  ' Objekt zum Dateimanager loeschen:   
  oFilePicker.Dispose()
   
  ' Nur wenn der Dateipfad korrekt eingelesen wurde, wird die Datei geöffnet:
  If sDocURL <> "" Then
     oDocument = StarDesktop.loadComponentFromURL(sDocURL, "_blank", 0, aFileProps() )
  EndIf

  ' Die Zuweisung des Oeffnen-Prozesses an die Objektvariable "oDocument"
  ' koennte auch entfallen - sie ermoeglicht aber weitere Aktionen mit dem 
  ' geoeffneten Dokument, falls so etwas spaeter mal gebraucht werden sollte.

End Sub


Moderation,4: CODE tags gesetzt

Re: AW: Makrokopie_Schaltflä+Pfad neu_im Formular gleicher L

von komma4 » Di, 21.08.2012 14:28

Verschoben in den BASIC Bereich, wo alle solche Fragen hin gehören.

Um bei deinem Problem nicht raten zu müssen : stelle ein Beispiel Dokument zur Verfügung und/oder zeige den Code

Makrokopie_Schaltflä+Pfad neu_im Formular gleicher Link

von rübli » Di, 21.08.2012 13:42

Ich habe ein Makro , mit dem man über eine Schaltfläche einen Link aufrufen kann.
Dazu habe ich den ensprechen Pfad angegeben. Und er funktioniert.

Leider habe ich festgestellt, dass der Link nicht ausreicht. Er müsste aus drei Unterordner bestehen.
Dazu habe ich im Formular zwei zusätzliche Schaltflächen angelegt und mit der 1. ingesamt drei.
Jedem der Schaltfläche habe ich dann über das Kontrollfeld das kopierte Makro zu geordnet. Entscheident hierbei ist, ich
habe jedem Makro einen neuen Namen bzw. den gewünschten Pfad zu geordnet.

Wenn ich jetzt das Formular öffne, um auf den gewünschten Unterordner zu zugreifen, wird im der selbe Link aufgerufen, obwohl
ich den Namen und den Pfad geändert habe.

Wer kann mir da Tips geben. Woran kann es liegen?

Viele Grüße
rübli

Nach oben