📄 ucdictcrkfswh.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Oracle.DataAccess.Client;
using Sybase.DataWindow;
using Qeb.Control;
using Qeb.DBProxy;
using Qeb.Support;
using Qeb.Support.Common;
namespace Qeb.GY
{
public partial class UCDictCrkFsWh : UCDictBase
{
public UCDictCrkFsWh()
{
InitializeComponent();
}
#region 根据出入库方式名称定位记录
public override void FindInDw(string value)
{
if (value == null)
value = "";
int findRow = dwCrkFs.FindRow("crkfsmc like '" + value + "'", 1, dwCrkFs.RowCount);
if (findRow > 0)
{
dwCrkFs.ScrollToRow(findRow);
dwCrkFs.SetRow(findRow);
}
}
#endregion
#region 关闭
private void btnClose_Click(object sender, EventArgs e)
{
ParentForm.Close();
}
#endregion
#region 删除
private void btnDelete_Click(object sender, EventArgs e)
{
int row = dwCrkFs.CurrentRow;
if ( row == 0)
{
MessageBox.Show("请选择需要删除的入出库方式,再点击删除按钮!",MsgTitle.Prompt);
return;
}
if (dwCrkFs.GetRowStatus(row,DataBuffer.Primary) == RowStatus.New ||
dwCrkFs.GetRowStatus(row,DataBuffer.Primary) == RowStatus.NewAndModified )
{
dwCrkFs.DeleteRow(row);
return;
}
if (!dwCrkFs.IsItemNull(row,"xtbz") && dwCrkFs.GetItemDecimal(row,"xtbz") == 1)
{
MessageBox.Show("系统内置的出入库方式不允许删除!",MsgTitle.Prompt);
return;
}
string crkFsId = "";
if (dwCrkFs.IsItemNull(row,"crkfsid"))
return;
else
crkFsId = dwCrkFs.GetItemString(row,"crkfsid");
DbProxyClient proxy = App.DbProxy;
//检查出入库方式是否可删除
try
{
OracleCommand cmd = new OracleCommand();
cmd.CommandText = "PKG_GY_YKF.Prc_CrkFsIdIsUsed";
cmd.CommandType = CommandType.StoredProcedure;
//出入库方式ID
OracleParameter p_CrkFsId = new OracleParameter();
p_CrkFsId.ParameterName = ":p_crkfsid";
p_CrkFsId.Value = crkFsId;
p_CrkFsId.DbType = DbType.String;
p_CrkFsId.Direction = ParameterDirection.Input;
//应用ID
OracleParameter p_YyId = new OracleParameter();
p_YyId.ParameterName = ":p_yyid";
p_YyId.Value = App.yyId;
p_YyId.DbType = DbType.String;
p_YyId.Direction = ParameterDirection.Input;
OracleParameter p_AppCode = new OracleParameter();
p_AppCode.ParameterName = ":p_appcode";
p_AppCode.DbType = DbType.Int32;
p_AppCode.Direction = ParameterDirection.Output;
OracleParameter p_OutBuffer = new OracleParameter();
p_OutBuffer.ParameterName = ":p_outbuffer";
p_OutBuffer.DbType = DbType.String;
p_OutBuffer.Size = 600;
p_OutBuffer.Direction = ParameterDirection.Output;
cmd.Parameters.Add(p_CrkFsId);
cmd.Parameters.Add(p_YyId);
cmd.Parameters.Add(p_AppCode);
cmd.Parameters.Add(p_OutBuffer);
proxy.Clear();
proxy.AddDbCommand(cmd);
proxy.Update();
if (p_AppCode.Value == null || p_AppCode.Value.ToString() != "1")
{
//已被使用,不可删除
MessageBox.Show(p_OutBuffer.Value.ToString(),MsgTitle.Warning);
return;
}
}
catch(Exception ex)
{
MessageBox.Show("检查出入库方式是否可删除发生异常:" + ex.Message, MsgTitle.Error);
return;
}
dwCrkFs.DeleteRow(row);
this.m_IsModified = true;
this.btnSave.Enabled = true;
}
#endregion
#region 增加
private void btnAdd_Click(object sender, EventArgs e)
{
int row = dwCrkFs.InsertRow(0);
//设置默认值
//应用ID
dwCrkFs.SetItemString(row, "yyid", App.yyId);
//打印行数
dwCrkFs.SetItemDecimal(row, "dyhs", 10);
//发票号码标志
dwCrkFs.SetItemDecimal(row, "fphmbz", 0);
//显示标志
dwCrkFs.SetItemDecimal(row, "xsbz", 1);
//系统标志
dwCrkFs.SetItemDecimal(row, "xtbz", 0);
dwCrkFs.SetRow(row);
dwCrkFs.ScrollToRow(row);
dwCrkFs.Focus();
dwCrkFs.SetColumn("crkfsid");
}
#endregion
#region 保存
private bool CheckCrkFsXx()
{
if (!dwCrkFs.AcceptText())
return false;
//出入库方式名称
if (dwCrkFs.IsItemNull(1, "crkfsid") || dwCrkFs.GetItemString(1, "crkfsid") == "")
{
MessageBox.Show("出入库方式ID不能为空,请输入!", MsgTitle.Prompt);
dwCrkFs.Focus();
dwCrkFs.SetColumn("crkfsid");
return false;
}
//出入库方式名称
if (dwCrkFs.IsItemNull(1, "crkfsmc") || dwCrkFs.GetItemString(1, "crkfsmc") == "")
{
MessageBox.Show("出入库方式名称不能为空,请输入!", MsgTitle.Prompt);
dwCrkFs.Focus();
dwCrkFs.SetColumn("crkfsmc");
return false;
}
//出入库标志
if (dwCrkFs.IsItemNull(1, "crkbz"))
{
MessageBox.Show("出入库标志没有选择,请选择!", MsgTitle.Prompt);
dwCrkFs.Focus();
dwCrkFs.SetColumn("crkbz");
return false;
}
//库存方向
if (dwCrkFs.IsItemNull(1, "kcfx"))
{
MessageBox.Show("库存方向没有选择,请选择!", MsgTitle.Prompt);
dwCrkFs.Focus();
dwCrkFs.SetColumn("kcfx");
return false;
}
//出库方案
if (dwCrkFs.IsItemNull(1, "ckfa"))
{
MessageBox.Show("出库方案没有选择,请选择!", MsgTitle.Prompt);
dwCrkFs.Focus();
dwCrkFs.SetColumn("ckfa");
return false;
}
//单位部门
if (dwCrkFs.IsItemNull(1, "dwbmbz"))
{
MessageBox.Show("单位部门没有选择,请选择!", MsgTitle.Prompt);
dwCrkFs.Focus();
dwCrkFs.SetColumn("dwbmbz");
return false;
}
//核算方式
if (dwCrkFs.IsItemNull(1, "djhsfs"))
{
MessageBox.Show("核算方式没有选择,请选择!", MsgTitle.Prompt);
dwCrkFs.Focus();
dwCrkFs.SetColumn("djhsfs");
return false;
}
return true;
}
private void btnSave_Click(object sender, EventArgs e)
{
if (!dwCrkFs.AcceptText())
return;
//检查数据完整性
if (!this.CheckCrkFsXx())
return;
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddDataWindow(dwCrkFs);
proxy.Update();
SetEdit(false);
}
catch (Exception ex)
{
MessageBox.Show("保存出入库方式发生异常:" + ex.Message, MsgTitle.Error);
}
}
#endregion
/// <summary>
/// 设置界面编辑状态
/// </summary>
/// <param name="edit"></param>
private void SetEdit(bool edit)
{
if (edit)
{
//设为可以编辑
btnAdd.Enabled = true;
btnDelete.Enabled = true;
try
{
dwCrkFs.SetProperty("DataWindow.ReadOnly", "No");
}
catch (Exception ex)
{
MessageBox.Show("设置数据窗口只读属性发生异常:" + ex.Message);
}
}
else
{
//清除修改提示状态
m_IsModified = false;
btnSave.Enabled = false;
//设为不可编辑
btnAdd.Enabled = false;
btnDelete.Enabled = false;
try
{
dwCrkFs.SetProperty("DataWindow.ReadOnly", "Yes");
}
catch (Exception ex)
{
MessageBox.Show("设置数据窗口只读属性发生异常:" + ex.Message);
}
}
}
#region 检索
private void RetrieveData()
{
SetEdit(false);
DbProxyClient proxy = App.DbProxy;
try
{
proxy.Clear();
proxy.AddRetrieveParam("p_yyid", App.yyId);
proxy.Retrieve(this.dwCrkFs);
}
catch(Exception ex)
{
MessageBox.Show("检索数据发生异常:"+ex.Message,MsgTitle.Error);
}
}
private void btnRefresh_Click(object sender, EventArgs e)
{
if (this.m_IsModified)
{
DialogResult result = MessageBox.Show(this, "数据已修改,是否需要保存?", MsgTitle.Prompt, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
return;
}
}
this.RetrieveData();
}
#endregion
#region DW事件处理
private void dwCrkFs_ItemError(object sender, ItemErrorEventArgs e)
{
e.Action = ItemErrorAction.RejectWithNoMessage;
}
private void dwCrkFs_ItemChanged(object sender, Sybase.DataWindow.ItemChangedEventArgs e)
{
if (e.ColumnName == "crkfsid")
{
if (dwCrkFs.GetRowStatus(e.RowNumber,DataBuffer.Primary) == RowStatus.Modified)
{
e.Action = ItemChangedAction.RejectAndAllowFocusChange;
}
if (e.Data == null || e.Data.Trim() == "")
{
MessageBox.Show("出入库方式ID不允许为空!",MsgTitle.Warning);
e.Action = ItemChangedAction.Reject;
}
if (dwCrkFs.FindRepeatValue("crkfsid='" +e.Data + "'",e.RowNumber) > 0 )
{
MessageBox.Show("出入库方式ID已被使用,请重新输入!", MsgTitle.Error);
e.Action = ItemChangedAction.Reject;
dwCrkFs.SetItemNull(e.RowNumber, "crkfsid");
}
}
}
private void dwCrkFs_EditChanged(object sender, EditChangedEventArgs e)
{
if (!m_IsModified)
{
m_IsModified = true;
btnSave.Enabled = true;
}
}
private void dwCrkFs_Click(object sender, EventArgs e)
{
if (this.btnAdd.Enabled && dwCrkFs.ObjectUnderMouse.Band.Type == BandType.Detail)
{
int row = dwCrkFs.ObjectUnderMouse.RowNumber;
string name = dwCrkFs.ObjectUnderMouse.Gob.Name;
if (row == 0)
return;
if (!dwCrkFs.IsItemNull(row, "xtbz") && dwCrkFs.GetItemDecimal(row, "xtbz") == 1)
return;
if (name == "xsbz" || name == "fphmbz")
{
if (!m_IsModified)
{
m_IsModified = true;
btnSave.Enabled = true;
}
}
}
}
private void dwCrkFs_DropDown(object sender, EventArgs e)
{
if (dwCrkFs.CurrentRow == 0)
return;
if (!dwCrkFs.IsItemNull(dwCrkFs.CurrentRow, "xtbz") && dwCrkFs.GetItemDecimal(dwCrkFs.CurrentRow, "xtbz") == 1)
return;
if (!m_IsModified)
{
m_IsModified = true;
btnSave.Enabled = true;
}
}
private void dwCrkFs_ItemFocusChanged(object sender, ItemFocusChangedEventArgs e)
{
if (this.btnAdd.Enabled)
{
if (e.ColumnName == "crkfsmc")
dwCrkFs.SetIME(true);
else
dwCrkFs.SetIME(false);
}
}
#endregion
private void UCDictCrkFsWh_Load(object sender, EventArgs e)
{
this.LookUpPromptText = "出入库方式名称";
//初始化数据窗口
dwCrkFs.LibraryList = PBL.GyPbl;
dwCrkFs.DataWindowObject = GyDataObjects.d_Gy_CrkFsWh;
this.dwCrkFs.InitUI();
this.SetEdit(false);
this.RetrieveData();
}
private void btnModify_Click(object sender, EventArgs e)
{
this.SetEdit(true);
}
private void btnPrint_Click(object sender, EventArgs e)
{
DwPrint.Preview(dwCrkFs);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -