Exemple #1
0
 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);
     }
 }
Exemple #2
0
        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();
        }