110,561
社区成员
发帖
与我相关
我的任务
分享
docToPrint = new PrintDocument();
docToPrint.PrintPage += new PrintPageEventHandler(printDoc_PrintPage);
//docToPrint.BeginPrint += new PrintEventHandler(BegPrint);
//docToPrint.EndPrint += new PrintEventHandler(EndsPrint);
this.pageSetupDialog1.Document = docToPrint;
DialogResult ds = this.pageSetupDialog1.ShowDialog();
if (checkBoxyl.Checked)//打印前预览
{
prd = new PrintPreviewDialog();
prd.Document = docToPrint;
ToolStrip tStrip = (ToolStrip)prd.Controls[1];
//tStrip.Items[0].MouseDown += new MouseEventHandler(moustdown);重新执行画方法进行打印
prd.PrintPreviewControl.Zoom = 1;//设置打印预览为100%
if (ds == DialogResult.OK)
{
prd.Document.PrinterSettings = pageSetupDialog1.PrinterSettings;//设置选择的打印机
//IsYl = true;是否预览
prd.ShowDialog();
}
}
else
{
if (ds == DialogResult.OK)
{
docToPrint.PrinterSettings = pageSetupDialog1.PrinterSettings;
docToPrint.DefaultPageSettings = pageSetupDialog1.PageSettings;
//docToPrint.DefaultPageSettings = pageSetupDialog1.PageSettings;
docToPrint.EndPrint += new PrintEventHandler(EndsPrint);
this.printDialog1.Document = docToPrint;
DialogResult result = this.printDialog1.ShowDialog();
if (result == DialogResult.OK)
{
docToPrint.Print();
}
}
}
void printDoc_PrintPage(object sender, PrintPageEventArgs e)
{
int[] number = new int[marterialName.Count];//打印张数
int[] residue = new int[marterialName.Count];//求余
topPagesLocationX = 0;
topPagesLocationY = 0;
HostControl hc = CurrentDocumentsHostControl;
IDesignerHost idh = (IDesignerHost)hc.DesignerHost.GetService(typeof(IDesignerHost));
Control rootControl = (Control)idh.RootComponent;
string strSql = string.Empty;
if (isBeLongBill)
{
DialogResult dr = MessageBox.Show("您的方案没有活动的数据,是否继续?", "Fesem 提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (DialogResult.Yes == dr)
{
DrawTabPageImageNotDate(e, idh, rootControl);
return;
}
else
{
return;
}
}
else if (orderNo.Count < 1)
{
DrawTabPageImageNotDate(e, idh, rootControl);
return;
}
if (Convert.ToInt32(labelCount1[z])> 0)
{
rootControl.BackColor = Color.White;
e.Graphics.FillRectangle(new SolidBrush(rootControl.BackColor), 0, 0, rootControl.Width, rootControl.Height);
}
Boolean selectBeLongBill = false;
if (Convert.ToInt32(labelCount1[z]) > 0)
{
foreach (IComponent subControl in idh.Container.Components)
{
if (subControl.GetType() == typeof(CustomLabel))
{
CustomLabel clst = subControl as CustomLabel;
if (clst.BeLongBill == "销售订单")
{
selectBeLongBill = true;
}
else
{
selectBeLongBill = false;
}
break;
}
}
#region 按标签中的数量及出货数量算出此张订单要打印的数量.
if ((int)openCount[z] > 0 && openCount[z].ToString() != "" && (int)labelCount1[z] > 0 && labelCount1[z].ToString() != "")
{
number[z] = (int)openCount[z] / (int)labelCount1[z];
residue[z] = (int)openCount[z] % (int)labelCount1[z];
}
if (residue[z] > 0)
number[z] = number[z] + 1;
#endregion
if (selectBeLongBill)
{
//--------------------------------------------------------wfy
string[] strsa = new string[] { "exec fs_PsaleoutPrintBarCode_1 '{0}','{1}'", "exec fs_PsaleoutPrintBarCode_HK '{0}','{1}'" };
strSql = string.Format(CommonLibrary.DatabaseAdd.GetSql(strsa), orderNo[z], marterialName[z]);
}
else
{
//--------------------------------------------------------wfy
string[] strsa = new string[] { "exec fs_POutInHousePrintBarCode_1 '{0}','{1}'", "exec fs_POutInHousePrintBarCode_HK '{0}','{1}'" };
strSql = string.Format(CommonLibrary.DatabaseAdd.GetSql(strsa), orderNo[z], marterialName[z]);
}
DataTable dt = DBHelper.ExecuteGetDataTable(CommandType.Text, strSql, null);
int rownum = -1;//当前行号
if (billno == "")//这里判断是否是同一订单,不是的话rowsnum清零
{
billno = orderNo[z].ToString();
}
else if (billno != orderNo[z].ToString())
{
billno = orderNo[z].ToString();
rowsnum = 0;
}
bool notsaleispch = false;
if (dt != null && dt.Rows.Count > 0)
{
if (!selectBeLongBill)
{
if (dt.Rows[0]["forderbillno"].ToString().IndexOf(seordstr) >= 0)
{
//原单号
string yuandanhao = dt.Rows[0]["forderbillno"].ToString();
//出入库单号
string churukudanhao = dt.Rows[0]["fbillno"].ToString();
//
string asql = "select sum(fqty) from icstockbill t1 inner join icstockbillentry t2 on t1.finterid = t2.finterid where fbillno < '" + churukudanhao + "' and forderbillno = '" + yuandanhao + "'";
object yqnum = DBHelper.ExecuteScalar(CommandType.Text, asql, null);
//object thisnum = dt.Rows[0]["fauxqty"];//fauxqty
//
int take;//要取值的条数
int skip;//要跳过的条数
try
{
take = number[z];
skip =yqnum.ToString()!=""? Convert.ToInt32(yqnum) / (int)labelCount1[z]:0;
}
catch (Exception)
{
throw;
}
string sqlad = "select top " + take + " * from fsxsck where ckid not in (select top " + skip + " ckid from fsxsck where ponumber='" + yuandanhao + "' ) and ponumber='" + yuandanhao + "' ";
DataTable dt1 = DBHelper.ExecuteGetDataTable(CommandType.Text, sqlad, null);
if (dt1.Rows.Count > 0)
{
notsaleispch = true;
DataTable dts = dt.Copy();
dt.Rows.Clear();
foreach (DataRow item in dt1.Rows)
{
DataRow newrow = dt.NewRow();
dts.Rows[0]["pch"] = item["Lotnum"];
//newrow["pch"] = item["Lotnum"];
newrow.ItemArray = dts.Rows[0].ItemArray;
dt.Rows.Add(newrow);
}
}
}
}
foreach (DataRow dr in dt.Rows)
{
//-----------------
if (selectBeLongBill||notsaleispch)
{
if (dt.Rows.Count > 1)
{
rownum++;
if (rowsnum != rownum)
{
continue;
}
}
}
//具体画操作
rowsnum++;
}
}
else
{
DrawTabPageImageNotDate(e, idh, rootControl);
}
}
if (z <orderNo.Count)
{
if(Convert.ToInt32(labelCount1[z])>0)
zForCount++;
if (w[z] >= number[z])
{
e.HasMorePages = false;
}
else
{
e.HasMorePages = true;
w[z]++;
return;
}
if (Convert.ToInt32(inBoxCount[z]) > 0 && zForCount == w[z])
{
labelCount1 = inBoxCount;
wz = w[z];
w[z] = 1;
e.HasMorePages = true;
return;
}
if (Convert.ToInt32(outBoxCount[z]) > 0 && zForCount == wz + w[z])
{
labelCount1 = outBoxCount;
outZ = w[z];
w[z] = 1;
e.HasMorePages = true;
return;
}
if (this.radioButton3.Checked && zForCount == outZ+wz + w[z])
{
labelCount1 = openCount;
w[z] = 1;
e.HasMorePages = true;
return;
}
z++;
wz = 0;
outZ = 0;
zForCount = 0;
if (z < orderNo.Count)
{
labelCount1 = labelCount;
w[z] = 1;
e.HasMorePages = true;
return;
}
else
{
e.HasMorePages = false;
z = 0;
}
}
}