|
|
|
@ -31,8 +31,7 @@ namespace BWP.Web.Pages.TypeIOCs |
|
|
|
{ |
|
|
|
|
|
|
|
PageSize = 100; |
|
|
|
dic.Add("$DetailInfo2", new Func<object>(() => GetPrintStyle(Dmo, true))); |
|
|
|
|
|
|
|
dic.Add("$DetailInfo2", new Func<object>(() => GetPrintStyle(Dmo))); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@ -42,15 +41,15 @@ namespace BWP.Web.Pages.TypeIOCs |
|
|
|
|
|
|
|
protected int mTotalCount { get; private set; } |
|
|
|
|
|
|
|
private string GetPrintStyle(CarLoading dmo, bool haveaddress) |
|
|
|
private string GetPrintStyle(CarLoading dmo) |
|
|
|
{ |
|
|
|
StringBuilder html = BuildHtml(dmo, haveaddress); |
|
|
|
StringBuilder html = BuildHtml(dmo); |
|
|
|
return html.ToString(); |
|
|
|
} |
|
|
|
|
|
|
|
protected int PageSize { get; private set; } |
|
|
|
|
|
|
|
private StringBuilder BuildHtml(CarLoading dmo, bool haveaddress) |
|
|
|
private StringBuilder BuildHtml(CarLoading dmo) |
|
|
|
{ |
|
|
|
StringBuilder html = new StringBuilder(); |
|
|
|
|
|
|
|
@ -58,22 +57,18 @@ namespace BWP.Web.Pages.TypeIOCs |
|
|
|
mTotalCount = dt.Rows.Count; |
|
|
|
|
|
|
|
var pageCount = mTotalCount <= 0 ? 1 : ((mTotalCount + PageSize - 1) / PageSize); |
|
|
|
Money<decimal>? allSecNum = GetAllNum(dt, "SecondNumber"); |
|
|
|
Money<decimal>? allMainNum = GetAllNum(dt, "Number"); |
|
|
|
var infoBand = GetInfoBand(dmo, allSecNum, allMainNum); |
|
|
|
|
|
|
|
for (int i = 0; i < pageCount; i++) |
|
|
|
{ |
|
|
|
var report = new BillReport(); |
|
|
|
report.Bands.Add(new TextBand("装车单№" + dmo.ID, new Font("黑体", 15), TextAlignMode.Center)); |
|
|
|
report.Bands.Add(infoBand); |
|
|
|
report.FindControl(""); |
|
|
|
html.Append(ToHtmlStr(report)); |
|
|
|
|
|
|
|
HtmlTable table = NewHtmlTable(); |
|
|
|
table.EAddRow("center", 1, 1, "单号", "客户", "仓库", "存货编号", "存货名称", "规格", "辅单位", "件数", "主单位", "数量", "备注", "发货标记"); |
|
|
|
table.EAddRow("center", 1, 1, "客户", "存货名称", "规格", "件数", "主单位", "计划数量", "数量", "发货标记", "复秤数量","备注"); |
|
|
|
int i1 = i; |
|
|
|
var groups = dt.Rows.Where(detail => detail.RowID >= i1 * PageSize && detail.RowID < (i1 + 1) * PageSize).GroupBy(detail => ((long?)detail["BillID"]).Value); |
|
|
|
AddDetails(table, groups, haveaddress); |
|
|
|
AddDetails(table, groups); |
|
|
|
html.Append(ToHtmlStr(table)); |
|
|
|
var reportBottom = new BillReport(); |
|
|
|
reportBottom.Bands.Add(GetBottomInfoBand(dmo, pageCount, i + 1)); |
|
|
|
@ -89,6 +84,38 @@ namespace BWP.Web.Pages.TypeIOCs |
|
|
|
return html; |
|
|
|
} |
|
|
|
|
|
|
|
private void AddDetails(HtmlTable table, IEnumerable<IGrouping<long, DFDataRow>> groups) |
|
|
|
{ |
|
|
|
HtmlTableExtentions.rowCount = 0; |
|
|
|
foreach (var group in groups) |
|
|
|
{ |
|
|
|
bool first = true; |
|
|
|
Money<decimal>? main = null; |
|
|
|
Money<decimal>? sec = null; |
|
|
|
|
|
|
|
HtmlTableRow row; |
|
|
|
foreach (DFDataRow dataRow in group) |
|
|
|
{ |
|
|
|
row = new HtmlTableRow(); |
|
|
|
table.Rows.Add(row); |
|
|
|
if (first) |
|
|
|
{ |
|
|
|
row.EAdd("center", group.Count() + 1, 1, (string)dataRow["Customer_Name"]); |
|
|
|
|
|
|
|
first = false; |
|
|
|
} |
|
|
|
var secNum = (Money<decimal>?)dataRow["SecondNumber"]; |
|
|
|
var mainNum = (Money<decimal>?)dataRow["Number"]; |
|
|
|
row.EAdd("center", 1, 1, (string)dataRow["Goods_PrintShortName"], (string)dataRow["Goods_Spec"], (secNum ?? 0).ToString(), (string)dataRow["Goods_MainUnit"], (mainNum ?? 0).ToString(), (mainNum ?? 0).ToString(), "","",(string)dataRow["Goods_Remark"]); |
|
|
|
|
|
|
|
main = (main ?? 0) + (mainNum ?? 0); |
|
|
|
sec = (sec ?? 0) + (secNum ?? 0); |
|
|
|
} |
|
|
|
table.EAddRow("center", 1, 1, "小计", "", sec.ToString(), "", main.ToString(),main.ToString(), "", "", ""); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static DFInfoBand<CarLoading> GetBottomInfoBand(CarLoading dmo, int pageCount, int currentPage) |
|
|
|
{ |
|
|
|
@ -100,18 +127,7 @@ namespace BWP.Web.Pages.TypeIOCs |
|
|
|
return dfInfoBand; |
|
|
|
} |
|
|
|
|
|
|
|
private static DFInfoBand<CarLoading> GetInfoBand(CarLoading dmo, Money<decimal>? allSecNum, Money<decimal>? allMainNum) |
|
|
|
{ |
|
|
|
var dfInfoBand = new DFInfoBand<CarLoading>(dmo, 3); |
|
|
|
dfInfoBand.AddField("Car_Name", 4); |
|
|
|
dfInfoBand.AddField("AccountingUnit_Name", 4); |
|
|
|
dfInfoBand.AddField("Date", 4); |
|
|
|
dfInfoBand.AddField("Deliveryman_Name", 4); |
|
|
|
dfInfoBand.AddText("总 件 数", allSecNum.HasValue ? allSecNum.ToString() : ""); |
|
|
|
dfInfoBand.AddText("总 数 量", allMainNum.HasValue ? allMainNum.ToString() : ""); |
|
|
|
dfInfoBand.AddField("Remark", 4, 3, Font.Empty, WrapMode.Wrap); |
|
|
|
return dfInfoBand; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static Money<decimal>? GetAllNum(DFDataTable dt, string fieldName) |
|
|
|
{ |
|
|
|
@ -144,63 +160,6 @@ namespace BWP.Web.Pages.TypeIOCs |
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
private void AddDetails(HtmlTable table, IEnumerable<IGrouping<long, DFDataRow>> groups, bool haveaddress) |
|
|
|
{ |
|
|
|
HtmlTableExtentions.rowCount = 0; |
|
|
|
foreach (var group in groups) |
|
|
|
{ |
|
|
|
bool first = true; |
|
|
|
Money<decimal>? main = null; |
|
|
|
Money<decimal>? sec = null; |
|
|
|
|
|
|
|
HtmlTableRow row; |
|
|
|
foreach (DFDataRow dataRow in group) |
|
|
|
{ |
|
|
|
row = new HtmlTableRow(); |
|
|
|
table.Rows.Add(row); |
|
|
|
if (first) |
|
|
|
{ |
|
|
|
row.EAdd("center", group.Count() + 1, 1, ((long?)dataRow["BillID"]).Value.ToString(), (string)dataRow["Customer_Name"], (string)dataRow["Store_Name"]); |
|
|
|
if (haveaddress) |
|
|
|
{ |
|
|
|
Address = (string)dataRow["DeliverAddress"]; |
|
|
|
Remark = (string)dataRow["Remark"]; |
|
|
|
} |
|
|
|
|
|
|
|
first = false; |
|
|
|
} |
|
|
|
var secNum = (Money<decimal>?)dataRow["SecondNumber"]; |
|
|
|
var mainNum = (Money<decimal>?)dataRow["Number"]; |
|
|
|
row.EAdd("center", 1, 1, (string)dataRow["Goods_Code"], (string)dataRow["Goods_Name"], (string)dataRow["Goods_Spec"], (string)dataRow["Goods_SecondUnit"], (secNum ?? 0).ToString(), (string)dataRow["Goods_MainUnit"], (mainNum ?? 0).ToString(), (string)dataRow["Goods_Remark"], ""); |
|
|
|
|
|
|
|
main = (main ?? 0) + (mainNum ?? 0); |
|
|
|
sec = (sec ?? 0) + (secNum ?? 0); |
|
|
|
} |
|
|
|
table.EAddRow("center", 1, 1, "小计", "", "", "", sec.ToString(), "", main.ToString(), "", ""); |
|
|
|
if (haveaddress) |
|
|
|
{ |
|
|
|
row = new HtmlTableRow(); |
|
|
|
table.Rows.Add(row); |
|
|
|
row.EAdd("center", 1, 1, "地址"); |
|
|
|
row.EAdd("left", 1, 11, Address); |
|
|
|
|
|
|
|
row = new HtmlTableRow(); |
|
|
|
table.Rows.Add(row); |
|
|
|
row.EAdd("center", 1, 1, "备注"); |
|
|
|
row.EAdd("left", 1, 11, Remark); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private string Address { get; set; } |
|
|
|
private string Remark { get; set; } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static string ToHtmlStr(Control ctrl) |
|
|
|
{ |
|
|
|
|