public static bool Erstelle_mittelsTabelle_mittelsMetadata_BDDatenbankTabelleFeld(Session s, BDDatenbankTabelle tabelle, HelperClassMetadata hcMd) { try { //bdDtf.SQLServerDatentyp = hcMd.SQLServerDatentyp; HelperDatentypGenerisch hDtg = DataHelperBDDatenbankTabelle.Lese_mittelsDatentypName_DatentypGenerisch_ID(s, hcMd.GenerischerDatentyp); if (hDtg != null) { BDDatenbankTabelleFeld bdDtf = new BDDatenbankTabelleFeld(s); bdDtf.Tabelle = tabelle; bdDtf.Feldname = hcMd.Feldname; bdDtf.DatentypGenerisch = hDtg; bdDtf.Feldlänge = hcMd.Feldlänge; bdDtf.IstSchlüsselfeld = hcMd.IstSchlüsselfeld; bdDtf.Save(); return(true); } else { Console.WriteLine("Datentyp nicht bekannt."); } } catch (Exception ex) { } return(false); }
public static IQueryable <BDDatenbankTabelleFeld> Lese_mittelsTabelle_BDDatenbankTabelleFelder(Session s, BDDatenbankTabelle tabelle) { try { return((from o in s.Query <BDDatenbankTabelleFeld>() where o.Tabelle == tabelle select o).OrderBy(x => x.Feldname)); } catch (Exception ex) { } return(null); }
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(); }
private void repositoryItemLookUpEditDBTabelleAuswahl_EditValueChanged(object sender, EventArgs e) { LookUpEdit lookUpEdit = (LookUpEdit)sender; _bdDt = (BDDatenbankTabelle)repositoryItemLookUpEditDBTabelleAuswahl.GetDataSourceRowByKeyValue(lookUpEdit.EditValue); }
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); } }