🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Prgrammierung unter CALC / wie fange ich an?

Alles zur Programmierung im LibreOffice.
K-LOFF
Beiträge: 120
Registriert: Di 17. Mai 2011, 15:38
Wohnort: NDS

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von K-LOFF » Sa 18. Apr 2020, 17:07

ja habe ich noch zig Versuchen, ließ sich erst nicht dahin umschalten.

Nächtes: ich habe eine Menge Zellen den Hintergrund geändert. Diese Änderungen sollen sich aber den Tabellenwerten anpassen. Dazu werden einige wieder weiß. Bei diesen sind aber die Rahmen der Zelle weg.
Wie bekomme ich die Rahmen der Zellen wieder hin?
gruss

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von mikele » Sa 18. Apr 2020, 18:34

Hallo,
sicher kann man das per Makro machen, was aber nicht sehr flexibel ist. Warum keine bedingten Formatierungen?
Gruß,
mikele

K-LOFF
Beiträge: 120
Registriert: Di 17. Mai 2011, 15:38
Wohnort: NDS

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von K-LOFF » Sa 18. Apr 2020, 18:42

da sind zu viele Abfragen nötig.
Und es soll sich beim Ändern automatisch anpassen, (neue Zeilen, Zeilen löschen...).

Ich habe es erstmal so gemacht > leere Zellen kopieren und dann an gewünschter Stelle wieder eingefügt.
Muß man aber scheinbar viel suchen und tippen.
gruss

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von mikele » Sa 18. Apr 2020, 20:46

Hallo,
Dazu werden einige wieder weiß. Bei diesen sind aber die Rahmen der Zelle weg.
Wie hast du sie "weiß" gemacht? Hintergrundfarbe und Rahmen haben nichts miteinander zu tun. Was ist da passiert?
Und es soll sich beim Ändern automatisch anpassen, (neue Zeilen, Zeilen löschen...).

Ich habe es erstmal so gemacht > leere Zellen kopieren und dann an gewünschter Stelle wieder eingefügt.
Muß man aber scheinbar viel suchen und tippen.
Ohne den Aufbau der Tabelle und das Ziel zu kennen, ist es schwer verständlich, was du möchtest.
Gruß,
mikele

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von craig » Sa 18. Apr 2020, 21:15

Hallo,
mikele hat geschrieben:Was ist da passiert?
Ich vermute, Zellenhintergrund weiß, ist nicht gleich "Keine Füllung"
Beides ist Augenscheinlich weiß.
Unterschied:
  • Bei weißem oder anders farbigem Zellenhintergund sieht man keine Gittlinien
  • Bei "Keine Füllung" sind die Gitterlinien sichtbar, wenn eingeschaltet über:
    Menü Ansicht --> Gitterlinien
Per Makro gesetzte CellBackColor:
"Keine Füllung" = -1
weiß = 16777215
oder
weiß = RGB(255,255,255)
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

K-LOFF
Beiträge: 120
Registriert: Di 17. Mai 2011, 15:38
Wohnort: NDS

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von K-LOFF » So 19. Apr 2020, 12:19

moin,

@ craig: das war gut >"Keine Füllung" = -1 !

D.h., was ich nicht wußte, ich kann auch 'Integer' als Farbe angeben. Gut zu wissen. Damit klappt es.

Wie kann ich in der IDE den Wert einer Variablen sehen, ohne Beobachter? Maus, Markieren bringt nichts.
gruss

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von craig » So 19. Apr 2020, 18:12

Hallo,
D.h., was ich nicht wußte, ich kann auch 'Integer' als Farbe angeben.
Nicht "integer", sondern "long"!

Bei mir habe ich folgende Extensions installiert:
  • MRI 1.3.3 - UNO Object Inspection Tool (englisch)
    Unbedingt die Version 1.3.3 unter LibreOffice installieren
    Dieses Tool wird aber für LibreOffice nicht mehr weiterentwickelt.
    Unter LibreOffice Version: 6.3.4.2 (x64) läuft es bei mir noch.
    MRI ist ein oxt-File, welches entweder über den Extension-Manager oder per "Öffnen mit" LibreOffice installiert wird.
  • XRAY-Tool (deutsch)
    Dies funktioniert im Prinzip genauso wie MRI. Im Augenblick ist es reine "Geschmacksache", welches Tool Du einsetzt.
    XRAY ist ein Writer-Dokument, in dem sich ein Button zwecks Installation befindet.
  • BASIC-IDE-Tools
    Online Hilfe (englisch)
    Es ist eine Extension für die BASIC-IDE.
    Dieses Tool eignet sich zwar auch zur Code-Inspektion, ich nutze hier aber mehr die anderen HIlfsfunktionen.
    z.B. kann man hier bequem mehrere Zeilen auskommentieren/ kommentieren, in dem man die
    gewünschten Zeilen markiert und in der BASI-IDE-Symbolleiste auf das betreffende Symbol klickt.

    Zu erwähnen ist allerdings, dass das Tool nicht korrekt programmiert wurde,
    betrifft aber nur die Programmsprache. Teils englisch; teils spanisch.
    Die Funktionen selbst, sind aber alle 100%ig
Zu MRI und XRAY
Die Tools können parallel installiert werden. Damit man sie verwenden kann, müssen diese am besten
direkt beim Start von Libreoffice geladen werden. Dazu nutze ich bei mir nachfolgenden Code:

Code: Alles auswählen

REM  *****  BASIC  *****

REM Bibliotheken bei LibreOffice-Start laden
Sub LoadingLibraries

	' Hier in der Basic-IDE -> Objektkatalog
	' LibreOffice Makros & Dialoge -> Tools
	' Lädt die TOOLS-Bibliothek mit vorgefertigten Hilfsfunktionen
	If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) Then
	   GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
	End If
REM -------------------------------------------------------------------------------------
REM Wenn eine der beiden oder beide Inspektionstools installiert sind
REM die Auskommentierung (Hochkomma vor der jeweiligen Zeile entfernen) 
REM des/der entsprechenden Codes aufheben
REM MRI
		'https://extensions.openoffice.org/en/project/mri-uno-object-inspection-tool
		' Für Libreoffice: https://extensions.openoffice.org/en/projectrelease/mri-uno-object-inspection-tool-133
	If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "MRILib" ) Then
		Globalscope.BasicLibraries.LoadLibrary ( "MRILib")
	End If	

REM XRAY-Tool
			' https://wiki.openoffice.org/wiki/DE/Makro_Basic_Tutorial
			'http://berma.pagesperso-orange.fr/Files_en/XrayTool60_de.odt
	If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "XrayTool" ) Then
			GlobalScope.BasicLibraries.LoadLibrary("XrayTool")
	End If	
REM -------------------------------------------------------------------------------------

End Sub
Der Code lädt zusätzlich die Bibliothek "Tools". Diese Bibliothek wird bei der Installation von LibreOffice angelegt.
Sie enthält nützliche Funktionen die direkt im eigenen Code verwendet werden können.
Hier eine Beispieldatei:
Test Tools-Bibliothek_01.odt
(76.33 KiB) 313-mal heruntergeladen
  • Speichere die Datei auf Deiner Platte.
  • Öffne die Datei, ggf. folge der Anleitung in der Datei.
  • Mit Klick auf den Button erhälst Du eine Fehlermeldung.
    Grund dafür ist, dass Du die Bibliothek "Tools" noch nicht geladen hast.
    Es sei denn, Du hast denn den obigen Code ausgeführt:
    REM Bibliotheken bei LibreOffice-Start laden
    Sub LoadingLibraries
Der Reihe nach:
  1. Lese die Anleitung in diesem Buch:
    Kapitel 13 – Einführung in Makros
    Suche nach:
    Organisation der Makros (Seite 6)
    Das Thema Bibliothek ist für Dich im Augenblick das Wichtigste.
  2. Jetzt weißt Du wie man eine neue Bibliothek speichert und verwaltet.
    So kannst Du nun den Code
    REM Bibliotheken bei LibreOffice-Start laden
    Sub LoadingLibraries

    am Besten in die Bibliothek
    Meine Makros → Standard
    speichern.
    Das Modul würde ich von Modul1 in z.B.
    modLoadLib
    umbenennen.
  3. Kopiere nun die oben geposteten Code in dieses Modulblatt.
    1. Jetzt muss das Makro einem Ereignis zugewisen werden
      Menü Extras → Anpassen
      Register → Ereignisse
    2. W I C H T I G
      Unterhalb der Ereignisliste befindet sich ein DropDown-Menü, hier muss unbedingt LibreOffice ausgewählt werden!
      Dieses, damit modLoadLib bei jedem LibreOffice-Start ausgeführt wird.
    3. Im Anschluß den ersten Eintrag in der Ereignisliste markieren → Programmstart
    4. Den Button Makro...
    5. Nun zu dem Modul modLoadLib navigieren und markieren
    6. Da sich im Modul nbur ein Makro befindet, wird unter "Name des Makros", LoadingLibraries automatisch markiert.
    7. Nun alles mit OK bestätigen und Libreoffice neustarten.
    8. Wenn Du MRI und XRAY parallel installiert hast, solltest Du keine Fehlermeldung bei Programmstart bekommen.
      Wenn Du aber nbur eines der beides Tools installiert hast, dann muss im Modul der betreffende Bereich auskommentiert werden.
      z.B. so, wenn MRI nicht installiert wurde:

      Code: Alles auswählen

      '	If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "MRILib" ) Then
      '		Globalscope.BasicLibraries.LoadLibrary ( "MRILib")
      '	End If	
      Danach LibreOffice beenden und neustarten. Es sollte keine Fehlermeldung mehr erscheinen.
  4. Jetzt kannst Du meine Beispieldatei "Test Tools-Bibliothek_01.odt" öffnen und den Button "Ist die Tools-Bibliothek geladen?" betätigen.
    Es erscheint nun eine Messagebox. Die Liste in der Messagebox ist das Ergebnis diverser Funktionen aus der Tools-Bibliothek. Die aufgerufenen Funktionen filtern aus der Datei-URL diverse Informationen heraus. Naja, ist eigentlich selbsterklärend.
