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
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
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|