Ejemplo n.º 1
0
        public DataSet GetVisualData_Ws(string progId, string jsonString)
        {
            LibQueryCondition libQueryCondition = null;

            try
            {
                libQueryCondition = (LibQueryCondition)JsonConvert.DeserializeObject(jsonString, typeof(LibQueryCondition));
            }
            catch
            {
            }
            WsService ws = new WsService();
            ExecuteWsMethodParam_Ws param = new ExecuteWsMethodParam_Ws();

            param.ProgId     = progId;
            param.MethodName = "BrowseTo";
            if (libQueryCondition != null)
            {
                param.MethodParam = new object[] { libQueryCondition };
            }
            else
            {
                param.MethodParam = new object[] { new LibQueryCondition() };
            }
            return(ws.GetRpt_Ws(param));
        }
Ejemplo n.º 2
0
        public HYProduceData GetProduceData(string billNo)
        {
            HYProduceData produceData = null;

            if (!string.IsNullOrEmpty(billNo))
            {
                produceData = this.Get <HYProduceData>(billNo);
            }
            if (produceData == null)
            {
                object lockItem = _lockObjDic.GetOrAdd(billNo, new object());
                lock (lockItem)
                {
                    produceData = this.Get <HYProduceData>(billNo);
                    if (produceData == null)
                    {
                        //CacheItemPolicy policy = new CacheItemPolicy();
                        //policy.SlidingExpiration = new TimeSpan(0, 720, 0); //720分钟内不访问自动剔除
                        LibBcfGrid        ppWorkOrderBcf = (LibBcfGrid)LibBcfSystem.Default.GetBcfInstance("pp.TenWorkRecord");
                        LibQueryCondition lb             = new LibQueryCondition();
                        lb.QueryFields.Add(new LibQueryField()
                        {
                            Name = "WORKORDERNO", QueryChar = LibQueryChar.Equal, Value = new List <object> {
                                billNo
                            }
                        });
                        DataSet ds = ppWorkOrderBcf.BrowseTo(lb);
                        //DataSet ds = ppWorkOrderBcf.BrowseTo(new object[] { billNo });
                        produceData = new HYProduceData(ds);
                        this.Set(billNo, produceData, new TimeSpan(0, 720, 0));
                    }
                }
            }
            return(produceData);
        }
Ejemplo n.º 3
0
        public DataSet GetData(LibQueryCondition condition)
        {
            Dictionary <string, List <LibQueryField> > powerCondition = LibPermissionControl.Default.GetQueryCondition(this.Handle, this.ProgId);

            if (powerCondition != null)
            {
                condition = LibQueryConditionParser.MergeQueryCondition(this.DataSet.Tables[0], condition, powerCondition);
            }
            return(InnerGetData(condition));
        }
Ejemplo n.º 4
0
        public DataSet BrowseTo(LibQueryCondition condition)
        {
            bool ret = CheckHasPermission(FuncPermissionEnum.Browse);

            if (ret)
            {
                GetQueryData(condition);
                this.AfterChangeData(this.DataSet);
                this.DataSet.AcceptChanges();
            }
            return(this.DataSet);
        }
Ejemplo n.º 5
0
        public DataSet Edit(LibQueryCondition condition)
        {
            bool ret = CheckHasPermission(FuncPermissionEnum.Edit);

            if (ret)
            {
                GetQueryData(condition);
                this.AfterChangeData(this.DataSet);
                this.DataSet.AcceptChanges();
                LibBillDataCache.Default.AddBillData(this.ProgId, this.DataSet);
            }
            return(this.DataSet);
        }
Ejemplo n.º 6
0
        public string ExportData(LibQueryCondition condition)
        {
            string fileName = string.Empty;
            bool   ret      = CheckHasPermission(FuncPermissionEnum.Export);

            if (ret)
            {
                this.GetData(condition);
                fileName = string.Format("{0}-{1}.xls", this.ProgId, LibDateUtils.GetCurrentDateTime());
                string filePath = System.IO.Path.Combine(AxCRL.Comm.Runtime.EnvProvider.Default.RuningPath, "TempData", "ExportData", fileName);
                AxCRL.Core.Excel.LibExcelHelper libExcelHelper = new Core.Excel.LibExcelHelper();
                libExcelHelper.ExportToExcel(filePath, this.DataSet);
            }
            return(fileName);
        }
Ejemplo n.º 7
0
        private void GetQueryData(LibQueryCondition condition)
        {
            string conditionStr = string.Empty;

            if (condition != null && condition.QueryFields.Count != 0)
            {
                conditionStr = LibQueryConditionParser.GetQueryData(this.ProgId, condition);
            }
            //else
            //{  //当用户不选择查询条件的时候,使用默认的过滤条件
            //    conditionStr = GetFilterCondition();
            //}
            string powerStr = LibPermissionControl.Default.GetShowCondition(this.Handle, this.ProgId, this.Handle.PersonId);

            if (!string.IsNullOrEmpty(powerStr))
            {
                conditionStr = LibStringBuilder.JoinStringList(new List <string> {
                    conditionStr, powerStr
                }, "and");
            }
            if (string.IsNullOrEmpty(conditionStr))
            {
                if (condition != null)
                {
                    DataSetManager.GetDataSet(this.DataSet, this.DataAccess, this.ProgId);
                }
            }
            else
            {
                SqlBuilder    sqlBuilder = new SqlBuilder(this.ProgId);
                List <string> sqlList    = new List <string>();
                LibDataAccess dataAccess = new LibDataAccess();
                for (int i = 0; i < this.DataSet.Tables.Count; i++)
                {
                    string sql = sqlBuilder.GetQuerySql(0, string.Format("{0}.*", (char)(i + (int)'A')), conditionStr);
                    dataAccess.ExecuteDataTable(sql, this.DataSet.Tables[i]);
                }
            }
        }
Ejemplo n.º 8
0
        public DataSet BrowseByPK(object[] pks)
        {
            bool ret = CheckHasPermission(FuncPermissionEnum.Browse);

            if (ret)
            {
                LibQueryCondition condition = new LibQueryCondition();
                DataColumn[]      colums    = this.DataSet.Tables[0].PrimaryKey;
                for (int i = 0; i < colums.Length; i++)
                {
                    DataColumn    col        = colums[i];
                    LibQueryField queryField = new LibQueryField();
                    queryField.Name      = col.ColumnName;
                    queryField.QueryChar = LibQueryChar.Equal;
                    queryField.Value.Add(pks[i]);
                    condition.QueryFields.Add(queryField);
                }
                GetQueryData(condition);
                this.AfterChangeData(this.DataSet);
                this.DataSet.AcceptChanges();
            }
            return(this.DataSet);
        }
Ejemplo n.º 9
0
        public string ExportData(LibQueryCondition condition)
        {
            string fileName = string.Empty;
            bool   ret      = CheckHasPermission(FuncPermissionEnum.Export);

            if (ret)
            {
                if (condition == null || condition.QueryFields.Count == 0)
                {
                    DataSetManager.GetDataSet(this.DataSet, this.DataAccess, this.ProgId);
                }
                else
                {
                    GetQueryData(condition);
                }
                this.AfterChangeData(this.DataSet);
                fileName = string.Format("{0}-{1}.xls", this.ProgId, LibDateUtils.GetCurrentDateTime());
                string filePath = System.IO.Path.Combine(AxCRL.Comm.Runtime.EnvProvider.Default.RuningPath, "TempData", "ExportData", fileName);
                AxCRL.Core.Excel.LibExcelHelper libExcelHelper = new Core.Excel.LibExcelHelper();
                libExcelHelper.ExportToExcel(filePath, this.DataSet);
                AfterExportData();
            }
            return(fileName);
        }
Ejemplo n.º 10
0
        public static Result GetReportData(string userId, string handle, string progId, QueryField[] queryField = null)
        {
            Result res = new Result();

            res.ReturnValue = true;
            LibHandle Handle = LibHandleCache.Default.IsExistsHandle(LibHandeleType.PC, userId);

            Service.VerificationHandle(userId, handle, Handle, res);
            try
            {
                if (res.ReturnValue)
                {
                    DataSet ds = new DataSet();
                    if (!string.IsNullOrEmpty(progId))
                    {
                        if (progId.Equals("pls.LogisticsSendRpt"))
                        {
                            LibBcfDailyRpt bcf = (LibBcfDailyRpt)LibBcfSystem.Default.GetBcfInstance(progId);
                            if (bcf == null)
                            {
                                res.ReturnValue = false;
                                res.Message     = "该报表不存在!";
                            }
                            else
                            {
                                LibQueryCondition condition = new LibQueryCondition();
                                if (queryField != null)
                                {
                                    foreach (var item in queryField)
                                    {
                                        condition.QueryFields.Add(new AxCRL.Core.Comm.LibQueryField()
                                        {
                                            Name = item.Name, QueryChar = item.QueryChar, Value = item.Value
                                        });
                                    }
                                }
                                else
                                {
                                    condition = null;
                                }
                                bcf.GetData(condition);
                                ds = SetReportData(progId, bcf.DataSet);
                                res.ReturnValue = true;
                                res.Info        = ds;
                            }
                        }
                        else
                        {
                            LibBcfRpt bcf = (LibBcfRpt)LibBcfSystem.Default.GetBcfInstance(progId);
                            if (bcf == null)
                            {
                                res.ReturnValue = false;
                                res.Message     = "该报表不存在!";
                            }
                            else
                            {
                                LibQueryCondition condition = new LibQueryCondition();
                                if (queryField != null)
                                {
                                    foreach (var item in queryField)
                                    {
                                        condition.QueryFields.Add(new AxCRL.Core.Comm.LibQueryField()
                                        {
                                            Name = item.Name, QueryChar = item.QueryChar, Value = item.Value
                                        });
                                    }
                                }
                                else
                                {
                                    condition = null;
                                }
                                bcf.GetData(condition);
                                ds = SetReportData(progId, bcf.DataSet);
                                res.ReturnValue = true;
                                res.Info        = ds;
                            }
                        }
                    }
                    else
                    {
                        res.ReturnValue = false;
                        res.Message     = "ProgId不存在!";
                    }
                }
            }
            catch (Exception ex)
            {
                res.ReturnValue = false;
                res.Message     = ex.Message;
            }
            return(res);
        }
Ejemplo n.º 11
0
 public virtual DataSet GetDailyData(int currentDate, LibQueryCondition condition)
 {
     return(this.DataSet);
 }
Ejemplo n.º 12
0
        public void AddGatherData(string pPWorkOrderNo, string saleBillNo)
        {
            HYProduceData produceData = LibHYProduceCache.Default.GetProduceData(pPWorkOrderNo);

            if (produceData != null)
            {
                LibBcfGrid        ppWorkOrderBcf = (LibBcfGrid)LibBcfSystem.Default.GetBcfInstance("pp.TenWorkRecord");
                LibQueryCondition lb             = new LibQueryCondition();
                lb.QueryFields.Add(new AxCRL.Core.Comm.LibQueryField()
                {
                    Name      = "WORKORDERNO",
                    QueryChar = LibQueryChar.Equal,
                    Value     = new List <object> {
                        pPWorkOrderNo
                    }
                });
                lb.QueryFields.Add(new AxCRL.Core.Comm.LibQueryField()
                {
                    Name      = "FROMSALEBILLNO",
                    QueryChar = LibQueryChar.Equal,
                    Value     = new List <object> {
                        saleBillNo
                    }
                });
                DataSet ds = ppWorkOrderBcf.BrowseTo(lb);
                if (ds.Tables.Count > 0)
                {
                    produceData.TenWorkRecord.EnforceConstraints = false;
                    try
                    {
                        DataTable dt = produceData.TenWorkRecord.Tables[0];
                        dt.BeginLoadData();
                        try
                        {
                            foreach (DataRow dr in ds.Tables[0].Rows)
                            {
                                DataRow row = dt.NewRow();
                                row.BeginEdit();
                                try
                                {
                                    foreach (DataColumn column in ds.Tables[0].Columns)
                                    {
                                        row[column.ColumnName] = dr[column.ColumnName];
                                    }
                                }
                                finally
                                {
                                    row.EndEdit();
                                }
                                dt.Rows.Add(row);
                            }
                        }
                        finally
                        {
                            dt.EndLoadData();
                        }
                    }
                    finally
                    {
                        produceData.TenWorkRecord.EnforceConstraints = true;
                    }
                }
            }
        }
Ejemplo n.º 13
0
        private LibPermissionGroup GetPermissionGroupData(string groupId)
        {
            LibPermissionGroup groupData     = null;
            string             sql           = string.Format("select PARENTGROUPID from AXPPERMISSIONGROUP where PERMISSIONGROUPID={0} and ISVALIDITY=1", LibStringBuilder.GetQuotString(groupId));
            LibDataAccess      dataAccess    = new LibDataAccess();
            string             parentGroupId = LibSysUtils.ToString(dataAccess.ExecuteScalar(sql, false));

            if (!string.IsNullOrEmpty(parentGroupId))
            {
                groupData = GetPermissionGroupData(parentGroupId);
            }
            if (groupData == null)
            {
                groupData = new LibPermissionGroup();
            }
            sql = string.Format("select PROGID,SHOWCONDITION,OPERATEMARK from AXPPERMISSIONGROUPDETAIL where PERMISSIONGROUPID={0}", LibStringBuilder.GetQuotString(groupId));
            using (IDataReader reader = dataAccess.ExecuteDataReader(sql, false))
            {
                while (reader.Read())
                {
                    string        progId        = LibSysUtils.ToString(reader["PROGID"]);
                    LibPermission permission    = new LibPermission();
                    string        showCondition = LibSysUtils.ToString(reader["SHOWCONDITION"]);
                    if (!string.IsNullOrEmpty(showCondition))
                    {
                        LibQueryCondition condition = JsonConvert.DeserializeObject(showCondition, typeof(LibQueryCondition)) as LibQueryCondition;
                        permission.ShowCondition = LibQueryConditionParser.GetQueryData(progId, condition);
                        if (!string.IsNullOrEmpty(permission.ShowCondition.Trim()))
                        {
                            foreach (var queryField in condition.QueryFields)
                            {
                                if (!permission.QueryFieldDic.ContainsKey(queryField.Name))
                                {
                                    permission.QueryFieldDic.Add(queryField.Name, new List <LibQueryField>()
                                    {
                                        queryField
                                    });
                                }
                            }
                            permission.ShowCondition = string.Format("({0})", permission.ShowCondition);
                        }
                    }
                    permission.OperateMark = LibSysUtils.ToInt32(reader["OPERATEMARK"]);
                    if (groupData.PermissionDic.ContainsKey(progId)) //对于继承关系的,直接用子覆盖父的权限
                    {
                        groupData.PermissionDic[progId] = permission;
                    }
                    else
                    {
                        groupData.PermissionDic.Add(progId, permission);
                    }
                }
            }
            sql = string.Format("select B.PROGID,A.TABLEINDEX,A.FIELDNAME,A.FIELDPOWER,A.USECONDITION from AXPFIELDPOWER A inner join AXPPERMISSIONGROUPDETAIL B on B.ROW_ID=A.PARENTROWID where A.PERMISSIONGROUPID={0}", LibStringBuilder.GetQuotString(groupId));
            using (IDataReader reader = dataAccess.ExecuteDataReader(sql, false))
            {
                while (reader.Read())
                {
                    string progId = LibSysUtils.ToString(reader["PROGID"]);
                    if (groupData.PermissionDic.ContainsKey(progId))
                    {
                        int    tableIndex = LibSysUtils.ToInt32(reader["TABLEINDEX"]);
                        string fieldName  = LibSysUtils.ToString(reader["FIELDNAME"]);
                        if (!groupData.PermissionDic[progId].FieldPowerDic.ContainsKey(tableIndex))
                        {
                            groupData.PermissionDic[progId].FieldPowerDic.Add(tableIndex, new Dictionary <string, FieldPower>());
                        }
                        Dictionary <string, FieldPower> dic = groupData.PermissionDic[progId].FieldPowerDic[tableIndex];
                        if (!dic.ContainsKey(fieldName))
                        {
                            string useCondition = LibSysUtils.ToString(reader["USECONDITION"]);
                            if (!string.IsNullOrEmpty(useCondition))
                            {
                                useCondition = string.Format("({0})", useCondition);
                            }
                            dic.Add(fieldName, new FieldPower()
                            {
                                Condition = useCondition, PowerOption = (FieldPowerOption)LibSysUtils.ToInt32(reader["FIELDPOWER"])
                            });
                        }
                    }
                }
            }
            sql = string.Format("select B.PROGID,A.BUTTONID from AXPBUTTONPOWER A inner join AXPPERMISSIONGROUPDETAIL B on B.ROW_ID=A.PARENTROWID where A.PERMISSIONGROUPID={0} and A.CANUSE=0", LibStringBuilder.GetQuotString(groupId));
            using (IDataReader reader = dataAccess.ExecuteDataReader(sql, false))
            {
                while (reader.Read())
                {
                    string progId = LibSysUtils.ToString(reader["PROGID"]);
                    if (groupData.PermissionDic.ContainsKey(progId))
                    {
                        string buttonId = LibSysUtils.ToString(reader["BUTTONID"]);
                        if (!groupData.PermissionDic[progId].NoUseButton.Contains(buttonId))
                        {
                            groupData.PermissionDic[progId].NoUseButton.Add(buttonId);
                        }
                    }
                }
            }
            return(groupData);
        }
Ejemplo n.º 14
0
 protected virtual DataSet InnerGetData(LibQueryCondition condition)
 {
     return(this.DataSet);
 }
Ejemplo n.º 15
0
        private static bool ParseCore(string condition, DataRow masterRow, DataRow bodyRow, Dictionary <string, object> masterDic, Dictionary <string, object> bodyDic)
        {
            bool result = false;

            try
            {
                //先使用QueryFields尝试
                if ((masterDic == null || masterDic.Count == 0) && masterRow != null)
                {
                    masterDic = new Dictionary <string, object>();
                    if (masterRow.Table != null)
                    {
                        foreach (DataColumn column in masterRow.Table.Columns)
                        {
                            masterDic.Add(column.ColumnName, masterRow[column.ColumnName]);
                        }
                    }
                }
                if (masterDic != null && masterDic.Count > 0)
                {
                    LibQueryCondition queryCondition = JsonUtiler.Deserialize <LibQueryCondition>(condition);
                    if (queryCondition != null)
                    {
                        if (queryCondition.AccordOfThis(masterDic))
                        {
                            return(true);
                        }
                    }
                }
            }
            catch (Exception)
            {
                //to do log
            }


            Memory memory = new Memory();
            //匹配类似表达式"[A.QTY]>=10 && ([A.MaterialId]=='13212321' || ([A.RANGEID]=='AAA' && [A.SSID]=='9999')) && (([A.DD]=='xxx' || [A.DD]=='xxx1' || [A.DD]=='xxx2') || [A.ZZ]>=0)";
            string           pattern   = @"[[][A-Z]\.\w+[]]";
            MatchCollection  matchList = Regex.Matches(condition, pattern);
            HashSet <string> temp      = new HashSet <string>();

            foreach (var item in matchList)
            {
                string field = item.ToString();
                if (temp.Contains(field))
                {
                    continue;
                }
                temp.Add(field);
                string copyField = field;
                field = field.Remove(0, 1);
                field = field.Remove(field.Length - 1, 1);
                int    tableIndex = (int)field[0] - (int)'A';
                string fieldName  = field.Substring(2, field.Length - 2);
                object value      = tableIndex == 0 ? (masterRow == null ? masterDic[fieldName] : masterRow[fieldName]) : (bodyRow == null ? bodyDic[fieldName] : bodyRow[fieldName]);
                memory.AddObject(fieldName, value);
                condition = condition.Replace(copyField, fieldName);
            }
            Script.Execute("if(" + condition + "){ret=true;}else{ret=false;}", memory);
            result = LibSysUtils.ToBoolean(memory["ret"].value);
            return(result);
        }