SoftMaker.de

Deutschsprachiges Diskussionsforum
Aktuelle Zeit: 24.05.2013 13:10:52

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 07.12.2008 10:24:13 
Offline

Registriert: 15.10.2005 23:23:29
Beiträge: 25
Hallo,

könnte mir mal jemand ein paar allgemeine Tipps geben,

wie man umfangreichere VBA-Projekte mit Planmaker/Basicmaker

zu Laufen bekommt?

Beim Öffnen von Exceldateien funktioniert scheinbar garnichts mehr
und vom VBA-Code sehe ich zumindest in Planmaker auch nirgendwo etwas...

Viele Grüße

Solino


Zuletzt geändert von Solino67 am 26.12.2010 03:57:05, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
BeitragVerfasst: 07.12.2008 11:42:02 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 23.02.2007 08:37:26
Beiträge: 2940
Eingebetteter Code wird generell aus Sicherheitsgründen nicht berücksichtigt. Der VBA Code müsste also ausgelagert werden und als eigenes Basic-Projekt gespeichert werden. Allerdings sind dann noch ein paar manuelle Anpassungen notwendig, weil keine 1:1 Übernahme aufgrund unterschiedlicher Dialekte möglich ist.


Nach oben
 Profil  
 
BeitragVerfasst: 07.12.2008 12:57:26 
Offline

Registriert: 15.10.2005 23:23:29
Beiträge: 25
Hallo,

danke für die Antwort.

Das Projekt das ich gerne umsetzen wurde, besteht aus ca. 3000 Zeilen VBA-Code

mit 8 Tabellenblättern mit VBA-Code, 5 VBA-Modulen, einem Formular usw.

Insgesamt über 100 einzelne Funktionen / Prozeduren.

Das alles in einer BAS-Datei zu organisieren dürfte aber recht unübersichtlich werden.

Oder könnte man den Code von jedem Tabellenblatt / Modul in eine eigene Datei schreiben?

Wohin z.B. würde ich den Code aus "DieseArbeitsmappe" importieren und wie rufe ich den Code aus den anderen Tabellenblättern / Modulen auf?

Ist es möglich Excel-Formulare auch in Basicmaker zu verwenden oder nachzubilden?

Viele Grüße

Solino


Zuletzt geändert von Solino67 am 26.12.2010 03:57:27, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
BeitragVerfasst: 09.12.2008 00:40:39 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 27.08.2008 21:05:27
Beiträge: 250
Wohnort: Wiesbaden
Ich hoffe wenigstens ein bisschen helfen zu können, da ich kein VBA profi bin. Es gibt grundsätzliche Unterschiede, bei aller Ähnlichkeit.

VBA als eingebette Sprache hat sehr viele Befehle, weil der Zugriff auf die Anwendungen auch über spezielle Basic Befehle geschieht. BasicMaker bietet nur die Basic Grundbefehle, die nichts mit PlanMaker oder Excel oder sonstigen Anwendungen zu tun haben. Mit Anwendungen kommuniziert BasicMaker über OLE Objektstrukturen. Du kannst ansonsten auch auf die Win API Funktionen zugreifen, wie viele Sprachen.

SoftMaker Anwendungen stellen diverse Objekte dem OLE Zugriff frei. Jede OLE-fähige Programmiersprache hat Zugang dazu, nicht nur SoftMakers Basic. Auch VB wird das können, weiß nicht genau. Alle Skripte laufen jedenfalls in einer externen Skripting Engine, und laufen parallel zur Anwendung (PlanMaker z.B.).

Es ist nicht möglich Skripte an Ereignisse in Arbeitsblättern, Zellen, Buttons oder dgl. zu Koppeln, weil die Skript Engine und die Anwendung separate Ereignisschleifen besitzen. PlanMaker sendet nichts wie "hallo Skript, ich wurde erogen berührt!", sondern stellt nur "zur Verfügung". Das Skript kann / muss alle Zustände abfragen, wenn es läuft. Jedes Skript läuft als komplett eigene Anwendung auf dem Desktop, und wenn es auf SoftMaker zugreift, dann auf globaler Ebene über Windows OLE.

Das Bedarf, schätze ich, einiger Umstellung Deines Projekts.

Du könntest eine (Desktop-) Verknüpfung zu einem Skript erstellen, das PlanMaker startet, eine Datei laden lässt, und dann einen Dialog neben PlanMaker offen lässt (ähnlich Sidebar), in dem alle Funktionen zur Verfügung stehen. Wenn Tabelle 2 aktiv ist, im Skript Dialog aber eine Funktion für Tabelle 7 aufgerufen wird, wird das Skript Tabelle 7 nach vorne holen müssen, oder Du baust eine Prüfung ein "Falsches Blatt".

Oder Du baust ein Icon für die Symbolleiste, startest damit eine Hauptprozedur, die z.B. anhand der gerade aktiven Tabelle entsprechende Prozeduren und Dialoge aufruft mit passenden Aufgaben.

Ich schätze Du kannst auch alle Deine Module als eine externe Datei speichern. Darin, vermute ich, sind dann zig Zeilen mit lauter Subs und Functions drin, die großteils an diverse Excel-Ereignisse gekoppelt sind. Das ist das eigentliche Skript. Was das alles schön übersichtlich aufteilte, war meines Wissens der (hier: VBA-) Skript Editor. PlanMaker bietet keine Ereignisse und BasicMaker macht das nicht. Man kann aber ebenso andere Editoren benutzen, die sehr effektive Hilfen zur Strukturierung eines langen Skripts bieten. BasicMaker bleibt unverzichtbar zum Deguggen.

Um in's Detail zu gehen (Deine letzte Frage) sei Dir empfohlen die Hilfedatei von BM zu lesen, und zwar den Abschnitt über die Objektstruktur von PlanMaker (bzw. TextMaker). Dort sind alle momentan freigestellten Objekte aufgeführt, deren Eigenschaften und Methoden, sowie die jeweiligen unter- und übergeordneten Objekte. Das sollte sehr ähnlich VBA sein (Punktschreibweise).

SoftMaker Basic kann bei Bedarf noch erweitert werden für sehr komplexe Aufgaben. Die Programmierer sammeln ständig Info um den Ausbau zu planen. Könntest du freundlicherweise helfen, erzählen was Dein Skriptpaket - ganz Grob nur(!) - tut, und in welcher Arbeitsumgebung es benutzt wird? Danke!

_________________
SMO rev. 670 + Win XP                    Times without money are better than times without Mini - the original ;)


Nach oben
 Profil  
 
BeitragVerfasst: 09.12.2008 10:32:08 
Offline
SoftMaker Team
SoftMaker Team

Registriert: 09.04.2008 08:50:06
Beiträge: 6316
Wohnort: Nürnberg
Hallo,

man kann natürlich mehrere BAS-Dateien nehmen, ein gegenseitiger Aufruf von Funktionen ist dann aber nicht mehr möglich.
Eine Nachbildung von Excel-Formularen in PlanMaker ist derzeit nur mit den internen Kontrollelementen möglich, VBA-Objekte werden nicht unterstützt. Aufrufe von einzelnen Basic-routinen ist nicht möglich, der Aufruf von kompletten BAS-Dateien ist über das Menü oder über benutzerdefinierte Icons möglich.

_________________
Sven Leßmann
SoftMaker Software GmbH


Nach oben
 Profil  
 
BeitragVerfasst: 09.12.2008 20:25:23 
Offline

Registriert: 15.10.2005 23:23:29
Beiträge: 25
Hallo,

Ich fürchte das für eine Umsetzung auf BasicMaker mit vertretbarem Aufwand doch noch einiges fehlt, z.B. die ganzen Excel-Ereignisroutinen.

Den Quellcode der verschiedenen Tabellenblätter und Module in eine separate Skriptdatei umzuschreiben scheint mir auch sehr aufwendig und fehleranfällig.

Und da es sich nicht um Opensource handelt, wäre ein gewisser Schutz für den Quellcode natürlich auch durchaus angesagt...

Viele Grüße

Solino


Zuletzt geändert von Solino67 am 26.12.2010 03:58:02, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
BeitragVerfasst: 09.12.2008 21:15:06 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 23.02.2007 08:37:26
Beiträge: 2940
Solino67 hat geschrieben:
Und da es sich nicht um Opensource handelt, wäre ein gewisser Schutz für den Quellcode natürlich auch durchaus angesagt...

Wenn es in Excel eingebettet ist, dann ist es quasi OpenSource, denn das ist relativ trivial dort dranzukommen.

Einfacher dürfte es daher sein, die ganzen Routinen in eine externe Applikation zu packen, die dann aufgerufen wird. Alternativ kann man das natürlich auch in eine dll packen und die dann aus dem BM-Script heraus aufrufen und lediglich Parameter übergeben... Also quasi Black-Box...


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de