Monday, October 3, 2022 1:48:32 PM

Rechter muis menu voor printen

2 years ago
#805 Quote
Is er een voorbeeld beschikbaar waarmee ik de print functie zoals dat nu in documenten op documentLineId mogelijk is, kan implementeren in mijn eigen plugins?
0
nopFinance plugin developer
E-commerce specialist sinds 2003
Sinds 2003 ervaring in het begeleiden van starters en mkb-ers met het opzetten van hun bedrijfsautomatisering/administratie
0031-(0)36-7851687 / 0031-(0)6-54694849 (whatsapp)
2 years ago
#812 Quote
Ik heb dit voor het toevoegen van printrapporten aan een toolstripmenu item dat als contextmenu onder de muis hangt in de doclines:

Dat menu item heeft als name: 'Print'


  private void ShowReports()
        {
            Print.DropDownItems.Clear();

            if (EngineContext.Current.IsRegistered<IEnumerable<IDocumentLineReportingPlugin>>())
            {
                var plugins = EngineContext.Current.ContainerManager.ResolveNamed<IEnumerable<IDocumentLineReportingPlugin>>((_documentType.SystemName).ToString());
                plugins.ForEach(m =>
                {
                    var reporters = m.GetReportTemplates(_documentType);
                    reporters.ForEach(n =>
                    {
                        var tsmi = new ToolStripMenuItem()
                        {
                            Text = n.DisplayName,
                            Tag = new Reporter(m, n),
                        };
                        tsmi.Click += new System.EventHandler(this.Print_Click);

                        Print.DropDownItems.Add(tsmi);

                    });
                });
            }

            Print.Enabled = Print.DropDownItems.Count > 0;      
}

private void Print_Click(object sender, EventArgs e)
        {
            List<DocumentLine> documentLines = new List<DocumentLine>();
            foreach (DocumentLine dl in lvDocumentLines.SelectedObjects)
                documentLines.Add(dl);

            var reporter = ((ToolStripMenuItem)sender).Tag as Reporter;

            ((IDocumentLineReportingPlugin)reporter.Plugin).Report(null, reporter.ReportTemplate, documentLines);
        }
0
"In an age where information is abundantly available, it is no longer enough to possess it. You have to act on it!"