Wenn nichts zu dieser Beschreibung passt, was kann ich am nächsten?Gibt es Open-Source-Tabellenkalkulationsimplementierungen in Smalltalk, die für die Arbeit auf Produktionsebene verwendet werden?
Antwort
Es scheint die Antwort auf diese Frage ist "Nein".
Glamour hat eine Tabellendarstellung –
Ich bevorzuge es vor allem, nicht durch Zeilen und Spalten eingeschränkt zu sein, wie die Sichtbarkeit von Objektbrowsern und Inspektoren.
Ich bin mir nicht sicher, welches Problem Sie hier versuchen zu lösen.
Eine Smalltalk-Umgebung sollte während der Paarprogrammierung ein paar Stunden mit einem Experten erlernt werden. Der Weg, es zu benutzen, unterscheidet sich sehr von der Verwendung von IDEs wie Eclipse, Visual Studio, XCode oder Delphi.
Wenn Sie viele Daten durchsuchen und die interessanten Objekte finden möchten, bietet Moose eine Menge Hilfe bei der Visualisierung Ihrer Daten. Es konzentriert sich auf Software-Reengineering, aber z.B. Mondrian ist genauso für Finanzdaten nutzbar.
OK, Sie mögen die Benutzeroberfläche nicht - was verwenden Sie als Regel-, Abhängigkeits- und Berechnungs-Engine? – blueberryfields
Obwohl ich gestehe, dass ich perplex bin über Ihre Präferenz, Daten durch Objektbrowser und Inspektoren zu betrachten - die, die ich bisher verwendet habe, machen meine Datensätze zu einem unverständlichen Brei. Welche verwenden Sie normalerweise? – blueberryfields
Die Standard-Erkundung von Pharo, meist die Seaside One-Clicks. Ich finde die wichtigste Fähigkeit herauszufinden, welches Objekt zu erkunden ist. Das braucht Zeit. –
Hier ist der Anfang eines von Hans-Martin Mosner hier gespeichert ...
http://smalltalkhub.com/#!/~StephaneDucasse/PetitsBazars/packages/Spreadsheet. diese
Mit in Pharo Sie tun können ...
sheet := SpreadsheetGridMorph new openInWindow.
sheet cellStringAt: [email protected] put: '10'.
sheet cellStringAt: [email protected] put: '20'.
sheet cellStringAt: [email protected] put: '=A1+A2'.
sheet cellStringAt: [email protected] "-->30"
Option 1) In Pharo 1.4 oder 2,0
Ich habe SGrid (aka GridMorph) verwendet, um Hunderte von Zeilen ohne große Performance-Probleme angezeigt werden .
Installieren
Menü -> Extras -> Konfiguration Browser -> MorphicGrid (Install)
Beispiel
| matrix grid rows cols |
rows := 2.
cols := 3.
matrix := Matrix rows: rows columns: cols.
1 to: rows do: [ : r |
1 to: cols do: [ : c |
matrix at: r at: c put: SmallInteger maxVal atRandom ] ].
grid := (GridMorph
from: matrix
performing: {
'Heading 1' -> #asNumber .
'Heading 2' -> #asNumber .
'Heading 3' -> #asNumber })
title: 'GridMorph Example'.
grid openInWorld.
mit dem Netz zu interagieren (wie rechte Taste Menü zu bringen In einer beliebigen Zelle müssen Sie Probleme beheben, die mit der Einführung der SmalltalkEditor-Klasse zusammenhängen. Der folgende Code einen tabellarischen Bildbetrachter öffnet das GridMorph und die flickr API (die flickr API-Nutzung auf this cast basiert):
| xmlStream xmlDoc photos |
xmlStream := 'http://api.flickr.com/services/feeds/[email protected]&lang=en-us&format=rss_200' asUrl retrieveContents readStream.
xmlDoc := XMLDOMParser parseDocumentFrom: xmlStream.
photos := OrderedCollection new.
xmlDoc allElementsNamed: #item do: [ : item| | thumbUrl photoUrl |
thumbUrl := ((item findElementNamed: #media:thumbnail) attributeAt: #url) asUrl.
photoUrl := ((item findElementNamed: #media:content) attributeAt: #url) asUrl.
photos add: (photoUrl -> (Form fromBinaryStream: thumbUrl retrieveContents readStream)) ].
((GridMorph
from: photos
performing: {'URL' -> [: assoc | assoc key asString ] . 'Picture' -> [: assoc | assoc value asMorph ]})
title: 'Flickr GridMorph Example') openInWorld.
Option 2) In Pharo 1.4 oder 2.0
Es wird eine Klasse MorphTreeMorph, die einen Kommentar mit mehreren Beispielraster enthält.
Beispiel
SimpleGridExample new open
ClassListExample new openOn: Collection.
Option 3) In Squeak:
Es gibt ein Projekt Skeleton – easy simulation system genannt, die eToys verwendet, und Sie können von ihrem Code zugreifen: http://source.squeak.org/etoysinbox.html
Installations
Installer squeak
project: 'etoysinbox';
install: 'Skeleton'.
Beispiel
SkSheet example "Move the red circle around"
Ich habe es nicht benutzt, aber es scheint, Unterstützung Grundformeln zu haben.
Was würden Sie gewinnen, wenn Sie die Tabelle in Smalltalk implementieren? –
Ich verstehe die Frage nicht. – blueberryfields
Ich denke, Alexandre versucht zu fragen, warum Sie (oder irgendjemand) so etwas wollen. – Chuck