Browse Source

打印调整

master
luanhui 8 years ago
parent
commit
14a1238619
1 changed files with 40 additions and 81 deletions
  1. +40
    -81
      B3QingDaoWanFu.Web/Pages/TypeIOCs/CarLoadingTypeIOC.cs

+ 40
- 81
B3QingDaoWanFu.Web/Pages/TypeIOCs/CarLoadingTypeIOC.cs View File

@ -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)
{


Loading…
Cancel
Save