Beispiel #1
0
        void Importa()
        {
            if (!Meta.GetFormData(true))
            {
                return;
            }

            OpenFileDialog op = new OpenFileDialog();
            DialogResult   dr = op.ShowDialog();

            if (dr != DialogResult.OK)
            {
                return;
            }

            string fileName = op.FileName;

            DataTable T = new DataTable();

            //Aggiungere a T le colonne del foglio excel
            T.Columns.Add(new DataColumn("quota", typeof(decimal)));
            T.Columns.Add(new DataColumn("codice1", typeof(string)));
            T.Columns.Add(new DataColumn("codice2", typeof(string)));
            T.Columns.Add(new DataColumn("codice3", typeof(string)));


            ExcelImport x = new ExcelImport();

            x.ImportTable(fileName, T);

            if (T.Rows.Count == 0)
            {
                return;
            }


            MetaData metaCostDetail = Meta.Dispatcher.Get("costpartitiondetail");

            metaCostDetail.SetDefaults(DS.costpartitiondetail);
            QueryHelper QHS = Meta.Conn.GetQueryHelper();

            //DataTable cfg = Meta.Conn.RUN_SELECT("config", "ayear,idsor1,idsor2,idsor3", null, QHS.CmpEq("ayear", Meta.GetSys("esercizio")), null, false);
            object idsorkind1 = Meta.GetSys("idsortingkind1");
            object idsorkind2 = Meta.GetSys("idsortingkind2");
            object idsorkind3 = Meta.GetSys("idsortingkind3");


            //bool usePerc = true;
            string fieldToUse = "rate";

            if (rdbCosti.Checked)
            {
                //usePerc = false;
                fieldToUse = "amount";
            }

            DataRow main = DS.costpartition.Rows[0];

            foreach (DataRow r in T.Select())
            {
                DataRow det = metaCostDetail.Get_New_Row(main, DS.costpartitiondetail);
                det[fieldToUse] = r["quota"];
                object code1 = r["codice1"];
                object code2 = r["codice2"];
                object code3 = r["codice3"];

                object idsor1 = DBNull.Value;
                object idsor2 = DBNull.Value;
                object idsor3 = DBNull.Value;

                if (idsorkind1 != DBNull.Value && code1.ToString() != "")
                {
                    idsor1 = Meta.Conn.DO_READ_VALUE("sorting", QHS.AppAnd(QHS.CmpEq("idsorkind", idsorkind1), QHS.CmpEq("sortcode", code1.ToString().Trim())), "idsor");
                    if (idsor1 == null)
                    {
                        idsor1 = DBNull.Value;
                        MessageBox.Show("Codice " + code1 + " non trovato per coordinata analitica " + Meta.GetSys("titlesortingkind1"), "Errore");
                    }
                }
                if (idsorkind2 != DBNull.Value && code2.ToString() != "")
                {
                    idsor2 = Meta.Conn.DO_READ_VALUE("sorting", QHS.AppAnd(QHS.CmpEq("idsorkind", idsorkind2), QHS.CmpEq("sortcode", code2.ToString().Trim())), "idsor");
                    if (idsor2 == null)
                    {
                        idsor2 = DBNull.Value;
                        MessageBox.Show("Codice " + code2 + " non trovato per coordinata analitica " + Meta.GetSys("titlesortingkind2"), "Errore");
                    }
                }
                if (idsorkind3 != DBNull.Value && code3.ToString() != "")
                {
                    idsor3 = Meta.Conn.DO_READ_VALUE("sorting", QHS.AppAnd(QHS.CmpEq("idsorkind", idsorkind3), QHS.CmpEq("sortcode", code3.ToString().Trim())), "idsor");
                    if (idsor3 == null)
                    {
                        idsor3 = DBNull.Value;
                        MessageBox.Show("Codice " + code3 + " non trovato per coordinata analitica " + Meta.GetSys("titlesortingkind3"), "Errore");
                    }
                }
                det["idsor1"] = idsor1;
                det["idsor2"] = idsor2;
                det["idsor3"] = idsor3;
            }

            Meta.FreshForm(true);
        }