//Entrega el dataset de un ReportHeader public static DataSet GetReportDataset(ReportHeaderFormat header) { if (header == null) { return(null); } //Add Header to DataSet DataSet dh = new DataSet("Header"); XmlSerializer xmlSerializer = new XmlSerializer(typeof(ReportHeaderFormat)); StringWriter writer = new StringWriter(); xmlSerializer.Serialize(writer, header); StringReader reader = new StringReader(writer.ToString()); dh.ReadXml(reader); //dh.Tables[0].TableName = "Header"; ////Add Detail List to DataSet //DataSet dd = new DataSet("Details"); //xmlSerializer = new XmlSerializer(header.ReportDetails.ToArray().GetType()); // detailList.GetType() //writer = new StringWriter(); //xmlSerializer.Serialize(writer, header.ReportDetails.ToArray()); //reader = new StringReader(writer.ToString()); //dd.ReadXml(reader); //dd.Tables[0].TableName = "Details"; //dd.Tables.Add(dh.Tables[0].Copy()); //Adicionamos el header a los details return(dh); }
//Process Document public static DataSet ProcessDocument(int documentID, WMSServiceClient service, string template) { //Llama al Dao de reportes, y segun el Tipo Obtiene un DataSet Con Los datos Requeridos ReportHeaderFormat rptHdr = service.GetReportInformation(new Document { DocID = documentID, Company = App.curCompany, Location = App.curLocation }, template); return(ReportMngr.GetReportDataset(rptHdr)); }
//Entrega el dataset de un ReportHeader public DataSet GetReportDataset(ReportHeaderFormat header) { //Add Header to DataSet DataSet dh = new DataSet("Header"); XmlSerializer xmlSerializer = new XmlSerializer(typeof(ReportHeaderFormat)); StringWriter writer = new StringWriter(); xmlSerializer.Serialize(writer, header); StringReader reader = new StringReader(writer.ToString()); dh.ReadXml(reader); return(dh); }
//Entrega el dataset de un ReportHeader public static DataSet GetReportDataset(ReportHeaderFormat header) { if (header == null) return null; //Add Header to DataSet DataSet dh = new DataSet("Header"); XmlSerializer xmlSerializer = new XmlSerializer(typeof(ReportHeaderFormat)); StringWriter writer = new StringWriter(); xmlSerializer.Serialize(writer, header); StringReader reader = new StringReader(writer.ToString()); dh.ReadXml(reader); //dh.Tables[0].TableName = "Header"; ////Add Detail List to DataSet //DataSet dd = new DataSet("Details"); //xmlSerializer = new XmlSerializer(header.ReportDetails.ToArray().GetType()); // detailList.GetType() //writer = new StringWriter(); //xmlSerializer.Serialize(writer, header.ReportDetails.ToArray()); //reader = new StringReader(writer.ToString()); //dd.ReadXml(reader); //dd.Tables[0].TableName = "Details"; //dd.Tables.Add(dh.Tables[0].Copy()); //Adicionamos el header a los details return dh; }
private string[] Attachements(MessagePool message) { string[] results = new string[0]; try { LocalReport localReport; // "E:\\GagPrjs\\wms30_\\WpfFrontOLD\\bin\\Debug"; // string appPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), WmsSetupValues.WebServer); string[] files = message.Rule.Files.Split(','); results = new string[files.Count()]; int cont = 0; // ciclo de attachements asociados al correo programado foreach (string templateId in files) { localReport = new LocalReport(); LabelTemplate template = Factory.DaoLabelTemplate().Select(new LabelTemplate { RowID = int.Parse(templateId) }).First(); string reportPath = Path.Combine(appPath, WmsSetupValues.RdlTemplateDir + "\\" + template.Header); localReport.ReportPath = reportPath; //Obteniendo la informacion del Reporte (DataSet) ReportMngr repMng = new ReportMngr(); Document doc = Factory.DaoDocument().Select(new Document { DocID = message.RecordID }).First(); ReportHeaderFormat rptHdr = repMng.GetReportInformation(doc, template.Header); if (rptHdr.ReportDetails == null || rptHdr.ReportDetails.Count == 0) { rptHdr.ReportDetails.Add(new ReportDetailFormat { }); } DataSet ds = GetReportDataset(rptHdr); localReport.DataSources.Add(new ReportDataSource("Header", ds.Tables["ReportHeaderFormat"])); localReport.DataSources.Add(new ReportDataSource("Details", ds.Tables["ReportDetailFormat"])); string mimeType; string encoding; string fileNameExtension; string reportType = "PDF"; //The DeviceInfo settings should be changed based on the reportType //http://msdn2.microsoft.com/en-us/library/ms155397.aspx string deviceInfo = "<DeviceInfo>" + " <OutputFormat>" + reportType + "</OutputFormat>" + " <PageWidth>10in</PageWidth>" + " <PageHeight>11in</PageHeight>" + " <MarginTop>0.2in</MarginTop>" + " <MarginLeft>1.0in</MarginLeft>" + " <MarginRight>0.5in</MarginRight>" + " <MarginBottom>0.2in</MarginBottom>" + "</DeviceInfo>"; Warning[] warnings; string[] streams; byte[] renderedBytes; //Render the report renderedBytes = localReport.Render( reportType, deviceInfo, // null, out mimeType, out encoding, out fileNameExtension, out streams, out warnings); string path = Path.Combine(appPath, WmsSetupValues.PrintReportDir + "\\" + doc.DocNumber + "_" + template.Name + "." + reportType); BinaryWriter bn = new BinaryWriter(File.Open(path, FileMode.Create)); bn.Write(renderedBytes); bn.Flush(); bn.Close(); results[cont++] = path; } } catch { } return(results); }