PDA

Vollständige Version anzeigen : Kapitel "Ribbons"


Andre Minhorst
28.11.2006, 00:40
Das erste Kapitel steht zur Preview bereit! Es geht um das Thema Ribbons (und es wird damit definitiv nicht das erste Kapitel im Buch sein). Runde 60 Seiten warten darauf, verschlungen und bewertet zu werden; das Thema hat mich lange in Anspruch genommen und ich bin gespannt auf Eure Meinung.

Bitte schreibt Eure Kommentare jeweils in ein neues Posting, ich antworte in einer anderen Schriftfarbe im Posting selbst. Anderenfalls wird es zu durcheinander.

Den Download zum Kapitel findet Ihr hier:

http://www.access-entwicklerbuch.de/2007

Viel Spaß beim Lesen und bei der Fehlersuche!
André

Manuela Kulpa
28.11.2006, 07:50
Hallo André,

Ein kleines Feedback meinerseits für die ersten 5 Seiten:

Seite 173, hier fehlt ein Leerzeichen
(wussten Sie, dass Ribbon »Band« heißt?)Das Ribbon…

XSD-Datei würde ich am Anfang ggf. erstmal ein bisserl umschreiben z.B.:
– genau wie in der Schema Definition (XSD-Datei) festgelegt.

Unterpunkte Unterbereiche und Steuerelemente bis Anwendungsspezifische Schnellzugriffsleiste (allgemeine Einführung zur Bearbeitung und Bedienung des Ribbon)

Da ich weiß, dass dies ein kompaktes Thema ist, verstehe ich an sich deine Erklärungen. Aber irgendwie liest es sich sehr diffizil.
[EDIT ST: Das ist der Punkt, der mich am meisten interessiert: Es ist schwer, sich von außen zu denken, wie ein Kapitel wirkt, wenn man wochenlang in der Materie drin steckt. Kannst du eventuell genauer aussagen, was du mit "sehr diffizil" meinst? Ist es zu sehr in depth? /EDIT]

Seite 177, fehlt da nicht vielleicht etwas (steuern)?
Das Arrangieren der Menüs und der enthaltenen Einträge konnte man direkt über
die Benutzeroberfläche per VBA. Für letzteres stellte die Bibliothek Microsoft Office
x.0 Object Library passende Objekte, Methoden, Eigenschaften und Ereignisse zur
Verfügung.

Fortsetzung folgt http://www.ms-office-forum.net/forum/icons/viewmag.gif

Sascha Trowitzsch
28.11.2006, 11:29
Danke, Manuela, für dein superschnelles Feedback! Geht ja gut los!

Du (und andere) musst dir aber nicht die Mühe machen, Rechtschreibfehler und kleinere Ungereimtheiten zu eruieren - es sei denn, du möchtest mir das Fachlektorat und Frau xy das sprachliche Lektorat abnehmen. ;)
Vielleicht an dieser Stelle nochmal der Hinweis auf http://ms-office-forum.net/forum/showthread.php?t=199167 .
Es ist sicher ungewöhnlich, aber der minutiöse Ablauf soll so aussehen:
- André schreibt Kapitel
- Und stellt es hier bzw. auf der Entwicklerbuchseite online
- Ihr macht schwerpunktmäßig Anmerkungen zum Inhalt: Was ist gut gelungen, was ist schwer verständlich, wo leidet die Darstellung, oder gibt es offensichtliche Lücken?
- André überarbeitet daraufhin ggfs. das Kapitel und berücksichtigt eure Anregungen
- Das Kapitel kommt dann zum Fachlektorat zu mir. ;)
- André übernimmt die Korrekturen
- Das Kapitel geht zur sprachlichen Lektorin.
- André übernimmt die Korrekturen.
- Kapitel(s) geht zum Verlag. (Aber erst, wenn alle Kapitel zusammen sind.)
Mit anderen Worten: Die downloadbaren Kapitel stellen die Alpha-Version dar.

OT @André: Wie du siehst, habe ich mich für grün entschieden. ;) (Und kursiv in den Edits.) OK?

Gruß, Sascha

Bernd Koch
01.12.2006, 05:40
Hallo André,

