📄 ucdictghdwwh.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Qeb.Control;
using Sybase.DataWindow;
using Qeb.Support;
using Qeb.Support.Common;
using Qeb.DBProxy;
using Qeb.GY;
namespace Qeb.YK
{
public partial class UCDictGhDwWh : Qeb.GY.UCDictBase
{
//单位类型设置1
private const int DWLX = 1;
public UCDictGhDwWh()
{
InitializeComponent();
}
private void UCGhDwWh_Load(object sender, EventArgs e)
{
//初始化数据窗口
this.dwGhDw.LibraryList = PBL.GyPbl;
this.dwGhDw.DataWindowObject = GyDataObjects.D_Yk_GhDwWh;
this.dwGhDw.InitUI();
try
{
dwGhDw.SetProperty("DataWindow.ReadOnly", "Yes");
}
catch(Exception ex)
{
MessageBox.Show("设置数据窗口只读属性发生异常:" + ex.Message);
}
this.RetrieveData();
}
#region 检索数据
private void RetrieveData()
{
try
{
DbProxyClient proxy=App.DbProxy;
proxy.Clear();
proxy.AddRetrieveParam(":p_yyid", App.yyId);
proxy.AddRetrieveParam(":p_dwlx", DWLX);
proxy.Retrieve(dwGhDw);
}
catch(Exception ex)
{
MessageBox.Show("检索数据出错:"+ ex.Message, MsgTitle.Error);
}
}
#endregion
#region 函数
private DialogResult needsave()
{
DialogResult result=DialogResult.No;
if(this.m_IsModified)
{
result = MessageBox.Show(this, "数据已修改,是否需要保存?", MsgTitle.Prompt, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
}
return result;
}
private void setEnabled(bool ok)
{
if(ok)
{
this.btnModify.Enabled=true;
}
else
{
this.btnModify.Enabled = false;
this.btnAdd.Enabled = false;
this.btnStop.Enabled = false;
this.btnSave.Enabled = false;
}
}
//检查是否重复名称
private int findDwmc(string dwmc, int editRow)
{
int findRow = dwGhDw.FindRow("dwmc='" + dwmc + "'", 1, this.dwGhDw.RowCount);
if (findRow == editRow)
{
if (editRow < dwGhDw.RowCount)
{
findRow = dwGhDw.FindRow("dwmc='" + dwmc + "'", editRow + 1, this.dwGhDw.RowCount);
}
}
return findRow;
}
//设置主键
private void SetPk()
{
DbProxyClient proxy = App.DbProxy;
string dwid = "";
int rowNum = 0;
int rowCount = dwGhDw.RowCount;
do
{
rowNum = dwGhDw.FindNextModifiedRow(rowNum, DataBuffer.Primary);
if (rowNum > 0)
{
if (dwGhDw.IsItemNull(rowNum, "dwid") || dwGhDw.GetItemString(rowNum, "dwid") == "")
{
try
{
dwid = Sequence.GetXhByName("SEQ_YK_GHDBDW_DWID");
if (string.IsNullOrEmpty(dwid))
{
MessageBox.Show("没有取到序列,返回值为空!", MsgTitle.Error);
return;
}
dwGhDw.SetItemString(rowNum, "dwid", dwid);
}
catch (Exception ex)
{
MessageBox.Show("取序列发生异常:" + ex.Message, MsgTitle.Error);
break;
}
}
}
else
{
rowNum = rowCount;
}
}
while (rowNum < rowCount);
}
#endregion
#region 根据单位名称定位记录
public override void FindInDw(string value)
{
if(value==null)
value = "";
int findRow = dwGhDw.FindRow("dwmc like '" + value + "'", 1, dwGhDw.RowCount);
if(findRow>0)
{
dwGhDw.ScrollToRow(findRow);
dwGhDw.SetRow(findRow);
}
}
#endregion
#region 数据完整性检查函数
private bool checkGhDwWh()
{
string colName = "";
string errorMsg = "";
int rowNum = 0;
int rowCount = 0;
DataBuffer buffer = DataBuffer.Primary;
find:
if (buffer == DataBuffer.Primary)
rowCount = dwGhDw.RowCount;
else
rowCount = dwGhDw.FilteredCount;
rowNum = 0;
do
{
rowNum = dwGhDw.FindNextModifiedRow(rowNum, buffer);
if (rowNum > 0)
{
colName = "dwmc";
if (this.dwGhDw.IsItemNull(rowNum, colName))
{
errorMsg = "单位名称";
goto Error;
}
}
else
{
rowNum = rowCount;
}
}
while (rowNum < rowCount);
//处理过滤缓冲区
if (buffer == DataBuffer.Primary && dwGhDw.FilteredCount > 0)
{
buffer = DataBuffer.Filter;
goto find;
}
Error:
if (errorMsg != "")
{
if (buffer == DataBuffer.Filter)
{
MessageBox.Show("数据输入不完整," + errorMsg + "没有输入,该记录已被过滤,重新设置过滤条件后可显示!", MsgTitle.Warning);
}
else
{
MessageBox.Show("数据输入不完整,第" + rowNum.ToString() + "行" + errorMsg + "没有输入!", MsgTitle.Warning);
this.dwGhDw.ScrollToRow(rowNum);
this.dwGhDw.Focus();
this.dwGhDw.SetRow(rowNum);
this.dwGhDw.SetColumn(colName);
}
return false;
}
return true;
}
#endregion
private void dwGhDw_Click(object sender, EventArgs e)
{
if (this.btnAdd.Enabled && dwGhDw.ObjectUnderMouse.Band.Type == BandType.Detail)
{
if (dwGhDw.ObjectUnderMouse.Gob.Name == "zfbz")
{
if (!this.m_IsModified)
{
this.m_IsModified = true;
this.btnSave.Enabled = true;
}
}
}
}
private void dwGhDw_EditChanged(object sender, Sybase.DataWindow.EditChangedEventArgs e)
{
if(!this.m_IsModified)
{
this.m_IsModified = true;
this.btnSave.Enabled = true;
}
}
private void dwGhDw_ItemChanged(object sender, Sybase.DataWindow.ItemChangedEventArgs e)
{
switch (e.ColumnName)
{
case "dwmc":
if (e.Data == null || e.Data == "")
{
MessageBox.Show("单位名称不允许为空,请输入!");
e.Action = ItemChangedAction.Reject;
}
else
{
//检查是否存在重复单位名称
try
{
if (this.findDwmc(e.Data, e.RowNumber) > 0)
{
MessageBox.Show("单位名称已存在,不允许重复!", MsgTitle.Prompt);
e.Action = ItemChangedAction.RejectAndAllowFocusChange;
}
}
catch (Exception ex)
{
MessageBox.Show("单位名称是否已存在,发生异常:" + ex.Message, MsgTitle.Error);
e.Action = ItemChangedAction.Reject;
}
}
break;
}
//输入码
if (e.ColumnName == "dwmc")
{
if (e.Data == null || e.Data.Trim() == "")
{
e.Action = Sybase.DataWindow.ItemChangedAction.Reject;
dwGhDw.SetItemNull(e.RowNumber, "dwmc");
dwGhDw.SetItemNull(e.RowNumber, "srm1");
dwGhDw.SetItemNull(e.RowNumber, "srm2");
dwGhDw.SetItemNull(e.RowNumber, "srm3");
}
string srm1 = "";
string srm2 = "";
string srm3 = "";
string errMsg = StringHelper.GetSrm(e.Data, true, ref srm1, ref srm2, ref srm3);
if (errMsg == "")
{
dwGhDw.SetItemString(e.RowNumber, "srm1", srm1);
dwGhDw.SetItemString(e.RowNumber, "srm2", srm2);
dwGhDw.SetItemString(e.RowNumber, "srm3", srm3);
}
else
{
MessageBox.Show(errMsg, MsgTitle.Error);
}
}
}
private void dwGhDw_ItemError(object sender, Sybase.DataWindow.ItemErrorEventArgs e)
{
e.Action = ItemErrorAction.RejectWithNoMessage;
}
#region 按钮 增加等
//增加
private void btnAdd_Click(object sender, EventArgs e)
{
int row = dwGhDw.InsertRow(0);
dwGhDw.SetRow(row);
dwGhDw.SetItemDecimal(row, "zfbz", 0);
dwGhDw.SetItemDecimal(row, "yfkglbz", 0);
dwGhDw.SetItemDecimal(row, "dwlx", DWLX);
dwGhDw.SetItemString(row, "yyid", App.yyId);
dwGhDw.ScrollToRow(row);
dwGhDw.Focus();
dwGhDw.SetColumn("dwmc");
}
//作废
private void btnStop_Click(object sender, EventArgs e)
{
if (dwGhDw.CurrentRow > 0)
{
//停用的记录如果是新增的,直接删除
RowStatus status = dwGhDw.GetRowStatus(dwGhDw.CurrentRow, DataBuffer.Primary);
if (status == RowStatus.New || status == RowStatus.NewAndModified)
{
dwGhDw.DeleteRow(dwGhDw.CurrentRow);
return;
}
//单位名称
string dwmc = "";
if (!dwGhDw.IsItemNull(dwGhDw.CurrentRow, "dwmc"))
{
dwmc = dwGhDw.GetItemString(dwGhDw.CurrentRow, "dwmc");
}
DialogResult result = MessageBox.Show(this, "单位名称为【" + dwmc + "】的信息将要被作废,您确定要作废吗?", MsgTitle.Prompt, MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (result == DialogResult.OK)
{
dwGhDw.SetItemDecimal(dwGhDw.CurrentRow, "zfbz", 1);
this.m_IsModified = true;
this.btnSave.Enabled = true;
}
}
else
{
MessageBox.Show("请选择需要删除的用户再单击删除按钮!", MsgTitle.Prompt);
}
}
//修改
private void btnModify_Click(object sender, EventArgs e)
{
try
{
dwGhDw.SetProperty("DataWindow.ReadOnly", "No");
}
catch (Exception ex)
{
MessageBox.Show("设置数据窗口只读属性发生异常:" + ex.Message);
return;
}
this.btnAdd.Enabled = true;
this.btnStop.Enabled = true;
}
//保存
private void btnSave_Click(object sender, EventArgs e)
{
dwGhDw.AcceptText();
//生成序列ID
SetPk();
//检验数据完整性
if (!this.checkGhDwWh())
return;
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddDataWindow(this.dwGhDw);
proxy.Update();
this.m_IsModified = false;
btnSave.Enabled = false;
}
catch (Exception ex)
{
MessageBox.Show("保存参数发生异常:" + ex.Message, MsgTitle.Error);
}
}
//刷新
private void btnRefresh_Click(object sender, EventArgs e)
{
if (needsave() == DialogResult.Yes)
return;
this.RetrieveData();
}
//打印
private void btnPrint_Click(object sender, EventArgs e)
{
}
//输出
private void btnExport_Click(object sender, EventArgs e)
{
}
//关闭
private void btnClose_Click(object sender, EventArgs e)
{
this.ParentForm.Close();
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -