📄 udictxybrwh.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Sybase.DataWindow;
using Qeb.Control;
using Qeb.Support;
using Qeb.Support.Common;
using Qeb.DBProxy;
namespace Qeb.GY
{
public partial class UDictXyBrWh : Qeb.GY.UCDictBase
{
public UDictXyBrWh()
{
InitializeComponent();
}
private void UDictXyBrWh_Load(object sender, EventArgs e)
{
this.dwXyBr.LibraryList = PBL.GyPbl;
this.dwXyBr.DataWindowObject = GyDataObjects.D_Gy_XyBrXx;
this.dwXyBr.InitUI();
try
{
dwXyBr.SetProperty("DataWindow.ReadOnly", "Yes");
}
catch (Exception ex)
{
MessageBox.Show("设置数据窗口只读属性发生异常:" + ex.Message);
}
this.RetrieveData();
}
//检索数据
private void RetrieveData()
{
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.Retrieve(this.dwXyBr);
}
catch (Exception ex)
{
MessageBox.Show("检索数据发生异常:" + ex.Message, MsgTitle.Error);
}
finally
{
this.m_IsModified = false;
this.btnSave.Enabled = false;
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
int rowIndex = dwXyBr.InsertRow(0);
dwXyBr.SetRow(rowIndex);
dwXyBr.ScrollToRow(rowIndex);
dwXyBr.Focus();
dwXyBr.SetColumn("xybrid");
}
private void btnStop_Click(object sender, EventArgs e)
{
if (dwXyBr.CurrentRow > 0)
{
//停用的记录如果是新增的,直接删除
RowStatus status = dwXyBr.GetRowStatus(dwXyBr.CurrentRow, DataBuffer.Primary);
if (status == RowStatus.New || status == RowStatus.NewAndModified)
{
dwXyBr.DeleteRow(dwXyBr.CurrentRow);
return;
}
//工号
string XyBrId = "";
if (!dwXyBr.IsItemNull(dwXyBr.CurrentRow, "xybrid"))
{
XyBrId = dwXyBr.GetItemString(dwXyBr.CurrentRow, "xybrid");
}
//用户名称
string BrXm = "";
if (!dwXyBr.IsItemNull(dwXyBr.CurrentRow, "brxm"))
{
BrXm = dwXyBr.GetItemString(dwXyBr.CurrentRow, "brxm");
}
DialogResult result = MessageBox.Show(this, "协议病人ID为【" + XyBrId + "】病人姓名为【" + BrXm + "】的帐号只能停用,不能删除,您确定要停用吗?", MsgTitle.Prompt, MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (result == DialogResult.OK)
{
dwXyBr.SetItemDecimal(dwXyBr.CurrentRow, "xfbz", 1);
this.m_IsModified = true;
this.btnSave.Enabled = true;
}
}
else
{
MessageBox.Show("请选择需要删除的病人再单击删除按钮!", MsgTitle.Prompt);
}
}
private void btnModify_Click(object sender, EventArgs e)
{
try
{
dwXyBr.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)
{
if (!dwXyBr.AcceptText())
return;
//检验数据完整性
if (!this.CheckYhXx())
return;
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddDataWindow(this.dwXyBr);
proxy.Update();
this.m_IsModified = false;
btnSave.Enabled = false;
}
catch (Exception ex)
{
MessageBox.Show("保存协议病人信息发生异常:" + ex.Message, MsgTitle.Error);
}
}
private bool CheckYhXx()
{
string colName = "";
string errorMsg = "";
int rowNum = 0;
int rowCount = 0;
DataBuffer buffer = DataBuffer.Primary;
find:
if (buffer == DataBuffer.Primary)
rowCount = dwXyBr.RowCount;
else
rowCount = dwXyBr.FilteredCount;
rowNum = 0;
do
{
rowNum = dwXyBr.FindNextModifiedRow(rowNum, buffer);
if (rowNum > 0)
{
colName = "XyBrId";
if (this.dwXyBr.IsItemNull(rowNum, colName))
{
errorMsg = "协议病人ID";
goto Error;
//break;
}
colName = "BrXm";
if (this.dwXyBr.IsItemNull(rowNum, colName))
{
errorMsg = "病人姓名";
goto Error;
//break;
}
colName = "DwId";
if (this.dwXyBr.IsItemNull(rowNum, colName))
{
errorMsg = "单位ID";
goto Error;
//break;
}
colName = "DwMc";
if (this.dwXyBr.IsItemNull(rowNum, colName))
{
errorMsg = "单位名称";
goto Error;
//break;
}
colName = "CsRq";
if (this.dwXyBr.IsItemNull(rowNum, colName))
{
errorMsg = "出生日期";
goto Error;
//break;
}
colName = "Xb";
if (this.dwXyBr.IsItemNull(rowNum, colName))
{
errorMsg = "性别";
goto Error;
//break;
}
colName = "LxDh";
if (this.dwXyBr.IsItemNull(rowNum, colName))
{
errorMsg = "联系电话";
goto Error;
//break;
}
}
else
{
rowNum = rowCount;
}
}
while (rowNum < rowCount);
//处理过滤缓冲区
if (buffer == DataBuffer.Primary && dwXyBr.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.dwXyBr.ScrollToRow(rowNum);
this.dwXyBr.Focus();
this.dwXyBr.SetRow(rowNum);
this.dwXyBr.SetColumn(colName);
}
return false;
}
return true;
}
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();
}
private void btnClose_Click(object sender, EventArgs e)
{
this.ParentForm.Close();
}
private void dwXyBr_Click(object sender, EventArgs e)
{
if (this.btnAdd.Enabled && dwXyBr.ObjectUnderMouse.Band.Type == BandType.Detail)
{
if (dwXyBr.ObjectUnderMouse.Gob.Name == "xfbz")
{
if (!this.m_IsModified)
{
this.m_IsModified = true;
this.btnSave.Enabled = true;
}
}
}
}
private void dwXyBr_ItemError(object sender, ItemErrorEventArgs e)
{
e.Action = ItemErrorAction.RejectWithNoMessage;
}
private void dwXyBr_EditChanged(object sender, EditChangedEventArgs e)
{
if (!this.m_IsModified)
{
this.m_IsModified = true;
this.btnSave.Enabled = true;
}
}
private void dwXyBr_ItemChanged(object sender, Sybase.DataWindow.ItemChangedEventArgs e)
{
if (e.ColumnName == "dwmc")
{
if (e.Data == null || e.Data.Trim() == "")
{
dwXyBr.SetItemNull(e.RowNumber, "dwmc");
dwXyBr.SetItemNull(e.RowNumber, "dwid");
return;
}
FSelect fSelect = null;
try
{
fSelect = new FSelect();
fSelect.SetTitle("单位信息");
string sql = "SELECT DWMC,DWBH,DWID FROM GY_DWXX WHERE " + App.mrSrm + " LIKE '" + e.Data + "%'";
fSelect.SetDataSource(sql, true);
fSelect.AddShowColumn("DWBH", "单位编号", 200);
fSelect.AddShowColumn("DWMC", "单位名称", 1000);
fSelect.AddMultiReturnColumn("DWID,DWMC");
DialogResult dResult = fSelect.ShowDialog(this);
if (dResult == DialogResult.OK)
{
string[] retValue = fSelect.ReturnValue;
//单位ID
dwXyBr.SetItemString(e.RowNumber, "dwid", retValue[0]);
e.Action = ItemChangedAction.RejectAndAllowFocusChange;
//单位名称
dwXyBr.SetItemString(e.RowNumber, "dwmc", retValue[1]);
}
else
{
e.Action = ItemChangedAction.Reject;
dwXyBr.SetItemNull(e.RowNumber, "dwid");
dwXyBr.SetItemNull(e.RowNumber, "dwmc");
}
}
catch (Exception ex)
{
MessageBox.Show("取单位信息发生异常:" + ex.Message, MsgTitle.Error);
e.Action = ItemChangedAction.Reject;
dwXyBr.SetItemNull(e.RowNumber, "dwid");
dwXyBr.SetItemNull(e.RowNumber, "dwmc");
}
finally
{
if (fSelect != null)
fSelect.Dispose();
}
}
}
#region 在数据窗口中查找记录
public override void FindInDw(string value)
{
if (value == null)
value = "";
int findRow = dwXyBr.FindRow("xybrid='" + value + "' or brxm='" + value + "'", 1, dwXyBr.RowCount);
if (findRow > 0)
{
dwXyBr.ScrollToRow(findRow);
dwXyBr.SetRow(findRow);
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -