如何打印功能的数据模型

时间:2017-10-27 03:15:45

标签: c# entity-framework model

我有一个Print函数,可以在我的Project中调用不同的表单。以前我在我的参数上使用DataSet,现在我切换到数据模型。我不确定如何每次从不同的数据模型中检索信息。这是我的旧代码。

public static void Print(string templeteID, DataSet dsSource,bool bPreview)
        {            
            try
            {
                TPX.HMI.BusinessLogic.SystemSetting.ReportTemplate bll = new TPX.HMI.BusinessLogic.SystemSetting.ReportTemplate();
                DataSet dsTemp = bll.RetrieveReportTemplateByID(templeteID);
                if (dsTemp.Tables[0].Rows.Count > 0)
                {
                    FileStream fs = new FileStream(Application.StartupPath + @"\\temp.repx", FileMode.Create);
                    Byte[] aryFile = dsTemp.Tables[0].Rows[0]["TemplateFile"] as Byte[];
                    fs.Write(aryFile, 0, aryFile.Length);
                    fs.Close();
                }
                string reportPatch = Application.StartupPath + @"\\temp.repx";
                //开始打印               
                if (!System.IO.File.Exists(reportPatch))
                {
                    MessageBox.Show(TPX.LanguageHelper.GetSystemKeyValue(GlobalParameters.Language, "TPX_TF_HMI_Print_TemplateError"));
                    return;
                }
                System.IO.FileStream stream = new System.IO.FileStream(reportPatch, System.IO.FileMode.Open);
                XtraReport mReport = DevExpress.XtraReports.UI.XtraReport.FromStream(stream, true);
                stream.Close();

                if (dsSource != null) //传入数据集
                {
                    mReport.DataSource = dsSource;
                    mReport.DataMember = dsSource.Tables[dsSource.Tables.Count - 1].TableName;
                }

                mReport.Name = "TPX";
                mReport.RequestParameters = false;
                mReport.PrintingSystem.ShowPrintStatusDialog = false;
                mReport.PrintingSystem.ShowMarginsWarning = false;
                if (!string.IsNullOrEmpty(GlobalParameters.DefaultPrinter))
                    mReport.PrintingSystem.PageSettings.PrinterName = GlobalParameters.DefaultPrinter;
                mReport.CreateDocument();
                if (bPreview)
                    mReport.ShowPreviewDialog();
                else
                    mReport.Print();
            }
            catch (Exception ex)
            {
                MessageBox.Show((TPX.LanguageHelper.GetSystemKeyValue(GlobalParameters.Language, "TPX_TF_HMI_Print_TemplatePrintEx")) + ex.Message);
            }
        }

0 个答案:

没有答案