ich finde das Kapitel sehr verständlich, obwohl ich noch nicht mit Acc2007 gearbeitet habe. Dazu trägt sicher bei, dass immer alle Erklärungen sehr schnell durch eine Beispiel-Abbildung ergänzt werden.

Lediglich der von Manuela schon bemängelte Hinweis auf die XSD-Datei (Seite 1) sollte besser erläutert werden (falls das nicht schon in einem früheren Kapitel erfolgt – dann aber vielleicht ein Verweis darauf).

[Edit AM: Danke für den Hinweis. Das habe ich wohl beim Drübergehen hinzugefügt.]

Was Manuela als „diffizil“ ansieht, könnte vielleicht dadurch verständlicher werden, dass oberhalb der jetzigen Abbildung 10.1 zunächst ein abstrahiertes Abbild der Schnellzugriffsleiste und des Ribbons mit seinen Tabs eingefügt wird, weil die jetzige Abb. 10.1 ja schon „übervoll“ mit Symbolen etc. ist und man vielleicht vor lauter Details nicht sofort die grundlegende Struktur erkennt. Also eine ganz simple Grafik:

- Schnellzugriffsleiste
- Ribbon
- darin die Standard-Tabs

[Edit AM: Sehr gute Idee. Werde ich sicher machen.]

In Kap. 10.1 führst du aus, dass es noch mehr Wege gibt, eigene Ribbons zu erstellen, wofür man aber Tools, wie z. B. Visual Studio 6, benötigt, weshalb du nicht darauf eingehst, sondern nur die "Bordmittel" erklärst.
In Kap. 10.9 verweist du allerdings auf eine vereinfachte Erstellung mittels Visual Studio 5. Ist Visual Studio 5 im Lieferumfang von Access/Office enthalten, also „Bordmittel“ (das weiß ich nicht)? Ansonsten wäre für mich die Hereinnahme von Kap. 10.9 etwas widersprüchlich bzw. stärker erklärungsbedürftig (oder die Aussage in Kap. 10.1 abändern).

[Edit AM: Visual Studio 5... und ich dachte schon, ich hätte kompletten Quatsch geschrieben... Nein, da hast du etwas missverstanden: In Kapitel 10.1 meine ich völlig andere Wege der Erstellung, und zwar als COM-Addin. Und dazu braucht man definitiv Visual Studio. Die in Kapitel 10.9 beschriebene bezieht sich lediglich auf die Vereinfachung der Erstellung der XML-Datei mit einen zusätzlichen Werkzeug - in dem Fall Visual Studio 2005.]


Du schreibst in Kap. 10.5.3 von einer Beispieldatenbank, die auf der dem Buch beiliegenden CD enthalten sein wird, in der alle Ribbon-Elemente aufgeführt sind. Falls das nicht in dieser DB (oder woanders) schon berücksichtigt ist, rege ich an, auch die Tabellen 10.1. – 10.4. als separate Textdokumente zugänglich zu machen (das gilt natürlich auch für entsprechende Tabellen anderer Kapitel), da es doch einfacher ist, sich solche Tabellen und Auflistungen auszudrucken und beim Entwickeln neben dem PC liegen zu haben als das komplette Buch.

[Edit AM: Das ist definitiv geplant. Ich habe nur vergessen, darauf hinzuweisen. Genaugenommen habe ich mir selbst beim Programmieren der Beispiele die vier Tabellen am Ende des Kapitels ausgedruckt und neben die Tastatur gelegt. Deshalb: Sehr gute Idee.]


Ob irgendwas Wichtiges fehlt und unerwähnt bleibt, vermag ich nicht zu sagen, da ich – wie gesagt – noch nicht mit Acc2007 gearbeitet habe. Ob irgendwo der Code falsch ist, kann ich somit auch nicht prüfen. Aber ich denke, da wird Sascha schon ein Äuglein drauf werfen.

Ansonsten: Kompliment!! Wenn die anderen Kapitel genauso informativ und verständlich werden, wird´s ein prima Buch.

[Edit AM: Danke! Ich gebe mir Mühe.]


Bernd

