Exemplo n.º 1
0
        private void AddNewRowToDetailTable(DataRow sourceRow, bool isTemp)
        {
            if ((sourceRow.RowState == DataRowState.Deleted) || (sourceRow.RowState == DataRowState.Detached))
            {
                return;
            }

            DataRow newRow = SuiteDetailTable.NewRow();

            foreach (DataColumn col in sourceRow.Table.Columns)
            {
                if (SuiteDetailTable.Columns.Contains(col.ColumnName))
                {
                    newRow[col.ColumnName] = sourceRow[col];
                }
            }

            newRow[ConstSchemaNames.SuiteDetailColSuiteSerialNo] = CurrentSuiteNo;
            if (isTemp)
            {
                newRow[ConstSchemaNames.SuiteDetailColOrderFlag] = OrderManagerKind.ForTemp;
            }
            else
            {
                newRow[ConstSchemaNames.SuiteDetailColOrderFlag] = OrderManagerKind.ForLong;
            }

            SuiteDetailTable.Rows.Add(newRow);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 保存当前成套医嘱的明细数据
        /// </summary>
        public void SaveSuiteDetailData()
        {
            //先清除老的数据
            DataRow[] delRows = SuiteDetailTable.Select(ConstSchemaNames.SuiteDetailColSuiteSerialNo + " = " + CurrentSuiteNo);
            foreach (DataRow row in delRows)
            {
                SuiteDetailTable.Rows.Remove(row);
            }

            // 将医嘱表数据合并到成套明细表(因为需要将合并后的行状态都为新行,所以采用AddRow的方式)
            foreach (DataRow row in TempOrderTable.Rows)
            {
                AddNewRowToDetailTable(row, true);
            }
            foreach (DataRow row in LongOrderTable.Rows)
            {
                AddNewRowToDetailTable(row, false);
            }

            // 删除数据库中此序号对应的明细记录
            m_SqlExecutor.ExecuteNoneQuery(String.Format(ConstSqlSentences.FormatDeleteSuiteDetail, ConstSchemaNames.SuiteDetailTableName, CurrentSuiteNo));
            // 保存
            m_SqlExecutor.UpdateTable(SuiteDetailTable, ConstSchemaNames.SuiteDetailTableName, false);
            //SuiteDetailTable.AcceptChanges();
        }
Exemplo n.º 3
0
        private void InitializeTableSchema()
        {
            _tempOrderTable = CreateAndSetOrderTable(ConstSchemaNames.TempOrderTableName);
            _longOrderTable = CreateAndSetOrderTable(ConstSchemaNames.LongOrderTableName);

            m_TransTable = SuiteDetailTable.Clone();
            // 补充在医嘱表中不允许为空的列,并设置默认值
            m_TransTable.Columns.AddRange(new DataColumn[] {
                new DataColumn("syxh", typeof(decimal))
                , new DataColumn("fzxh", typeof(decimal))
                , new DataColumn("bqdm", typeof(string))
                , new DataColumn("ksdm", typeof(string))
                , new DataColumn("lrysdm", typeof(string))
                , new DataColumn("lrrq", typeof(string))
                , new DataColumn("yzzt", typeof(int))
                , new DataColumn("tsbj", typeof(int))
            });
            m_TransTable.Columns["syxh"].DefaultValue   = 1;
            m_TransTable.Columns["fzxh"].DefaultValue   = 1;
            m_TransTable.Columns["bqdm"].DefaultValue   = "";
            m_TransTable.Columns["ksdm"].DefaultValue   = "";
            m_TransTable.Columns["lrysdm"].DefaultValue = "00";
            m_TransTable.Columns["lrrq"].DefaultValue   = "";
            m_TransTable.Columns["yzzt"].DefaultValue   = (int)OrderState.New;
            m_TransTable.Columns["tsbj"].DefaultValue   = 0;
        }
Exemplo n.º 4
0
 /// <summary>
 /// 删除指定的成套医嘱
 /// </summary>
 /// <param name="serialNo"></param>
 public void DeleteMasterRecord(decimal serialNo)
 {
     if ((serialNo > 0) &&
         (m_MessageBox.MessageShow("确定要删除当前记录吗?", CustomMessageBoxKind.QuestionYesNo) == DialogResult.Yes))
     {
         // 删除对应明细, 删除主记录
         string delCmd = String.Format(CultureInfo.CurrentCulture
                                       , ConstSqlSentences.FormatDeleteSuiteData
                                       , ConstSchemaNames.SuiteDetailTableName
                                       , ConstSchemaNames.SuiteTableName
                                       , serialNo);
         try
         {
             m_SqlExecutor.ExecuteNoneQuery(delCmd);
             // 从DataTable中移除
             DataRow[] matchRows = SuiteMasterTable.Select(ConstSchemaNames.SuiteDetailColSuiteSerialNo + " = " + serialNo);
             foreach (DataRow row in matchRows)
             {
                 row.Delete();
             }
             matchRows = SuiteDetailTable.Select(ConstSchemaNames.SuiteDetailColSuiteSerialNo + " = " + serialNo);
             foreach (DataRow row in matchRows)
             {
                 row.Delete();
             }
         }
         catch
         {
             m_MessageBox.MessageShow("删除记录出错,请重试!", CustomMessageBoxKind.ErrorYes);
         }
     }
 }