Damit sind die Vorarbeiten abgeschlossen
Tools, MRI und/oder XRAY sind geladen.

Was nun?
Hier kommen wir zu Deiner Nachfrage:
Wie kann ich in der IDE den Wert einer Variablen sehen, ohne Beobachter?
Ich kenne nur diese Varianten: XRAY und MRI habe hier den Vorteil, dass ein separates Fenster geöffnet wird und es muss nicht geschlossen werden, wenn man den Code mit geänderten Anweisungen erneut ausführt.

Weitere Vorteile der Tools, man kann Objektvariablen untersuchen:
Es werden einem Eigenschaften, Methoden, Schnittstellen, und einiges mehr angezeigt.
Ausserdem kann man in der Objekthierachie eine Ebene tiefer schalten:
Beispiel für einen Writer-Code:

Code: Alles auswählen

Sub Test
Dim oDoc as Object
oDoc=ThisComponent

mri oDoc
End Sub
  • Es öffnet sich ein MRI-Fenster.
  • Suche unter Register Properties den Begriff CurrentController
  • führe einen Doppelklick daraufaus.
  • MRI zeigt Dir nun alles zum Thema CurrentController
  • In der Spalte ValueType, werden Dir auch die erforderliche Deklaration von Variablen (String, Long, etc.) angezeigt.
    Deshalb wie eingangs berichtigt: Nicht integer, sondern long.
  • Du kannst auch auf die darüber liegende Instanz (oDoc) zurückgehen.
    Klicken auf das Symbol
  • Suche abermals den Begriff CurrentController
    Rechtsklick:
    Nun wird Dir ein Kontextmenü angezeigt, welches Dir anbietet einzelne Spalteneinträge der Zeile oder die gesamte Zeile zu kopieren.
Gleiches gilt für XRAY.

Die funktionsweise beider Tools ist, sie greifen auf das API zu.
Entweder LibreOffice oder OpenOffice
Diese Doku's sind hilfreich, aber mächtig und unübersichtlich.
Deshalb XRAY und/oder MRI.
Die API's bewegen sich langsam auseinander, deshalb kann es passieren, das LibreOffice Code unter AOO nicht läuft und umgekehrt. Man muss es halt ausprobieren. Dies ist auch eines der Gründe dafür, warum der MRI-Autor MRI für LibreOffice nicht mehr weiterentwickelt.

Es bleibt noch soviel zu sagen übrig, aber für den Anfang reicht dies ;)
Jetzt viel Spaß...
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

K-LOFF
Beiträge: 120
Registriert: Di 17. Mai 2011, 15:38
Wohnort: NDS

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von K-LOFF » So 19. Apr 2020, 18:44

wo bekomme ich diese Pogramme, ich arbeite unter Linux (Xubuntu 18.04 ...) ?
In den PPA's finde ich nichts.
gruss

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von craig » So 19. Apr 2020, 18:51

Hallo,

es hängt nicht vom verwendeten Betriebssystem ab.

Die Programme beziehen sich nur auf das verwendete Officepaket.

In meinem Post habe ich alles verlinkt, ein Klick genügt und Du landest auf der richtigen Website.
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Wanderer
* LO-Experte *
Beiträge: 909
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Prgrammierung unter CALC / wie fange ich an?

Beitrag von Wanderer » Mo 20. Apr 2020, 08:55

K-LOFF hat geschrieben:
So 19. Apr 2020, 18:44
In den PPA's finde ich nichts.
dort werden Programme verwaltet, die direkt vom Desktop oder der Shell unter Linux gestartet werden können.

Die oben genannten Erweiterungen arbeiten nur Innerhalb von LibreOffice und werden daher nur von LO verwaltet/registriert - genau wie die von Dir geschriebenen Madrid in BASIC.

Mfg, Jörn
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten