private void submit_Click(object sender, RoutedEventArgs e) { try { if (this.DataContext.GetType().Name.Equals("Tpjyy")) { Tpj_Insert_BLL.YyjInfoInsert((Tpjyy)DataContext); } else if (this.DataContext.GetType().Name.Equals("Kltpj")) { Tpj_Insert_BLL.KltpjInsert((Kltpj)DataContext); } else { Tpj_Insert_BLL.YttpjInsert((Yttpj)DataContext); } MessageBox.Show("录入成功"); this.Close(); } catch (Exception ex) { MessageBox.Show("录入失败!原因:" + ex.Message); } }
public static ObservableCollection <T> TpjMapper <T>(DataTable source) where T : TpjBase { //应用调剖剂信息 DataTable dataTable = Tpj_Insert_BLL.getYyTpjNames(); int yt_count = 0; int zyGt0_count = 0; ObservableCollection <T> collection = new ObservableCollection <T>(); if (typeof(YtjInfo).Equals(typeof(T))) { foreach (DataRow item in source.Rows) { if (dataTable.Rows.Count > 0) { yt_count = dataTable.Rows.OfType <DataRow>().ToList().FindAll(x => x["YMC"].Equals(item["mc"])).Count; zyGt0_count = dataTable.Rows.OfType <DataRow>().ToList().FindAll(x => x["YMC"].Equals(item["mc"]) && double.Parse(x["ZY"].ToString()) > 0).Count; } TpjBase ytjInfo = new YtjInfo { Mc = item["mc"].ToString(), Nw = double.Parse(item["nw"].ToString()), Ny = double.Parse(item["ny"].ToString()), Nj = double.Parse(item["nj"].ToString()), Cn = item["cn"].ToString(), Zn = item["zn"].ToString(), Jg = double.Parse(item["jg"].ToString()), Sxq = item["sxq"].ToString(), Sypc = yt_count + "/" + dataTable.Rows.Count, Yxl = yt_count == 0 ? "0" : (zyGt0_count / yt_count).ToString() }; collection.Add((T)ytjInfo); } } else if (typeof(GtjInfo).Equals(typeof(T))) { foreach (DataRow item in source.Rows) { if (dataTable.Rows.Count > 0) { yt_count = dataTable.Rows.OfType <DataRow>().ToList().FindAll(x => x["GMC"].Equals(item["mc"])).Count; zyGt0_count = dataTable.Rows.OfType <DataRow>().ToList().FindAll(x => x["GMC"].Equals(item["mc"]) && double.Parse(x["ZY"].ToString()) > 0).Count; } TpjBase ytjInfo = new GtjInfo { Mc = item["mc"].ToString(), Nw = double.Parse(item["nw"].ToString()), Ny = double.Parse(item["ny"].ToString()), Nj = double.Parse(item["nj"].ToString()), Zpbs = double.Parse(item["zpbs"].ToString()), Pzsj = double.Parse(item["pzsj"].ToString()), Kyqd = double.Parse(item["kyqd"].ToString()), Txml = double.Parse(item["txml"].ToString()), Jg = double.Parse(item["jg"].ToString()), Bsb = double.Parse(item["bsb"].ToString()), Sxq = item["sxq"].ToString(), Sypc = yt_count + "/" + dataTable.Rows.Count, Yxl = yt_count == 0 ? "0" : (zyGt0_count / yt_count).ToString() }; collection.Add(ytjInfo as T); } } return(collection); }
private void doTpjImport(string tablename) { object targetObject = null; DataTable fieldnames = null; switch (tablename) { case "PC_XTPL_STATUS": targetObject = new Yttpj(); fieldnames = Tpj_Insert_BLL.getChineseFieldName(tablename); break; case "PC_XTPK_STATUS": targetObject = new Kltpj(); fieldnames = Tpj_Insert_BLL.getChineseFieldName(tablename); break; case "PC_XTPY_STATUS": targetObject = new Tpjyy(); fieldnames = Tpj_Insert_BLL.getChineseFieldName(tablename); break; } if (targetObject == null || fieldnames == null) { return; } List <DataRow> dataRows = fieldnames.Rows.OfType <DataRow>().ToList(); //获取父类对象类型信息 TypeInfo parentType = targetObject.GetType().BaseType.GetTypeInfo(); //获取对象类型信息 TypeInfo current = targetObject.GetType().GetTypeInfo(); //获取类声明字段 List <PropertyInfo> properties = parentType.DeclaredProperties.ToList(); properties.AddRange(current.DeclaredProperties.ToList()); //创建控件集合 StackPanel parentStack = new StackPanel() { HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center, Orientation = Orientation.Horizontal }; foreach (PropertyInfo item in properties) { StackPanel childStack = new StackPanel() { HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, Orientation = Orientation.Horizontal }; DataRow findOne = dataRows.Find(x => x.ItemArray[1].ToString().Equals(item.Name, StringComparison.OrdinalIgnoreCase)); if (findOne == null) { continue; } TextBlock lable = new TextBlock() { Text = findOne.ItemArray[2].ToString() + ":" }; FrameworkElement field = null; if (item.Name.Equals("csrq", StringComparison.OrdinalIgnoreCase) || item.Name.Equals("tyrq", StringComparison.OrdinalIgnoreCase)) { field = new DatePicker() { Width = 100, Margin = new Thickness() { Left = 0, Top = 0, Right = 10, Bottom = 0 }, SelectedDateFormat = DatePickerFormat.Short }; Binding binding = new Binding(); binding.Path = new PropertyPath(item.Name); binding.Mode = BindingMode.TwoWay; binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; field.SetBinding(DatePicker.TextProperty, binding); } else { field = new TextBox() { Width = 50, Margin = new Thickness() { Left = 0, Top = 0, Right = 10, Bottom = 0 } }; field.SetBinding(TextBox.TextProperty, item.Name); } childStack.Children.Add(lable); childStack.Children.Add(field); parentStack.Children.Add(childStack); } TpjImport tpjImport = new TpjImport(); tpjImport.tpj_info.Content = parentStack; tpjImport.DataContext = targetObject; tpjImport.ShowDialog(); }