Manuela Kulpa
01.12.2006, 06:01
Auch von mir noch mal ein paar Ergänzungen http://www.ms-office-forum.net/forum/icons/lightbulb.gif!

Unterpunkte Unterbereiche und Steuerelemente
Meine ehrliche Meinung? Ok, ich finde, dass diese Erklärung in ein Access-(Office & Co)-Beginner-Buch gehört und an dieser Stelle nicht so passend ist. Eine kurze Bemerkung dazu ist i.O., aber die „auf die Schnelle“-Erklärung liest sich doch ziemlich holprig. Wer bis dahin gekommen ist, hat sich mit Sicherheit schon mit dem Ribbon rum geschlagen http://www.ms-office-forum.net/forum/icons/tongue.gif. Alternativ, ein bisserl verständlicher darstellen (also ausführlicher).

[Edit AM: Stelle gerade fest, dass Du ja so Recht hast. Ich werde diese Anregung mit Bernd's Vorschlag vereinigen und ein großes Ribbon-Bild mit Beschriftungen der einzelnen Bereiche und Elemente hinzufügen.]


10.1.1 Ein einfaches Ribbon

Hinweis auf Sicherheitswarnung wäre hier an der Stelle schon sinnvoll! Diese erscheint grundsätzlich auch, wenn man o.g. in einer leeren Datenbank durchführt und noch keine Aktion hinterlegt hat. Wieso?

[Edit AM: Es wird wohl einen Kasten zum Sicherheitsthema in Zusammenhang mit Ribbons geben. Und zwar vor dem ersten Beispiel. Warum auch bei Ribbons ohne Aktion die Sicherheitsmeldung erscheint, versuche ich noch herauszufinden.]
Es finden sich, soweit ich das bisher verfolgt habe, keine weiteren Informationen dazu, als in der OH stehen:
"Unsichere" Aktionen sind Aktionen, die möglicherweise zulassen, dass der Benutzer die Datenbank ändert oder auf Ressourcen außerhalb der Datenbank zugreift.
Das Anlegen eines neuen Tabs per Systemtabelle USysRibbons KÖNNTE als sowas interpretiert werden; die Datenbank wird ja verändert und die Ribbon-Steuerelemente KÖNNTEN bei entspr. OnAction möglicherweise gefährliche Aktionen auslösen. Die Frage ist aber eher, ob MS das so genau durchdacht hat... :confused:

Als Weiteres könnte man noch kurz erklären, warum die Tabelle USysRibbons heißt und dass diese standardmäßig ausgeblendet wird, sobald man die Datenblattansicht schließt, da sie ja zu den System- und Benutzer-Objekten gehört.

[Edit AM: Siehst Du, deshalb lohnt sich die Vorabveröffentlichung schon jetzt. Wenn man etwas betriebsblind ist und die Systemtabellen von Anfang an aktiviert hat, vergisst man so einen Punkt später.]


Ach ja, eventuell hier dann auch noch ein kurzer Hinweis, wie man diese wieder einblenden kann (daran bin ich nämlich gescheitert, als ich die Ergänzung hinterlegen wollte, da ich diese verflixte Option in den Einstellungen nicht gefunden habe. Ok, ein DoCmd.OpenTable funktioniert auch, aber dies ist ja nicht Sinn und Zweck der Übung http://www.ms-office-forum.net/forum/icons/wink.gif).

[Edit AM: Ein- und Ausblenden der Systemtabellen werde ich in dem Zusammenhang noch erwähnen.]
Ist aber eher dem noch folgenden Kapitel zum Umgang mit dem Navigationsbereich zuzuordnen.


10.1.2 Schaltfläche mit Funktion versehenWenn die Sicherheitseinstellungen für die aktuelle Datenbank entsprechend einstellt sind, sollte nun das in der Funktion angegebene Meldungsfenster erscheinen und die Funktionstüchtigkeit Ihrer ersten selbst angelegten Ribbon-Schaltfläche bestätigen.

nöppp, funktioniert standardmäßig nicht (Makrosicherheit ist auf Alle Makros aktivieren eingestellt). Hier sollte unbedingt zuvor ein Hinweis hin, dass dies nur bei einem gültigen Verweis auf die Microsoft Office 12.0 Object Library und dem Argument ctl As IRibbonControl in der Function funktioniert (das hat mich eine halbe Stunde gekostet *grumel*, leider wird dies erst auf der Seite 216 erwähnt).

[Edit AM: Du hast Recht, dass bei Verwendung von IRibbonControl ein Verweis auf die Office 12-Library vorhanden sein muss. Wenn man ctl als Object deklariert, funktioniert es allerdings auch ohne. Ich werde darauf hinweisen.]

So, langsam ernährt sich das Eichhörnchen, Fortsetzung folgt (vielleicht)!

PS: Vielleicht sollte hier doch vorerst der Fachlektor ran http://www.ms-office-forum.net/forum/icons/viewmag.gif. Ich bin ein praxisorientierter Mensch. Sprich, ich möchte das Gelesene umsetzen und funktionierende Ergebnisse sehen (sonst kann ich mir keine korrekte Meinung über das Gelesene bilden, sorry). Und wenn das schon am Anfang scheitert, ja dann...

[Edit AM: Darüber wäre nachzudenken. Danke für den Hinweis, ich möchte natürlich keinen Leser verprellen, weil was nicht funktioniert.]

Nehmt mir dies bitte nicht übel. Nur drüber fliegen ist nicht mein Fall! Wenn Feedback, dann richtig! Wenn ihr möchtet klinke ich mich aus und warte ab, bis das Buch erscheint http://www.ms-office-forum.net/forum/icons/shade.gif.

[Edit AM: Auf keinen Fall! ;-)]
Kreisch! Nein, die Anmerkungen sind doch super und hilfreich. Genau das, was wir uns bei der Idee der Vorabveröffentlichung vorgestellt hatten!

lg

peppi
01.12.2006, 12:45
Hallo ihr fleissigen Buchschreiber ;),

