Ejemplo n.º 1
0
 private void barButtonItemDatenbankVorbereiten_ItemClick(object sender, ItemClickEventArgs e)
 {
     if (_bdDt != null)
     {
         IQueryable <BDDatenbankTabelleFeld> iqDtf = DataHelperBDDatenbankTabelle.Lese_mittelsTabelle_BDDatenbankTabelleFelder(Program._sBDDatenbankLibraryCRM, _bdDt);
         if (iqDtf.Count() == 0)
         {
             //Alle Felder anlegen
             KUND kund = new KUND(Program._sDB100);
             List <HelperClassMetadata> LiMd1 = DataHelperKunde.LeseMetadata(kund);
             foreach (HelperClassMetadata hcMd in LiMd1)
             {
                 bool result = DataHelperBDDatenbankTabelle.Erstelle_mittelsTabelle_mittelsMetadata_BDDatenbankTabelleFeld(Program._sBDDatenbankLibraryCRM, _bdDt, hcMd);
             }
         }
     }
 }
Ejemplo n.º 2
0
        private void barButtonItemTabelleVorbereiten_ItemClick(object sender, ItemClickEventArgs e)
        {
            //KUND kund = new KUND(Session.DefaultSession);
            //KUND1 kund1 = new KUND1(Session.DefaultSession);
            //List<HelperClassMetadata> LiMd1 = DataHelperKunde.LeseMetadata(kund);
            //List<HelperClassMetadata> LiMd2 = DataHelperKunde.LeseMetadata(kund1);
            //LiMd1.AddRange(LiMd2);
            //_liMd = LiMd1;


            //Eine Leerzeile einfügen, die die zu importierenden Feldnamen enthält
            _worksheet1.Rows["1"].Insert();

            BDDatenbankTabelle bdDt = DataHelperBDDatenbankTabelle.Lese_mittelsDatenbankName_mittelsTabelleName_BDDatenbankTabelle(Program._sBDDatenbankLibraryCRM, "DB100", "KUND");
            IQueryable <BDDatenbankTabelleFeld> iqBdDtf = DataHelperBDDatenbankTabelle.Lese_mittelsTabelle_BDDatenbankTabelleFelder(Program._sBDDatenbankLibraryCRM, bdDt);

            CellValue[] valuesFeldnamen = new CellValue[iqBdDtf.Count()];
            for (int i = 0; i < iqBdDtf.Count(); i++)
            {
                valuesFeldnamen[i] = iqBdDtf.ElementAt(i).Feldname;
            }

            int cols = AnzahlSpalten();

            if (cols > 0)
            {
                for (int i = 0; i < cols; i++)
                {
                    CellRange cR = _worksheet1[0, i];
                    _worksheet1.CustomCellInplaceEditors.Add(cR, CustomCellInplaceEditorType.ComboBox, ValueObject.CreateListSource(valuesFeldnamen));
                }
            }

            //LookUpEdit lookupEdit1 = new LookUpEdit();
            //_worksheet1.CustomCellInplaceEditors.Add(cR, lookupEdit1);

            //repositoryItemLookUpEdit1.DataSource = LiMd1;
            //repositoryItemLookUpEdit1.ValueMember = "Feldname";
            //repositoryItemLookUpEdit1.DisplayMember = "Feldname";

            //Alle leeren Zeilen löschen
            int lz = LetzteZeile();

            if (lz > 0)
            {
                for (int i = 1; i < lz; i++)
                {
                    if (lz > i)
                    {
                        LeerzeileEleminieren(ref lz, ref i);
                    }
                }
            }

            //Formatierungen entfernen
            //_worksheet1.ClearFormats(_worksheet1.Range.Parse("R[1]C[1]:R[" + lz + "]C[" + cols + "]", ReferenceStyle.UseDocumentSettings));
            _worksheet1.ClearFormats(_worksheet1.Range.FromLTRB(0, 0, cols, lz));


            //Outlines entfernen
            _worksheet1.ClearOutline();
        }
