using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.Services; using GrapeCity.ActiveReports; using GrapeCity.ActiveReports.Web; using Newtonsoft.Json; using HH.WMS.Entitys; namespace HH.WMS.WebUI.ActiveReport.Service { /// /// InStockActiveService 的摘要说明 /// [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 // [System.Web.Script.Services.ScriptService] public class OutFromOrderService : ReportService { protected override object OnCreateReportHandler(string reportPath) { //通过report的值获取数据源 var instance = base.OnCreateReportHandler(reportPath); var pageReport = instance as PageReport; if (pageReport != null) { pageReport.Document.LocateDataSource += Document_LocateDataSource; } return instance; } void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args) { string no = args.Report.Parameters["no"].CurrentValue.ToString(); string tokenId = args.Report.Parameters["tokenId"].CurrentValue.ToString(); if (args.DataSourceName == "OutFormOrderDS") { if (args.DataSetName == "DataSet_MST") { args.Data = GetMst(tokenId,no); } else if (args.DataSetName == "DataSet_DTL") { args.Data = GetDtl(tokenId,no); } } } //获取到货单主表 public DataTable GetMst(string tokenId,string no) { string list = HH.WMS.Common.WebApiManager.HttpWMS_Get("Api/Out/GetEntity?tokenId=" + tokenId + "&opNo=" + no); OperateResult or = JsonConvert.DeserializeObject(list); if(or.Status== ResultStatus.Success) return JsonConvert.DeserializeObject("[" + or.Data.ToString() + "]"); return new DataTable(); } public DataTable GetDtl(string tokenId,string no) { string list = HH.WMS.Common.WebApiManager.HttpWMS_Get("Api/Out/GetOutDtl?tokenId=" + tokenId + "&opNo=" + no); OperateResult or = JsonConvert.DeserializeObject(list); if (or.Status == ResultStatus.Success) return JsonConvert.DeserializeObject(or.Data.ToString()); return new DataTable(); } } }