nachdem Manuela ja das "fachliche Lektorat" übernommen hat - die das auch sehr viel besser kann als ich - wollte ich mal etwas zur Formatierung sagen (André hatte mich darum gebeten).

Eigentlich ist die Optik des Buches auch gelungen. Allerdings sind mir zwei Dinge aufgefallen:
Die Codes heben sich für meine Begriffe nicht so gut ab. Ich habe mal ein Beispiel nachgebaut, welches ich hier anhänge (MOF läßt grüßen :grins:) - Anmerkung an André: Als Objektstil gespeichert, ist das dann ein Kinderspiel ;).
Aufzählungen würde ich persönlich mit einfachem Zeilenabstand und untereinander ohne Absatzabstand nach oder vor erstellen, da sie sich dann doch noch etwas mehr von den eigentlichen Absätzen abheben...
Die Frage ist halt, ob sich Addison&Wesley das von André vorschreiben lässt...;) :(
[Edit AM: Genau das ist der Haken. So, wie es aussieht, soll es weitgehend auch aussehen. Hier und da habe ich Veränderungen vorgenommen, aber den Code in einen Kasten packen, das wird nicht gehen. Und auch an den Abständen zwischen den Aufzählungen kann (und möchte) ich nicht rütteln. Trotzdem danke fürs Feedback!]

Gruß gaby
<br>

SWR
17.12.2006, 21:22
Hallo,

wie man die Control-IDs erhält, ist ja bereits in dem Kapitel erwähnt (als Link) -
vielleicht sollte man auch die "imageMso-Elemente" näher beleuchten - wie heißen die, wie kommt man da dran. Wer Ribbons mit den schier unzähligen eingebauten Symbolen ausstatten möchte, weiß in der Regel erst mal nicht, wie die heißen.

[Edit AM: Das ist eine gute Anregung. Mal schauen, wo ich das noch einbaue.]

Zwar ist im Web auch eine XLSM-Datei zu finden, die die Elemente in Galleries listet und so auch deren Namen offenbart. Aber ich finde, daß das in meinem angehängten Beispiel wesentlich komfortabler zu handhaben ist (so viel Bescheidenheit muß sein ;) ). Vor alllem geht's da auch "rückwärts" - also Auswahlmöglichkeit aus einem Kombinationsfeld mit sofortiger Anzeige des Symbols und Erzeugung eines kleinen entsprechenden Tags. Und die Einträge sind nicht doppelt und zig-fach wie in der o. g. Excel-Datei.

