华恒Mes鼎捷代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

372 lines
13 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using ICSSoft.Base.Config.AppConfig;
using ICSSoft.Base.Config.DBHelper;
using System.IO;
namespace ICSSoft.Base.Lable.PrintTool
{
public partial class FormPrintDialog : DevExpress.XtraEditors.XtraForm
{
string _LableType = "";
List<PrintPara> _PrintParas = new List<PrintPara>();
bool _RptFlag = false;
DataSet _PrintDataSet = null;
string _PrintTableName = "";
public FormPrintDialog(string lableType, string printTableName, List<PrintPara> printParas, bool rptFlag, DataSet printDataSet)
{
InitializeComponent();
if (rptFlag)
{
chkFPrint.Enabled = false;
txtPointName.Enabled = false;
}
if (chkShowDialogFlag.Checked)
{
txtPrintNum.Enabled = false;
txtPrintNum.Text = "1";
}
_LableType = lableType;
_PrintParas = printParas;
_PrintTableName = printTableName;
_RptFlag = rptFlag;
_PrintDataSet = printDataSet;
BindPrinters();
BindLables();
BindPrintPoint();
GetDefaultLastPrinter();
}
private void BindPrinters()
{
try
{
List<string> list = GetPrinterInfo.GetPrinters();
foreach (string s in list)
{
txtPrint.Properties.Items.Add(s);
}
}
catch (Exception ex)
{
}
}
private void BindLables()
{
string sql = "SELECT ID as [编号],LableName as [名称] FROM dbo.Sys_Lables a WHERE (LableType='{0}' AND WorkPointCode='{1}') ";
sql = string.Format(sql, new object[] { _LableType, AppConfig.WorkPointCode });
DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, sql).Tables[0];
txtTempName.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("编号", "编号"));
txtTempName.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("名称", "名称"));
txtTempName.Properties.ValueMember = "编号";
txtTempName.Properties.DisplayMember = "名称";
txtTempName.Properties.Columns[0].Visible = false;
txtTempName.Properties.DataSource = data;
if (data.Rows.Count > 0)
{
txtTempName.EditValue = data.Rows[0]["编号"];
}
}
private void BindPrintPoint()
{
string sql = "SELECT ID AS [编号],PointName AS [名称] FROM dbo.Sys_PrintPoint";
DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, sql).Tables[0];
txtPointName.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("编号", "编号"));
txtPointName.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("名称", "名称"));
txtPointName.Properties.ValueMember = "编号";
txtPointName.Properties.DisplayMember = "名称";
txtPointName.Properties.Columns[0].Visible = false;
txtPointName.Properties.DataSource = data;
if (data.Rows.Count > 0)
{
txtPointName.ItemIndex = 0;
}
}
private void btnOk_Click(object sender, EventArgs e)
{
if (txtTempName.EditValue == null)
{
MessageBox.Show("请选择打印模板!");
return;
}
if (chkLPrint.Checked == false && chkFPrint.Checked == false)
{
MessageBox.Show("请选择本地打印或者远程打印当中的一种打印方式!");
return;
}
if (chkLPrint.Checked == true && chkFPrint.Checked == true)
{
MessageBox.Show("请选择本地打印或者远程打印当中的一种打印方式!");
return;
}
if (chkLPrint.Checked == true)
{
if (txtPrint.Text.Trim() == "")
{
MessageBox.Show("请选择本地打印机!");
return;
}
}
if (chkFPrint.Checked == true)
{
if (txtPointName.EditValue == null)
{
MessageBox.Show("请选择打印地点");
return;
}
}
if (txtPrintNum.Text.Trim() == "")
{
MessageBox.Show("请输入打印张数!");
return;
}
if (_RptFlag == true)
{
if (chkShowDialogFlag.Checked)
{
if (chkLPrint.Checked)
{
FormPrint pr = new FormPrint(txtTempName.EditValue.ToString(), txtPrint.Text, true, _PrintTableName, Convert.ToInt32(txtPrintNum.Text), "", "本地打印", _PrintDataSet);
pr.ShowDialog();
}
else
{
FormPrint pr = new FormPrint(txtTempName.EditValue.ToString(), txtPrint.Text, true, _PrintTableName, Convert.ToInt32(txtPrintNum.Text), txtPointName.EditValue.ToString(), txtPointName.Text, _PrintDataSet);
pr.ShowDialog();
}
}
else
{
if (chkLPrint.Checked)
{
PrintReport pr = new PrintReport(txtTempName.EditValue.ToString(), txtPrint.Text, false, _PrintTableName, Convert.ToInt32(txtPrintNum.Text), "", "本地打印", _PrintDataSet);
}
else
{
PrintReport pr = new PrintReport(txtTempName.EditValue.ToString(), txtPrint.Text, false, _PrintTableName, Convert.ToInt32(txtPrintNum.Text), txtPointName.EditValue.ToString(), txtPointName.Text, _PrintDataSet);
}
}
}
else
{
if (chkShowDialogFlag.Checked)
{
if (chkLPrint.Checked)
{
FormPrint pr = new FormPrint(txtTempName.EditValue.ToString(), txtPrint.Text, true, true, _PrintTableName, Convert.ToInt32(txtPrintNum.Text), "", "本地打印", _PrintParas);
pr.ShowDialog();
}
else
{
FormPrint pr = new FormPrint(txtTempName.EditValue.ToString(), txtPrint.Text, false, true, _PrintTableName, Convert.ToInt32(txtPrintNum.Text), txtPointName.EditValue.ToString(), txtPointName.Text, _PrintParas);
pr.ShowDialog();
}
}
else
{
if (chkLPrint.Checked)
{
PrintReport pr = new PrintReport(txtTempName.EditValue.ToString(), txtPrint.Text, true, false, _PrintTableName, Convert.ToInt32(txtPrintNum.Text), "", "本地打印", _PrintParas);
}
else
{
PrintReport pr = new PrintReport(txtTempName.EditValue.ToString(), txtPrint.Text, false, false, _PrintTableName, Convert.ToInt32(txtPrintNum.Text), txtPointName.EditValue.ToString(), txtPointName.Text, _PrintParas);
}
}
}
SetDefaultLastPrinter();
}
private void chkShowDialogFlag_CheckedChanged(object sender, EventArgs e)
{
if (chkShowDialogFlag.Checked)
{
txtPrintNum.Enabled = false;
txtPrintNum.Text = "1";
}
else
{
txtPrintNum.Enabled = true;
txtPrintNum.Text = "1";
}
}
private void SetDefaultLastPrinter()
{
try
{
string PrinterPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\temp\\";
string PrinterFileName = PrinterPath + _LableType + _PrintTableName +"printerName.ini";
if (!Directory.Exists(PrinterPath))
{
Directory.CreateDirectory(PrinterPath);
}
if (!File.Exists(PrinterFileName))
{
using (File.Create(PrinterFileName))
{
}
}
using (StreamWriter sw = new StreamWriter(PrinterFileName))
{
sw.WriteLine(txtTempName.EditValue == null ? "" : txtTempName.EditValue.ToString());
sw.WriteLine(chkLPrint.Checked.ToString());
sw.WriteLine(txtPrint.Text);
sw.WriteLine(chkFPrint.Checked.ToString());
sw.WriteLine(txtPointName.EditValue == null ? "" : txtPointName.EditValue.ToString());
sw.WriteLine(chkShowDialogFlag.Checked.ToString());
}
}
catch
{
}
}
private void GetDefaultLastPrinter()
{
try
{
string PrinterPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\temp\\";
string PrinterFileName = PrinterPath + _LableType + _PrintTableName + "printerName.ini";
if (!Directory.Exists(PrinterPath))
{
Directory.CreateDirectory(PrinterPath);
}
if (!File.Exists(PrinterFileName))
{
using (File.Create(PrinterFileName))
{
}
}
Dictionary<int, string> infoDic = new Dictionary<int, string>();
using (StreamReader fReader = new StreamReader(PrinterFileName))
{
int key = 0;
while (fReader.Peek() > -1)
{
string value = fReader.ReadLine();
if (value != null)
{
infoDic.Add(key, value);
key++;
}
}
}
if (infoDic.Count == 6)
{ //
if (infoDic[0] != "")
{
if (txtTempName.Properties.DataSource != null)
{
DataTable dt = txtTempName.Properties.DataSource as DataTable;
if (dt.Select("编号 = '" + infoDic[0] + "'").Length > 0)
{
txtTempName.EditValue = infoDic[0];
}
}
}
if (infoDic[1] != "")
{
bool boolvalue = false;
if (bool.TryParse(infoDic[1], out boolvalue))
{
chkLPrint.Checked = boolvalue;
}
}
if (infoDic[2] != "")
{
if (txtPrint.Properties.Items.Contains(infoDic[2]))
{
txtPrint.Text = infoDic[2];
}
}
if (infoDic[3] != "")
{
bool boolvalue = false;
if (bool.TryParse(infoDic[3], out boolvalue))
{
chkFPrint.Checked = boolvalue;
}
}
if (infoDic[4] != "")
{
if (txtPointName.Properties.DataSource != null)
{
DataTable dt = txtPointName.Properties.DataSource as DataTable;
if (dt.Select("编号 = '" + infoDic[4] + "'").Length > 0)
{
txtPointName.EditValue = infoDic[4];
}
}
}
if (infoDic[5] != "")
{
bool boolvalue = false;
if (bool.TryParse(infoDic[5], out boolvalue))
{
chkShowDialogFlag.Checked = boolvalue;
}
}
}
}
catch
{
}
}
}
}