📄 ucdictksxxwh.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.Support;
using Qeb.Support.Common;
using Qeb.DBProxy;
using Qeb.Control;
namespace Qeb.GY
{
public partial class UCDictKsXxWh : Qeb.GY.UCDictBase
{
DataTable dtKsXx = null;
int Jc = 0;
public UCDictKsXxWh()
{
InitializeComponent();
}
public void InitTreeView()
{
tvCatalog.Nodes.Clear();
QDataStore dsYqXx = null;
QDataStore dsKsXx = null;
try
{
tvCatalog.BeginUpdate();
DbProxyClient proxy = new DbProxyClient();
//取院区信息
dsYqXx = new QDataStore();
dsYqXx.LibraryList = PBL.GyPbl;
dsYqXx.DataWindowObject = GyDataObjects.D_Gy_YqXx;
proxy.Clear();
proxy.Retrieve(dsYqXx);
//取科室信息
dsKsXx = new QDataStore();
dsKsXx.LibraryList = PBL.GyPbl;
dsKsXx.DataWindowObject = GyDataObjects.D_Gy_KsXx;
proxy.Clear();
proxy.AddRetrieveParam("p_ksid", "all");
proxy.Retrieve(dsKsXx);
dtKsXx = dsKsXx.CovertToDataTable();
string yqid = "";
string yqmc = "";
dsYqXx.SetSort("pxxh");
dsYqXx.Sort();
for (int i = 1; i < dsYqXx.RowCount + 1; i++)
{
if (dsYqXx.IsItemNull(i, "yqid") || dsYqXx.IsItemNull(i, "yqmc"))
continue;
else
{
yqid = dsYqXx.GetItemString(i, "yqid");
yqmc = dsYqXx.GetItemString(i, "yqmc");
}
//院区
TreeNode nodeYq = tvCatalog.Nodes.Add(yqid, yqmc);
nodeYq.Tag = yqid;
nodeYq.ImageKey = QTreeView.ImageKeyEnum.Level1_Close.ToString();
nodeYq.SelectedImageKey = QTreeView.ImageKeyEnum.Level1_Open.ToString();
//
AddSubTreeView(nodeYq,dtKsXx, yqid, "0");
}
}
catch (Exception ex)
{
MessageBox.Show("初始化导航树发生异常:" + ex.Message);
}
finally
{
if (dsYqXx != null)
dsYqXx.Dispose();
if (dsKsXx != null)
dsKsXx.Dispose();
if (dtKsXx != null)
dtKsXx.Dispose();
tvCatalog.EndUpdate();
}
}
private void AddSubTreeView(TreeNode parentNode,DataTable dtKsXx, string yqId,string flKsId)
{
DataRow[] rows;
rows = dtKsXx.Select("yqid='" + yqId + "' and flksid='" + flKsId + "'");
if (rows.Length == 0)
return;
string ksId = "";
string ksMc = "";
foreach (DataRow dr in rows)
{
ksId = dr["ksid"].ToString();
ksMc = dr["ksmc"].ToString();
TreeNode node = parentNode.Nodes.Add(ksId, ksMc);
node.Tag = ksId;
if (flKsId == "0")
{
node.ImageKey = QTreeView.ImageKeyEnum.Level2_Close.ToString();
node.SelectedImageKey = QTreeView.ImageKeyEnum.Level2_Open.ToString();
}
else
{
node.ImageKey = QTreeView.ImageKeyEnum.Level3_Close.ToString();
node.SelectedImageKey = QTreeView.ImageKeyEnum.Level3_Open.ToString();
}
AddSubTreeView(node, dtKsXx, yqId, dr["ksid"].ToString());
}
}
private void UCDictKsXxWh_Load(object sender, EventArgs e)
{
InitTreeView();
this.dwKsXx.LibraryList = PBL.GyPbl;
this.dwKsXx.DataWindowObject = GyDataObjects.D_Gy_KsXx;
}
private void dwKsXx_EditChanged(object sender, EditChangedEventArgs e)
{
this.m_IsModified = true;
}
private void dwKsXx_Click(object sender, EventArgs e)
{
//if (dwKsXx.ObjectUnderMouse.Band.Type == BandType.Detail)
//{
// string colNames = "|zfbz|gh|";
// string temp = "|" + dwKsXx.ObjectUnderMouse.Gob.Name + "|";
// if (colNames.IndexOf(temp)==0)
// {
// if (!this.m_IsModified)
// {
// this.m_IsModified = true;
// }
// }
//}
}
private string GetFlKsId(TreeNode node)
{
if (node.Level == 0)
{
return "0";
}
else
{
return node.Tag.ToString();
}
}
private void SetDwChild(string ksId,string yqId)
{
//
DataWindowChild dwc = dwKsXx.GetChild("yqid");
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.Retrieve(dwc);
//
DataWindowChild dwcFlKs = dwKsXx.GetChild("flksid");
proxy.Clear();
proxy.AddRetrieveParam("p_yqid", yqId);
proxy.Retrieve(dwcFlKs);
//
dwcFlKs.SetFilter("ksid <>'" + ksId + "'and jc<=" + Jc + " and flksid<>'" + ksId + "'");
dwcFlKs.Filter();
//int row = dwcFlKs.FindRow("ksid='" + ksId + "' or flksid ='" + ksId + "'", 1, dwcFlKs.RowCount);
//while (row > 0)
//{
// dwcFlKs.DeleteRow(row);
// if (row >= dwcFlKs.RowCount)
// break;
// row = dwcFlKs.FindRow("ksid='" + ksId + "' or flksid ='" + ksId + "'", row, dwcFlKs.RowCount);
//}
//
int row = dwcFlKs.InsertRow(0);
dwcFlKs.SetItemString(row, "ksid", "0");
dwcFlKs.SetItemString(row, "ksmc","无");
dwcFlKs.SetSort("ksid");
dwcFlKs.Sort();
}
private void tvCatalog_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if (e.Node.Level == 0)
{
return;
}
try
{
string ksId = e.Node.Tag.ToString();
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddRetrieveParam("p_ksid", ksId);
proxy.Retrieve(dwKsXx);
Jc = Convert.ToInt32(dwKsXx.GetItemString(1, "jc").ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
dwKsXx.Reset();
}
try
{
string yqId = GetYqId(tvCatalog.SelectedNode);
string ksId = tvCatalog.SelectedNode.Tag.ToString();
SetDwChild(ksId,yqId);
dwKsXx.Refresh();
}
catch (Exception ex)
{
MessageBox.Show("处理子数据窗口发生异常:" + ex.Message);
}
}
private void tvCatalog_BeforeSelect(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
{
if (m_IsModified)
{
//MessageBox.
//e.Cancel = true;
this.m_IsModified = false;
return;
}
this.dwKsXx.Reset();
}
private void btnClose_Click(object sender, EventArgs e)
{
this.ParentForm.Close();
}
private void btnPrint_Click(object sender, EventArgs e)
{
}
private void btnRetrieve_Click(object sender, EventArgs e)
{
}
private void btnSave_Click(object sender, EventArgs e)
{
if (dwKsXx.RowCount == 0)
return;
if (this.m_IsModified == false)
return;
dwKsXx.AcceptText();
StringBuilder ksSx = new StringBuilder();
string[] colNames = new string[] { "gh", "lc", "jcha", "jy", "ss", "zl", "hl", "ck", "zyk", "xyk", "cyk", "zjs", "zyf", "xyf", "cyf", "lybm", "yys", "wcs", "tj", "flbm" };
string temp = "";
for (int i = 0; i < colNames.Length; i++)
{
if (dwKsXx.IsItemNull(1,colNames[i]))
ksSx.Append("0");
else
{
temp = dwKsXx.GetItemString(1, colNames[i]);
if (temp == "1")
ksSx.Append("1");
else
ksSx.Append("0");
}
}
temp = ksSx.ToString();
if (temp.Length < 40)
{
temp = temp.PadRight(40, '0');
}
dwKsXx.SetItemString(1, "kssx",temp);
dwKsXx.SetItemSqlDecimal(1, "jc", Jc + 1);
//dwKsXx.SetItemString(1, "SxJc", Jc);
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddDataWindow(this.dwKsXx);
proxy.Update();
this.m_IsModified = false;
MessageBox.Show("信息保存成功!");
RetrieveData();
label1.Text = "";
}
catch (Exception ex)
{
MessageBox.Show("保存科室信息发生异常:" + ex.Message, MsgTitle.Error);
}
}
private bool IsDel()
{
//待完成
return true;
}
private void btnTvDel_Click(object sender, EventArgs e)
{
try
{
if (tvCatalog.SelectedNode.Level != 0)
{
DbProxyClient proxy = App.DbProxy;
//判断是否子节点 nodes =0没有子节点,nodes>0有子节点
int nodes = tvCatalog.SelectedNode.Nodes.Count;
if (nodes > 0)
{
return;
}
//判断是否可删除
if (!IsDel())
{
//不能删除,MessageBox提示不可删除原因
return;
}
DialogResult result = DialogResult.No;
result = MessageBox.Show(this, "数据已修改,是否需要保存?", MsgTitle.Prompt, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
//从数据库删除
dwKsXx.DeleteRow(0);
proxy.Clear();
proxy.AddDataWindow(dwKsXx);
proxy.Update();
//从界面移初
tvCatalog.SelectedNode.Remove();
}
else
{
return;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private string GetYqId(TreeNode node)
{
TreeNode nodeTemp = node;
while (nodeTemp.Level > 0)
{
nodeTemp = nodeTemp.Parent;
}
return nodeTemp.Tag.ToString();
}
private void btnTvAdd_Click(object sender, EventArgs e)
{
//判断是否有修改为保存
//...
TreeNode node = tvCatalog.SelectedNode;
string flKsId = GetFlKsId(node);
string yqId = GetYqId(node);
//
dwKsXx.Reset();
int row = dwKsXx.InsertRow(0);
dwKsXx.SetItemString(row, "flksid", flKsId);
dwKsXx.SetItemString(row, "yqid", yqId);
//
dwKsXx.SetItemDecimal(row, "zfbz", 0);
dwKsXx.SetItemDecimal(row, "mjbz", 0);
//
SetDwChild("", yqId);
}
private void RetrieveData()
{
InitTreeView();
this.dwKsXx.LibraryList = PBL.GyPbl;
this.dwKsXx.DataWindowObject = GyDataObjects.D_Gy_KsXx;
}
private void dwKsXx_ItemChanged(object sender, Sybase.DataWindow.ItemChangedEventArgs e)
{
this.m_IsModified = true;
if (e.ColumnName == "ksmc")
{
if (e.Data == null || e.Data.Trim() == "")
{
e.Action = ItemChangedAction.Reject;
dwKsXx.SetItemNull(e.RowNumber, "ksmc");
dwKsXx.SetItemNull(e.RowNumber, "srm1");
dwKsXx.SetItemNull(e.RowNumber, "srm2");
dwKsXx.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 == "")
{
dwKsXx.SetItemString(e.RowNumber, "srm1", srm1);
dwKsXx.SetItemString(e.RowNumber, "srm2", srm2);
dwKsXx.SetItemString(e.RowNumber, "srm3", srm3);
}
else
{
MessageBox.Show(errMsg, MsgTitle.Error);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -