コード例 #1
0
ファイル: DPodbc.cs プロジェクト: seekerk/recept
        /// <summary>
        /// Поиск записи о компоненте пользователя в БД
        /// </summary>
        /// <param name="curRaw">компонента пользователя</param>
        /// <returns>найденная запись если есть</returns>
        protected override int FindSimilarDataRawStruct(DataRawStruct curRec, string tableName)
        {
            string      sqlStr = "SELECT id FROM " + tableName + " WHERE name=?";
            OdbcCommand cmd    = new OdbcCommand(sqlStr, conn);

            cmd.Parameters.AddWithValue("@name", curRec.Name);
            //throw new Exception("The method or operation is not implemented.");

            DataTable comp_table = null;

            try
            {
                if (this.conn.State == ConnectionState.Closed)
                {
                    this.conn.Open();
                }
                this.adapter.SelectCommand = cmd;
                DataSet ds = new DataSet("tables");
                ds.Locale = CultureInfo.InvariantCulture;
                this.adapter.Fill(ds);
                comp_table = ds.Tables[0];
            }
            catch (OdbcException pe)
            {
                MessageBox.Show(pe.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0);
                return(-1);
            }

            if (comp_table.Rows.Count == 0)
            {
                return(-1);
            }
            return(Convert.ToInt32(comp_table.Rows[0][0], CultureInfo.InvariantCulture));
        }