[Edit AM: Vielleicht kann ich die Datenbank ja auf die Buch-CD packen? Zuvor müssten allerdings noch vier Zeilen aus der Tabelle imageMso gefixt werden (472 hat einen Tippfehler, 594 gibt es wohl nur in der Beta, 1255 will auch nicht, weiß nicht warum, dito bei 1500.]
Übrigens paßt der komplette XML-Code für ca. 1900 Elemente nicht in ein Memo-Feld! Da könnte man zwar einerseits auf eine externe XML-Datei von Access aus zugreifen oder andererseits die XML-Datei in einem OLE-Feld mit sich rumschleppen und beim Starten entpacken lassen, falls noch nicht geschehen - beide Fälle waren mir jetzt mal zu blöd. Aus diesem Grund wird ein String beim Starten generiert und dann mit Application.LoadCustomUI das/der Ribbon geladen. Vielleicht läßt sich die angehängte accdb ja irgendwie verwenden.

[Edit AM: Wie gesagt: Die Beispieldatenbank würde der Buch-CD sicher gut zu Gesicht stehen. Auch die Technik, ein Ribbon per Code beim Start zuzuweisen, habe ich noch nicht beschrieben.]
Weiterer Vorschlag wäre noch:
Noch "Application.CommandBars" anschneiden - zum Beispiel:

.ExecuteMso
.GetImageMso
.GetPressedMso
'... usw.

[Edit AM: Ich wusste, ich habe das eine oder andere übersehen... Ich baue es noch ein. Danke für die Hinweise!]


Gruß
Stephan

SWR
19.12.2006, 18:41
Vielleicht kann ich die Datenbank ja auf die Buch-CD packen?
Gerne.
Zuvor müssten allerdings noch vier Zeilen aus der Tabelle imageMso gefixt werden (472 hat einen Tippfehler, 594 gibt es wohl nur in der Beta, 1255 will auch nicht, weiß nicht warum, dito bei 1500.
Ich seh's mir an - und melde mich hier wieder. Redaktionsschluß? Wann spätestens?

Gruß
Stephan

P.S.: ich hatte natürlich nicht alle 1847 Elemente manuell durchgetestet . . . ;)

Sascha Trowitzsch
19.12.2006, 22:35
mossSOFT kindly presents for your pleasure:

Im Anhang die korrekte Liste von ImageMsos.
Das war etwas Arbeit mit Aktualisierungsabfragen etc.
Es ist eine Kombination aus dem Gallery.xls von MS und binärer Extraktion aus der mso.dll von Office12.
Demnach gibt es etwa 100 zusätzliche gültige imageMsos gegenüber dem XLS und außerdem sind 5 Einträge dort falsch, weil zu kurz geschrieben.
(Oh Mann, MS...)

Gruß, Sascha

Sascha Trowitzsch
19.12.2006, 22:42
Ich habe übrigens das Gefühl, dass das hier: http://ms-office-forum.net/forum/showthread.php?t=200519 besprochene auch irgendwie Eingang ins Kapitel finden müsste... :( :(

Ciao, Sascha

Andre Minhorst
11.02.2007, 20:56
Hallo Stephan,

noch mal zu Deiner Beispieldatenbank: Ich würde die tatsächlich mit auf die Buch-CD bringen. Möchtest Du im Text als Autor genannt werden? Wenn Du mir bis morgen Bescheid gibst, nehme ich Dich mit auf.

Deinen vollständigen Namen bräuchte ich dafür natürlich auch.

Danke!
André

Sascha Trowitzsch
11.02.2007, 21:34
@André: Ich will ja nicht kleinlich sein, aber Stephans ACCDB wirft a) bei mir beim Start Fehler wegen ungültiger IDs und enthält b) nur 1800 IDs von 4300, die unter #9 zu finden sind. ;)

Im Anhang die DB von Stefan mit den IDMSOs von mir.
(Sprengt leider die Kapazitäten des Ribbons.. :grins: )

Ciao, Sascha