/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:F_MST_012002.cs
* 2.功能描述:新票据信息操作
* 编辑履历:
* 作者 日期 版本 修改内容
* 王鑫 2016/02/18 1.00 新建
* 周兴 2016/03/11 1.00 编辑
*******************************************************************************/
using System;
using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;
using Dongke.IBOSS.PRD.Basics.BaseControls;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Client.CommonModule;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Dongke.IBOSS.PRD.WCF.Proxys;
using Dongke.WinForm.Controls;
using Dongke.WinForm.Controls.InvoiceLayout;
namespace Dongke.IBOSS.PRD.Client.Controls
{
public partial class F_MST_012003 : DKFormBase
{
#region 成员变量
private float _paperHeight; // Layout的纸张的高
private float _paperWidth; // Layout的纸张的宽
private int _goodstypeid; // 产品类别ID
private string _goodstypeCode; // 产品类别编码
private string _goodstypeName; // 产品类别名称
private int? _logoid; // 产品商标ID
private bool _zooming = false; // 缩放标识
private int _invoiceLayoutID; // 票据ID
private DataTable _invoiceLayoutDataTable; // 票据主信息数据
private DataSet _saveData; // 保存票据数据时的数据集
private bool _layoutSelectionChanging; // 选择标识
private bool _isFormDataChanged = false; // 画面的数据是否有改变
private ClientRequestEntity _clientRequestEntity; // 查询条件实体
//private string _remarks; // 总单备注
//xuwei add 2019-11-20
private int? _printType; //打印类别
#endregion
#region 属性
#endregion
#region 构造函数
///
/// 构造函数
///
public F_MST_012003(int goodstypeID, string goodstypeCode, string goodstypeName, int? logoid, string logoname,
float paperWidth, float paperHeight, string layoutName,int printType, string remarks)
{
InitializeComponent();
this.Text = string.Format(F_MST_012001.TITLE_F_MST_012001_NEW, layoutName);
this.cbxMagnification.SelectedIndex = 3;
this.txtGoodsType.Text = goodstypeName + "【" + goodstypeCode + "】";
this.txtLogo.Text = logoname;
this.txtInvoiceName.Text = layoutName;
this._paperHeight = paperHeight;
this._paperWidth = paperWidth;
this._invoiceLayoutID = 0;
this._goodstypeid = goodstypeID;
this._goodstypeCode = goodstypeCode;
this._goodstypeName = goodstypeName;
this._logoid = logoid;
this.txtRemarks.Text = remarks;
this.lbxInvoice.LayoutMode = LayoutMode.Edit;
this._printType = printType;
}
///
/// 构造函数
///
public F_MST_012003(int layoutID)
{
InitializeComponent();
this.cbxMagnification.SelectedIndex = 3;
this._invoiceLayoutID = layoutID;
this.lbxInvoice.LayoutMode = LayoutMode.Edit;
}
#endregion
#region 控件事件
#region 窗体控件事件
///
/// 显示比率选项发生改变事件
///
///
///
private void cbxMagnification_SelectedIndexChanged(object sender, System.EventArgs e)
{
try
{
_zooming = true;
// 选择了全体显示
if (cbxMagnification.SelectedItem.ToString().Equals("全体"))
{
lbxInvoice.ZoomType = ZoomType.Whole;
}
else
{
// 选择了其他选择
lbxInvoice.Zoom = Convert.ToInt32(cbxMagnification.SelectedItem.ToString().Replace("%", ""));
}
_zooming = false;
}
catch (Exception ex)
{
_zooming = false;
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 保存按钮按下,保存票据数据
///
///
///
private void tsbtnSave_Click(object sender, System.EventArgs e)
{
try
{
_saveData = new DataSet();
// 更新票据主信息的DataTable
this.SetSaveLayoutData(ref _saveData, this._invoiceLayoutID);
// 组成票据项目信息的DataTable
this.SetSaveLayoutItemData(ref _saveData);
// 新建票据的情况
if (this._invoiceLayoutID == 0)
{
ServiceResultEntity result = this.DoAsync(() =>
{
return this.SaveAddLayoutData();
});
int invoiceLayoutID = Convert.ToInt32(result.Result);
if (invoiceLayoutID > 0)
{
MessageBox.Show(string.Format("{0}的{1}操作成功完成了。", "新建条码打印格式", "保存"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
// 新建成功后,将画面修改成编辑状态
this._invoiceLayoutID = invoiceLayoutID;
this.Text = string.Format(F_MST_012001.TITLE_F_MST_012002_EDIT, this.txtInvoiceName.Text.Trim());
this._invoiceLayoutDataTable = _saveData.Tables[0];
this.tsbtnSaveAs.Enabled = true;
this.tsmiSaveAs.Enabled = true;
}
else
{
MessageBox.Show(string.Format("{0}的{1}操作没有更新任何数据,请确认该数据是否存在。", "新建条码打印", "保存"),
this.Text,
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
}
else
{
ServiceResultEntity result = this.DoAsync(() =>
{
return this.SaveEditLayoutData();
});
int returnAffectRows = Convert.ToInt32(result.Result);
if (returnAffectRows > 0)
{
MessageBox.Show(string.Format("{0}的{1}操作成功完成了。", "编辑条码打印格式", "保存"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show(string.Format("{0}的{1}操作没有更新任何数据,请确认该数据是否存在。", "编辑条码打印", "保存"),
this.Text,
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
}
this.lbxInvoice.AcceptChange();
_isFormDataChanged = true;
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 保存菜单按钮,保存票据
///
///
///
private void tsmiSave_Click(object sender, System.EventArgs e)
{
this.tsbtnSave_Click(sender, e);
}
///
/// 另存为按钮按下,另存票据数据
///
///
///
private void tsbtnSaveAs_Click(object sender, System.EventArgs e)
{
try
{
F_MST_012004 frmINV0302 = new F_MST_012004();
frmINV0302.LayoutName = this.txtInvoiceName.Text.Trim();
frmINV0302.Remarks = this.txtRemarks.Text.Trim();
frmINV0302.GoodsTypeID = this._goodstypeid;
frmINV0302.GoodsTypeCode = this._goodstypeCode;
frmINV0302.GoodsTypeName = this._goodstypeName;
frmINV0302.LogoID = this._logoid;
frmINV0302.LogoName = this.txtLogo.Text;
//xuwei add 2019-11-20
frmINV0302.PrintType = this._printType;
frmINV0302.FromForm = 1;
DialogResult dialogResult = frmINV0302.ShowDialog();
if (DialogResult.OK == dialogResult)
{
// 将另存为页面信息传递到本页面
this.txtInvoiceName.Text = frmINV0302.LayoutName;
this.txtRemarks.Text = frmINV0302.Remarks;
this._goodstypeid = frmINV0302.GoodsTypeID;
this._goodstypeCode = frmINV0302.GoodsTypeCode;
this._goodstypeName = frmINV0302.GoodsTypeName;
this.txtGoodsType.Text = _goodstypeName + "【" + _goodstypeCode + "】";
this._logoid = frmINV0302.LogoID;
this.txtLogo.Text = frmINV0302.LogoName;
//xuwei add 2019-11-20
this._printType = frmINV0302.PrintType;
_saveData = new DataSet();
// 更新票据主信息的DataTable
this.SetSaveLayoutData(ref _saveData, 0);
// 组成票据项目信息的DataTable
this.SetSaveLayoutItemData(ref _saveData);
// 另存票据的情况
ServiceResultEntity result = this.DoAsync(() =>
{
return this.SaveAddLayoutData();
});
int invoiceLayoutID = Convert.ToInt32(result.Result);
if (invoiceLayoutID > 0)
{
// 将窗体标题修改成另存为的标题
MessageBox.Show(string.Format("{0}的{1}操作成功完成了。", "另存条码打印格式", "保存"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
// 新建成功后,将画面修改成编辑状态
this._invoiceLayoutID = invoiceLayoutID;
this.Text = string.Format(F_MST_012001.TITLE_F_MST_012002_EDIT, this.txtInvoiceName.Text.Trim());
this._invoiceLayoutDataTable = _saveData.Tables[0];
}
else
{
MessageBox.Show(string.Format("{0}的{1}操作没有更新任何数据,请确认该数据是否存在。", "另存条码打印格式", "保存"),
this.Text,
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
this.lbxInvoice.AcceptChange();
_isFormDataChanged = true;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 另存为菜单按下,另存票据数据
///
///
///
private void tsmiSaveAs_Click(object sender, System.EventArgs e)
{
this.tsbtnSaveAs_Click(sender, e);
}
///
/// 关闭菜单按钮按下,关闭页面
///
///
///
private void tsmiClose_Click(object sender, System.EventArgs e)
{
this.Close();
}
///
/// 窗体关闭时检测页面是否有变动,提示保存
///
///
///
private void F_INV_0301_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
try
{
// 新建票据时,关闭窗体设置窗体的DialogResult属性
if (this._invoiceLayoutID == 0)
{
// 提示是否保存数据
DialogResult dialogResult = MessageBox.Show("当前页面的数据有过更改,请确认需要保存吗?", this.Text,
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (DialogResult.Yes == dialogResult)
{
// 保存数据
tsbtnSave_Click(sender, e);
this.DialogResult = DialogResult.OK;
}
else if (DialogResult.Cancel == dialogResult)
{
e.Cancel = true;
}
else
{
if (_isFormDataChanged)
{
this.DialogResult = DialogResult.OK;
}
else
{
this.DialogResult = DialogResult.Cancel;
}
}
}
// 编辑票据
else
{
_saveData = new DataSet();
if (this.lbxInvoice.Dirty)
{
// 提示是否保存数据
DialogResult dialogResult = MessageBox.Show("当前页面的数据有过更改,请确认需要保存吗?", this.Text,
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (DialogResult.Yes == dialogResult)
{
// 保存数据
tsbtnSave_Click(sender, e);
this.DialogResult = DialogResult.OK;
}
else if (DialogResult.Cancel == dialogResult)
{
e.Cancel = true;
}
else
{
if (_isFormDataChanged)
{
this.DialogResult = DialogResult.OK;
}
else
{
this.DialogResult = DialogResult.Cancel;
}
}
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
#endregion
#region 票据功能按钮事件
///
/// 剪切按钮按下,剪切项目
///
///
///
private void tsbtnCut_Click(object sender, EventArgs e)
{
this.lbxInvoice.CutItem();
}
///
/// 剪切菜单按下,剪切项目
///
///
///
private void tsmiCut_Click(object sender, EventArgs e)
{
this.lbxInvoice.CutItem();
}
///
/// 复制按钮按下,复制项目
///
///
///
private void tsbtnCopy_Click(object sender, EventArgs e)
{
this.lbxInvoice.CopyItem();
}
///
/// 复制菜单按下,复制项目
///
///
///
private void tsmiCopy_Click(object sender, EventArgs e)
{
this.lbxInvoice.CopyItem();
}
///
/// 粘贴按钮按下,粘贴项目
///
///
///
private void tsbtnPaste_Click(object sender, EventArgs e)
{
this.lbxInvoice.PasteItem();
}
///
/// 粘贴菜单按下,粘贴项目
///
///
///
private void tsmiPaste_Click(object sender, EventArgs e)
{
this.lbxInvoice.PasteItem();
}
///
/// 删除按钮按下,删除项目
///
///
///
private void tsbtnDelete_Click(object sender, EventArgs e)
{
this.lbxInvoice.DeleteItem();
}
///
/// 删除菜单按钮,删除项目
///
///
///
private void tsmiDelete_Click(object sender, EventArgs e)
{
this.lbxInvoice.DeleteItem();
}
///
/// 固定文字按钮按下,新建固定文字
///
///
///
private void tsbtnNewTextItem_Click(object sender, EventArgs e)
{
try
{
TextItem newTextItem = this.lbxInvoice.NewItem(ItemType.Text, true) as TextItem;
if (newTextItem != null)
{
newTextItem.DataMember = string.Empty;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 固定文字菜单按下,新建固定文字
///
///
///
private void tsmiCharacter_Click(object sender, EventArgs e)
{
this.tsbtnNewTextItem_Click(sender, e);
}
///
/// 表格按钮按下,新建表格
///
///
///
private void tsbtnDataGrid_Click(object sender, EventArgs e)
{
try
{
if (this.lbxInvoice.OneGridItem != null)
{
MessageBox.Show("票据中已经存在一个表格了\r\n\r\n*一个票据中只能有一个格", this.Text,
MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.lbxInvoice.SelectItemSingle(this.lbxInvoice.OneGridItem, true);
return;
}
this.lbxInvoice.NewItem(ItemType.Grid, true);
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 表格菜单按钮,新建表格
///
///
///
private void tsmiTable_Click(object sender, EventArgs e)
{
this.tsbtnDataGrid_Click(sender, e);
}
///
/// 固定列按钮按下,新建列
///
///
///
private void tsbtnAddGridColumn_Click(object sender, EventArgs e)
{
try
{
if (this.lbxInvoice.OneGridItem == null)
{
this.lbxInvoice.NewItem(ItemType.Grid, false);
}
string name = this.lbxInvoice.OneGridItem.Columns.GeNewColumnName();
this.lbxInvoice.OneGridItem.Columns.Add(name, name);
this.lbxInvoice.Refresh();
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 固定列菜单按下,新建列
///
///
///
private void tsmiColumn_Click(object sender, EventArgs e)
{
this.tsbtnAddGridColumn_Click(sender, e);
}
///
/// 添加图片按钮按下,添加图片项目
///
///
///
private void tsbtnAddImage_Click(object sender, EventArgs e)
{
try
{
this.lbxInvoice.NewItem(ItemType.Image, true);
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 添加图片菜单按下,添加图片项目
///
///
///
private void tsmiImage_Click(object sender, EventArgs e)
{
this.tsbtnAddImage_Click(sender, e);
}
///
/// 页码按钮按下,添加页码项目
///
///
///
private void tsbtnPageNumber_Click(object sender, EventArgs e)
{
try
{
this.lbxInvoice.NewItem(ItemType.PageNum, true);
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 页码菜单按下,,添加页码项目
///
///
///
private void tsmiPageNumber_Click(object sender, EventArgs e)
{
this.tsbtnPageNumber_Click(sender, e);
}
///
/// 金额按钮按下,添加金额项目
///
///
///
private void tsbtnAddAmount_Click(object sender, EventArgs e)
{
try
{
TotalTextItem textItem
= this.lbxInvoice.NewItem(ItemType.TotalText, false) as TotalTextItem;
textItem.ShowItemPropertyDialog();
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 金额菜单按下,添加金额项目
///
///
///
private void tsmiMoney_Click(object sender, EventArgs e)
{
this.tsbtnAddAmount_Click(sender, e);
}
///
/// 纸张尺寸按钮按下,调整纸张尺寸
///
///
///
private void tsbtnPaperSize_Click(object sender, EventArgs e)
{
try
{
this.lbxInvoice.ShowPaperPropertyDialog();
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 纸张尺寸菜单按下,调整纸张尺寸
///
///
///
private void tsmiPaperSize_Click(object sender, EventArgs e)
{
this.tsbtnPaperSize_Click(sender, e);
}
///
/// 背景图片按钮按下,添加背景图片
///
///
///
private void tsbtnBackgroundImage_Click(object sender, EventArgs e)
{
try
{
this.lbxInvoice.ShowBackgroundSettingDialog();
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 背景图片菜单按下,添加背景图片
///
///
///
private void tsmiBackgroundImage_Click(object sender, EventArgs e)
{
this.tsbtnBackgroundImage_Click(sender, e);
}
///
/// 矩形按钮按下,新建矩形项目
///
///
///
private void tsbtnRectangle_Click(object sender, EventArgs e)
{
try
{
this.lbxInvoice.NewItem(ItemType.Rectangle, true);
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 矩形菜单按下,新建矩形项目
///
///
///
private void tsmiRectangle_Click(object sender, EventArgs e)
{
this.tsbtnRectangle_Click(sender, e);
}
///
/// 椭圆按钮按下,新建椭圆项目
///
///
///
private void tsbtnCircle_Click(object sender, EventArgs e)
{
try
{
this.lbxInvoice.NewItem(ItemType.Ellipse, true);
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 椭圆菜单按下,新建椭圆项目
///
///
///
private void tsmiCircular_Click(object sender, EventArgs e)
{
this.tsbtnCircle_Click(sender, e);
}
///
/// 项目水平左对齐
///
///
///
private void tsbtnAlignmentLeft_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsLeft();
}
///
/// 项目水平左对齐
///
///
///
private void tsmiAlignmentLeft_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsLeft();
}
///
/// 水平居中对齐
///
///
///
private void tsbtnAlignmentCenter_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsHorizontalCenter();
}
///
/// 水平居中对齐
///
///
///
private void tsmiAlignmentCenter_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsHorizontalCenter();
}
///
/// 水平右对齐
///
///
///
private void tsbtnAlignmentRight_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsRight();
}
///
/// 水平右对齐
///
///
///
private void tsmiAlignmentRight_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsRight();
}
///
/// 垂直顶端对齐
///
///
///
private void tsbtnAlignmentTop_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsTop();
}
///
/// 垂直顶端对齐
///
///
///
private void tsmiAlignmentTop_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsTop();
}
///
/// 垂直居中对齐
///
///
///
private void tsbtnAlignmentMiddle_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsVerticalCenter();
}
///
/// 垂直居中对齐
///
///
///
private void tsmiAlignmentMiddle_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsVerticalCenter();
}
///
/// 垂直底端对齐
///
///
///
private void tsbtnAlignmentBottom_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsBottom();
}
///
/// 垂直底端对齐
///
///
///
private void tsmiAlignmentBottom_Click(object sender, EventArgs e)
{
this.lbxInvoice.ArrangeItemsBottom();
}
///
/// 置于顶层
///
///
///
private void tsbtnMoveTop_Click(object sender, EventArgs e)
{
this.lbxInvoice.ChangeItemsOrderForemost();
}
///
/// 置于顶层
///
///
///
private void tsmiFrontMost_Click(object sender, EventArgs e)
{
this.lbxInvoice.ChangeItemsOrderForemost();
}
///
/// 上移一层
///
///
///
private void tsbtnMoveFront_Click(object sender, EventArgs e)
{
this.lbxInvoice.ChangeItemsOrderFront();
}
///
/// 上移一层
///
///
///
private void tsmiFront_Click(object sender, EventArgs e)
{
this.lbxInvoice.ChangeItemsOrderFront();
}
///
/// 下移一层
///
///
///
private void tsbtnMoveUnder_Click(object sender, EventArgs e)
{
this.lbxInvoice.ChangeItemsOrderBack();
}
///
/// 下移一层
///
///
///
private void tsmiBack_Click(object sender, EventArgs e)
{
this.lbxInvoice.ChangeItemsOrderBack();
}
///
/// 置于底层
///
///
///
private void tsbtnMoveBottom_Click(object sender, EventArgs e)
{
this.lbxInvoice.ChangeItemsOrderAftermost();
}
///
/// 置于底层
///
///
///
private void tsmiBackMost_Click(object sender, EventArgs e)
{
this.lbxInvoice.ChangeItemsOrderAftermost();
}
///
/// 详细按钮按下,查看项目详细信息
///
///
///
private void tsbtnDetail_Click(object sender, EventArgs e)
{
try
{
this.lbxInvoice.ShowItemPropertyDialog();
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 详细菜单按下,查看项目详细信息
///
///
///
private void tsmiDetail_Click(object sender, EventArgs e)
{
this.tsbtnDetail_Click(sender, e);
}
#endregion
#region 票据控件事件
///
/// 票据显示比率改变
///
///
///
private void lbxInvoice_ZoomChanged(object sender, EventArgs e)
{
if (!_zooming)
{
if (lbxInvoice.ZoomType == ZoomType.Whole)
{
cbxMagnification.SelectedIndex = 0;
}
else if (lbxInvoice.Zoom == 500)
{
cbxMagnification.SelectedIndex = 1;
}
else if (lbxInvoice.Zoom == 200)
{
cbxMagnification.SelectedIndex = 2;
}
else if (lbxInvoice.Zoom == 100)
{
cbxMagnification.SelectedIndex = 3;
}
else if (lbxInvoice.Zoom == 75)
{
cbxMagnification.SelectedIndex = 4;
}
else if (lbxInvoice.Zoom == 50)
{
cbxMagnification.SelectedIndex = 5;
}
else if (lbxInvoice.Zoom == 33)
{
cbxMagnification.SelectedIndex = 6;
}
else if (lbxInvoice.Zoom == 25)
{
cbxMagnification.SelectedIndex = 7;
}
else if (lbxInvoice.Zoom == 10)
{
cbxMagnification.SelectedIndex = 8;
}
}
}
///
/// 票据纸张尺寸改变
///
///
///
private void lbxInvoice_PaperSizeChanged(object sender, EventArgs e)
{
this.txtInvoiceSize.Text = string.Format("{0:0.0}mm×{1:0.0}mm",
lbxInvoice.PaperWidth,
lbxInvoice.PaperHeight);
}
///
/// layoutbox控件中项目的选择状态改变
///
///
///
private void lbxInvoice_UserSelectionChanged(object sender, EventArgs e)
{
try
{
if (this._layoutSelectionChanging)
{
return;
}
this._layoutSelectionChanging = true;
if (this.lbxInvoice.SelectedItems.Count == 0)
{
dgvText.ClearSelection();
dgvDetail.ClearSelection();
this._layoutSelectionChanging = false;
return;
}
int textItemID = -1;
foreach (LayoutItem item in this.lbxInvoice.SelectedItems)
{
if (item.ItemType == ItemType.Text ||
item.ItemType == ItemType.QRcode ||
item.ItemType == ItemType.Barcode)
{
TextItem textItem = item as TextItem;
if (textItem != null
)
{
textItemID = textItem.ID;
break;
}
}
else if (item.ItemType == ItemType.TotalText)
{
TotalTextItem totalTextItem = item as TotalTextItem;
if (totalTextItem != null
)
{
textItemID = totalTextItem.ID;
break;
}
}
}
if (0 < textItemID)
{
int itemID = 0;
foreach (DataGridViewRow row in this.dgvText.Rows)
{
if (!row.IsNewRow)
{
itemID = System.Convert.ToInt32(row.Cells["LayoutItemID"].Value);
if (0 < itemID && textItemID == itemID)
{
dgvText.CurrentCell = row.Cells[0];
break;
}
else
{
//row.Selected = false;
}
}
else
{
//row.Selected = false;
}
}
}
else
{
dgvText.ClearSelection();
}
this._layoutSelectionChanging = false;
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 改变layoutbox控件中项目的选择状态
///
///
///
private void lbxInvoice_ItemSelectionChanged(object sender, ItemSelectionChangedEventArgs e)
{
this.SetLayoutBoxFunctionButtonStatus();
}
///
/// 改变layoutbox控件中项目的属性
///
///
///
private void lbxInvoice_ItemChanged(object sender, Dongke.WinForm.Controls.InvoiceLayout.ItemChangedEventArgs e)
{
try
{
if (e.ChangedType == ItemChangeType.Modified
&& e.Item.ItemType == ItemType.Grid
&& "Columns".Equals(e.Property))
{
DataTable layoutItem = this.dgvDetail.DataSource as DataTable;
DataRow[] drLayoutItems = layoutItem.Select();
Dongke.WinForm.Controls.InvoiceLayout.GridItem gridItem = e.Item as Dongke.WinForm.Controls.InvoiceLayout.GridItem;
foreach (DataRow dr in drLayoutItems)
{
int colID = Convert.ToInt32(dr["LayoutItemID"]);
if (!gridItem.Columns.Contains(colID))
{
dr.Delete();
}
}
}
else if (e.ChangedType == ItemChangeType.Deleted
&& e.Item.ItemType == ItemType.Grid)
{
DataTable layoutItem = this.dgvDetail.DataSource as DataTable;
DataRow[] drLayoutItems = layoutItem.Select();
foreach (DataRow dr in drLayoutItems)
{
dr.Delete();
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 向layoutbox控件中添加项目
///
///
///
private void lbxInvoice_UserAddedItem(object sender, Dongke.WinForm.Controls.InvoiceLayout.ItemChangedEventArgs e)
{
try
{
if (e.Item.ItemType == ItemType.Text)
{
TextItem textItem = e.Item as TextItem;
if (textItem != null && !string.IsNullOrEmpty(textItem.ItemCode))
{
DataTable layoutItem = this.dgvText.DataSource as DataTable;
DataRow drLayoutItem = layoutItem.NewRow();
drLayoutItem["LayoutItemID"] = e.Item.ID;
drLayoutItem["ItemCode"] = textItem.ItemCode;
layoutItem.Rows.Add(drLayoutItem);
}
}
else if (e.Item.ItemType == ItemType.TotalText)
{
TotalTextItem totalTextItem = e.Item as TotalTextItem;
if (totalTextItem != null && !string.IsNullOrWhiteSpace(totalTextItem.ItemCode))
{
DataTable layoutItem = this.dgvText.DataSource as DataTable;
DataRow drLayoutItem = layoutItem.NewRow();
drLayoutItem["LayoutItemID"] = e.Item.ID;
drLayoutItem["ItemCode"] = totalTextItem.ItemCode;
layoutItem.Rows.Add(drLayoutItem);
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
#endregion
#region 票据项目事件
///
/// 文本项目DataGridView项目获得焦点事件
///
///
///
private void dgvText_CellEnter(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
{
try
{
C_DataGridView dataGridView = sender as C_DataGridView;
if (dataGridView != null && !dataGridView.Rows[dataGridView.CurrentCell.RowIndex].IsNewRow)
{
dataGridView.CurrentRow.ReadOnly = true;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 文本项目DataGridView项目选择内容之后事件
///
///
///
private void dgvText_CellValueChanged(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
{
try
{
C_DataGridView dataGridView = sender as C_DataGridView;
if (dataGridView == null || dataGridView.CurrentCell == null
|| !string.IsNullOrEmpty(dataGridView.Rows[dataGridView
.CurrentCell.RowIndex].Cells["LayoutItemID"].Value + ""))
{
return;
}
if (!dataGridView.CurrentCell.ReadOnly)
{
ComboBox comboBox = dataGridView.EditingControl as ComboBox;
if (comboBox == null || comboBox.SelectedIndex < 0)
{
return;
}
DataRowView dataRowView = (dataGridView.EditingControl as ComboBox).SelectedItem as DataRowView;
// 当Item是金额时,使用金额TotalTextItem
if (Convert.ToInt32(ItemStyle.TotalText) == System.Convert.ToInt32(dataRowView["ItemStyle"]))
{
TotalTextItem totalTextItem = this.lbxInvoice.NewItem(ItemType.TotalText, false) as TotalTextItem;
if (totalTextItem != null)
{
totalTextItem.DataMember = dataRowView["ControlCode"].ToString();
totalTextItem.DisplayValue = dataRowView["ItemSample"].ToString();
totalTextItem.ItemCode = dataRowView["ItemCode"].ToString();
totalTextItem.TextItemName = dataRowView["ItemName"].ToString();
totalTextItem.ItemSample = dataRowView["ItemSample"].ToString();
totalTextItem.ItemStyle = (ItemStyle)System.Convert.ToInt32(dataRowView["ItemStyle"]);
dataGridView.Rows[dataGridView.CurrentCell.RowIndex].Cells["LayoutItemID"].Value = totalTextItem.ID;
// 增加票据项目编码
dataGridView.Rows[dataGridView.CurrentCell.RowIndex].Cells["ItemCode"].Value = dataRowView["ItemCode"].ToString();
totalTextItem.ShowItemPropertyDialog();
}
else
{
dgvText.Rows.RemoveAt(e.RowIndex);
}
}
// 当Item是条形码时
else if (Convert.ToInt32(ItemStyle.Barcode) == System.Convert.ToInt32(dataRowView["ItemStyle"]))
{
TextItem textItem = lbxInvoice.NewItem(ItemType.Barcode, false) as TextItem;
if (textItem != null)
{
textItem.DataMember = dataRowView["ControlCode"].ToString();
textItem.DisplayValue = dataRowView["ItemSample"].ToString();
textItem.ItemCode = dataRowView["ItemCode"].ToString();
textItem.TextItemName = dataRowView["ItemName"].ToString();
textItem.ItemSample = dataRowView["ItemSample"].ToString();
textItem.ItemStyle = (ItemStyle)System.Convert.ToInt32(dataRowView["ItemStyle"]);
dataGridView.Rows[dataGridView.CurrentCell.RowIndex].Cells["LayoutItemID"].Value = textItem.ID;
// 增加票据项目编码
dataGridView.Rows[dataGridView.CurrentCell.RowIndex].Cells["ItemCode"].Value = dataRowView["ItemCode"].ToString();
textItem.ShowItemPropertyDialog();
}
else
{
dgvText.Rows.RemoveAt(e.RowIndex);
}
}
// 当Item是二维码时
else if (Convert.ToInt32(ItemStyle.QRCode) == System.Convert.ToInt32(dataRowView["ItemStyle"]))
{
TextItem textItem = lbxInvoice.NewItem(ItemType.QRcode, false) as TextItem;
if (textItem != null)
{
textItem.DataMember = dataRowView["ControlCode"].ToString();
textItem.DisplayValue = dataRowView["ItemSample"].ToString();
textItem.ItemCode = dataRowView["ItemCode"].ToString();
textItem.TextItemName = dataRowView["ItemName"].ToString();
textItem.ItemSample = dataRowView["ItemSample"].ToString();
textItem.ItemStyle = (ItemStyle)System.Convert.ToInt32(dataRowView["ItemStyle"]);
dataGridView.Rows[dataGridView.CurrentCell.RowIndex].Cells["LayoutItemID"].Value = textItem.ID;
// 增加票据项目编码
dataGridView.Rows[dataGridView.CurrentCell.RowIndex].Cells["ItemCode"].Value = dataRowView["ItemCode"].ToString();
textItem.ShowItemPropertyDialog();
}
else
{
dgvText.Rows.RemoveAt(e.RowIndex);
}
}
else
{
TextItem textItem = lbxInvoice.NewItem(ItemType.Text, false) as TextItem;
if (textItem != null)
{
textItem.DataMember = dataRowView["ControlCode"].ToString();
textItem.DisplayValue = dataRowView["ItemSample"].ToString();
textItem.ItemCode = dataRowView["ItemCode"].ToString();
textItem.TextItemName = dataRowView["ItemName"].ToString();
textItem.ItemSample = dataRowView["ItemSample"].ToString();
textItem.ItemStyle = (ItemStyle)System.Convert.ToInt32(dataRowView["ItemStyle"]);
if (textItem.ItemStyle == ItemStyle.Date)
{
textItem.Format = "yyyy-MM-dd";
textItem.Culture = "en-US";
}
else if (textItem.ItemStyle == ItemStyle.Sign)
{
textItem.Format = "√";
}
dataGridView.Rows[dataGridView.CurrentCell.RowIndex].Cells["LayoutItemID"].Value = textItem.ID;
// 增加票据项目编码
dataGridView.Rows[dataGridView.CurrentCell.RowIndex].Cells["ItemCode"].Value = dataRowView["ItemCode"].ToString();
textItem.ShowItemPropertyDialog();
}
else
{
dgvText.Rows.RemoveAt(e.RowIndex);
}
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 改变文本grid选择状态
///
///
///
private void dgvText_SelectionChanged(object sender, EventArgs e)
{
try
{
if (this._layoutSelectionChanging || this.lbxInvoice.ItemSelectionChanging)
{
return;
}
this._layoutSelectionChanging = true;
// 取消选择
if (this.dgvText.SelectedRows.Count == 0
|| (this.dgvText.SelectedRows.Count == 1
&& this.dgvText.SelectedRows[0].IsNewRow))
{
this.lbxInvoice.ClearSelection();
this._layoutSelectionChanging = false;
return;
}
foreach (DataGridViewRow row in dgvText.SelectedRows)
{
if (!row.IsNewRow)
{
int itemID = System.Convert.ToInt32(row.Cells["LayoutItemID"].Value);
if (0 < itemID)
{
LayoutItem layoutItem = this.lbxInvoice.GetItem(itemID);
if (layoutItem != null)
{
this.lbxInvoice.SelectItemSingle(layoutItem, row.Selected);
}
}
}
}
this._layoutSelectionChanging = false;
}
catch (Exception ex)
{
this._layoutSelectionChanging = false;
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 删除文本grid中的一行
///
///
///
private void dgvText_UserDeletingRow(object sender, System.Windows.Forms.DataGridViewRowCancelEventArgs e)
{
try
{
C_DataGridView dataGridView = sender as C_DataGridView;
int itemID = System.Convert.ToInt32(e.Row.Cells["LayoutItemID"].Value);
DataRowView dataRowView = e.Row.DataBoundItem as DataRowView;
if (0 < itemID)
{
if (4 == System.Convert.ToInt32(dataRowView["ItemStyle"]))
{
TotalTextItem totalTextItem = this.lbxInvoice.GetItem(itemID) as TotalTextItem;
this.lbxInvoice.DeletetItem(totalTextItem);
}
else
{
TextItem textItem = this.lbxInvoice.GetItem(itemID) as TextItem;
this.lbxInvoice.DeletetItem(textItem);
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 列表DataGridView项目选择内容之后事件
///
///
///
private void dgvDetail_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
try
{
if (this.dgvDetail == null || this.dgvDetail.CurrentCell == null
|| !string.IsNullOrEmpty(this.dgvDetail.Rows[this.dgvDetail
.CurrentCell.RowIndex].Cells["LayoutGridItemID"].Value + ""))
{
return;
}
TextItem textItem = lbxInvoice.NewItem(ItemType.Text, false) as TextItem;
if (textItem != null)
{
DataRowView dataRowView = (this.dgvDetail.EditingControl as ComboBox).SelectedItem as DataRowView;
this.dgvDetail.Rows[this.dgvDetail.CurrentCell.RowIndex].Cells["LayoutGridItemID"].Value = textItem.ID;
// 增加票据项目编码
this.dgvDetail.Rows[this.dgvDetail.CurrentCell.RowIndex].Cells["ItemCodeDetail"].Value
= dataRowView["ItemCode"].ToString();
}
else
{
dgvText.Rows.RemoveAt(e.RowIndex);
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 列表项目DataGridView项目获得焦点事件
///
///
///
private void dgvDetail_CellEnter(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
{
try
{
C_DataGridView dataGridView = sender as C_DataGridView;
if (dataGridView != null && !dataGridView.Rows[dataGridView.CurrentCell.RowIndex].IsNewRow)
{
dataGridView.CurrentRow.ReadOnly = true;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 列表项目DataGridView项目选择内容之后事件
///
///
///
private void dgvDetail_CellValidated(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
{
try
{
// 取得当前DataGridView的当前单元格
C_DataGridView dataGridView = sender as C_DataGridView;
// 当前单元格是新建单元格
if (!dataGridView.CurrentCell.ReadOnly)
{
ComboBox comboBox = dataGridView.EditingControl as ComboBox;
if (comboBox == null || comboBox.SelectedIndex < 0)
{
return;
}
// 取得当前行的信息
DataRowView dataRowView = (dataGridView.EditingControl as ComboBox).SelectedItem as DataRowView;
Dongke.WinForm.Controls.InvoiceLayout.GridItem gridItem = this.lbxInvoice.OneGridItem;
// 如果当前选中的项目中没有Grid,则自动生成一个新的Grid
if (gridItem == null)
{
gridItem = this.lbxInvoice.NewItem(ItemType.Grid, false) as Dongke.WinForm.Controls.InvoiceLayout.GridItem;
}
// 生成新的Grid之后,赋值,在票据控件上显示
if (gridItem != null)
{
GridItemColumn gridItemColumn
= new GridItemColumn(gridItem.Columns.GeNewColumnName(), dataRowView["ItemName"].ToString());
gridItemColumn.DataPropertyName = dataRowView["ControlCode"].ToString();
gridItemColumn.DisplayValue = dataRowView["ItemSample"].ToString();
gridItemColumn.ItemStyle = (ItemStyle)System.Convert.ToInt32(dataRowView["ItemStyle"]);
if (gridItemColumn.ItemStyle == ItemStyle.Date)
{
gridItemColumn.Format = "yyyy/MM/dd";
gridItemColumn.Culture = "en-US";
}
else if (gridItemColumn.ItemStyle == ItemStyle.Sign)
{
gridItemColumn.Format = "√";
}
else if (gridItemColumn.ItemStyle == ItemStyle.Barcode)
{
gridItemColumn.PicColumn = true;
}
gridItem.Columns.Add(gridItemColumn);
dataGridView.Rows[dataGridView.CurrentCell.RowIndex].Cells["LayoutGridItemID"].Value = gridItemColumn.ID;
this.lbxInvoice.Refresh();
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 改变列表grid选择状态
///
///
///
private void dgvDetail_SelectionChanged(object sender, EventArgs e)
{
try
{
if (this._layoutSelectionChanging || this.lbxInvoice.ItemSelectionChanging)
{
return;
}
this._layoutSelectionChanging = true;
// 取消选择
if (this.dgvDetail.SelectedRows.Count == 0 || this.lbxInvoice.OneGridItem == null)
{
this.lbxInvoice.ClearSelection();
this._layoutSelectionChanging = false;
return;
}
this.lbxInvoice.SelectItemSingle(this.lbxInvoice.OneGridItem, true);
this._layoutSelectionChanging = false;
}
catch (Exception ex)
{
this._layoutSelectionChanging = false;
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 删除列表grid中的一行
///
///
///
private void dgvDetail_UserDeletingRow(object sender, System.Windows.Forms.DataGridViewRowCancelEventArgs e)
{
try
{
if (this.lbxInvoice.OneGridItem == null)
{
return;
}
int itemID = System.Convert.ToInt32(e.Row.Cells["LayoutGridItemID"].Value);
if (0 < itemID)
{
this.lbxInvoice.OneGridItem.Columns.RemoveAtByID(itemID);
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
#endregion
#endregion
#region 私有方法/函数
///
/// 初始化LayoutBox样式及数据
///
private void InitLayoutBoxStyle()
{
// 编辑的状况下加载票据格式数据
if (this._invoiceLayoutID == 0)
{
this.lbxInvoice.SetPaperAreaSize(_paperWidth, _paperHeight);
}
this.txtInvoiceSize.Text = string.Format("{0:0}mm×{1:0}mm",
lbxInvoice.PaperWidth,
lbxInvoice.PaperHeight);
}
///
/// 只有当票据选择了一个以上的项目该功能才可用
///
/// 可用/不可用
private void SetLayoutBoxFunctionButtonStatus()
{
// 复制、剪切、删除
this.tsmiCut.Enabled = (this.lbxInvoice.SelectedItems.Count > 0);
this.tsmiCopy.Enabled = this.tsmiCut.Enabled;
this.tsmiDelete.Enabled = this.tsmiCut.Enabled;
this.tsbtnCut.Enabled = this.tsmiCut.Enabled;
this.tsbtnCopy.Enabled = this.tsmiCut.Enabled;
this.tsbtnDelete.Enabled = this.tsmiCut.Enabled;
// 详细或者移动
this.tsmiDetail.Enabled = (this.lbxInvoice.SelectedItems.Count == 1);
this.tsbtnDetail.Enabled = this.tsmiDetail.Enabled;
this.tsmiFrontMost.Enabled = this.tsmiDetail.Enabled;
this.tsmiFront.Enabled = this.tsmiDetail.Enabled;
this.tsmiBack.Enabled = this.tsmiDetail.Enabled;
this.tsmiBackMost.Enabled = this.tsmiDetail.Enabled;
this.tsbtnMoveTop.Enabled = this.tsmiDetail.Enabled;
this.tsbtnMoveFront.Enabled = this.tsmiDetail.Enabled;
this.tsbtnMoveUnder.Enabled = this.tsmiDetail.Enabled;
this.tsbtnMoveBottom.Enabled = this.tsmiDetail.Enabled;
// 对齐按钮或者菜单
this.tsbtnAlignmentLeft.Enabled = (this.lbxInvoice.SelectedItems.Count > 1);
this.tsbtnAlignmentLeft.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsbtnAlignmentCenter.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsbtnAlignmentRight.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsbtnAlignmentTop.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsbtnAlignmentMiddle.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsbtnAlignmentBottom.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsmiAlignmentLeft.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsmiAlignmentCenter.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsmiAlignmentRight.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsmiAlignmentTop.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsmiAlignmentMiddle.Enabled = this.tsbtnAlignmentLeft.Enabled;
this.tsmiAlignmentBottom.Enabled = this.tsbtnAlignmentLeft.Enabled;
// 粘贴按钮或者菜单
this.tsmiPaste.Enabled = Clipboard.ContainsData(this.lbxInvoice.ClipboardFormat.Name);
this.tsbtnPaste.Enabled = Clipboard.ContainsData(this.lbxInvoice.ClipboardFormat.Name);
}
///
/// 为票据设定的项目列表赋值
///
private void SetLayoutGridDataSource()
{
try
{
ServiceResultEntity sre = GetInvoiceData();
DataSet LayoutDataSet = sre.Data;
if (LayoutDataSet != null && LayoutDataSet.Tables.Count > 1)
{
_invoiceLayoutDataTable = LayoutDataSet.Tables[0];
//DataTable tempTable = LayoutDataSet.Tables[1].Clone();
//DataTable tempDetailTable = LayoutDataSet.Tables[1].Clone();
//// 文本数据赋值
//DataRow[] invoiceItemRow = LayoutDataSet.Tables[1].Copy().Select("ItemType = 0");
//for (int i = 0; i < invoiceItemRow.Length; i++)
//{
// tempTable.ImportRow(invoiceItemRow[i]);
//}
this.dgvText.DataSource = LayoutDataSet.Tables[1];
//// 列表项目赋值
//invoiceItemRow = LayoutDataSet.Tables[1].Copy().Select("ItemType = 1");
//for (int i = 0; i < invoiceItemRow.Length; i++)
//{
// tempDetailTable.ImportRow(invoiceItemRow[i]);
//}
//this.dgvDetail.DataSource = tempDetailTable;
// 编辑的状况下加载票据格式数据
if (this._invoiceLayoutID != 0)
{
if (1 == LayoutDataSet.Tables[0].Rows.Count)
{
this.txtGoodsType.Text = LayoutDataSet.Tables[0].Rows[0]["goodstypename"].ToString() + "【" + LayoutDataSet.Tables[0].Rows[0]["goodstypecode"].ToString() + "】";
this.txtInvoiceName.Text = LayoutDataSet.Tables[0].Rows[0]["LayoutName"].ToString();
this.Text = string.Format(F_MST_012001.TITLE_F_MST_012002_EDIT, this.txtInvoiceName.Text.Trim());
this.txtRemarks.Text = LayoutDataSet.Tables[0].Rows[0]["Remarks"].ToString();
this.txtLogo.Text = LayoutDataSet.Tables[0].Rows[0]["LogoName"].ToString();
this._goodstypeid = Convert.ToInt32(LayoutDataSet.Tables[0].Rows[0]["goodstypeid"]);
this._goodstypeCode = LayoutDataSet.Tables[0].Rows[0]["goodstypecode"].ToString();
this._goodstypeName = LayoutDataSet.Tables[0].Rows[0]["goodstypename"].ToString();
object objLogoID = LayoutDataSet.Tables[0].Rows[0]["logoid"];
if (objLogoID != null && objLogoID != DBNull.Value)
{
this._logoid = Convert.ToInt32(objLogoID);
}
else
{
this._logoid = null;
}
byte[] bytes = LayoutDataSet.Tables[0].Rows[0]["LayoutData"] as byte[];
if (bytes != null)
{
this.lbxInvoice.ReadLayout(bytes);
}
}
this.tsbtnSaveAs.Enabled = true;
this.tsmiSaveAs.Enabled = true;
}
else
{
this.tsbtnSaveAs.Enabled = false;
this.tsmiSaveAs.Enabled = false;
}
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 设定保存票据主信息的DataTable
///
///
private void SetSaveLayoutData(ref DataSet saveDataSet, int layoutID)
{
try
{
DataTable layout = _invoiceLayoutDataTable.Copy();
byte[] bytes = this.lbxInvoice.WriteLayout();
if (0 < layoutID)
{
if (layout != null && layout.Rows.Count > 0)
{
// 新建后转成编辑模式,但是数据源中无id
layout.Rows[0]["layoutid"] = layoutID;
if (bytes != null)
{
layout.Rows[0]["LayoutData"] = bytes;
}
layout.Rows[0]["Width"] = lbxInvoice.PaperWidth;
layout.Rows[0]["Height"] = lbxInvoice.PaperHeight;
}
}
else
{
DataRow tempDataRow = layout.NewRow();
tempDataRow["layoutid"] = 0;
tempDataRow["LayoutName"] = this.txtInvoiceName.Text.Trim();
if (bytes != null)
{
tempDataRow["LayoutData"] = bytes;
}
tempDataRow["logoid"] = (this._logoid.HasValue ? (object)this._logoid.Value : DBNull.Value);
tempDataRow["goodstypeid"] = this._goodstypeid;
tempDataRow["goodstypecode"] = this._goodstypeCode;
tempDataRow["goodstypename"] = this._goodstypeName;
tempDataRow["Width"] = lbxInvoice.PaperWidth;
tempDataRow["Height"] = lbxInvoice.PaperHeight;
tempDataRow["Remarks"] = this.txtRemarks.Text.Trim();
//xuwei add 2019-11-20
tempDataRow["PrintType"] = this._printType;
layout.Rows.Clear();
layout.Rows.Add(tempDataRow);
}
saveDataSet.Tables.Add(layout);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 另存为时,设定保存票据主信息的DataTable
///
///
private void SetSaveAsLayoutData(ref DataSet saveDataSet, int layoutID)
{
try
{
byte[] bytes = this.lbxInvoice.WriteLayout();
_invoiceLayoutDataTable.Rows[0]["InvoiceLayoutName"] = this.txtInvoiceName.Text.Trim();
if (bytes != null)
{
_invoiceLayoutDataTable.Rows[0]["InvoiceLayoutData"] = bytes;
}
//_invoiceLayoutDataTable.Rows[0]["InvoiceCode"] = this.cbxInvoiceType.SelectedValue;
//_invoiceLayoutDataTable.Rows[0]["OrganizationID"] = this.sbxOrganization.SearchedValue;
//_invoiceLayoutDataTable.Rows[0]["OrganizationCode"] = this.OrganizationCode;
//_invoiceLayoutDataTable.Rows[0]["OrganizationName"] = this.sbxOrganization.Text;
//_invoiceLayoutDataTable.Rows[0]["Width"] = lbxInvoice.PaperWidth;
//_invoiceLayoutDataTable.Rows[0]["Height"] = lbxInvoice.PaperHeight;
saveDataSet.Tables.Add(_invoiceLayoutDataTable.Copy());
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 设定保存票据项目的DataTable
///
///
private void SetSaveLayoutItemData(ref DataSet saveDataSet)
{
try
{
DataTable textDataTable = (DataTable)this.dgvText.DataSource;
//DataTable itemDataTable = (DataTable)this.dgvDetail.DataSource;
//DataTable tempDataTable = textDataTable.Clone();
//for (int i = 0; i < textDataTable.Rows.Count; i++)
//{
// if (textDataTable.Rows[i].RowState == DataRowState.Deleted
// || textDataTable.Rows[i].RowState == DataRowState.Detached)
// {
// continue;
// }
// textDataTable.Rows[i]["ItemType"] = 0;
//}
//for (int i = 0; i < itemDataTable.Rows.Count; i++)
//{
// if (itemDataTable.Rows[i].RowState == DataRowState.Deleted
// || itemDataTable.Rows[i].RowState == DataRowState.Detached)
// {
// continue;
// }
// itemDataTable.Rows[i]["ItemType"] = 1;
//}
//DataRow[] invoiceItemRow = textDataTable.Copy().Select("ItemType = 0");
//for (int i = 0; i < invoiceItemRow.Length; i++)
//{
// tempDataTable.ImportRow(invoiceItemRow[i]);
//}
//invoiceItemRow = itemDataTable.Copy().Select("ItemType = 1");
//for (int i = 0; i < invoiceItemRow.Length; i++)
//{
// tempDataTable.ImportRow(invoiceItemRow[i]);
//}
saveDataSet.Tables.Add(textDataTable.Copy());
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据票据格式ID取得票据数据及票据项目数据
///
///
private ServiceResultEntity GetInvoiceData()
{
try
{
this._clientRequestEntity = new ClientRequestEntity();
this._clientRequestEntity.NameSpace = "InvoiceLayout";
this._clientRequestEntity.Name = "GetBarCodePrintLayout";
this._clientRequestEntity.Properties["LayoutID"] = _invoiceLayoutID;
return SystemModuleProxy.Service.DoBarCodePrint(this._clientRequestEntity);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 保存新建票据数据
///
///
/// 0:保存失败
/// 其他:保存成功返回新建票据ID
///
private ServiceResultEntity SaveAddLayoutData()
{
try
{
this._clientRequestEntity = new ClientRequestEntity();
this._clientRequestEntity.NameSpace = "InvoiceLayout";
this._clientRequestEntity.Name = "SaveAddBarCodePrintLayoutData";
this._clientRequestEntity.Data = _saveData;
return SystemModuleProxy.Service.DoBarCodePrint(this._clientRequestEntity);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 保存编辑票据数据
///
/// 更新数据时影响的行数
private ServiceResultEntity SaveEditLayoutData()
{
try
{
this._clientRequestEntity = new ClientRequestEntity();
this._clientRequestEntity.NameSpace = "InvoiceLayout";
this._clientRequestEntity.Name = "SaveEditBarCodePrintLayoutData";
this._clientRequestEntity.Data = _saveData;
return SystemModuleProxy.Service.DoBarCodePrint(this._clientRequestEntity);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
private void tsmiBarcode_Click(object sender, EventArgs e)
{
try
{
TextItem newTextItem = this.lbxInvoice.NewItem(ItemType.Barcode, true) as TextItem;
if (newTextItem != null)
{
newTextItem.DataMember = string.Empty;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
private void tsmiQRcode_Click(object sender, EventArgs e)
{
try
{
TextItem newTextItem = this.lbxInvoice.NewItem(ItemType.QRcode, true) as TextItem;
if (newTextItem != null)
{
newTextItem.DataMember = string.Empty;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
private void F_MST_012003_Load(object sender, EventArgs e)
{
try
{
// 加载打印项目
//controlDataSource = this.GetMSTSourse2().Data.Tables[0];
ClientRequestEntity cre = new ClientRequestEntity();
cre.NameSpace = "InvoiceLayout";
cre.Name = "GetBarCodePrintItem";
ServiceResultEntity sre = SystemModuleProxy.Service.DoBarCodePrint(cre);
if (sre != null && sre.Data != null && sre.Data.Tables.Count > 0)
{
this.InvoiceItemName.DataSource = sre.Data.Tables[0];
this.InvoiceItemName.DisplayMember = "ItemName";
this.InvoiceItemName.ValueMember = "ItemCode";
}
// 为票据设定的项目列表赋值
this.dgvText.AutoGenerateColumns = false;
this.dgvDetail.AutoGenerateColumns = false;
this.SetLayoutGridDataSource();
// LayoutBox赋值
this.InitLayoutBoxStyle();
// 设置票据功能按钮状态
this.SetLayoutBoxFunctionButtonStatus();
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
private void lbxInvoice_UserDeletedItem(object sender, WinForm.Controls.InvoiceLayout.ItemChangedEventArgs e)
{
try
{
if (e.Item.ItemType == ItemType.Text ||
e.Item.ItemType == ItemType.Barcode ||
e.Item.ItemType == ItemType.QRcode)
{
TextItem textItem = e.Item as TextItem;
if (textItem != null
&& !string.IsNullOrEmpty(textItem.DataMember))
{
DataTable layoutItem = this.dgvText.DataSource as DataTable;
DataRow[] drLayoutItems = layoutItem.Select("LayoutItemID = " + e.Item.ID);
if (drLayoutItems != null && 0 < drLayoutItems.Length)
{
drLayoutItems[0].Delete();
}
}
}
else if (e.Item.ItemType == ItemType.TotalText)
{
TotalTextItem totalTextItem = e.Item as TotalTextItem;
if (totalTextItem != null)
{
DataTable layoutItem = this.dgvText.DataSource as DataTable;
DataRow[] drLayoutItems = layoutItem.Select("LayoutItemID = " + e.Item.ID);
if (drLayoutItems != null && 0 < drLayoutItems.Length)
{
drLayoutItems[0].Delete();
}
}
}
else if (e.Item.ItemType == ItemType.Grid)
{
DataTable layoutItem = this.dgvDetail.DataSource as DataTable;
DataRow[] drLayoutItems = layoutItem.Select();
foreach (DataRow dr in drLayoutItems)
{
dr.Delete();
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
private void tsbtnPrintPreview_Click(object sender, EventArgs e)
{
F_MST_012005 frm012005 = new F_MST_012005();
frm012005.LayoutName = this.txtInvoiceName.Text;
frm012005.PageSizeName = this.txtInvoiceSize.Text;
frm012005.GoodsTypeName = this.txtGoodsType.Text;
frm012005.Remarks = this.txtRemarks.Text;
frm012005.LayoutData = this.lbxInvoice.WriteLayout();
frm012005.LogoName = this.txtLogo.Text;
frm012005.ShowDialog();
}
}
}