273 lines
10 KiB
C#
273 lines
10 KiB
C#
using AIMSBLL;
|
|
using AIMSExtension;
|
|
using AIMSModel;
|
|
using DataDictionary;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AIMS.PublicUI.UI
|
|
{
|
|
public partial class frmSelectDisease : Form
|
|
{
|
|
private int currentPage = 0;
|
|
private int total = 0;
|
|
private int pages = 0;
|
|
private DataTable SelectLeftdt;
|
|
public List<int> SelectRightData = new List<int>();
|
|
public frmSelectDisease()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void frmSelectDisease_Load(object sender, EventArgs e)
|
|
{
|
|
if (PublicMethod.RoleName.Contains("增加诊断"))
|
|
{
|
|
btnAddDisease.Visible = true;
|
|
}
|
|
ControlExtension.SetDgvAttribute(dgvDisease);
|
|
ControlExtension.SetDgvAttribute(dgvSelectDisease);
|
|
|
|
SelectLeftdt = BDisease.GetDataTable("");
|
|
|
|
this.currentPage = 0;
|
|
this.total = SelectLeftdt.Rows.Count;
|
|
if (this.total % 15 == 0)
|
|
{
|
|
this.pages = this.total / 15;
|
|
}
|
|
else
|
|
{
|
|
this.pages = this.total / 15 + 1;
|
|
}
|
|
this.labPage.Text = this.currentPage + 1 + "/" + this.pages;
|
|
this.dgvDisease.DataSource = this.GetTableByCurrentPage(this.currentPage, SelectLeftdt);
|
|
|
|
if (SelectRightData.Count > 0)
|
|
{
|
|
foreach (int RowId in SelectRightData)
|
|
{
|
|
Disease DiseaseObj = BDisease.GetModel(RowId);
|
|
dgvSelectDisease.Rows.Add(DiseaseObj.Id, DiseaseObj.IcdCode, DiseaseObj.Name);
|
|
}
|
|
}
|
|
txtHelpCode.Focus();
|
|
}
|
|
private DataTable GetTableByCurrentPage(int currPage, DataTable dt)
|
|
{
|
|
DataTable dataTable = dt.Clone();
|
|
int num = currPage * 15;
|
|
for (int i = num; i < num + 15 && i != this.total; i++)
|
|
{
|
|
DataRow dataRow = dataTable.NewRow();
|
|
dataRow["Id"] = Convert.ToInt32(dt.Rows[i]["Id"]);
|
|
dataRow["IcdCode"] = dt.Rows[i]["IcdCode"].ToString();
|
|
dataRow["Name"] = dt.Rows[i]["Name"].ToString();
|
|
dataTable.Rows.Add(dataRow);
|
|
}
|
|
return dataTable;
|
|
}
|
|
|
|
private void txtHelpCode_TextChanged(object sender, EventArgs e)
|
|
{
|
|
this.dgvDisease.AutoGenerateColumns = false;
|
|
this.SelectLeftdt = BDisease.GetDataTable(txtHelpCode.Text.Trim());
|
|
|
|
this.dgvDisease.DataSource = this.SelectLeftdt;
|
|
this.currentPage = 0;
|
|
this.total = this.SelectLeftdt.Rows.Count;
|
|
if (this.total % 15 == 0)
|
|
{
|
|
this.pages = this.total / 15;
|
|
}
|
|
else
|
|
{
|
|
this.pages = this.total / 15 + 1;
|
|
}
|
|
this.labPage.Text = this.currentPage + 1 + "/" + this.pages;
|
|
this.dgvDisease.DataSource = this.GetTableByCurrentPage(this.currentPage, this.SelectLeftdt);
|
|
}
|
|
|
|
private void lkUp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
|
{
|
|
if (this.total != 0 && this.currentPage != 0)
|
|
{
|
|
this.currentPage--;
|
|
this.dgvDisease.DataSource = this.GetTableByCurrentPage(this.currentPage, SelectLeftdt);
|
|
this.labPage.Text = this.currentPage + 1 + "/" + this.pages;
|
|
}
|
|
}
|
|
|
|
private void labDown_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
|
{
|
|
if (this.total != 0 && this.currentPage + 1 != this.pages)
|
|
{
|
|
this.currentPage++;
|
|
this.dgvDisease.DataSource = this.GetTableByCurrentPage(this.currentPage, this.SelectLeftdt);
|
|
this.labPage.Text = this.currentPage + 1 + "/" + this.pages;
|
|
}
|
|
}
|
|
private void dgvDisease_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if (dgvDisease.Rows.Count > 0)
|
|
{
|
|
int num = Convert.ToInt32(this.dgvDisease.CurrentRow.Cells["Id"].Value);
|
|
|
|
DataTable SelectDataTable = GetDgvToTable(dgvSelectDisease);
|
|
|
|
foreach (DataRow row in SelectDataTable.Rows)
|
|
{
|
|
if (Convert.ToInt32(row["SelectIdColumn"]) == num)
|
|
{
|
|
MessageBox.Show("已选择!");
|
|
return;
|
|
}
|
|
}
|
|
dgvSelectDisease.Rows.Add(
|
|
dgvDisease.CurrentRow.Cells["Id"].Value.ToString(),
|
|
dgvDisease.CurrentRow.Cells["IcdCodeColumn"].Value.ToString(),
|
|
dgvDisease.CurrentRow.Cells["NameColumn"].Value.ToString());
|
|
|
|
}
|
|
}
|
|
public static DataTable GetDgvToTable(DataGridView dgv)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
|
|
// 列强制转换
|
|
for (int count = 0; count < dgv.Columns.Count; count++)
|
|
{
|
|
DataColumn dc = new DataColumn(dgv.Columns[count].Name.ToString());
|
|
dt.Columns.Add(dc);
|
|
}
|
|
|
|
// 循环行
|
|
for (int count = 0; count < dgv.Rows.Count; count++)
|
|
{
|
|
DataRow dr = dt.NewRow();
|
|
for (int countsub = 0; countsub < dgv.Columns.Count; countsub++)
|
|
{
|
|
dr[countsub] = Convert.ToString(dgv.Rows[count].Cells[countsub].Value);
|
|
}
|
|
dt.Rows.Add(dr);
|
|
}
|
|
return dt;
|
|
}
|
|
private void btnToRight_Click(object sender, EventArgs e)
|
|
{
|
|
dgvDisease_CellDoubleClick(null, null);
|
|
}
|
|
|
|
private void btnToLeft_Click(object sender, EventArgs e)
|
|
{
|
|
if (dgvSelectDisease.Rows.Count > 0)
|
|
{
|
|
dgvSelectDisease.Rows.RemoveAt(dgvSelectDisease.CurrentRow.Index);
|
|
}
|
|
}
|
|
|
|
private void btnOk_Click(object sender, EventArgs e)
|
|
{
|
|
SelectRightData.Clear();
|
|
if (dgvSelectDisease.Rows.Count > 0)
|
|
{
|
|
for (int i = 0; i < dgvSelectDisease.Rows.Count; i++)
|
|
{
|
|
SelectRightData.Add(int.Parse(dgvSelectDisease.Rows[i].Cells["SelectIdColumn"].Value.ToString()));
|
|
}
|
|
|
|
}
|
|
Close();
|
|
}
|
|
|
|
private void btnAddDisease_Click(object sender, EventArgs e)
|
|
{
|
|
Disease DiseaseObj = new Disease();
|
|
DiseaseObj.Name = txtHelpCode.Text.Trim();
|
|
DiseaseObj.IcdCode = "";
|
|
DiseaseObj.HelpCode = AIMSExtension.PublicMethod.GetFirstLetter(DiseaseObj.Name);
|
|
DiseaseObj.IsValid = 1;
|
|
DiseaseObj.UseRate = 1;
|
|
DiseaseObj.OperatorNo = AIMSExtension.PublicMethod.OperatorNo;
|
|
DiseaseObj.OperatorName = AIMSExtension.PublicMethod.OperatorName;
|
|
DiseaseObj.OperateDate = AIMSExtension.PublicMethod.SystemDate();
|
|
if (DiseaseObj.Name == "")
|
|
{
|
|
MessageBox.Show("名称不能为空!");
|
|
return;
|
|
}
|
|
if (BDisease.IsExit(DiseaseObj.Name))
|
|
{
|
|
MessageBox.Show("该事件已存在");
|
|
return;
|
|
}
|
|
BDisease.Add(DiseaseObj);
|
|
|
|
txtHelpCode_TextChanged(null, null);
|
|
dgvDisease_CellDoubleClick(null, null);
|
|
}
|
|
|
|
private void dgvSelectDisease_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if (dgvSelectDisease.Rows.Count > 0)
|
|
{
|
|
dgvSelectDisease.Rows.RemoveAt(dgvSelectDisease.CurrentRow.Index);
|
|
}
|
|
}
|
|
|
|
private void btnUp_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
DataGridViewSelectedRowCollection dgvsrc = dgvSelectDisease.SelectedRows;//获取选中行的集合
|
|
if (dgvsrc.Count > 0)
|
|
{
|
|
int index = dgvSelectDisease.SelectedRows[0].Index;//获取当前选中行的索引
|
|
if (index > 0)//如果该行不是第一行
|
|
{
|
|
DataGridViewRow dgvr = dgvSelectDisease.Rows[index - dgvsrc.Count];//获取选中行的上一行
|
|
dgvSelectDisease.Rows.RemoveAt(index - dgvsrc.Count);//删除原选中行的上一行
|
|
dgvSelectDisease.Rows.Insert((index), dgvr);//将选中行的上一行插入到选中行的后面
|
|
for (int i = 0; i < dgvsrc.Count; i++)//选中移动后的行
|
|
{
|
|
dgvSelectDisease.Rows[index - i - 1].Selected = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.ToString());
|
|
}
|
|
}
|
|
|
|
private void btnDown_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
DataGridViewSelectedRowCollection dgvsrc = dgvSelectDisease.SelectedRows;//获取选中行的集合
|
|
if (dgvsrc.Count > 0)
|
|
{
|
|
int index = dgvSelectDisease.SelectedRows[0].Index;//获取当前选中行的索引
|
|
if (index >= 0 & (dgvSelectDisease.RowCount - 1) != index)//如果该行不是最后一行
|
|
{
|
|
DataGridViewRow dgvr = dgvSelectDisease.Rows[index + 1];//获取选中行的下一行
|
|
dgvSelectDisease.Rows.RemoveAt(index + 1);//删除原选中行的上一行
|
|
dgvSelectDisease.Rows.Insert((index + 1 - dgvsrc.Count), dgvr);//将选中行的上一行插入到选中行的后面
|
|
for (int i = 0; i < dgvsrc.Count; i++)//选中移动后的行
|
|
{
|
|
dgvSelectDisease.Rows[index + 1 - i].Selected = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.ToString());
|
|
}
|
|
}
|
|
}
|
|
}
|