• DataGridView添加另外一个控件。


      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Drawing;
      5 using System.Data;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Windows.Forms;
      9 using System.Xml;
     10 
     11 namespace XjxMobilenursing
     12 {
     13     public partial class frmNurseList : UserControl
     14     {
     15         #region 全局变量
     16         private frmNurse myparentform = null; //父窗体
     17         private string strtemplate = "";      //Web Service 返回的XML数据
     18         private bool bolLook = true;         //是否锁定
     19         private ComboBox mySingleVeto;
     20         private DataGridView mypopudatagridview = null;
     21         private int iRowIndex = 0;
     22         private string strrq1 = "";
     23         private int yzlx = 0;
     24         private Nurseinfo fNurseinfo = null; 
     25      //   private Dictionary<string, DataTable> conDataitems = new Dictionary<string, DataTable>();
     26         #endregion
     27         public frmNurseList()
     28         {
     29             InitializeComponent();
     30         }
     31         #region 类成员GET和SET方法
     32         public frmNurse OwnerParentForm
     33         {
     34             get
     35             { return myparentform; }
     36             set
     37             { this.myparentform = value; }
     38         }
     39         public bool bLook
     40         {
     41             get
     42             {
     43                 return this.bolLook;
     44             }
     45             set
     46             {
     47                 this.bolLook = value;
     48             }
     49         }
     50         public string RQ1
     51         {
     52             get
     53             {
     54                 if (!StringCommon.IsDate(this.strrq1))
     55                 {
     56                     this.strrq1 = DateTime.Now.ToString("yyyy-MM-dd");
     57 
     58                 }
     59                 return strrq1;
     60             }
     61             set
     62             {
     63                 this.strrq1 = value;
     64             }
     65         }
     66         //public Dictionary<string, DataTable> conData
     67         //{
     68         //    get
     69         //    {
     70         //        return conDataitems;
     71         //    }
     72         //    set { conDataitems = value; }
     73         //}
     74         #endregion
     75         #region 重置dataGridView数据
     76         public void ReflashTable()
     77         {
     78             try
     79             {
     80                 if (this.NurseGridList == null) return;
     81                 DataTable dt = (DataTable)NurseGridList.DataSource;
     82                 if (dt != null)
     83                 {
     84                     dt.Rows.Clear();
     85                     NurseGridList.DataSource = dt;
     86                 }
     87             }
     88             catch (Exception ex)
     89             {
     90                 MessageBox.Show(ex.Source + ":" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
     91             }
     92         }
     93         #endregion
     94         #region get护理单记录信息XML
     95         public bool getNurseListInfo(string rq1, string rq2)
     96         {
     97             try
     98             {
     99                 if (this.OwnerParentForm == null)
    100                     return false;
    101                 if (!StringCommon.IsDate(rq1))
    102                 {
    103                     rq1 = DateTime.Parse(this.OwnerParentForm.OwnerParentForm.CurrentPatientInfo.rysj).ToString("yyyy-MM-dd");
    104                 }
    105                 if (!StringCommon.IsDate(rq2))
    106                 {
    107                     rq2 = DateTime.Now.ToString("yyyy-MM-dd");
    108                 }
    109                 string strresult;
    110                 this.strtemplate = "";
    111                 strresult = this.OwnerParentForm.OwnerParentForm.Xjxinfoweb.GetNurseTableinfo(Properties.Settings.Default.strapplication_account,
    112                     this.OwnerParentForm.OwnerParentForm.CurrentPatientInfo.lsh, rq1, rq2);
    113 
    114                 if (strresult.IndexOf("error") > -1)
    115                 {
    116                     return false;
    117                 }
    118                 else if (strresult == "")
    119                 {
    120                     return false;
    121                 }
    122                 this.strtemplate = strresult;
    123                 return true;
    124             }
    125             catch (Exception ex)
    126             {
    127                 MessageBox.Show(ex.Source + ":" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    128                 return false;
    129             }
    130         }
    131         #endregion
    132         #region Set护理单信息XML到DataTable
    133         private DataTable FromXML2DataTable(string XMLStr)
    134         {
    135             XmlDocument myDoc = new XmlDocument();
    136             myDoc.LoadXml(XMLStr);
    137             if (string.IsNullOrEmpty(XMLStr) || !myDoc.HasChildNodes) return null;
    138             DataTable dt = new DataTable();
    139             DataRow row = null;
    140             DataColumn col = null;
    141             //填充数据
    142             foreach (XmlElement el in myDoc.SelectNodes("Nurseinfos/row"))
    143             {
    144                 row = dt.NewRow();
    145                 foreach (XmlNode node in el.ChildNodes)
    146                 {
    147                     if (!dt.Columns.Contains(node.Name))
    148                     {
    149                         col = new DataColumn();
    150                         col.ColumnName = node.Name;
    151                         dt.Columns.Add(col);
    152                     }
    153                     row[node.Name] = node.InnerText;
    154                 }
    155                 dt.Rows.Add(row);
    156             }
    157             return dt;
    158         }
    159         #endregion
    160         #region Set护理单信息DataTable到GridView
    161         public void ShowNurseTable()
    162         {
    163             DataTable ds = FromXML2DataTable(this.strtemplate);
    164             if (ds != null && ds.Rows.Count > 0)
    165             {
    166                 NurseGridList.AutoGenerateColumns = false;
    167                 NurseGridList.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
    168                 NurseGridList.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
    169                 NurseGridList.DataSource = ds;
    170                 NurseGridList.ClearSelection();
    171             }
    172         }
    173         #endregion
    174         #region Set护理单GridView可编辑
    175         public void SetEditNurseTable()
    176         {
    177             try
    178             {
    179                 this.bLook = false;
    180                 this.NurseGridList.ReadOnly = this.bolLook;
    181                 this.NurseGridList.AllowUserToAddRows = !this.bolLook;
    182                 if (this.NurseGridList.RowCount <= 0) return;
    183                 this.NurseGridList.FirstDisplayedScrollingRowIndex = this.NurseGridList.Rows.Count - 1;
    184                 this.NurseGridList.Rows[this.NurseGridList.Rows.Count - 1].Selected = true;
    185                 this.NurseGridList.CurrentCell = this.NurseGridList.Rows[this.NurseGridList.Rows.Count - 1].Cells["rqsj"];
    186                 this.NurseGridList.Focus();
    187                 this.NurseGridList.BeginEdit(false);
    188             }
    189             catch (Exception ex)
    190             {
    191                 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    192             }
    193         }
    194         #endregion
    195         #region Set护理单GridView删除
    196         public void SetdelNurseTable()
    197         {
    198             try
    199             {
    200                 fNurseinfo = FillNurseinfo();
    201                 this.yzlx = 3;
    202                 string requestParam = this.PkgCtrlParams(yzlx, fNurseinfo);
    203                 string rtn = OwnerParentForm.OwnerParentForm.Xjxinfoweb.SetNurseRequest(requestParam);
    204                 MessageBox.Show(rtn);
    205             }
    206             catch (Exception ex)
    207             {
    208                 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    209             }
    210         }
    211         #endregion
    212         #region 窗体初始化
    213         private void frmNurseList_Load(object sender, EventArgs e)
    214         {
    215             try
    216             {
    217                 this.mySingleVeto = new ComboBox();
    218                 this.mySingleVeto.FormattingEnabled = true;
    219                 this.mySingleVeto.Items.AddRange(new object[] {
    220             "",
    221             "True",
    222             "False"});
    223                 this.mySingleVeto.BringToFront();
    224                 this.mySingleVeto.SelectedIndexChanged += new System.EventHandler(this.mySingleVeto_SelectedIndexChanged);
    225                 //this.mySingleVeto.Click += new System.EventHandler(this.mySingleVeto_Click);
    226                 this.mySingleVeto.KeyUp += new System.Windows.Forms.KeyEventHandler(this.mySingleVeto_KeyUp);
    227                 this.mySingleVeto.Visible = false;
    228                 InitDataGridView(this.NurseGridList, "ZY_tHLDTJLD");
    229                 this.NurseGridList.Controls.Add(this.mySingleVeto);
    230 
    231                 mypopudatagridview = new DataGridView();
    232                 mypopudatagridview.Width = 200;
    233                 mypopudatagridview.Height = 200;
    234                 mypopudatagridview.AllowUserToAddRows = false;
    235                 mypopudatagridview.AllowUserToDeleteRows = false;
    236                 mypopudatagridview.AllowUserToResizeRows = false;
    237                 mypopudatagridview.BackgroundColor = System.Drawing.Color.White;
    238                 mypopudatagridview.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
    239                 mypopudatagridview.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.mypopudatagridview_CellClick);
    240                 mypopudatagridview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
    241                 mypopudatagridview.MultiSelect = false;
    242                 mypopudatagridview.Name = "mypopudatagridview";
    243                 mypopudatagridview.ReadOnly = true;
    244                 mypopudatagridview.RowTemplate.Height = 23;
    245                 mypopudatagridview.Cursor = Cursors.Hand;
    246                 mypopudatagridview.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
    247                 mypopudatagridview.AllowUserToOrderColumns = false;
    248                 mypopudatagridview.RowHeadersVisible = false;
    249                 mypopudatagridview.Visible = false;
    250                 this.NurseGridList.Controls.Add(mypopudatagridview);
    251                 InitPopDataGridView(mypopudatagridview, "XT_TCSSZ");
    252             }
    253             catch (Exception ex)
    254             {
    255                 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    256             }
    257         }
    258         #endregion
    259         #region 主GridView初始化
    260         private void InitDataGridView(DataGridView sender, string strName)
    261         {
    262             try
    263             {
    264                 DataTable dt = new DataTable(strName);
    265                 dt.Columns.Add("jlid");
    266                 dt.Columns.Add("lsh");
    267                 dt.Columns.Add("JLR");
    268                 dt.Columns.Add("rqsj");
    269                 dt.Columns.Add("sz");
    270                 dt.Columns.Add("xybhd");
    271                 dt.Columns.Add("tk_y");
    272                 dt.Columns.Add("tk_z");
    273                 dt.Columns.Add("dgfs_y");
    274                 dt.Columns.Add("dgfs_z");
    275                 dt.Columns.Add("rl_mc");
    276                 dt.Columns.Add("rllx");
    277                 dt.Columns.Add("rl_l");
    278                 dt.Columns.Add("cl_mc");
    279                 dt.Columns.Add("cllx");
    280                 dt.Columns.Add("cl_l");
    281                 dt.Columns.Add("bbreathingmachine");
    282                 dt.Columns.Add("hx");
    283                 dt.Columns.Add("s");
    284                 dt.Columns.Add("f");
    285                 dt.Columns.Add("qm");
    286                 sender.DataSource = dt;
    287                 sender.AllowUserToOrderColumns = false;
    288                 sender.RowHeadersVisible = false;
    289                 sender.ReadOnly = this.bolLook;
    290                 sender.AllowUserToAddRows = !this.bolLook;
    291                 sender.Columns["jlid"].HeaderText = "jlid";
    292                 sender.Columns["jlid"].Visible = false;
    293                 sender.Columns["lsh"].HeaderText = "lsh";
    294                 sender.Columns["lsh"].Visible = false;
    295                 sender.Columns["JLR"].HeaderText = "JLR";
    296                 sender.Columns["JLR"].Visible = false;
    297 
    298                 sender.Columns["rqsj"].HeaderText = "日期";
    299                 sender.Columns["rqsj"].Width = 100;
    300                 //  sender.Columns["rqsj"].ReadOnly = this.bolLook;
    301                 sender.Columns["rqsj"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    302 
    303                 sender.Columns["sz"].HeaderText = "神志";
    304                 sender.Columns["sz"].Width = 60;
    305               //  sender.Columns["sz"].ReadOnly = this.bolLook;
    306                 sender.Columns["sz"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    307 
    308                 sender.Columns["xybhd"].HeaderText = "血氧饱和度%";
    309                 sender.Columns["xybhd"].Width = 150;
    310                 //  sender.Columns["xybhd"].ReadOnly = this.bolLook;
    311                 sender.Columns["xybhd"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    312 
    313                 sender.Columns["tk_y"].HeaderText = "对光反应右";
    314                 sender.Columns["tk_y"].Width = 150;
    315                 // sender.Columns["tk_y"].ReadOnly = this.bolLook;
    316                 sender.Columns["tk_y"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    317 
    318                 sender.Columns["tk_z"].HeaderText = "对光反应左";
    319                 sender.Columns["tk_z"].Width = 150;
    320                 // sender.Columns["tk_z"].ReadOnly = this.bolLook;
    321                 sender.Columns["tk_z"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    322 
    323                 sender.Columns["dgfs_y"].HeaderText = "瞳孔(右)";
    324                 sender.Columns["dgfs_y"].Width = 100;
    325                 //  sender.Columns["dgfs_y"].ReadOnly = this.bolLook;
    326                 sender.Columns["dgfs_y"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    327 
    328                 sender.Columns["dgfs_z"].HeaderText = "瞳孔(左)";
    329                 sender.Columns["dgfs_z"].Width = 100;
    330                 //  sender.Columns["dgfs_z"].ReadOnly = this.bolLook;
    331                 sender.Columns["dgfs_z"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    332 
    333                 sender.Columns["rl_mc"].HeaderText = "入量名称";
    334                 sender.Columns["rl_mc"].Width = 150;
    335                 // sender.Columns["rl_mc"].ReadOnly = this.bolLook;
    336                 sender.Columns["rl_mc"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    337 
    338 
    339                 sender.Columns["rllx"].HeaderText = "入量(单位)";
    340                 sender.Columns["rllx"].Width = 150;
    341                 //sender.Columns["rllx"].ReadOnly = this.bolLook;
    342                 sender.Columns["rllx"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    343 
    344                 sender.Columns["rl_l"].HeaderText = "入量(量)";
    345                 sender.Columns["rl_l"].Width = 100;
    346                 //  sender.Columns["rl_l"].ReadOnly = this.bolLook;
    347                 sender.Columns["rl_l"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    348 
    349                 sender.Columns["cl_mc"].HeaderText = " 出量名称";
    350                 sender.Columns["cl_mc"].Width = 150;
    351                 // sender.Columns["cl_mc"].ReadOnly = this.bolLook;
    352                 sender.Columns["cl_mc"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    353 
    354 
    355                 sender.Columns["cllx"].HeaderText = "出量(单位)";
    356                 sender.Columns["cllx"].Width = 150;
    357                 // sender.Columns["cllx"].ReadOnly = this.bolLook;
    358                 sender.Columns["cllx"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    359 
    360                 sender.Columns["cl_l"].HeaderText = "出量(量)";
    361                 sender.Columns["cl_l"].Width = 100;
    362                 // sender.Columns["cl_l"].ReadOnly = this.bolLook;
    363                 sender.Columns["cl_l"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    364 
    365                 sender.Columns["bbreathingmachine"].HeaderText = "呼吸机";
    366                 sender.Columns["bbreathingmachine"].Width = 100;
    367                 //sender.Columns["bbreathingmachine"].ReadOnly = this.bolLook;
    368                 sender.Columns["bbreathingmachine"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    369 
    370                 sender.Columns["hx"].HeaderText = "呼吸";
    371                 sender.Columns["hx"].Width = 60;
    372                 // sender.Columns["hx"].ReadOnly = this.bolLook;
    373                 sender.Columns["hx"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    374 
    375                 sender.Columns["s"].HeaderText = "";
    376                 sender.Columns["s"].Width = 30;
    377                 // sender.Columns["s"].ReadOnly = this.bolLook;
    378                 sender.Columns["s"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    379 
    380                 sender.Columns["f"].HeaderText = "";
    381                 sender.Columns["f"].Width = 30;
    382                 // sender.Columns["f"].ReadOnly = this.bolLook;
    383                 sender.Columns["f"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    384 
    385                 sender.Columns["qm"].HeaderText = "记录人";
    386                 sender.Columns["qm"].Width = 100;
    387                 //sender.Columns["qm"].ReadOnly = this.bolLook;
    388                 sender.Columns["qm"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    389 
    390                 sender.Tag = strName;
    391             }
    392             catch (Exception ex)
    393             {
    394                 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    395             }
    396 
    397         }
    398         #endregion
    399         #region 辅GridView初始化
    400         private void InitPopDataGridView(DataGridView sender, string strName)
    401         {
    402             try
    403             {
    404                 DataTable dt = new DataTable(strName);
    405                 dt.Columns.Add("id");
    406                 dt.Columns.Add("mc");
    407                 sender.DataSource = dt;
    408                 sender.Columns["id"].HeaderText = "序号";
    409                 sender.Columns["id"].Width = 60;
    410                 sender.Columns["id"].ReadOnly = false;
    411                 sender.Columns["id"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    412                 sender.Columns["mc"].HeaderText = "名称";
    413                 sender.Columns["mc"].Width = 260;
    414                 sender.Columns["mc"].ReadOnly = false;
    415                 sender.Columns["mc"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
    416             }
    417             catch (Exception ex)
    418             {
    419                 MessageBox.Show("对象:" + this.GetType().Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "异常信息:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    420             }
    421 
    422 
    423 
    424         }
    425         #endregion
    426         #region 主GridView触发事件
    427         private void NurseGridList_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    428         {
    429             if (this.bLook) return;
    430             if (e.RowIndex < 0)
    431             {
    432                 return;
    433             }
    434             if (this.NurseGridList.Columns[e.ColumnIndex].Name.ToString().ToUpper() == "rl_l".ToUpper()
    435               || this.NurseGridList.Columns[e.ColumnIndex].Name.ToString().ToUpper() == "cl_l".ToUpper())
    436             {
    437                 string str = e.FormattedValue.ToString();
    438                 this.NurseGridList.Rows[e.RowIndex].ErrorText = "";
    439 
    440                 if (XjxWordE.xjxformat.StringCommon.IsNumeric(str))
    441                 {
    442                     if (double.Parse(str) < 0)
    443                     {
    444                         if (this.NurseGridList.Columns[e.ColumnIndex].Name.ToString().ToUpper() == "cl_l".ToUpper())
    445                         {
    446                             this.NurseGridList.Rows[e.RowIndex].ErrorText = "分值输入的必须是大于或等于0的数字,请重输";
    447                         }
    448                         else
    449                         {
    450                             this.NurseGridList.Rows[e.RowIndex].ErrorText = "数量输入的必须是大于或等于0的数字,请重输";
    451                         }
    452 
    453                         MessageBox.Show(this.NurseGridList.Rows[e.RowIndex].ErrorText, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    454 
    455                         e.Cancel = true;
    456                     }
    457                 }
    458                 else
    459                 {
    460                     if (this.NurseGridList.Columns[e.ColumnIndex].Name.ToString().ToUpper() == "cl_l".ToUpper())
    461                     {
    462                         this.NurseGridList.Rows[e.RowIndex].ErrorText = "分值输入的必须是数字类型,请重输";
    463                     }
    464                     else
    465                     {
    466                         this.NurseGridList.Rows[e.RowIndex].ErrorText = "数量输入的必须是数字类型,请重输";
    467                     }
    468 
    469                     MessageBox.Show(this.NurseGridList.Rows[e.RowIndex].ErrorText, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    470 
    471                     e.Cancel = true;
    472                 }
    473             }
    474 
    475         }
    476         private void NurseGridList_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    477         {
    478             if (this.bLook) return;
    479             string kind = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
    480             switch (kind)
    481             {
    482                 case "sz":
    483                 case "tk_y":
    484                 case "tk_z":
    485                 case "dgfs_y":
    486                 case "dgfs_z":
    487                 case "rl_mc":
    488                 case "rllx":
    489                 case "cl_mc":
    490                 case "cllx":
    491                     TextBox mytextbox;
    492                     mytextbox = e.Control as TextBox;
    493                     mytextbox.Name = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
    494                     mytextbox.Tag = this.NurseGridList.CurrentCell;
    495                     if (mytextbox == null) return;
    496                     mytextbox.Click += new System.EventHandler(this.mytextbox_Click);
    497                     //mytextbox.KeyUp += new System.Windows.Forms.KeyEventHandler(this.mytextbox_KeyUp);
    498                     break;
    499                 default:
    500                     this.mypopudatagridview.Visible = false;
    501                     break;
    502             }
    503         }
    504         private void NurseGridList_CellEnter(object sender, DataGridViewCellEventArgs e)
    505         {
    506             if (this.bLook) return;
    507             if (this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToUpper() == "bbreathingmachine".ToUpper())
    508             {
    509                 Rectangle rect = this.NurseGridList.GetCellDisplayRectangle(this.NurseGridList.CurrentCell.ColumnIndex, this.NurseGridList.CurrentCell.RowIndex, false);
    510                 this.mySingleVeto.Text = this.NurseGridList.CurrentCell.Value.ToString();
    511                 this.mySingleVeto.Left = rect.Left;
    512                 this.mySingleVeto.Top = rect.Top;
    513                 this.mySingleVeto.Width = rect.Width;
    514                 this.mySingleVeto.Height = rect.Height;
    515                 this.mySingleVeto.Tag = this.NurseGridList.CurrentCell;
    516                 this.mySingleVeto.Visible = true;
    517                 this.mySingleVeto.BringToFront();
    518                 this.mySingleVeto.Focus();
    519                 this.mypopudatagridview.Visible = false;
    520             }
    521             else
    522             {
    523                 this.mySingleVeto.Visible = false;
    524             }
    525         }
    526         private void NurseGridList_CurrentCellChanged(object sender, EventArgs e)
    527         {
    528             if (this.bLook) return;
    529             string kind = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
    530             switch (kind)
    531             {
    532                 case "sz":
    533                 case "tk_y":
    534                 case "tk_z":
    535                 case "dgfs_y":
    536                 case "dgfs_z":
    537                 case "rl_mc":
    538                 case "rllx":
    539                 case "cl_mc":
    540                 case "cllx":
    541                     if (this.mySingleVeto != null && this.mySingleVeto.Visible)
    542                     {
    543                         DataGridViewCell mycell = this.mySingleVeto.Tag as DataGridViewCell;
    544                         if (mycell == null) return;
    545                         mycell.Value = this.mySingleVeto.Text;
    546                         this.mySingleVeto.Visible = false;
    547                         this.mySingleVeto.Tag = null;
    548                         this.NurseGridList.BeginEdit(false);
    549                     }
    550                     if (this.mypopudatagridview != null)
    551                     {
    552                         DataGridViewCell mydatagridviewcell = this.mypopudatagridview.Tag as DataGridViewCell;
    553                         if ((mydatagridviewcell != null) && (this.NurseGridList.Columns[mydatagridviewcell.ColumnIndex].Name != kind))
    554                         {
    555                             this.mypopudatagridview.Visible = false;
    556                             iRowIndex = 0;
    557                             this.mypopudatagridview.Tag = null;
    558                             this.NurseGridList.BeginEdit(false);
    559                         }
    560                     }
    561                     break;
    562                 case "bbreathingmachine":
    563                     if (this.mypopudatagridview != null)
    564                     {
    565                         this.mypopudatagridview.Visible = false;
    566                         iRowIndex = 0;
    567                         this.mypopudatagridview.Tag = null;
    568                         this.NurseGridList.BeginEdit(false);
    569                     }
    570                     break;
    571                 default:
    572                     if (this.mySingleVeto != null && this.mySingleVeto.Visible)
    573                     {
    574                         DataGridViewCell mycell = this.mySingleVeto.Tag as DataGridViewCell;
    575                         if (mycell == null) return;
    576                         mycell.Value = this.mySingleVeto.Text;
    577                         this.mySingleVeto.Visible = false;
    578                         this.mySingleVeto.Tag = null;
    579                         this.NurseGridList.BeginEdit(false);
    580                     }
    581                     if (this.mypopudatagridview != null)
    582                     {
    583                         DataGridViewCell mydatagridviewcell = this.mypopudatagridview.Tag as DataGridViewCell;
    584                         this.mypopudatagridview.Visible = false;
    585                         iRowIndex = 0;
    586                         this.mypopudatagridview.Tag = null;
    587                         this.NurseGridList.BeginEdit(false);
    588                     }
    589                     break;
    590             }
    591         }
    592         private void NurseGridList_CellClick(object sender, DataGridViewCellEventArgs e)
    593         {
    594             if (this.bLook) return;
    595             if (this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToUpper() == "rqsj".ToUpper())
    596             {
    597                 SelectDatetime();
    598             }
    599         }
    600         private void NurseGridList_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
    601         {
    602             if (this.bLook) return;
    603             if (this.mySingleVeto == null) return;
    604             this.mySingleVeto.Visible = false;
    605         }
    606         private void NurseGridList_Scroll(object sender, ScrollEventArgs e)
    607         {
    608             if (this.bLook) return;
    609             if (this.mySingleVeto == null) return;
    610             this.mySingleVeto.Visible = false;
    611         }
    612         private void NurseGridList_RowLeave(object sender, DataGridViewCellEventArgs e)
    613         {
    614             fNurseinfo = FillNurseinfo();
    615             string requestParam = this.PkgCtrlParams(yzlx, fNurseinfo);
    616             string rtn = OwnerParentForm.OwnerParentForm.Xjxinfoweb.SetNurseRequest(requestParam);
    617            // MessageBox.Show(rtn);
    618         }
    619         #endregion
    620         #region 日期选择事件
    621         public void SelectDatetime()
    622         {
    623             using (frmSelectsingleDate myfrm = new frmSelectsingleDate())
    624             {
    625                 myfrm.RQ1 = this.RQ1;
    626                 if (myfrm.ShowDialog() == DialogResult.OK)
    627                 {
    628                     this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells[this.NurseGridList.CurrentCell.ColumnIndex].Value = myfrm.RQ1;
    629                     this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells["s"].Value = DateTime.Now.Hour.ToString();
    630                     this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells["f"].Value = DateTime.Now.Minute.ToString();
    631                     this.NurseGridList.CurrentCell = this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells[this.NurseGridList.CurrentCell.ColumnIndex + 1];
    632                     this.NurseGridList.Focus();
    633                     this.NurseGridList.BeginEdit(false);
    634                 }
    635             }
    636         }
    637         #endregion
    638         #region 获取控件数据小窗口grid
    639         private void mytextbox_KeyUp(object sender, KeyEventArgs e)
    640         {
    641             string kind = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
    642             if ((kind != "sz") && (kind != "tk_y") && (kind != "tk_z") && (kind != "dgfs_y") && (kind != "dgfs_z") && (kind != "rl_mc") && (kind != "rllx") && (kind != "cl_mc") && (kind != "cllx"))
    643             {
    644                 e.Handled = true;
    645                 return;
    646             }
    647             switch (e.KeyCode)
    648             {
    649                 case Keys.Down:
    650                     if (this.mypopudatagridview.Rows.Count < 0) return;
    651                     iRowIndex++;
    652                     if (iRowIndex >= this.mypopudatagridview.Rows.Count) iRowIndex = this.mypopudatagridview.Rows.Count - 1;
    653                     setSelectRowValue(iRowIndex);
    654                     e.Handled = true;
    655                     break;
    656                 case Keys.Up:
    657                     if (this.mypopudatagridview.Rows.Count < 0) return;
    658                     iRowIndex--;
    659                     if (iRowIndex < 0) iRowIndex = 0;
    660                     setSelectRowValue(iRowIndex);
    661                     e.Handled = true;
    662                     break;
    663                 case Keys.Enter:
    664                     if (this.mypopudatagridview.Visible && this.mypopudatagridview.Rows.Count > 0)
    665                     {
    666                         setSelectRowValue(iRowIndex);
    667                     }
    668                     System.Windows.Forms.SendKeys.Send("{TAB}");
    669                     e.Handled = true;
    670                     break;
    671             }
    672 
    673             if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Up) return;
    674 
    675             if (!this.mypopudatagridview.Visible)
    676             {
    677                 Rectangle rect = this.NurseGridList.GetCellDisplayRectangle(this.NurseGridList.CurrentCell.ColumnIndex, this.NurseGridList.CurrentCell.RowIndex, false);
    678                 this.mypopudatagridview.Visible = true;
    679 
    680                 this.mypopudatagridview.Left = rect.Left;
    681                 if (rect.Top + this.mypopudatagridview.Height > this.NurseGridList.Height)
    682                 {
    683                     this.mypopudatagridview.Top = rect.Top - this.mypopudatagridview.Height;
    684                 }
    685                 else
    686                 {
    687                     this.mypopudatagridview.Top = rect.Top + rect.Height;
    688                 }
    689                 this.mypopudatagridview.Tag = this.NurseGridList.CurrentCell;
    690                 this.mypopudatagridview.Visible = true;
    691             }
    692             if (this.mypopudatagridview.Visible)
    693             {
    694                 TextBox mytextbox = sender as TextBox;
    695                 string tbName = mytextbox.Name;
    696                 if (mytextbox == null) return;
    697                 if (this.NurseGridList.Columns[Name].Tag != null && this.NurseGridList.Columns[Name].Tag is DataTable)
    698                 {
    699                     this.mypopudatagridview.DataSource = this.NurseGridList.Columns[Name].Tag;
    700                 }
    701                 else
    702                 {
    703                     this.writePopDataGridView(tbName);
    704                 }
    705             }
    706         }
    707         private void mytextbox_Click(object sender, EventArgs e)
    708         {
    709             string kind = this.NurseGridList.Columns[this.NurseGridList.CurrentCell.ColumnIndex].Name.ToString().ToLower();
    710             if ((kind != "sz") && (kind != "tk_y") && (kind != "tk_z") && (kind != "dgfs_y") && (kind != "dgfs_z") && (kind != "rl_mc") && (kind != "rllx") && (kind != "cl_mc") && (kind != "cllx"))
    711             {
    712                 return;
    713             }
    714             if (!this.mypopudatagridview.Visible)
    715             {
    716                 Rectangle rect = this.NurseGridList.GetCellDisplayRectangle(this.NurseGridList.CurrentCell.ColumnIndex, this.NurseGridList.CurrentCell.RowIndex, false);
    717                 this.mypopudatagridview.Visible = true;
    718 
    719                 this.mypopudatagridview.Left = rect.Left;
    720                 if (rect.Top + this.mypopudatagridview.Height > this.NurseGridList.Height)
    721                 {
    722                     this.mypopudatagridview.Top = rect.Top - this.mypopudatagridview.Height;
    723                 }
    724                 else
    725                 {
    726                     this.mypopudatagridview.Top = rect.Top + rect.Height;
    727                 }
    728                 this.mypopudatagridview.Tag = this.NurseGridList.CurrentCell;
    729                 this.mypopudatagridview.Visible = true;
    730             }
    731             if (this.mypopudatagridview.Visible)
    732             {
    733                 TextBox mytextbox = sender as TextBox;
    734                 string tbName = mytextbox.Name;
    735                 if (mytextbox == null) return;
    736                 //if (this.conDataitems != null && this.conDataitems.Count > 0 && this.conDataitems.ContainsKey(tbName))
    737                 //{
    738                 //    DataTable dt = this.conDataitems[tbName] as DataTable;
    739                 //    this.mypopudatagridview.DataSource = dt;
    740                 //}
    741                 //else
    742                 //{
    743                 //    this.writePopDataGridView(tbName);
    744                 //}
    745                 if (this.NurseGridList.Columns[kind].Tag != null && this.NurseGridList.Columns[kind].Tag is DataTable)
    746                 {
    747                     this.mypopudatagridview.DataSource = this.NurseGridList.Columns[kind].Tag;
    748                 }
    749                 else
    750                 {
    751                     this.writePopDataGridView(kind);
    752                 }
    753             }
    754 
    755         }
    756         private void mypopudatagridview_CellClick(object sender, DataGridViewCellEventArgs e)
    757         {
    758             if (e.RowIndex < 0) return;
    759             iRowIndex = e.RowIndex;
    760             setSelectRowValue(iRowIndex);
    761             DataGridViewCell mydatagridviewcell = this.mypopudatagridview.Tag as DataGridViewCell;
    762             DataGridViewCell mycell = this.mypopudatagridview.Tag as DataGridViewCell;
    763             if (mydatagridviewcell != null)
    764             {
    765                 this.NurseGridList.FirstDisplayedScrollingRowIndex = this.NurseGridList.Rows.Count - 1;
    766                 this.NurseGridList.Rows[this.NurseGridList.Rows.Count - 1].Selected = true;
    767                 this.NurseGridList.CurrentCell = this.NurseGridList.Rows[mycell.RowIndex].Cells[mycell.ColumnIndex + 1];
    768                 this.NurseGridList.Focus();
    769                 this.NurseGridList.BeginEdit(false);
    770             }
    771             this.mypopudatagridview.Visible = false;
    772             this.mypopudatagridview.Tag = null;
    773             iRowIndex = 0;
    774         }
    775         public void writePopDataGridView(string Name)
    776         {
    777             //if (this.mypopudatagridview.RowCount > 0) ((DataTable)this.mypopudatagridview.DataSource).Clear();
    778             XmlDocument myDoc = new XmlDocument();
    779             string respStr = string.Empty;
    780             respStr = this.OwnerParentForm.OwnerParentForm.Xjxinfoweb.GetNurseTabinfo(Name, string.Empty);
    781             if (string.IsNullOrEmpty(respStr) || respStr.IndexOf("error") > -1)
    782             {
    783                 MessageBox.Show(respStr, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    784                 return;
    785             }
    786             myDoc.LoadXml(respStr);
    787             DataTable dt = new DataTable();
    788             DataRow row = null;
    789             DataColumn col = null;
    790             foreach (XmlElement el in myDoc.SelectNodes("patientinfos/patientinfo"))
    791             {
    792                 row = dt.NewRow();
    793                 foreach (XmlNode node in el.ChildNodes)
    794                 {
    795                     if (!dt.Columns.Contains(node.Name))
    796                     {
    797                         col = new DataColumn();
    798                         col.ColumnName = node.Name;
    799                         dt.Columns.Add(col);
    800                     }
    801                     row[node.Name] = node.InnerText;
    802                 }
    803                 dt.Rows.Add(row);
    804             }
    805             this.mypopudatagridview.DataSource = dt;
    806             //if (!this.conDataitems.ContainsKey(Name.ToString()))
    807             //{
    808             //    this.conDataitems.Add(Name, dt);
    809             //}
    810             this.NurseGridList.Columns[Name].Tag = dt;
    811         }
    812         private void setSelectRowValue(int rowindex)
    813         {
    814             if (this.mypopudatagridview.Rows.Count < 0) return;
    815             if (rowindex < 0 || rowindex > this.mypopudatagridview.Rows.Count) return;
    816             this.mypopudatagridview.FirstDisplayedScrollingRowIndex = rowindex;
    817             this.mypopudatagridview.Rows[rowindex].Selected = true;
    818             this.NurseGridList.Rows[this.NurseGridList.CurrentCell.RowIndex].Cells[this.NurseGridList.CurrentCell.ColumnIndex].Value = this.mypopudatagridview.Rows[rowindex].Cells["mc"].Value.ToString();
    819         }
    820         #endregion
    821         #region 获取Combox
    822         private void mySingleVeto_SelectedIndexChanged(object sender, EventArgs e)
    823         {
    824             return;
    825         }
    826         private void mySingleVeto_KeyUp(object sender, KeyEventArgs e)
    827         {
    828             int index = mySingleVeto.SelectedIndex;
    829             switch (e.KeyCode)
    830             {
    831                 case Keys.Up:
    832                     index--;
    833                     if (index < 0) index = 0;
    834                     mySingleVeto.SelectedIndex = index;
    835                     e.Handled = true;
    836                     break;
    837                 case Keys.Down:
    838                     index++;
    839                     if (index >= this.mySingleVeto.Items.Count) index = this.mySingleVeto.Items.Count - 1;
    840                     this.mySingleVeto.SelectedIndex = index;
    841                     e.Handled = true;
    842                     break;
    843                 case Keys.Enter:
    844                     DataGridViewCell mycell = this.Tag as DataGridViewCell;
    845                     if (mycell == null) return;
    846                     mycell.Value = this.mySingleVeto.Text;
    847                     this.NurseGridList.FirstDisplayedScrollingRowIndex = mycell.RowIndex;
    848                     this.NurseGridList.Rows[mycell.RowIndex].Selected = true;
    849                     this.NurseGridList.CurrentCell = this.NurseGridList.Rows[mycell.RowIndex].Cells[mycell.ColumnIndex + 1];
    850                     this.NurseGridList.Focus();
    851                     this.NurseGridList.BeginEdit(false);
    852                     e.Handled = true;
    853                     break;
    854             }
    855         }
    856         #endregion
    857         #region 获取记录
    858         private Nurseinfo FillNurseinfo()
    859         {
    860             DataGridViewRow selectedRow = NurseGridList.CurrentRow;
    861             if (selectedRow == null)
    862             {
    863                 MessageBox.Show("请选中记录", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    864                 return null;
    865             }
    866             Nurseinfo myNurseinfo = new Nurseinfo();
    867             if (selectedRow.Cells["jlid"].Value + "" == "")
    868             {
    869                 this.yzlx = 1;
    870                 myNurseinfo.jlid = "0";
    871             }
    872             else
    873             {
    874                 this.yzlx = 2;
    875                 myNurseinfo.jlid = selectedRow.Cells["jlid"].Value + "";
    876             }
    877             
    878             myNurseinfo.lsh = selectedRow.Cells["lsh"].Value + "";
    879             myNurseinfo.jlr = selectedRow.Cells["jlr"].Value + "";
    880             myNurseinfo.rqsj = selectedRow.Cells["rqsj"].Value + "";
    881             myNurseinfo.s = selectedRow.Cells["s"].Value + "";
    882             myNurseinfo.f = selectedRow.Cells["f"].Value + "";
    883             myNurseinfo.bbreathingmachine = selectedRow.Cells["bbreathingmachine"].Value + "";
    884             myNurseinfo.hx = selectedRow.Cells["hx"].Value + "";
    885             myNurseinfo.sz = selectedRow.Cells["sz"].Value + "";
    886             myNurseinfo.s = selectedRow.Cells["s"].Value + "";
    887             myNurseinfo.xybhd = selectedRow.Cells["xybhd"].Value + "";
    888             myNurseinfo.dgfs_z = selectedRow.Cells["dgfs_y"].Value + "";
    889             myNurseinfo.tk_z = selectedRow.Cells["tk_z"].Value + "";
    890             myNurseinfo.tk_y = selectedRow.Cells["tk_y"].Value + "";
    891             myNurseinfo.rl_mc = selectedRow.Cells["rl_mc"].Value + "";
    892             myNurseinfo.rllx = selectedRow.Cells["rllx"].Value + "";
    893             myNurseinfo.rl_l = selectedRow.Cells["rl_l"].Value + "";
    894             myNurseinfo.cl_mc = selectedRow.Cells["cl_mc"].Value + "";
    895             myNurseinfo.cllx = selectedRow.Cells["cl_l"].Value + "";
    896             return myNurseinfo;
    897         }
    898         #endregion
    899         #region 界面数据打包XML
    900         private string PkgCtrlParams(int opKind, Nurseinfo oNurseinfo)
    901         {
    902             Patientinfo myCurrentPatientinfo = OwnerParentForm.OwnerParentForm.CurrentPatientInfo;
    903             if (myCurrentPatientinfo == null || (opKind != 1 && opKind != 2 && opKind != 3)) return string.Empty;
    904             XmlDocument myDoc = new XmlDocument();
    905             XmlElement root = myDoc.CreateElement("params");
    906             myDoc.AppendChild(root);
    907             try
    908             {
    909                 AppendToXml(root, "jlid", oNurseinfo.jlid);//*主键
    910                 AppendToXml(root, "lsh", myCurrentPatientinfo.lsh == 0 ? "" : myCurrentPatientinfo.lsh.ToString());//*患者ID
    911                 AppendToXml(root, "czzt", opKind.ToString());//*执行保存操作;1:增,2:改,3:删
    912                 AppendToXml(root, "jlr", Properties.Settings.Default.iapplication_yhid.ToString());//*操作员ID
    913             }
    914             catch (Exception e)
    915             {
    916                 MessageBox.Show(this, e.Message, "出错提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    917                 return string.Empty;
    918             }
    919             if ((opKind == 1) || (opKind == 2))
    920             {
    921                 AppendToXml(root, "rqsj", oNurseinfo.rqsj);      //*护理时间
    922                 AppendToXml(root, "s", oNurseinfo.s);            //护理时
    923                 AppendToXml(root, "f", oNurseinfo.f);            //护理分
    924                 AppendToXml(root, "bbreathingmachine", true? "1" : "0");//*呼吸机
    925                 AppendToXml(root, "hx", oNurseinfo.hx);     //*呼吸机速率
    926                 AppendToXml(root, "sz", oNurseinfo.sz);          //神志
    927                 AppendToXml(root, "xybhd", oNurseinfo.xybhd);    //血氧饱和度
    928                 AppendToXml(root, "dgfs_z", oNurseinfo.dgfs_z);  //对光反应左
    929                 AppendToXml(root, "dgfs_y", oNurseinfo.dgfs_y);  //对光反应右
    930                 AppendToXml(root, "tk_z", oNurseinfo.tk_z);      //瞳孔(左)
    931                 AppendToXml(root, "tk_y", oNurseinfo.tk_y);      //瞳孔(右)
    932                 AppendToXml(root, "rl_mc ", oNurseinfo.rl_mc);  //入量名称
    933                 AppendToXml(root, "rllx", oNurseinfo.rllx);    //入量(单位)
    934                 AppendToXml(root, "rl_l", oNurseinfo.rl_l);    //入量(量)
    935                 AppendToXml(root, "cl_mc", oNurseinfo.cl_mc);   //出量名称
    936                 AppendToXml(root, "cllx", oNurseinfo.cllx);    //出量(单位)
    937                 AppendToXml(root, "cl_l", oNurseinfo.cl_l);    //出量(量)
    938                 AppendToXml(root, "jlsj", oNurseinfo.rqsj);      //*记录护理时间
    939 
    940             }
    941             return myDoc.OuterXml;
    942         }
    943         private void AppendToXml(XmlElement root, string name, string text)
    944         {
    945             if (string.IsNullOrEmpty(text)) return;
    946             XMLCommon.CreateChildElement(root, name, true, text);
    947         }
    948         #endregion
    949     }
    950 }
    View Code
  • 相关阅读:
    uva10912 Simple Minded Hashing(DP)
    uva10401 Injured Queen Problem(DP)
    uva702 The Vindictive Coach(DP)
    忍者X4将采取自动开通vip,论坛充值淘宝自助购买均可。步骤如下
    C盘不够大,可以这样操作
    任务思维1
    PHP 获取指定日期的星期方法如下
    学学C#开发client,server,C/S架构的程序
    今天的主角就是protobuf-net
    关于忍者站群X4-小飞镖服务器配置帮助汇总。
  • 原文地址:https://www.cnblogs.com/chjx1988/p/3842040.html
Copyright © 2020-2023  润新知