Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: vios am 05.12.05 - 12:40:40
-
Hallo!
Ich möchte eine automatisierte Angebotsanwendung realisieren,
in der die Produktdaten mittels Auswahlmenü ausgewählt und in das
Dokument eingefügt werden. Die Produktdaten sind:
1.Zeile: POSNR(bearbeitbar), ARTIKELBEZEICHNUNG
2.Zeile: ARTIKELTEXT
3.Zeile: STK(bearbeitbar), STK-PREIS, TOTALPREIS
Mit welcher Methode kann ich so eine Struktur am besten in ein Dokumnet einfügen? Es soll Position für Position eingefügt werden,
die einzelnen Positionen sollten editierbar sein.
Hat jemand eine Idee oder gar ein ähnliches Anwendungsbeispiel???
Danke für Eure Hilfe!!
-
Ich würde es so machen:
Kann Dir allerdings das Beispiel nicht geben, sonst gibt's hier Ärger...
-
Ich kenne nur Lösungen bei denen das eine Menge programmierverständnis benötigt.
Als freies Beispiel im Internet ist mir das auch nicht bekannt.
Ging aber schon mit Notes 4. Nur ist dieser alte source code nicht von mir und ich würds deshalb auch nicht rausgeben.
Würd mich interessieren, falls jemand eine Lösung im Netz kennt:
Tipp: Kombination von dynamischen Arrays, Listen(wichtig) und (Class oder Type).
Eigentlich eine interessante Lotus-Script Aufgabe.
-
Ich sag jetzt nur Table Walker, Sandbox.
-
Klaus,
danke für Deinen Beitrag, das Beispiel von Dir ist eine "normale"
dynamische Tabelle, die in der Maske eingebettet ist.
Für mich nicht brauchbar, weil hier pro Zeile 1 Datensatz dargestellt wird,
dennoch danke für Deinen Beitrag!
Thomas:
Table-Walker?
Hallo, wo sind die Notes-Programmierer?
Das ist doch ein Beispiel, wie es in jedem CRM/ERP-System tagtäglich vorkommt, es muss doch eine Lösung in LotusScript geben??? ???
-
Nachdem du keine Angaben zu deinem System und was du damit erreichen willst gemacht hast.
Ja klar Table Walker.
Weil, EmbeddedViews mit Response Dokumenten hast du ja schon ausgeschlossen. Und was anderes was noch halbwegs effektiv ist GIBT ES NICHT. Nicht in Script nicht in Java nicht in der Formelsprache.
Ende Gelände.
-
wenn es nicht pro Artikel eine Zeile sein soll, fällt mir nur die appendText method der NotesRichTextItem Klasse ein.
-
Eine klassische Herausforderung von mehrzeiligen Inhalt ist, dass dann die Zeilen verrutschen. Es ist sehr unwahrscheinlich, dass alle 5 Einträge einer Daten-Zeile die gleiche Anzahl an physischen Zeilen in der Tabelle beanspruchen.
Man müßte ja auch nachträglich die Datensätze bearbeiten können. Trivial ist das alles nicht.
Ich schau mir am WE mal TableWalker an. Danke Thomas 8)
-
Table Walker ist ja das, was Klauss eingangs des Freds schon gepostet hatte ...
-
Ach so.
Naja. Man könnte das ergänzen, indem man die Länge der einzelnen Elemente des Datensatzes nachprüft. Eine Art rendering-zu-Fuß. Bin mir aber nicht sicher, ob das dann wirklich 100% korrekt in der Tabelle dargestellt wird.
@vios: Wenn du eine Maximal-Menge der möglichen Einträge in deiner Tabelle hast, dann erzeuge einfach die ganzen Felder und arbeite evtl. mit Hide when Formeln. Das geht oft auch.
Intelligente Tabellen erfordern in Lotus Notes eine Menge an kreativen Ideen und Sachverstand. Das ist eine Feststellung. Wir können das jetzt bewerten. Ich bin drüber hinweg.
peace
Axel
-
Intelligente Tabellen erfordern in Lotus Notes eine Menge an kreativen Ideen und Sachverstand
Und genau aus diesem Grund gibt es professionelle Lösungen wohl nur gegen harte Devisen ...
Letztendlich ist mit LS und dem nötigen Sachverstand so gut wie alles machbar.
Ach ja, um die Frage
Hallo, wo sind die Notes-Programmierer?
...
zu beantworten.
Ich denke, alle, die bisher geantwortet haben, wissen, wo sie wohnen. Sind nämlich alles sehr gute Leute ...
-
Ich habe hier die Befürchtung, dass wegen
Das ist doch ein Beispiel, wie es in jedem CRM/ERP-System tagtäglich vorkommt, es muss doch eine Lösung in LotusScript geben??? ???
hier nicht anerkannt wird, das Notes nicht wie "jedes CRM/ERP-System" (das wäre ja schon diskussionswürdig) eben keine relationale Datenbank (und das ist auch nicht jedes CRM-System ;)) ist.
In einer relationalen System basiert jede anzuzeigende Position auch auf einem "Record". Für Auswertungen muss in Notes hier (um das Prinzip auch auszuschöpfen) auch jeweils auf einem Dokument pro Position beruhen.
Mit der Darstellung hat dies aber gar nichts zu tun - ich habe unten mal einen Schirmschuss angehangen auch einer etwas älteren Applikation von mir, die mittlerweile neu geschrieben wurde und prinzipiell anders funktioniert. Dieses Darstellungsprinzip beruht aber auf den "alten" Algorithmen. Und es ist pures LotusScript, und es braucht
- keinen wiederum begrenzten TableWalker
- basiert nicht auf dahinterliegenden Dokumenten (auch wenn diese zu weiteren Auswertungen natürlich erzeugt werden !)
- hat kein Problem mit mehrzeiligen Spaltenwerten
- und es funktioniert auch, wenn man auf einzelne "Records" für die Positionen verzichten würde (was - wie schon gesagt - eine dumme Idee wäre).
Und es ist keine Freeware.
Bernhard
-
Mit welcher Methode kann ich so eine Struktur am besten in ein Dokumnet einfügen? Es soll Position für Position eingefügt werden, die einzelnen Positionen sollten editierbar sein.
Wenn man weiss, wie es geht und der Algorithmus erarbeitet wurde, ist es nur noch Handwerk. Man braucht allerdings die ganze Klaviatur, die LS und die Notes-Klassenbibliothek zu bieten haben. Auf irgendein "Kochrezept" lässt sich dies - wie bei den Lösungen klassisch-relationale Systeme - allerdings nicht reduzieren.
Mehr Input, mehr Output: Wo siehst Du bei Dir die aktuellen Probleme der Umsetzung ? Dann würden wir einfacher Ansatzpunkte finden ;)
Bernhard
-
Danke für Eure Beiträge !!!
Bernhard: Danke für Deinen Beitrag und Anhang, bei dem es sich
ebenfalls um eine eingebettete dynamische Ansicht handelt.
Nachstehend ein Beispiel, wir eine eingefügte Position aussehen soll:
Pos. 01.00 FESTPLATTE 3,5"
interne Festplatte 3,5", 7200 upm, 8MB Cache,
dual-spin-tecnology, 350GB, SCSI
5 Jahre Garantie, boxed
2 Stück Preis per Stk. € 322,-- € 644,--
Aus der Tabelle werden die Werte folgender Felder ausgelesen:
- Artikelbezeichnung (FESTPLATTE...)
- Artikeltext (interne...)
- Preis per Stück
Das Feld Pos ist mit fortlaufender, editierbarer Nummer, das Feld
Stückzahl wird als Dialogbox in der Ansichtsauswahl eingebaut,
und die Summe ist ein berechnetes Feld.
Mir geht es darum, wie ich diese Struktur laut Abbildung in ein Dokument
einbauen bzw. einfügen kann, da ja bei eingebetteten Ansichten nur
eine Zeile pro Datensatz zur Verfügung steht. Ich suche also nach einer
Möglichkeit, eine Art "Teilmaske" -die zur Laufzeit eingefügt und mit
den entsprechenden Werten befüllt wird- in ein Dokument einzufügen.
Mag kompliziert sein, aber ich kann mir einfach nicht vorstellen,
dass alle nur mit 1-zeiligen dynamischen Tabellen das Auslangen finden.
Aber vielleicht ist das so und ich muss mit externen Datenquellen
experimentieren... ???
-
Nur kurz als Anmerkung, "vios" (oder wie immer Du heisst - wie schätzen hier zumindest reale Vornamen):
Wir reden hier schon lange nicht mehr über embedded views. In keinster Weise. Die braucht es hierfür überhaupt nicht. Auch bei meiner Lösung können die zu Grunde liegenden realen Dokumente für Positionen ruhig gelöscht werden - sie wären "additional". Mit der Darstellung haben sie nichts zu tun.
Ab gesehen davon: Einzeiligkeit bedeuten weder embedded views noch die anderen bisher hier vorgeschlagenenen Lösungen.
Wo liegt Dein Problem wirklich ? Alles, was Du willst, ist doch realisierbar.
Bernhard
-
Bernhard aber vielleicht langt das KnowHow nicht aus.
Der TableWalker und Embedded Views sind Sachen die man auch mit relativ wenig Skill realisieren kann. Das was du da präsentiert hast hat obwohl Vios es wohl nicht wahrhaben will
..., bei dem es sich
ebenfalls um eine eingebettete dynamische Ansicht handelt.
nichts mit Embedded Views zu tun. Und braucht tatsächlich einiges an Skill oder den Zukauf von diesem. Und vielleicht ist gerade das das Problem dabei.
-
Ich weiss aus Erfahrung, dass solche Lösungen wirklich extrem schwer zu programmieren sind (und ich hab das auch nicht gemacht, sondern Igor damals bei Kasten).
Vereinbart also ein Meeting und einigt euch ggbfls auf einen Preis.
Als Nebenthema möchte ich anmerken, dass die Tatsache, dass diese Systeme mit anderen Plattformen einfacher zu realisieren sind nichts damit zu tun haben, dass ein anderes DB-System verwendet wird sondern das einfach die Table Widgets der GUI Library smarter sind.
Man könnte in Notes auch darüber nachdenken ein Applet zu nehmen, dort JTable verwenden und irgendwie zugeordnete Dokument-Inhalte auf die einzelnen Entries zu binden.
Applets sind aber auch irgendwie Fremdkörper in einer Notes-Anwendung.
-
auf jeden Fall ein interessantes Problem...
Mit dem TableWalker habe ich früher mal gearbeitet, das war suboptimal.
Spontan fallen mir 2 Ansätze ein:
1. Tabelle hört sich doch nach Excel an, vielleicht ein verstecktes Excel-Objekt erzeugen, dadrin alles machen und dann die Ergebnisse in Richtextfeldern darstellen (Pro Spalte ein Feld)
2. Um die Zeilen sauber aufzubereiten und leere Zeilen mit berücksichtigen zu können muss die Tabelle als Array in LotusScript oder JavaScript aufbereitet werden. Mit Split, Join und den String-Funktionen sollte das nicht allzu wild sein. Einfügen neuer Werte ist dann auch nur das Erhöhen einer Variablen im Array.
Aber einfach ist das in keinem Fall...
Vielleicht hat ja jemand das hier gelesen? http://lotusadvisor.com/doc/14544 Ich komme da leider nicht dran