Ejemplo n.º 3
0
        private void barButtonItemTabelleImportieren_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                //if (_liMd.Count <= 0)
                //{
                //    MessageBox.Show("Error: Feldnamen können nicht überpürft werden.");
                //    return;
                //}

                //Sind in den Spalten nur korrekt geschriebene Feldnamen?
                //Todo durch alle Spalten
                //if (_liMd.Exists(x => x.Feldname.Contains(Feldname)))
                //{

                //}

                bool resultCheckFeldnamen = CheckFeldnamen(AnzahlSpalten());
                if (!resultCheckFeldnamen)
                {
                    return;
                }
                int lz = LetzteZeile();
                if (lz > 0)
                {
                    for (int row = 1; row < lz; row++)
                    {
                        int cols = AnzahlSpalten();
                        if (cols > 0)
                        {
                            KUND ku = null;

                            CellValue cellValueKundeKennung = _worksheet1.Cells[row, 0].Value;
                            if (cellValueKundeKennung != null)
                            {
                                ku = DataHelperKunde.LeseKunde(cellValueKundeKennung.TextValue);
                            }
                            if (ku == null)
                            {
                                ku = new KUND(Session.DefaultSession);
                                //Kundenkennung aus Nachname und Vorname
                                //=LINKS(WECHSELN(WECHSELN(VERKETTEN(B20;" ";C20);" ";"");"-";"");15)
                                ku.Kunde = "K" + row.ToString().PadLeft(4, '0'); //ToDo
                                //KUND1 ku1 = new KUND1(Session.DefaultSession);
                            }

                            string pn = nameof(ku.Kunde);

                            for (int col = 0; col < cols; col++)
                            {
                                Cell   cell      = _worksheet1.Cells[row, col];
                                var    cellValue = cell.Value;
                                string Feldname  = _worksheet1.Cells[0, col].Value.TextValue;

                                if (!string.IsNullOrEmpty(Feldname) && cellValue != null && cellValue.Type != CellValueType.None)
                                {
                                    PropertyInfo propKu = ku.GetType().GetProperty(Feldname, BindingFlags.Public | BindingFlags.Instance);
                                    if (propKu.Name != pn && propKu != null && propKu.CanWrite)
                                    {
                                        Type typeZiel   = propKu.PropertyType;
                                        Type typeQuelle = null;
                                        if (cellValue.Type == CellValueType.Numeric)
                                        {
                                            object value = null;
                                            if (Type.GetTypeCode(typeZiel) == TypeCode.String)
                                            {
                                                value = cellValue.NumericValue.ToString();
                                            }
                                            else
                                            {
                                                typeQuelle = cellValue.NumericValue.GetType();
                                                switch (Type.GetTypeCode(typeQuelle))
                                                {
                                                case TypeCode.Byte:
                                                    break;

                                                case TypeCode.SByte:
                                                    break;

                                                case TypeCode.UInt16:
                                                    break;

                                                case TypeCode.UInt32:
                                                    break;

                                                case TypeCode.UInt64:
                                                    break;

                                                case TypeCode.Int16:
                                                    break;

                                                case TypeCode.Int32:
                                                    break;

                                                case TypeCode.Int64:
                                                    break;

                                                case TypeCode.Decimal:
                                                    break;

                                                case TypeCode.Double:
                                                    if (Type.GetTypeCode(typeZiel) == TypeCode.Decimal)
                                                    {
                                                        value = (decimal)cellValue.NumericValue;
                                                    }
                                                    break;

                                                case TypeCode.Single:
                                                    break;
                                                }
                                            }
                                            if (value != null)
                                            {
                                                propKu.SetValue(ku, value, null);
                                            }
                                            else
                                            {
                                                string typeQuelleName = typeQuelle != null ? typeQuelle.Name : "Quelle ???";
                                                MessageBox.Show(Feldname + ": Konvertierung von " + typeQuelleName + " zu " + typeZiel.Name + " fehlt.");
                                            }
                                        }
                                        else if (cellValue.Type == CellValueType.Text)
                                        {
                                            typeQuelle = cellValue.TextValue.GetType();
                                            if (typeQuelle == typeZiel)
                                            {
                                                propKu.SetValue(ku, cellValue.TextValue, null);
                                            }
                                        }
                                        else if (cellValue.Type == CellValueType.DateTime)
                                        {
                                            propKu.SetValue(ku, cellValue.DateTimeValue, null);
                                        }
                                        else
                                        {
                                            propKu.SetValue(ku, cellValue.TextValue, null);
                                        }
                                    }
                                    //PropertyInfo propKu1 = ku.GetType().GetProperty(Feldname, BindingFlags.Public | BindingFlags.Instance);
                                    //if (null != propKu1 && propKu1.CanWrite)
                                    //{
                                    //    propKu1.SetValue(ku, cellValue, null);
                                    //}
                                }
                            }
                            BDDatenbankTabelle bdDt = DataHelperBDDatenbankTabelle.Lese_mittelsDatenbankName_mittelsTabelleName_BDDatenbankTabelle(Program._sBDDatenbankLibraryCRM, "DB100", "KUND");
                            IQueryable <BDDatenbankTabelleFeld> iqBdDtf = DataHelperBDDatenbankTabelle.Lese_mittelsTabelle_BDDatenbankTabelleFelder(Program._sBDDatenbankLibraryCRM, bdDt);
                            foreach (BDDatenbankTabelleFeld bdDtf in iqBdDtf)
                            {
                                bool   IstSchlüsselfeld = bdDtf.IstSchlüsselfeld;
                                string Datentyp         = bdDtf.DatentypGenerisch.Datentyp;
                                string Feldname         = bdDtf.Feldname;
                                int    Feldlänge        = bdDtf.Feldlänge;
                                if (!IstSchlüsselfeld)
                                {
                                    PropertyInfo propKu = ku.GetType().GetProperty(Feldname, BindingFlags.Public | BindingFlags.Instance);
                                    if (propKu != null && propKu.CanWrite)
                                    {
                                        var value = propKu.GetValue(ku);
                                        if (Datentyp == "string")
                                        {
                                            string s = (string)value;
                                            if (s != null && Feldlänge > 0 && s.Length > Feldlänge)
                                            {
                                                string sAbgeschnitten = s.Substring(0, Feldlänge - 1);
                                                propKu.SetValue(ku, sAbgeschnitten, null);
                                            }
                                            else if (s == null || string.IsNullOrEmpty(s))
                                            {
                                                propKu.SetValue(ku, "", null);
                                            }
                                        }
                                        else if (Datentyp == "int")
                                        {
                                            int?i    = (int)value;
                                            int imin = 0;
                                            if (i == null || i < imin)
                                            {
                                                propKu.SetValue(ku, imin, null);
                                            }
                                        }
                                        else if (Datentyp == "decimal")
                                        {
                                            decimal?d    = (decimal)value;
                                            decimal dmin = 0m;
                                            if (d == null || d < dmin)
                                            {
                                                propKu.SetValue(ku, dmin, null);
                                            }
                                        }
                                        else if (Datentyp == "datetime")
                                        {
                                            DateTime dt    = (DateTime)value;
                                            DateTime dtmin = new DateTime(1900, 1, 1);
                                            if (dt == null || dt < dtmin)
                                            {
                                                propKu.SetValue(ku, dtmin, null);
                                            }
                                        }
                                    }
                                }
                            }
                            ku.Save();
                            _worksheet1.Cells[row, 0].Value = ku.Kunde;
                            //ku1.CompoundKey1.Kunde = ku.Kunde;
                            //ku1.CompoundKey1.Nr = 1;
                            //ku1.Save();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }