Text Editor Addin

12. Mai 2014 08:41

Hallo zusammen!

Ich mache gerade eine Ausbildung zum Fachinformatiker (Anwendungsentwickler) bei einem Microsoftpartner. Am Ende der Ausbildung muss ich eine sogenannte Projektarbeit machen, die vom Unternehmen gestellt wird, Umfang ist so 70 Stunden.
Meine Aufgabe ist folgende: Die Erstellung eines Text Editor Addins, dessen Daten dann in NAV gespeichert werden und so einen Fließtext, evtl. mit Bild zu z.B. Artikeln abspeichern lässt.
Ich habe die Einführung in C# bei einem Microsoft Schulungszentrum gemacht, aber trotzdem fühle ich mich hier gerade ein bisschen unsicher, wie und wo ich da jetzt am besten ansetze zu entwickeln.
MSDN habe ich durchforstet, aber so richtig weiterhelfen tut mit das im Moment nicht, weil es ja mehr fact sheets sind und keine konkrete Einführung, im Netz habe ich bisher auch nichts entsprechendes gefunden... wenn also jemand so ein Tutorial an der Hand hat, oder mich in die richtige Richtung stupsen könnte, wäre ich unglaublich dankbar.

Re: Text Editor Addin

12. Mai 2014 08:59

Hallo Dominik,

zunächst einmal Herzlich willkommen im Forum.

zu deiner Frage:

schau doch mal auf diese Seite, und suche dort nach Editor. Dort wirst du schon einige Editoren für verschiedene Aufgaben finden.

Ob ein Addin das richtige ist, oder einfach nur eine DotNet- Library, musst du anhand deiner noch zu definierenden Anforderungen festlegen.
Genauso musst du dir die Frage stellen, wie du die Daten speichern möchtest in einem BLOB oder in von NAV zu verarbeitenden Tabellenzeilen. Bei letzterem solltest du auch im Editor auf die maximale Feldlänge in NAV achten.
Wo soll der Editor angewendet werden können? Zur Bearbeitung von Belegzeilen um Texte mit Belegzeilen verknüpfen zu können? In Bemerkungen?....
Soll der Editor Bestandteil einer Branchenlösung sein? Dann muss er bestimmte Anforderungen seitens MS erfüllen.

Alles in allem ist das eine schöne Aufgabe, die man sicherlich in der Zeit lösen kann.

Gruß, Fiddi

Re: Text Editor Addin

13. Mai 2014 14:25

Hallo!

Erstmal Danke für die Antwort, ich bin auch schon einen Schritt weiter.
Es soll als "echtes" AddIn realisiert werden, wenn möglich (Kundenwunsch). Ich habe mich dann mal auf der von Dir verlinkten Seite umgesehen und angefangen zu recherchieren.
Geplant ist erstmal "ein Text" pro Artikel, der dann dementsprechend abgespeichert werden kann, quasi so eine Art "erweiterte Produktbeschreibung".
Ich habe daraufhin mal ein Testaddin erstellt und das in eine Seite eingebunden, Public Key erstellt und auch über die Client AddIns Page registriert mit seinem Public Key Token.
Jetzt versuche ich meine Page zu starten und da kommt der folgende Fehler:

Die Steuerelement-Add-In-Bibliothek für "TextEditorAddIn;PublicKeyToken=2c5c6c9610f43c0d" wurde nicht gefunden.

Name und Public Key habe ich überprüft und die stimmen auch. Weiss da jemand vielleicht Rat?

Re: Text Editor Addin

13. Mai 2014 14:48

liegt die .dll auch im CLientverzeichnis?

Re: Text Editor Addin

13. Mai 2014 21:47

Unabhängig von dem Problem (wird wohl tatsächlich das Add-In nicht im Add-Ins Verzeichnis des Windows Client liegen), solltest du dir - speziell im Hinblick auf Wiederverwendbarkeit in zukünftigen Versionen und inkl. des Web Client - überlegen, ob der Ansatz nach dem neuen (auf HTML5 basierenden) Model für Dynamics NAV 2013 R2 nicht der bessere Ansatz ist. Vorausgesetzt natürlich, die Anforderung liegt nicht speziell für die Version 2013 vor.

Stichwort: TinyMCE (http://www.tinymce.com/). Ob das nun für die Anforderung (und der Lizensierung) passend ist, kann ich natürlich nicht beurteilen. Aber es wäre einen Blick wert. Bitte dann mit einem aktuellen 2013 R2 Build testen, da es ein generelles Problem mit TinyMCE gab.

Re: Text Editor Addin

16. Mai 2014 08:38

Erstmal Danke für die Antworten, inzwischen bin ich schon ein ganzes Stück weiter gekommen.
Ich habe einen Editor in die Oberfläche eingebunden und der Editor selbst funktioniert auch.
Im Moment arbeite ich daran, dass Daten an den Editor und wieder zurück an NAV übergeben werden, wie das funktioniert ist mir noch nicht ganz klar... aber ok ^^

Re: Text Editor Addin

19. Mai 2014 08:37

So, ich habe mich jetzt mal durch die verschiedenen Walkthroughs und Tutorials gewühlt, aber dennoch scheine ich irgendetwas falsch zu machen.

Hier mal der Code:

Code:
namespace NAVText
{
    [ControlAddInExport("NAVText")]
    public class EditorField : WinFormsControlAddInBase , IWinFormsControlAddIn, IValueControlAddInDefinition<object>
    {

        HtmlEditor control = new HtmlEditor();
        protected override Control CreateControl()
        {
            PredefinedButtonSets.SetupDefaultButtons(control);

            control.MinimumSize = new Size(50, 0);
            control.MaximumSize = new Size(500, Int32.MaxValue);
           
           
           return control;
        }

       
       

        #region IObjectControlAddInDefinition Members

        public event ControlAddInEventHandler ControlAddIn;

        public bool HasValueChanged
        {
            get { return true; }
        }

        public object Value
        {
            get
            {
                return this.control.Html;
            }
            set
            {
                if (value is byte[])
               
                {
                    byte[] data = (byte[])value;
                   
                   
                    if (data != null)
                    {
                        this.control.Html = Convert.ToString(data);
                    }
                }
            }
        }

        #endregion
       
    }
}


Die Klasse ruft das Control auf, und das funktioniert so weit auch ganz gut, lässt sich benutzen etc.
Den zweiten Teil, habe ich aus einem Walkthrough genommen und erstmal für meine Zwecke modifiziert, weil ich alleine gar nicht weiter gekommen bin. this.control.html sollte eigentlich den Wert setzen, aber laut Visual Studio wird schon der Event nicht aufgerufen. Ich habe es mit den verschiedenen Interfaces und allen möglichen Kombinationen von http://msdn.microsoft.com/en-us/library/dd983824.aspx versucht, aber leider ohne Erfolg.

Weiss jemand da vielleicht Rat?