Een commercieel beheersdocument afdrukken via code

0000002176     -      08-12-2021

Hierbij graag enkele voorbeeldcodes die het mogelijk maken om een commercieel beheersdocument af te printen.

Vanuit een BillingForm:

Zoom
billingForm.BillingEngine.PrintPrev(MercatorUi.PrintPrevEnum.Print);

Vanuit een BillingEngine:

Zoom
billingEngine.PrintPrev(MercatorUi.PrintPrevEnum.Print);

of om verschillende handelingen (afdrukvoorbeeld, afdrukken, een PDF maken) te combineren

Zoom
List<MercatorUi.Reporting.OutputDescriptor> outputDescriptors = new List<MercatorUi.Reporting.OutputDescriptor>();
outputDescriptors.Add(new MercatorUi.Reporting.OutputDescriptorPreview()); // om een afdrukvoorbeeld te krijgen
outputDescriptors.Add(new MercatorUi.Reporting.OutputDescriptorPrint()); // om af te drukken
outputDescriptors.Add(new MercatorUi.Reporting.OutputDescriptorExport(MercatorUi.Reporting.ExportReportEnum.PDF, @"C:\invoice.pdf", MercatorUi.Reporting.ExportOpenAfterEnum.No)); // om te exporteren naar C:\invoice.pdf
DataSet dataSetPrintPrev = billingEngine.PrepareDataSetForPrint();
Dictionary<string, object> parametersPrintPrev = billingEngine.PrepareParametersForPrint();
MercatorUi.Reporting.ReportingStatic.Reporting.RunReport("TitleOfPreviewForm", "piece.repx", dataSetPrintPrev, outputDescriptors, parametersPrintPrev);

Buiten de context van BillingEngine:

Zoom
string id = "...";
string journal = "...";
Int64 piece = ...;
MercatorUi.Reporting.ReportingStatic.PrintBilling(id, journal, piece, MercatorUi.PrintPrevEnum.Print);

Indien u al beschikt over informatie van het VA-type (V=verkoop, A=aankoop) en type, dan gebruikt u beter deze tweede handtekening waardoor een opdracht in DB SQL niet nodig is:

Zoom
int type = ...;
string id = "...";
string journal = "...";
Int64 piece = ...;
MercatorUi.Reporting.ReportingStatic.PrintBilling(MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V, type, id, journal, piece, MercatorUi.PrintPrevEnum.Print);

of

Zoom
int type = ...;
string id = "...";
string journal = "...";
Int64 piece = ...;
MercatorUi.Engine.Gescom.Tools.BillingDocDescriptor billingDocDescriptor = new MercatorUi.Engine.Gescom.Tools.BillingDocDescriptor(MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V, type, id, journal, piece);
MercatorUi.Reporting.ReportingStatic.PrintBilling(billingDocDescriptor, MercatorUi.PrintPrevEnum.Print);

Overal in de code kan MercatorUi.PrintPrevEnum.Print vervangen worden door:

  • MercatorUi.PrintPrevEnum.Preview voor een afdrukvoorbeeld
  • MercatorUi.PrintPrevEnum.Send om een mail te verzenden

of om verschillende handelingen (afdrukvoorbeeld, afdrukken, een PDF maken) te combineren

Zoom
MercatorUi.Engine.Gescom.Billing.TypeVAEnum typeVA = MercatorUi.Engine.Gescom.Billing.TypeVAEnum.V;
int type = ...;
string id = "...";
string journal = "...";
Int64 piece = ...;
using (MercatorUi.Engine.Gescom.BillingEngine billingEngine = MercatorUi.Engine.Gescom.BillingEngine.InitExisting(typeVA, type, id, journal, piece))
{
    if (billingEngine.DataSet == null)
    {
        Api.Stop(billingEngine.LastError);
        return;
    }
    List<MercatorUi.Reporting.OutputDescriptor> outputDescriptors = new List<MercatorUi.Reporting.OutputDescriptor>();
    outputDescriptors.Add(new MercatorUi.Reporting.OutputDescriptorPreview()); // om een afdrukvoorbeeld te krijgen
    outputDescriptors.Add(new MercatorUi.Reporting.OutputDescriptorPrint()); // om af te drukken
    outputDescriptors.Add(new MercatorUi.Reporting.OutputDescriptorExport(MercatorUi.Reporting.ExportReportEnum.PDF, @"C:\invoice.pdf", MercatorUi.Reporting.ExportOpenAfterEnum.No)); // om te exporteren naar C:\invoice.pdf
    DataSet dataSetPrintPrev = billingEngine.PrepareDataSetForPrint();
    Dictionary<string, object> parametersPrintPrev = billingEngine.PrepareParametersForPrint();
    MercatorUi.Reporting.ReportingStatic.Reporting.RunReport("TitleOfPreviewForm", "piece.repx", dataSetPrintPrev, outputDescriptors, parametersPrintPrev);
}

 

Vanaf een externe toepassingdeze pagina zien