コード例 #2
0
ファイル: DPodbc.cs プロジェクト: seekerk/recept
        /// <summary>
        /// Добавление записи в таблицу
        /// </summary>
        /// <param name="curRec">запись которая добавляется</param>
        /// <param name="tableName">имя таблицы</param>
        protected override void AddDataRawStruct(DataRawStruct curRec, string tableName)
        {
            string sqlStr = "INSERT INTO " + tableName + " (name, water, caloric, fat, acid, ash, cholesterol, protein, starch, saccharides, cellulose, vitaminA, vitaminB, vitaminB1, vitaminB2, vitaminPP, vitaminC, mineralK, mineralNa, mineralCa, mineralMg, mineralP, mineralFe, comment, normativDoc, brutto, inSostav, inRecept) " +
                            "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " +
                            "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " +
                            "?, ?, ?, ?, ?, ?, ?, ?)";
            OdbcCommand cmd = new OdbcCommand(sqlStr, conn);

            cmd.Parameters.AddWithValue("@name", curRec.Name);
            cmd.Parameters.AddWithValue("@water", curRec.Water.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@caloric", curRec.Caloric.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@fat", curRec.fat.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@acid", curRec.acid.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@ash", curRec.ash.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@cholesterol", curRec.cholesterol.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@protein", curRec.protein.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@starch", curRec.starch.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@saccharides", curRec.saccharides.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@cellulose", curRec.cellulose.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminA", curRec.vitaminA.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminB", curRec.VitaminB.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminB1", curRec.VitaminB1.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminB2", curRec.VitaminB2.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminPP", curRec.VitaminPP.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminC", curRec.VitaminC.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralK", curRec.MineralK.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralNa", curRec.MineralNA.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralCa", curRec.MineralCA.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralMg", curRec.MineralMG.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralP", curRec.MineralP.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralFe", curRec.MineralFE.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@comment", curRec.Comment);
            cmd.Parameters.AddWithValue("@normativDoc", curRec.NormativDoc);
            cmd.Parameters.AddWithValue("@brutto", curRec.Brutto.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@inSostav", curRec.InSostav);
            cmd.Parameters.AddWithValue("@inRecept", curRec.InRecept);
            int ret = 0;

            try
            {
                if (this.conn.State == ConnectionState.Closed)
                {
                    this.conn.Open();
                }
                this.adapter.InsertCommand = cmd;
                ret = this.adapter.InsertCommand.ExecuteNonQuery();
            }
            catch (System.Exception e)
            {
                MessageBox.Show("Обновление записи неудачно:\n " + e.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0);
                return;
            }
            if (ret != 1)
            {
                MessageBox.Show("Во время обновления произошла ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0);
            }
            curRec.IsChanged = false;
            //throw new Exception("The method or operation is not implemented.");
        }
コード例 #3
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 internal DataRawStruct FindSimilarRaw(DataRawStruct curRec)
 {
     if (curRec == null)
     {
         return(null);
     }
     return(this.GetRawByNum(FindSimilarDataRawStruct(curRec, "comps")));
 }
コード例 #4
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 internal DataRawStruct FindSimilarProcessLoss(DataRawStruct curRec)
 {
     if (curRec == null)
     {
         return(null);
     }
     return(this.GetProcessLossByNum(FindSimilarDataRawStruct(curRec, "processLoss")));
 }
コード例 #5
0
ファイル: DPodbc.cs プロジェクト: seekerk/recept
        /// <summary>
        /// Обновление записи в таблице
        /// </summary>
        /// <param name="curRec">запись</param>
        /// <param name="tableName">имя таблицы</param>
        protected override void UpdateDataRawStruct(DataRawStruct curRec, string tableName)
        {
            string      sqlStr = "UPDATE " + tableName + " SET name=?, water=?, caloric=?, fat=?, acid=?, ash=?, cholesterol=?, protein=?, starch=?, saccharides=?, cellulose=?, vitaminA=?, vitaminB=?, vitaminB1=?, vitaminB2=?, vitaminPP=?, vitaminC=?, mineralK=?, mineralNa=?, mineralCa=?, mineralMg=?, mineralP=?, mineralFe=?, comment=?, normativDoc=?, brutto=?, inSostav=?, inRecept=? WHERE id=?";
            OdbcCommand cmd    = new OdbcCommand(sqlStr, conn);

            cmd.Parameters.AddWithValue("@name", curRec.Name);
            cmd.Parameters.AddWithValue("@water", curRec.Water.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@caloric", curRec.Caloric.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@fat", curRec.fat.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@acid", curRec.acid.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@ash", curRec.ash.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@cholesterol", curRec.cholesterol.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@protein", curRec.protein.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@starch", curRec.starch.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@saccharides", curRec.saccharides.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@cellulose", curRec.cellulose.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminA", curRec.vitaminA.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminB", curRec.VitaminB.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminB1", curRec.VitaminB1.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminB2", curRec.VitaminB2.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminPP", curRec.VitaminPP.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminC", curRec.VitaminC.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralK", curRec.MineralK.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralNa", curRec.MineralNA.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralCa", curRec.MineralCA.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralMg", curRec.MineralMG.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralP", curRec.MineralP.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralFe", curRec.MineralFE.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@comment", curRec.Comment);
            cmd.Parameters.AddWithValue("@normativDoc", curRec.NormativDoc);
            cmd.Parameters.AddWithValue("@brutto", curRec.Brutto.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@inSostav", curRec.InSostav);
            cmd.Parameters.AddWithValue("@inRecept", curRec.InRecept);
            cmd.Parameters.AddWithValue("@id", curRec.Id.ToString(CultureInfo.InvariantCulture));
            //throw new Exception("The method or operation is not implemented.");
            int ret = 0;

            try
            {
                if (this.conn.State == ConnectionState.Closed)
                {
                    this.conn.Open();
                }
                this.adapter.UpdateCommand = cmd;
                ret = this.adapter.UpdateCommand.ExecuteNonQuery();
            }
            catch (System.Exception e)
            {
                MessageBox.Show("Обновление записи неудачно:\n " + e.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0);
                return;
            }
            if (ret != 1)
            {
                MessageBox.Show("Во время обновления произошла ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0);
            }
            curRec.IsChanged = false;
        }
コード例 #6
0
ファイル: PanelReceptData.cs プロジェクト: seekerk/recept
        /// <summary>
        /// окончание работы со списком
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cbName_Leave(object sender, EventArgs e)
        {
            //cbName.Visible = false;

            TreeGridNode  curNode = cbName.Tag as TreeGridNode;
            DataRawStruct curSel  = cbName.SelectedItem as DataRawStruct;

            if (curNode == null || curSel == null)
            {
                return;
            }

            DataRaw curRaw = curNode.Tag as DataRaw;

            // родительский объект
            DataBase par = curRaw == null ? myData : curRaw.Parent;

            // определение родительского объекта
            if (curRaw == null && curNode.Parent != null && curNode.Parent.Index >= 0 && curNode.Parent.Tag != null)
            {
                par = curNode.Parent.Tag as DataBase;
            }

            // если
            if (curRaw == null)
            {
                curRaw = new DataRaw(par);
                //curNode.Tag = curRaw;
                //if (curNode.Parent == null)
                //    dgvRawList.Nodes.Add(null, null, null, null, null, null);
                //else
                //    curNode.Parent.Nodes.Add(null, null, null, null, null, null);
            }

            if (curSel != null)
            {
                curRaw.RawStruct = curSel;
            }
            else
            {
                if (curRaw.RawStruct != null)
                {
                    curRaw.RawStruct = null;
                }
            }
            if (curNode.Tag == null)
            {
                par.Components.Add(curRaw);
            }
            //curNode.Selected = true;

            //dgvRawList.EndEdit();
            //dgvRawList.Focus();
        }
コード例 #7
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 /// <summary>
 /// Получение порядкового номера по списку компонент
 /// </summary>
 /// <param name="dataRawStruct">структура компоненты</param>
 /// <returns>порядковый номер</returns>
 internal int GetRawNum(DataRawStruct dataRawStruct)
 {
     for (int i = 0; i < RawList.Count; i++)
     {
         if ((RawList[i] as DataRawStruct).Id == dataRawStruct.Id)
         {
             return(i);
         }
     }
     return(-1);
     //throw new Exception("The method or operation is not implemented.");
 }
コード例 #8
0
        /// <summary>
        /// группировка сырья с суммированием количества
        /// </summary>
        /// <returns>ключ=DataRawStruct, значение=DataRaw (заполнено quantity и brutto)</returns>
        internal Hashtable GroupRaws(bool isRecursive)
        {
            Hashtable ret = new Hashtable();

            foreach (DataBase dr in this.Components)
            {
                // если это рецептура полуфабриката
                if (dr is DataRecept)
                {
                    if (isRecursive)
                    {
                        Hashtable curRec = (dr as DataRecept).GroupRaws(isRecursive);
                        foreach (DataRawStruct curRaw in curRec.Keys)
                        {
                            if (!ret.ContainsKey(curRaw))
                            {
                                ret[curRaw] = new DataRaw(null);
                            }
                            (ret[curRaw] as DataRaw).Quantity += (curRec[curRaw] as DataRaw).Quantity;
                            (ret[curRaw] as DataRaw).Brutto   += (curRec[curRaw] as DataRaw).Brutto;
                        }
                    }
                    continue;
                }

                DataRawStruct rawStr = (dr as DataRaw).RawStruct;

                if (rawStr == null)
                {
                    continue;
                }

                Decimal brutto = (dr as DataRaw).Brutto;
                Decimal netto  = (dr as DataRaw).Quantity;
                if (brutto != 0 && netto == 0 && rawStr.Brutto != 0)
                {
                    netto = brutto / rawStr.Brutto;
                }
                if (brutto == 0 && netto != 0 && rawStr.Brutto != 0)
                {
                    brutto = netto * rawStr.Brutto;
                }

                if (!ret.ContainsKey(rawStr))
                {
                    ret[rawStr] = new DataRaw(null);
                }
                (ret[rawStr] as DataRaw).Quantity += netto;
                (ret[rawStr] as DataRaw).Brutto   += brutto;
            }
            return(ret);
        }
コード例 #9
0
        /// <summary>
        /// загрузка данных по сырью из xml файла
        /// </summary>
        /// <param name="root">узел со списком компонент</param>
        /// <param name="par">родительская структура</param>
        /// <returns></returns>
        public static BindingList <DataBase> LoadManyFromXml(XmlNode root, DataBase par, ReceptVersion curVer)
        {
            BindingList <DataBase> ret = new BindingList <DataBase>();

            switch (curVer)
            {
            case ReceptVersion.Version0:
                throw new NotImplementedException("not implemented");

            case ReceptVersion.Version1:
                foreach (XmlNode curNode in root.ChildNodes)
                {
                    if (curNode.Name.Equals("recept"))
                    {
                        ret.Add(DataRecept.LoadFromXml(curNode, par, curVer));
                    }
                    else     // это лист с сырьем
                    {
                        DataRaw curRaw = new DataRaw(par);
                        curRaw.BeginUpdate();
                        foreach (XmlNode curRawNode in curNode.ChildNodes)
                        {
                            switch (curRawNode.Name)
                            {
                            case "quantity": curRaw.Quantity = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                            case "comment": curRaw.Comment = curRawNode.InnerText; break;

                            case "brutto": curRaw.myBrutto = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                            case "rawStruct": curRaw.myRawStruct = DataRawStruct.LoadFromXml(curRawNode, curRaw, DataBaseType.RawType); break;

                            case "processLoss": curRaw.myProcessLoss = DataRawStruct.LoadFromXml(curRawNode, curRaw, DataBaseType.ProcessLossType); break;
                            }
                        }
                        curRaw.EndUpdate(false);
                        curRaw.IsChanged = false;
                        ret.Add(curRaw);
                    }
                }
                break;

            default:
                throw new NotImplementedException("not implemented");
            }
            return(ret);
        }
コード例 #10
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
        internal DataRawStruct FindProcessLoss(DataRawStruct curRec)
        {
            if (curRec == null)
            {
                return(null);
            }
            // шаг 1. Берем компоненту с таким ID
            DataRawStruct ret = this.GetProcessLossByNum(curRec.Id);

            if (ret != null && curRec.EqualVal(ret))
            {
                return(ret);
            }

            // шаг 2. Ищем такую компоненту в БД без учета ID
            return(this.GetProcessLossByNum(FindDataRawStruct(curRec, "processLoss")));
        }
コード例 #11
0
        public object Clone()
        {
            DataRawStruct ret = new DataRawStruct(this.Parent);

            ret.BeginUpdate();
            ret.pBrutto       = pBrutto;
            ret.myCaloric     = myCaloric;
            ret._starch       = _starch;
            ret._saccharides  = _saccharides;
            ret._cellulose    = _cellulose;
            ret._cholesterol  = _cholesterol;
            ret._fat          = _fat;
            ret._acid         = _acid;
            ret._ash          = _ash;
            ret.m_mineralCA   = m_mineralCA;
            ret.m_mineralFE   = m_mineralFE;
            ret.m_mineralK    = m_mineralK;
            ret.m_mineralMG   = m_mineralMG;
            ret.m_mineralNA   = m_mineralNA;
            ret.m_mineralP    = m_mineralP;
            ret.m_normativDoc = m_normativDoc;
            ret._protein      = _protein;
            ret._vitaminA     = _vitaminA;
            ret._vitaminB     = _vitaminB;
            ret._vitaminB1    = _vitaminB1;
            ret._vitaminB2    = _vitaminB2;
            ret.m_vitaminC    = m_vitaminC;
            ret._vitaminPP    = _vitaminPP;
            ret.myWater       = myWater;
            ret.Id            = this.Id;
            ret.Comment       = this.Comment;
            ret.Name          = this.Name;
            ret.Quantity      = this.Quantity;
            ret.pInSostav     = pInSostav;
            ret.pInRecept     = pInRecept;

            return(ret);
            //throw new Exception("The method or operation is not implemented.");
        }
コード例 #12
0
        void FillDataRawStruct()
        {
            DataRawStruct br = (DataRawStruct)myBaseRec;
            DataRawStruct cr = (DataRawStruct)myCurRec;
            DataRawStruct ur = (DataRawStruct)myUserRec;

            FillTableRecord(false, "Наименование", br == null? null : br.Name,
                            cr == null ? null : cr.Name, ur == null ? null : ur.Name);
            FillTableRecord(cbHideEqual.Checked, "Влажность", br == null ? 0 : br.Water,
                            cr == null ? 0 : cr.Water, ur == null ? 0 : ur.Water);
            FillTableRecord(cbHideEqual.Checked, "Калорийность", br == null ? 0 : br.Caloric,
                            cr == null ? 0 : cr.Caloric, ur == null ? 0 : ur.Caloric);
            FillTableRecord(cbHideEqual.Checked, "Жирность", br == null ? 0 : br.fat,
                            cr == null ? 0 : cr.fat, ur == null ? 0 : ur.fat);
            FillTableRecord(cbHideEqual.Checked, "Холестерин", br == null ? 0 : br.cholesterol,
                            cr == null ? 0 : cr.cholesterol, ur == null ? 0 : ur.cholesterol);
            FillTableRecord(cbHideEqual.Checked, "Белки", br == null ? 0 : br.protein,
                            cr == null ? 0 : cr.protein, ur == null ? 0 : ur.protein);
            FillTableRecord(cbHideEqual.Checked, "Крахмал", br == null ? 0 : br.starch,
                            cr == null ? 0 : cr.starch, ur == null ? 0 : ur.starch);
            FillTableRecord(cbHideEqual.Checked, "Моно и дисахариды", br == null ? 0 : br.saccharides,
                            cr == null ? 0 : cr.saccharides, ur == null ? 0 : ur.saccharides);
            FillTableRecord(cbHideEqual.Checked, "Органические кислоты", br == null ? 0 : br.acid,
                            cr == null ? 0 : cr.acid, ur == null ? 0 : ur.acid);
            FillTableRecord(cbHideEqual.Checked, "Зола", br == null ? 0 : br.ash,
                            cr == null ? 0 : cr.ash, ur == null ? 0 : ur.ash);
            FillTableRecord(cbHideEqual.Checked, "Клетчатка", br == null ? 0 : br.cellulose,
                            cr == null ? 0 : cr.cellulose, ur == null ? 0 : ur.cellulose);
            FillTableRecord(cbHideEqual.Checked, "Витамин A", br == null ? 0 : br.vitaminA,
                            cr == null ? 0 : cr.vitaminA, ur == null ? 0 : ur.vitaminA);
            FillTableRecord(cbHideEqual.Checked, "Витамин B", br == null ? 0 : br.VitaminB,
                            cr == null ? 0 : cr.VitaminB, ur == null ? 0 : ur.VitaminB);
            FillTableRecord(cbHideEqual.Checked, "Витамин B1", br == null ? 0 : br.VitaminB1,
                            cr == null ? 0 : cr.VitaminB1, ur == null ? 0 : ur.VitaminB1);
            FillTableRecord(cbHideEqual.Checked, "Витамин B2", br == null ? 0 : br.VitaminB2,
                            cr == null ? 0 : cr.VitaminB2, ur == null ? 0 : ur.VitaminB2);
            FillTableRecord(cbHideEqual.Checked, "Витамин C", br == null ? 0 : br.VitaminC,
                            cr == null ? 0 : cr.VitaminC, ur == null ? 0 : ur.VitaminC);
            FillTableRecord(cbHideEqual.Checked, "Минерал K", br == null ? 0 : br.MineralK,
                            cr == null ? 0 : cr.MineralK, ur == null ? 0 : ur.MineralK);
            FillTableRecord(cbHideEqual.Checked, "Минерал Na", br == null ? 0 : br.MineralNA,
                            cr == null ? 0 : cr.MineralNA, ur == null ? 0 : ur.MineralNA);
            FillTableRecord(cbHideEqual.Checked, "Минерал Ca", br == null ? 0 : br.MineralCA,
                            cr == null ? 0 : cr.MineralCA, ur == null ? 0 : ur.MineralCA);
            FillTableRecord(cbHideEqual.Checked, "Минерал Mg", br == null ? 0 : br.MineralMG,
                            cr == null ? 0 : cr.MineralMG, ur == null ? 0 : ur.MineralMG);
            FillTableRecord(cbHideEqual.Checked, "Минерал P", br == null ? 0 : br.MineralP,
                            cr == null ? 0 : cr.MineralP, ur == null ? 0 : ur.MineralP);
            FillTableRecord(cbHideEqual.Checked, "Минерал Fe", br == null ? 0 : br.MineralFE,
                            cr == null ? 0 : cr.MineralFE, ur == null ? 0 : ur.MineralFE);
            FillTableRecord(cbHideEqual.Checked, "Нормативный документ", br == null ? null : br.NormativDoc,
                            cr == null ? null : cr.NormativDoc, ur == null ? null : ur.NormativDoc);
            FillTableRecord(cbHideEqual.Checked, "Брутто/Нетто", br == null ? 0 : br.Brutto,
                            cr == null ? 0 : cr.Brutto, ur == null ? 0 : ur.Brutto);
            FillTableRecord(cbHideEqual.Checked, "Отображение в списке состава", br == null ? true : br.InSostav,
                            cr == null ? true : cr.InSostav, ur == null ? true : ur.InSostav);
            FillTableRecord(cbHideEqual.Checked, "Отображение элемента в рецептуре", br == null ? true : br.InRecept,
                            cr == null ? true : cr.InRecept, ur == null ? true : ur.InRecept);
            FillTableRecord(cbHideEqual.Checked, "Комментарий", br == null ? null : br.Comment,
                            cr == null ? null : cr.Comment, ur == null ? null : ur.Comment);
        }
コード例 #13
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 internal void UpdateRaw(DataRawStruct curRec)
 {
     UpdateDataRawStruct(curRec, "comps");
     SendRawChanged();
 }
コード例 #14
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 internal void UpdateProcessLoss(DataRawStruct curRec)
 {
     UpdateDataRawStruct(curRec, "processLoss");
     SendProcessLossChanged();
 }
コード例 #15
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 internal void AddRaw(DataRawStruct curRec)
 {
     AddDataRawStruct(curRec, "comps");
     SendRawChanged();
 }
コード例 #16
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 internal void AddProcessLoss(DataRawStruct curRec)
 {
     AddDataRawStruct(curRec, "processLoss");
     SendProcessLossChanged();
 }
コード例 #17
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 /// <summary>
 /// Поиск записи о компоненте пользователя в БД
 /// </summary>
 /// <param name="curRaw">компонента пользователя</param>
 /// <returns>найденная запись если есть</returns>
 protected abstract int FindSimilarDataRawStruct(DataRawStruct curRec, string tableName);
コード例 #18
0
ファイル: DPodbc.cs プロジェクト: seekerk/recept
        /// <summary>
        /// Поиск записи о компоненте пользователя в БД
        /// </summary>
        /// <param name="curRaw">компонента пользователя</param>
        /// <returns>найденная запись если есть</returns>
        protected override int FindDataRawStruct(DataRawStruct curRec, string tableName)
        {
            string      sqlStr = "SELECT id FROM " + tableName + " WHERE name=? AND water=? AND caloric=? AND fat=? AND acid=? AND ash=? AND cholesterol=? AND protein=? AND starch=? AND saccharides=? AND cellulose=? AND vitaminA=? AND vitaminB=? AND vitaminB1=? AND vitaminB2=? AND vitaminPP=? AND vitaminC=? AND mineralK=? AND mineralNa=? AND mineralCa=? AND mineralMg=? AND mineralP=? AND mineralFe=? AND normativDoc=? AND brutto=? AND inSostav=? AND inRecept=?";
            OdbcCommand cmd    = new OdbcCommand(sqlStr, conn);

            cmd.Parameters.AddWithValue("@name", curRec.Name);
            cmd.Parameters.AddWithValue("@water", curRec.Water.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@caloric", curRec.Caloric.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@fat", curRec.fat.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@acid", curRec.acid.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@ash", curRec.ash.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@cholesterol", curRec.cholesterol.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@protein", curRec.protein.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@starch", curRec.starch.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@saccharides", curRec.saccharides.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@cellulose", curRec.cellulose.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminA", curRec.vitaminA.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminB", curRec.VitaminB.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminB1", curRec.VitaminB1.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminB2", curRec.VitaminB2.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminPP", curRec.VitaminPP.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@vitaminC", curRec.VitaminC.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralK", curRec.MineralK.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralNa", curRec.MineralNA.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralCa", curRec.MineralCA.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralMg", curRec.MineralMG.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralP", curRec.MineralP.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@mineralFe", curRec.MineralFE.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@normativDoc", curRec.NormativDoc);
            cmd.Parameters.AddWithValue("@brutto", curRec.Brutto.ToString(CultureInfo.InvariantCulture));
            cmd.Parameters.AddWithValue("@inSostav", curRec.InSostav);
            cmd.Parameters.AddWithValue("@inRecept", curRec.InRecept);
            //throw new Exception("The method or operation is not implemented.");

            DataTable comp_table = null;

            try
            {
                if (this.conn.State == ConnectionState.Closed)
                {
                    this.conn.Open();
                }
                this.adapter.SelectCommand = cmd;
                DataSet ds = new DataSet("tables");
                ds.Locale = CultureInfo.InvariantCulture;
                this.adapter.Fill(ds);
                comp_table = ds.Tables[0];
            }
            catch (OdbcException pe)
            {
                MessageBox.Show(pe.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0);
                return(-1);
            }

            if (comp_table.Rows.Count == 0)
            {
                return(-1);
            }
            return(Convert.ToInt32(comp_table.Rows[0][0], CultureInfo.InvariantCulture));

            //throw new Exception("The method or operation is not implemented.");
        }
コード例 #19
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 internal void DeleteProcessLoss(DataRawStruct curRec)
 {
     DeleteRecord(curRec, DataProvider.ProcessLossTable);
     SendProcessLossChanged();
 }
コード例 #20
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 protected abstract void UpdateDataRawStruct(DataRawStruct curRec, string tableName);
コード例 #21
0
ファイル: DataProvider.cs プロジェクト: seekerk/recept
 internal void DeleteRaw(DataRawStruct curRec)
 {
     DeleteRecord(curRec, DataProvider.DataRawTable);
     SendRawChanged();
 }
コード例 #22
0
        public static DataRawStruct LoadFromXml(XmlNode root, DataBase par, DataBaseType curType)
        {
            DataRawStruct curRaw = new DataRawStruct(par);

            curRaw.BeginUpdate();
            curRaw.Id = int.Parse(root.Attributes["id"].Value, CultureInfo.CurrentCulture);
            foreach (XmlNode curRawNode in root.ChildNodes)
            {
                switch (curRawNode.Name)
                {
                case "brutto":
                    curRaw.pBrutto = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture);
                    break;

                case "caloric":
                    curRaw.myCaloric = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture);
                    break;

                case "starch":
                    curRaw._starch = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture);
                    break;

                case "saccharides":
                    curRaw._saccharides = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture);
                    break;

                case "cellulose": curRaw._cellulose = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "cholesterol": curRaw._cholesterol = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "comment": curRaw.Comment = curRawNode.InnerText.ToString(); break;

                case "fat": curRaw._fat = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "acid": curRaw._acid = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "ash": curRaw._ash = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "mineralCa": curRaw.m_mineralCA = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "mineralFe": curRaw.m_mineralFE = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "mineralK": curRaw.m_mineralK = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "mineralMg": curRaw.m_mineralMG = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "mineralNa": curRaw.m_mineralNA = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "mineralP": curRaw.m_mineralP = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "normativDoc": curRaw.m_normativDoc = curRawNode.InnerText.ToString(); break;

                case "protein": curRaw._protein = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "vitaminA": curRaw._vitaminA = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "vitaminB": curRaw._vitaminB = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "vitaminB1": curRaw._vitaminB1 = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "vitaminB2": curRaw._vitaminB2 = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "vitaminC": curRaw.m_vitaminC = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "vitaminPP": curRaw._vitaminPP = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "water": curRaw.myWater = Convert.ToDecimal(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "name": curRaw.Name = curRawNode.InnerText; break;

                case "inRecept": curRaw.pInRecept = Convert.ToBoolean(curRawNode.InnerText, CultureInfo.CurrentCulture); break;

                case "inSostav": curRaw.pInSostav = Convert.ToBoolean(curRawNode.InnerText, CultureInfo.CurrentCulture); break;
                    //case "quantity": curRaw._quantity = Convert.ToDecimal(curRawNode.InnerText); break;
                }
            }
            curRaw.EndUpdate(false);
            curRaw.IsChanged = false;

            // ищем эту или похожую компоненту в БД
            DataRawStruct ret;

            switch (curType)
            {
            case DataBaseType.RawType:
                ret = Config.DP.FindRaw(curRaw);
                if (ret == null)
                {
                    FormCompare frm = new FormCompare(curRaw, Config.DP.FindSimilarRaw(curRaw), curType);
                    frm.ShowDialog();
                    ret = (DataRawStruct)frm.UserRec;
                }
                break;

            case DataBaseType.ProcessLossType:
                ret = Config.DP.FindProcessLoss(curRaw);
                if (ret == null)
                {
                    FormCompare frm = new FormCompare(curRaw, Config.DP.FindSimilarProcessLoss(curRaw), curType);
                    frm.ShowDialog();
                    ret = (DataRawStruct)frm.UserRec;
                }
                break;

            default:
                throw new NotImplementedException("Не реализовано");
            }

            //ret.Add(curRaw);
            return(ret);
        }
コード例 #23
0
        /// <summary>
        /// расчет рецептуры
        /// </summary>
        /// <returns>результаты расчета</returns>
        internal void CalcRecept()
        {
            // инициализация
            this.myCalcProperty = new DataRawStruct(null);
            this.myCalcSumNetto = 0;
            this.myCalcSumSuhie = 0;

            // Потери текущего элемента.
            DataRawStruct prLoss;

            // расчет закладки по количеству и сухим веществам
            foreach (DataBase curRec in Components)
            {
                Decimal       netto  = 0;
                DataRawStruct curRaw = null;

                if (curRec is DataRecept)
                {
                    // расчет вложенной рецептуры
                    DataRecept introRec = (DataRecept)curRec;
                    introRec.CalcRecept();
                    netto  = introRec.CalcSumNetto;
                    curRaw = introRec.CalcProperty;
                    prLoss = new DataRawStruct(null);
                    this.myCalcSumSuhie += introRec.CalcSumSuhie;
                }
                else
                {
                    // Расчет компоненты
                    DataRaw dr = (DataRaw)curRec;
                    netto  = dr.Quantity;
                    curRaw = dr.RawStruct;
                    // если элемент пустой, то пропускаем его
                    if (curRaw == null)
                    {
                        continue;
                    }

                    if (dr.Brutto == 0 && netto != 0 && curRaw.Brutto != 0)
                    {
                        dr.Brutto = netto * curRaw.Brutto;
                    }

                    if (dr.Brutto != 0 && netto == 0 && curRaw.Brutto != 0)
                    {
                        netto = dr.Brutto / curRaw.Brutto;
                    }

                    // если не заданы потери, то создаем пустые (без потерь)
                    if (dr.ProcessLoss != null)
                    {
                        prLoss = dr.ProcessLoss;
                    }
                    else
                    {
                        prLoss = new DataRawStruct(null);
                    }

                    // добавление сухих веществ
                    this.myCalcSumSuhie += netto * (100 - curRaw.Water) * (100 - prLoss.Brutto) / 10000;
                }

                // расчет = сумма (количество, уменьшенное на потерю при термической обработке и умноженное на присутствие
                // исходные данные указаны в % (кроме веса и калорийности)
                this.myCalcSumNetto             += netto * (100 - prLoss.Brutto) / 100;
                this.myCalcProperty.Water       += curRaw.Water * netto * (100 - prLoss.Water) / 10000;
                this.myCalcProperty.Caloric     += curRaw.Caloric * netto * (100 - prLoss.Caloric) / 10000; // калории на 100г., поэтому еще делим и на 100
                this.myCalcProperty.starch      += curRaw.starch * netto * (100 - prLoss.starch) / 10000;
                this.myCalcProperty.saccharides += curRaw.saccharides * netto * (100 - prLoss.saccharides) / 10000;
                this.myCalcProperty.cellulose   += curRaw.cellulose * netto * (100 - prLoss.cellulose) / 10000;
                this.myCalcProperty.cholesterol += curRaw.cholesterol * netto * (100 - prLoss.cholesterol) / 10000;
                this.myCalcProperty.fat         += curRaw.fat * netto * (100 - prLoss.fat) / 10000;
                this.myCalcProperty.acid        += curRaw.acid * netto * (100 - prLoss.acid) / 10000;
                this.myCalcProperty.ash         += curRaw.ash * netto * (100 - prLoss.ash) / 10000;
                this.myCalcProperty.MineralCA   += curRaw.MineralCA * netto * (100 - prLoss.MineralCA) / 10000;
                this.myCalcProperty.MineralFE   += curRaw.MineralFE * netto * (100 - prLoss.MineralFE) / 10000;
                this.myCalcProperty.MineralK    += curRaw.MineralK * netto * (100 - prLoss.MineralK) / 10000;
                this.myCalcProperty.MineralMG   += curRaw.MineralMG * netto * (100 - prLoss.MineralMG) / 10000;
                this.myCalcProperty.MineralNA   += curRaw.MineralNA * netto * (100 - prLoss.MineralNA) / 10000;
                this.myCalcProperty.MineralP    += curRaw.MineralP * netto * (100 - prLoss.MineralP) / 10000;
                this.myCalcProperty.protein     += curRaw.protein * netto * (100 - prLoss.protein) / 10000;
                this.myCalcProperty.vitaminA    += curRaw.vitaminA * netto * (100 - prLoss.vitaminA) / 10000;
                this.myCalcProperty.VitaminB    += curRaw.VitaminB * netto * (100 - prLoss.VitaminB) / 10000;
                this.myCalcProperty.VitaminB1   += curRaw.VitaminB1 * netto * (100 - prLoss.VitaminB1) / 10000;
                this.myCalcProperty.VitaminB2   += curRaw.VitaminB2 * netto * (100 - prLoss.VitaminB2) / 10000;
                this.myCalcProperty.VitaminC    += curRaw.VitaminC * netto * (100 - prLoss.VitaminC) / 10000;
                this.myCalcProperty.VitaminPP   += curRaw.VitaminPP * netto * (100 - prLoss.VitaminPP) / 10000;
            }

            // Расчет по выходу
            if (myIsCalcExit && this.myTotalExit > 0)
            {
                if (this._totalLoss != null)
                {
                    this.myCalcExitSuhie = this.myCalcSumSuhie * (100 - this._totalLoss.Quantity) / 100;
                }
                else
                {
                    this.myCalcExitSuhie = this.myCalcSumSuhie;
                }

                this.myCalcExitNetto = this.myTotalExit;
            }
            else

            // расчет по воде
            if (myIsCalcWater && this.water > 0)
            {
                if (this._totalLoss != null)
                {
                    this.myCalcExitSuhie = this.myCalcSumSuhie * (100 - this._totalLoss.Quantity) / 100;
                }
                else
                {
                    this.myCalcExitSuhie = this.myCalcSumSuhie;
                }

                this.myCalcExitNetto = this.myCalcExitSuhie / (100 - this._water) * 100;
            }
            else

            // расчет воды по выходу и влажности
            if (myIsSetWater && this._water > 0 && this.myTotalExit > 0)
            {
                DataRawStruct waterRaw = Config.DP.GetRawByNum(Config.Cfg.WaterId);
                if (waterRaw == null)
                {
                    throw new InvalidDataException("Не задана вода для расчета в рецептуре");
                }

                if (this._totalLoss != null)
                {
                    this.myCalcExitSuhie = this.myCalcSumSuhie * (100 - this._totalLoss.Quantity) / 100;
                }
                else
                {
                    this.myCalcExitSuhie = this.myCalcSumSuhie;
                }

                this.myCalcExitNetto = this.myTotalExit;
                //decimal waterVal = this.myCalcExitSuhie / (100 - this._water) * 100 - this.myCalcExitNetto;
                throw new NotImplementedException("Дописать расчет воды по выходу и влажности");
            }
            else
            { // Просто без расчета
                this.myCalcExitNetto = this.myCalcSumNetto;
                this.myCalcExitSuhie = this.myCalcSumSuhie;
            }
            if (this.myCalcExitNetto <= 0)
            {
                throw new OverflowException("Выход у рецептуры меньше или равен нулю");
            }

            // пересчет значений в процентах
            this.myCalcProperty.Water       /= this.myCalcExitNetto / 100;
            this.myCalcProperty.Caloric     /= this.myCalcExitNetto / 100;
            this.myCalcProperty.starch      /= this.myCalcExitNetto / 100;
            this.myCalcProperty.saccharides /= this.myCalcExitNetto / 100;
            this.myCalcProperty.cellulose   /= this.myCalcExitNetto / 100;
            this.myCalcProperty.cholesterol /= this.myCalcExitNetto / 100;
            this.myCalcProperty.fat         /= this.myCalcExitNetto / 100;
            this.myCalcProperty.acid        /= this.myCalcExitNetto / 100;
            this.myCalcProperty.ash         /= this.myCalcExitNetto / 100;
            this.myCalcProperty.MineralCA   /= this.myCalcExitNetto / 100;
            this.myCalcProperty.MineralFE   /= this.myCalcExitNetto / 100;
            this.myCalcProperty.MineralK    /= this.myCalcExitNetto / 100;
            this.myCalcProperty.MineralMG   /= this.myCalcExitNetto / 100;
            this.myCalcProperty.MineralNA   /= this.myCalcExitNetto / 100;
            this.myCalcProperty.MineralP    /= this.myCalcExitNetto / 100;
            this.myCalcProperty.protein     /= this.myCalcExitNetto / 100;
            this.myCalcProperty.vitaminA    /= this.myCalcExitNetto / 100;
            this.myCalcProperty.VitaminB    /= this.myCalcExitNetto / 100;
            this.myCalcProperty.VitaminB1   /= this.myCalcExitNetto / 100;
            this.myCalcProperty.VitaminB2   /= this.myCalcExitNetto / 100;
            this.myCalcProperty.VitaminC    /= this.myCalcExitNetto / 100;
            this.myCalcProperty.VitaminPP   /= this.myCalcExitNetto / 100;
        }
コード例 #24
0
ファイル: DPodbc.cs プロジェクト: seekerk/recept
        protected override SortableBindingList <DataRawStruct> LoadDataRawList(string tableName)
        {
            DataTable comp_table = null;
            String    sql        = "SELECT * FROM " + tableName + " ORDER BY name ASC";

            try
            {
                if (this.conn.State == ConnectionState.Closed)
                {
                    this.conn.Open();
                }
                this.adapter.SelectCommand = new OdbcCommand(sql, this.conn);
                DataSet ds = new DataSet("tables");
                ds.Locale = CultureInfo.InvariantCulture;
                this.adapter.Fill(ds);
                comp_table = ds.Tables[0];
            }
            catch (OdbcException pe)
            {
                MessageBox.Show(pe.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0);
                return(null);
            }

            SortableBindingList <DataRawStruct> ret = new SortableBindingList <DataRawStruct>();

            for (int i = 0; i < comp_table.Rows.Count; i++)
            {
                DataRawStruct curRec = new DataRawStruct(null);
                curRec.Brutto      = Convert.ToDecimal(comp_table.Rows[i]["brutto"] is DBNull ? 0 : comp_table.Rows[i]["brutto"], CultureInfo.InvariantCulture);
                curRec.Caloric     = Convert.ToDecimal(comp_table.Rows[i]["caloric"] is DBNull ? 0 : comp_table.Rows[i]["caloric"], CultureInfo.InvariantCulture);
                curRec.starch      = Convert.ToDecimal(comp_table.Rows[i]["starch"] is DBNull ? 0 : comp_table.Rows[i]["starch"], CultureInfo.InvariantCulture);
                curRec.saccharides = Convert.ToDecimal(comp_table.Rows[i]["saccharides"] is DBNull ? 0 : comp_table.Rows[i]["saccharides"], CultureInfo.InvariantCulture);
                curRec.cellulose   = Convert.ToDecimal(comp_table.Rows[i]["cellulose"] is DBNull ? 0 : comp_table.Rows[i]["cellulose"], CultureInfo.InvariantCulture);
                curRec.cholesterol = Convert.ToDecimal(comp_table.Rows[i]["cholesterol"] is DBNull ? 0 : comp_table.Rows[i]["cholesterol"], CultureInfo.InvariantCulture);
                curRec.Comment     = comp_table.Rows[i]["comment"].ToString();
                curRec.fat         = Convert.ToDecimal(comp_table.Rows[i]["fat"] is DBNull ? 0 : comp_table.Rows[i]["fat"], CultureInfo.InvariantCulture);
                curRec.acid        = Convert.ToDecimal(comp_table.Rows[i]["acid"] is DBNull ? 0 : comp_table.Rows[i]["acid"], CultureInfo.InvariantCulture);
                curRec.ash         = Convert.ToDecimal(comp_table.Rows[i]["ash"] is DBNull ? 0 : comp_table.Rows[i]["ash"], CultureInfo.InvariantCulture);
                curRec.Id          = Convert.ToInt32(comp_table.Rows[i]["id"], CultureInfo.InvariantCulture);
                curRec.MineralCA   = Convert.ToDecimal(comp_table.Rows[i]["mineralCa"] is DBNull ? 0 : comp_table.Rows[i]["mineralCa"], CultureInfo.InvariantCulture);
                curRec.MineralFE   = Convert.ToDecimal(comp_table.Rows[i]["mineralFe"] is DBNull ? 0 : comp_table.Rows[i]["mineralFe"], CultureInfo.InvariantCulture);
                curRec.MineralK    = Convert.ToDecimal(comp_table.Rows[i]["mineralK"] is DBNull ? 0 : comp_table.Rows[i]["mineralK"], CultureInfo.InvariantCulture);
                curRec.MineralMG   = Convert.ToDecimal(comp_table.Rows[i]["mineralMg"] is DBNull ? 0 : comp_table.Rows[i]["mineralMg"], CultureInfo.InvariantCulture);
                curRec.MineralNA   = Convert.ToDecimal(comp_table.Rows[i]["mineralNa"] is DBNull ? 0 : comp_table.Rows[i]["mineralNa"], CultureInfo.InvariantCulture);
                curRec.MineralP    = Convert.ToDecimal(comp_table.Rows[i]["mineralP"] is DBNull ? 0 : comp_table.Rows[i]["mineralP"], CultureInfo.InvariantCulture);
                curRec.Name        = comp_table.Rows[i]["name"].ToString();
                curRec.NormativDoc = comp_table.Rows[i]["normativDoc"].ToString();
                curRec.protein     = Convert.ToDecimal(comp_table.Rows[i]["protein"] is DBNull ? 0 : comp_table.Rows[i]["protein"], CultureInfo.InvariantCulture);
                curRec.vitaminA    = Convert.ToDecimal(comp_table.Rows[i]["vitaminA"] is DBNull ? 0 : comp_table.Rows[i]["vitaminA"], CultureInfo.InvariantCulture);
                curRec.VitaminB    = Convert.ToDecimal(comp_table.Rows[i]["vitaminB"] is DBNull ? 0 : comp_table.Rows[i]["vitaminB"], CultureInfo.InvariantCulture);
                curRec.VitaminB1   = Convert.ToDecimal(comp_table.Rows[i]["vitaminB1"] is DBNull ? 0 : comp_table.Rows[i]["vitaminB1"], CultureInfo.InvariantCulture);
                curRec.VitaminB2   = Convert.ToDecimal(comp_table.Rows[i]["vitaminB2"] is DBNull ? 0 : comp_table.Rows[i]["vitaminB2"], CultureInfo.InvariantCulture);
                curRec.VitaminC    = Convert.ToDecimal(comp_table.Rows[i]["vitaminC"] is DBNull ? 0 : comp_table.Rows[i]["vitaminC"], CultureInfo.InvariantCulture);
                curRec.VitaminPP   = Convert.ToDecimal(comp_table.Rows[i]["vitaminPP"] is DBNull ? 0 : comp_table.Rows[i]["vitaminPP"], CultureInfo.InvariantCulture);
                curRec.Water       = Convert.ToDecimal(comp_table.Rows[i]["water"] is DBNull ? 0 : comp_table.Rows[i]["water"], CultureInfo.InvariantCulture);
                if (comp_table.Columns.Contains("inSostav"))
                {
                    curRec.InSostav = Convert.ToBoolean(comp_table.Rows[i]["inSostav"] is DBNull ? true : comp_table.Rows[i]["inSostav"], CultureInfo.InvariantCulture);
                }

                if (comp_table.Columns.Contains("inRecept"))
                {
                    curRec.InRecept = Convert.ToBoolean(comp_table.Rows[i]["inRecept"] is DBNull ? true : comp_table.Rows[i]["inRecept"], CultureInfo.InvariantCulture);
                }

                curRec.IsChanged = false;
                ret.Add(curRec);
            }

            return(ret);
        }
コード例 #25
0
ファイル: PanelRawData.cs プロジェクト: seekerk/recept
        internal void SetData(DataRawStruct p, DataBaseType RecType)
        {
            _recType = RecType;
            // меняем фейс
            switch (_recType)
            {
            case DataBaseType.ProcessLossType:
                label1.Text          = "Потери при тепловой обработке";
                label4.Text          = "Потеря массы";
                cboxInRecept.Visible = false;
                cboxInSostav.Visible = false;
                break;

            case DataBaseType.RawType:
                label1.Text          = "Сырье";
                label4.Text          = "Брутто/Нетто";
                cboxInRecept.Visible = true;
                cboxInSostav.Visible = true;
                break;

            default:
                throw new Exception("Не реализовано");
            }

            // меняем данные
            if (p != null)
            {
                this.tbBrutto.TextChanged        -= new System.EventHandler(this.tbTextChanged);
                this.tbCaloric.TextChanged       -= new System.EventHandler(this.tbTextChanged);
                this.tbStarch.TextChanged        -= new System.EventHandler(this.tbTextChanged);
                this.tbSaccharides.TextChanged   -= new System.EventHandler(this.tbTextChanged);
                this.tbCellulose.TextChanged     -= new System.EventHandler(this.tbTextChanged);
                this.tbCholesterol.TextChanged   -= new System.EventHandler(this.tbTextChanged);
                this.tbComment.TextChanged       -= new System.EventHandler(this.tbTextChanged);
                this.tbFat.TextChanged           -= new System.EventHandler(this.tbTextChanged);
                this.tbAcid.TextChanged          -= new System.EventHandler(this.tbTextChanged);
                this.tbAsh.TextChanged           -= new System.EventHandler(this.tbTextChanged);
                this.tbMinCa.TextChanged         -= new System.EventHandler(this.tbTextChanged);
                this.tbMinFe.TextChanged         -= new System.EventHandler(this.tbTextChanged);
                this.tbMinK.TextChanged          -= new System.EventHandler(this.tbTextChanged);
                this.tbMinMg.TextChanged         -= new System.EventHandler(this.tbTextChanged);
                this.tbMinNa.TextChanged         -= new System.EventHandler(this.tbTextChanged);
                this.tbMinP.TextChanged          -= new System.EventHandler(this.tbTextChanged);
                this.tbName.TextChanged          -= new System.EventHandler(this.tbTextChanged);
                this.tbNormativ.TextChanged      -= new System.EventHandler(this.tbTextChanged);
                this.tbNum.TextChanged           -= new System.EventHandler(this.tbTextChanged);
                this.tbProtein.TextChanged       -= new System.EventHandler(this.tbTextChanged);
                this.tbVitA.TextChanged          -= new System.EventHandler(this.tbTextChanged);
                this.tbVitB.TextChanged          -= new System.EventHandler(this.tbTextChanged);
                this.tbVitB1.TextChanged         -= new System.EventHandler(this.tbTextChanged);
                this.tbVitB2.TextChanged         -= new System.EventHandler(this.tbTextChanged);
                this.tbVitC.TextChanged          -= new System.EventHandler(this.tbTextChanged);
                this.tbVitPP.TextChanged         -= new System.EventHandler(this.tbTextChanged);
                this.tbWater.TextChanged         -= new System.EventHandler(this.tbTextChanged);
                this.cboxInRecept.CheckedChanged -= new System.EventHandler(this.cboxCheckedChanged);
                this.cboxInSostav.CheckedChanged -= new System.EventHandler(this.cboxCheckedChanged);

                _data                = p;
                tbBrutto.Text        = p.Brutto.ToString(CultureInfo.CurrentCulture);
                tbCaloric.Text       = p.Caloric.ToString(CultureInfo.CurrentCulture);
                tbStarch.Text        = p.starch.ToString(CultureInfo.CurrentCulture);
                tbSaccharides.Text   = p.saccharides.ToString(CultureInfo.CurrentCulture);
                tbCellulose.Text     = p.cellulose.ToString(CultureInfo.CurrentCulture);
                tbCholesterol.Text   = p.cholesterol.ToString(CultureInfo.CurrentCulture);
                tbComment.Text       = p.Comment;
                tbFat.Text           = p.fat.ToString(CultureInfo.CurrentCulture);
                tbAcid.Text          = p.acid.ToString(CultureInfo.CurrentCulture);
                tbAsh.Text           = p.ash.ToString(CultureInfo.CurrentCulture);
                tbMinCa.Text         = p.MineralCA.ToString(CultureInfo.CurrentCulture);
                tbMinFe.Text         = p.MineralFE.ToString(CultureInfo.CurrentCulture);
                tbMinK.Text          = p.MineralK.ToString(CultureInfo.CurrentCulture);
                tbMinMg.Text         = p.MineralMG.ToString(CultureInfo.CurrentCulture);
                tbMinNa.Text         = p.MineralNA.ToString(CultureInfo.CurrentCulture);
                tbMinP.Text          = p.MineralP.ToString(CultureInfo.CurrentCulture);
                tbName.Text          = p.Name;
                tbNormativ.Text      = p.NormativDoc;
                tbNum.Text           = p.Id.ToString(CultureInfo.CurrentCulture);
                tbProtein.Text       = p.protein.ToString(CultureInfo.CurrentCulture);
                tbVitA.Text          = p.vitaminA.ToString(CultureInfo.CurrentCulture);
                tbVitB.Text          = p.VitaminB.ToString(CultureInfo.CurrentCulture);
                tbVitB1.Text         = p.VitaminB1.ToString(CultureInfo.CurrentCulture);
                tbVitB2.Text         = p.VitaminB2.ToString(CultureInfo.CurrentCulture);
                tbVitC.Text          = p.VitaminC.ToString(CultureInfo.CurrentCulture);
                tbVitPP.Text         = p.VitaminPP.ToString(CultureInfo.CurrentCulture);
                tbWater.Text         = p.Water.ToString(CultureInfo.CurrentCulture);
                cboxInRecept.Checked = p.InRecept;
                cboxInSostav.Checked = p.InSostav;

                this.tbBrutto.TextChanged        += new System.EventHandler(this.tbTextChanged);
                this.tbCaloric.TextChanged       += new System.EventHandler(this.tbTextChanged);
                this.tbStarch.TextChanged        += new System.EventHandler(this.tbTextChanged);
                this.tbSaccharides.TextChanged   += new System.EventHandler(this.tbTextChanged);
                this.tbCellulose.TextChanged     += new System.EventHandler(this.tbTextChanged);
                this.tbCholesterol.TextChanged   += new System.EventHandler(this.tbTextChanged);
                this.tbComment.TextChanged       += new System.EventHandler(this.tbTextChanged);
                this.tbFat.TextChanged           += new System.EventHandler(this.tbTextChanged);
                this.tbAcid.TextChanged          += new System.EventHandler(this.tbTextChanged);
                this.tbAsh.TextChanged           += new System.EventHandler(this.tbTextChanged);
                this.tbMinCa.TextChanged         += new System.EventHandler(this.tbTextChanged);
                this.tbMinFe.TextChanged         += new System.EventHandler(this.tbTextChanged);
                this.tbMinK.TextChanged          += new System.EventHandler(this.tbTextChanged);
                this.tbMinMg.TextChanged         += new System.EventHandler(this.tbTextChanged);
                this.tbMinNa.TextChanged         += new System.EventHandler(this.tbTextChanged);
                this.tbMinP.TextChanged          += new System.EventHandler(this.tbTextChanged);
                this.tbName.TextChanged          += new System.EventHandler(this.tbTextChanged);
                this.tbNormativ.TextChanged      += new System.EventHandler(this.tbTextChanged);
                this.tbNum.TextChanged           += new System.EventHandler(this.tbTextChanged);
                this.tbProtein.TextChanged       += new System.EventHandler(this.tbTextChanged);
                this.tbVitA.TextChanged          += new System.EventHandler(this.tbTextChanged);
                this.tbVitB.TextChanged          += new System.EventHandler(this.tbTextChanged);
                this.tbVitB1.TextChanged         += new System.EventHandler(this.tbTextChanged);
                this.tbVitB2.TextChanged         += new System.EventHandler(this.tbTextChanged);
                this.tbVitC.TextChanged          += new System.EventHandler(this.tbTextChanged);
                this.tbVitPP.TextChanged         += new System.EventHandler(this.tbTextChanged);
                this.tbWater.TextChanged         += new System.EventHandler(this.tbTextChanged);
                this.cboxInRecept.CheckedChanged += new System.EventHandler(this.cboxCheckedChanged);
                this.cboxInSostav.CheckedChanged += new System.EventHandler(this.cboxCheckedChanged);
            }
        }