コード例 #1
0
ファイル: DataAcquisitionTrans.cs プロジェクト: 88886/jnmmes
 /// <summary>
 /// 根据数据采集类创建对应的事务对象
 /// </summary>
 /// <param name="transactionKey">事务主键</param>
 /// <param name="obj">数据采集对象</param>
 /// <param name="activity">事务类型</param>
 public DataAcquisitionTrans(string transactionKey, DataAcquisitionData obj, EnumAcquisitionTransActivity activity)
 {
     this.Key = new DataAcquisitionTransKey()
     {
         TransactionKey = transactionKey,
         ItemCode       = obj.Key.ItemCode,
         EDCTime        = obj.Key.EDCTime,
         FieldCode      = obj.Key.FieldCode,
         LocationName   = obj.Key.LocationName,
         LineCode       = obj.Key.LineCode,
         EquipmentCode  = obj.Key.EquipmentCode
     };
     this.Activity   = activity;
     this.DataValue  = obj.DataValue;
     this.DataState  = obj.DataState;
     this.CreateTime = obj.CreateTime;
     this.Creator    = obj.Creator;
     this.AuditTime  = obj.AuditTime;
     this.Auditor    = obj.Auditor;
     this.EditTime   = obj.EditTime;
     this.Editor     = obj.Editor;
 }
コード例 #2
0
        /// <summary> 创建数据列表 </summary>
        /// <param name="dtSet">取得数据集(采集数据列表)</param>
        /// <param name="dt">返回整理后数据列表</param>
        /// <returns></returns>
        public MethodReturnResult CreateTableList(MethodReturnResult <DataSet> dtSet, ref DataTable dt)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                result.Code = 0;
                DataTable dtField           = new DataTable();      //字段数据
                DataTable dtRowData         = new DataTable();      //行数据列表
                DataTable dtAcquisitionData = new DataTable();      //数据列表

                string sColumnType  = "";                           //列项目类型
                string sColumn      = "";                           //列项目代码
                string sColumnTitle = "";                           //列项目标题

                #region 增加项目固定列
                //增加子报表链接字段
                DataColumn dcStatus = new DataColumn("ItemCode");
                dcStatus.Caption = "HIDE";                          //设置隐藏属性在标题(自定义)
                dt.Columns.Add(dcStatus);

                //序号
                dcStatus         = new DataColumn("RowsNumber");
                dcStatus.Caption = "序号";
                dt.Columns.Add(dcStatus);

                //采集时间
                dcStatus         = new DataColumn("EDCTime");
                dcStatus.Caption = "采集时间";
                dt.Columns.Add(dcStatus);

                //线别
                dcStatus         = new DataColumn("LineCode");
                dcStatus.Caption = "线别";
                dt.Columns.Add(dcStatus);

                //设备
                dcStatus         = new DataColumn("EquipmentCode");
                dcStatus.Caption = "设备";
                dt.Columns.Add(dcStatus);
                #endregion

                #region 创建动态列
                dtField           = dtSet.Data.Tables[0];           //采集字段数据
                dtRowData         = dtSet.Data.Tables[1];           //行数据明细
                dtAcquisitionData = dtSet.Data.Tables[2];           //采集数据明细

                var columnquery = from t in dtField.AsEnumerable()
                                  select new
                {
                    ColumnIndex = t.Field <int>("SerialNumber"),                           //字段序号
                    ColumnType  = t.Field <Int16>("DataType"),                             //列字段类型
                    ColumnCode  = t.Field <string>("FieldCode"),                           //列字段代码
                    ColumnTitle = t.Field <string>("FieldName"),                           //列字段标题
                } into r
                orderby r.ColumnIndex
                select r;

                foreach (var columndata in columnquery)
                {
                    sColumnType  = columndata.ColumnType.ToString();    //列项目类型
                    sColumn      = columndata.ColumnCode;               //列项目代码
                    sColumnTitle = columndata.ColumnTitle;              //列项目标题

                    dcStatus              = new DataColumn(sColumn);
                    dcStatus.Caption      = sColumnTitle;
                    dcStatus.DefaultValue = 0;

                    dt.Columns.Add(dcStatus);
                }
                #endregion

                #region 增加尾部字段
                //数据状态
                dcStatus         = new DataColumn("DataState");
                dcStatus.Caption = "状态";
                dt.Columns.Add(dcStatus);

                //操作(事务类型)
                dcStatus         = new DataColumn("Activity");
                dcStatus.Caption = "操作";
                dt.Columns.Add(dcStatus);

                ////创建时间
                //dcStatus = new DataColumn("CreateTime");
                //dcStatus.Caption = "创建时间";
                //dt.Columns.Add(dcStatus);

                ////创建人
                //dcStatus = new DataColumn("Creator");
                //dcStatus.Caption = "创建人";
                //dt.Columns.Add(dcStatus);

                ////审核时间
                //dcStatus = new DataColumn("AuditTime");
                //dcStatus.Caption = "审核时间";
                //dt.Columns.Add(dcStatus);

                ////审核人
                //dcStatus = new DataColumn("Auditor");
                //dcStatus.Caption = "审核人";
                //dt.Columns.Add(dcStatus);

                //编辑时间
                dcStatus         = new DataColumn("EditTime");
                dcStatus.Caption = "编辑时间";
                dt.Columns.Add(dcStatus);

                //编辑人
                dcStatus         = new DataColumn("Editor");
                dcStatus.Caption = "编辑人";
                dt.Columns.Add(dcStatus);
                #endregion

                #region 设置行信息
                //取得行信息字段
                var rowquery = from t in dtRowData.AsEnumerable()
                               select new
                {
                    RowsNumber    = t.Field <Int64>("RowsNumber"),                              //总结果集行号
                    EDCTime       = t.Field <System.DateTime>("EDCTime"),                       //采集时间
                    ItemCode      = t.Field <string>("ItemCode"),                               //项目号
                    LineCode      = t.Field <string>("LINE_CODE"),                              //线别
                    EquipmentCode = t.Field <string>("EQUIPMENT_CODE"),                         //设备代码
                    DataState     = t.Field <Int16>("DataState"),                               //状态
                    Activity      = t.Field <Int16>("Activity"),                                //操作事务
                    //CreateTime = t.Field<System.DateTime>("Create_Time"),        //创建时间
                    //Creator = t.Field<string>("Creator"),                        //创建人
                    EditTime = t.Field <System.DateTime>("Edit_Time"), //编辑时间
                    Editor   = t.Field <string>("Editor")              //编辑人
                                                                       //AuditTime = t.Field<System.DateTime>("AuditTime"),           //审批时间
                                                                       //Auditor = t.Field<string>("Auditor")                         //审批人
                } into r
                orderby r.RowsNumber
                select r;

                DataRow dr = dt.NewRow();

                //设置行信息
                foreach (var data in rowquery)
                {
                    dr = dt.NewRow();

                    dr["RowsNumber"]    = data.RowsNumber;          //总结果集行号
                    dr["EDCTime"]       = data.EDCTime;             //采集时间
                    dr["ItemCode"]      = data.ItemCode;            //项目号
                    dr["LineCode"]      = data.LineCode;            //线别
                    dr["EquipmentCode"] = data.EquipmentCode;       //设备代码

                    if (data.DataState == 1)
                    {
                        dr["DataState"] = "审核";                   //状态
                    }
                    else
                    {
                        dr["DataState"] = "";                       //状态
                    }

                    EnumAcquisitionTransActivity activity = (EnumAcquisitionTransActivity)data.Activity;

                    dr["Activity"] = activity.GetDisplayName();     //操作事务类型

                    //dr["CreateTime"] = data.CreateTime;             //创建时间
                    //dr["Creator"] = data.Creator;                   //创建人
                    dr["EditTime"] = data.EditTime;                 //编辑时间
                    dr["Editor"]   = data.Editor;                   //编辑人
                    //dr["AuditTime"] = data.AuditTime;               //审批时间
                    //dr["Auditor"] = data.Auditor;                   //审批人

                    dt.Rows.Add(dr);
                }
                #endregion

                #region 填充数据
                string strFieldCode = "";
                string strValues    = "";
                int    intRowNum    = 0;

                for (int i = 0; i < dtAcquisitionData.Rows.Count; i++)
                {
                    intRowNum    = Convert.ToInt32(dtAcquisitionData.Rows[i]["RowNum"]);            //行号
                    strFieldCode = dtAcquisitionData.Rows[i]["FieldCode"].ToString();               //字段代码
                    strValues    = dtAcquisitionData.Rows[i]["DataValue"].ToString();               //值

                    dt.Rows[intRowNum][strFieldCode] = strValues;
                }

                #endregion

                return(result);
            }
            catch (Exception e)
            {
                result.Code    = 1000;
                result.Message = e.Message;
                result.Detail  = e.ToString();

                return(result);
            }
        }