Ejemplo n.º 1
0
        /// <summary>
        /// 插入报告
        /// </summary>
        public void m_mthInsertReport()
        {
            if (this.m_objViewer.listView1.SelectedItems.Count <= 0)
            {
                return;
            }

            try
            {
                objConn.Open();
            }
            catch (Exception)
            {
                MessageBox.Show(this.m_objViewer, "数据库连接失败,请检查数据库路径是否正确!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            try
            {
                com.digitalwave.iCare.gui.HIS.clsPublic.PlayAvi("findfile.avi", "正在插入检验报告单,请稍候...");

                long lngRes     = 0;
                bool blnHasCode = true;     //含有标识值

                int       intInsertNum = 0; //记录数据库插入数据的条数
                DataTable dt           = new DataTable();
                DataRow   objRow       = null;

                #region 生成SQL
                //string strSQL = @"select a.dat_inputdate, a.num_samplenum, a.num_typeid, a.chr_itemcode, a.num_dataformat, a.num_value, a.chr_value, a.num_od, a.chr_picpath, a.chr_state, a.dat_testtime, b.chr_itemname, c.chr_code from ((result_inf a left outer join item_set b on a.chr_itemcode = b.chr_itemcode) inner join report_inf c on a.dat_inputdate = c.dat_inputdate and a.num_samplenum = c.num_samplenum) where a.num_samplenum in(";
                string strSQL = @"select a.dat_inputdate, a.num_samplenum, a.num_typeid, a.chr_itemcode, 
                                         a.num_dataformat, a.num_value, a.chr_value, a.num_od, a.chr_picpath, 
                                         a.chr_state, a.dat_testtime, b.chr_itemname, b.num_itemid
                                    from (result_inf a left outer join item_set b on a.chr_itemcode = b.chr_itemcode) 
                                   where a.num_samplenum in(";

                string strSQL2 = @") and a.dat_inputdate = :check_date";

                ListViewItem objlvItem = null;
                for (int i1 = 0; i1 < this.m_objViewer.listView1.SelectedItems.Count; i1++)
                {
                    objlvItem = this.m_objViewer.listView1.SelectedItems[i1];
                    strSQL   += objlvItem.SubItems[0].Text + ",";
                }
                strSQL = strSQL.Remove(strSQL.Length - 1, 1) + strSQL2;
                OleDbCommand objCommand = new OleDbCommand();

                OleDbParameter objParam = new OleDbParameter("check_date", OleDbType.DBDate);
                objParam.Value = DateTime.Parse(this.m_objViewer.listView1.SelectedItems[0].SubItems[4].Text);

                objCommand.Connection  = objConn;
                objCommand.CommandText = strSQL;
                objCommand.Parameters.Add(objParam);
                #endregion

                OleDbDataAdapter objAdapter = new OleDbDataAdapter(objCommand);
                objAdapter.Fill(dt);
                objConn.Close();

                List <clsAdvia2120ResultInf_VO> objResultList = new List <clsAdvia2120ResultInf_VO>();
                clsAdvia2120ResultInf_VO        objRes;
                string   strPP = "";
                DateTime datTmp;

                for (int i2 = 0; i2 < dt.Rows.Count; i2++)
                {
                    objRow = dt.Rows[i2];
                    if (objRow["dat_inputdate"].ToString().Trim() == "" && objRow["num_samplenum"].ToString().Trim() == "")
                    {
                        blnHasCode = false;
                        break;
                    }
                    objRes = new clsAdvia2120ResultInf_VO();
                    this.m_mthConstructResultVO(objRow, ref objRes);
                    //objRes.strCode = objRow["chr_code"].ToString();
                    //<------------------ 2007-11-08 Modify
                    #region 构造标识号
                    datTmp         = DateTime.Parse(objRow["dat_inputdate"].ToString());
                    objRes.strCode = datTmp.ToString("yyyy") + datTmp.ToString("MM").PadLeft(2, '0') + datTmp.ToString("dd").PadLeft(2, '0') + objRow["num_samplenum"].ToString();
                    #endregion
                    //------------------>
                    objRes.strDeviceID      = strDeviceModelID;
                    objRes.m_strOperator_ID = this.m_objViewer.LoginInfo.m_strEmpID;
                    if (objRes.intDataFormat == 2)
                    {
                        //构造图形

                        strPP             = strPicturePath + objRow["chr_picpath"].ToString();
                        objRes.m_byaGraph = this.m_objConstructImage(strPP);
                    }
                    objResultList.Add(objRes);
                }

                if (blnHasCode)
                {
                    lngRes = m_objDomain.m_lngInsertReport(this.m_objViewer.listView1.SelectedItems.Count, objResultList, out intInsertNum);   //插入报告单
                }
                else
                {
                    MessageBox.Show(this.m_objViewer, "插入队列中含有空“样本号”,请检查后再操作!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                com.digitalwave.iCare.gui.HIS.clsPublic.CloseAvi();
                if (lngRes > 0)
                {
                    MessageBox.Show(this.m_objViewer, "选中要插入报告单的共 " + this.m_objViewer.listView1.SelectedItems.Count + " 人\r\n\r\n插入记录 " + intInsertNum + " 条", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    frmHandInputReport.WYH = true;
                }
                else
                {
                    MessageBox.Show(this.m_objViewer, "没有任何插入报告条数!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception objEx)
            {
                objConn.Close();
                com.digitalwave.iCare.gui.HIS.clsPublic.CloseAvi();
                string strTmp = objEx.Message;
                com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText();
                bool blnRes = objLogger.LogError(objEx);
            }
        }