Example #1
0
        //pb表达式转换为前台代码 可见、必输、保护
        public void ConvertExpression(PbExpressionImp PbImp, string type, string colname)
        {
            string expression = string.Empty;
            string temptype   = string.Empty;

            if (string.IsNullOrEmpty(PbImp.Expression))
            {
                return;
            }

            try
            {
                temptype = type;
                switch (PbImp.ExpressionType)
                {
                case PbExpressionType.IsVisible:
                {
                    IsVisibleExp colExp = new IsVisibleExp(PbImp);
                    expression = colExp.GetCodeFromExp(tableRelation, colRelation, colname);
                    break;
                }

                case PbExpressionType.IsMustInput:
                {
                    IsMustInputExp colExp = new IsMustInputExp(PbImp);
                    expression = colExp.GetCodeFromExp(tableRelation, colRelation);
                    break;
                }

                case PbExpressionType.IsReadOnly:
                {
                    IsReadOnlyExp colExp = new IsReadOnlyExp(PbImp);
                    expression = colExp.GetCodeFromExp(tableRelation, colRelation, colname);
                    break;
                }

                default:
                    break;
                }
            }
            catch (Exception e)
            {
                Logger.Error("ConvertExpression: type:" + PbImp.ExpressionType.ToString() + "\r\n" + e.StackTrace);
            }


            if (!string.IsNullOrEmpty(expression) && !expressions.ContainsKey(expression))
            {
                expressions.Add(expression, temptype);
            }
        }
Example #2
0
        //pb表达式转换为前台代码 Grid
        public void ConvertExpressionGrid(IList <PbExpressionImp> PbImps, string type, string colname, string tablename)
        {
            string expression = string.Empty;
            string temptype   = string.Empty;

            foreach (var PbImp in PbImps)
            {
                try
                {
                    temptype = type;
                    switch (PbImp.ExpressionType)
                    {
                    case PbExpressionType.ComputeFuncAndFillSpecificCol:
                    {
                        ComputeFuncFillSpecificColExp colExp = new ComputeFuncFillSpecificColExp(PbImp);
                        expression = colExp.GetCodeFromExpGrid(tableRelation, colRelation, colname, tablename);
                        break;
                    }

                    case PbExpressionType.ComputeSqlAndFillSpecificCol:
                    {
                        ComputeSqlFillSpecificColExp colExp = new ComputeSqlFillSpecificColExp(PbImp);
                        expression = colExp.GetCodeFromExpGrid(tableRelation, colRelation, colname, tablename);
                        break;
                    }

                    case PbExpressionType.ComputeExpAndDisBodyCol:
                    {
                        ComputeExpDisBodyColExp colExp = new ComputeExpDisBodyColExp(PbImp);
                        expression = colExp.GetCodeFromExp(tableRelation, colRelation, colname);
                        break;
                    }

                    case PbExpressionType.ExecuteSql:
                    {
                        ExecuteSqlExp colExp = new ExecuteSqlExp(PbImp);
                        expression = colExp.GetCodeFromExp(tableRelation);
                        break;
                    }

                    case PbExpressionType.BillHeadUniqueCheck:
                    {
                        BillHeadUniqueCheck colExp = new BillHeadUniqueCheck(PbImp);
                        expression = colExp.GetCodeFromExp(tableRelation, colRelation);
                        break;
                    }

                    case PbExpressionType.CheckBodyUnique:
                    {
                        CheckBodyUnique colExp = new CheckBodyUnique(PbImp);
                        expression = colExp.GetCodeFromExp(tableRelation);
                        break;
                    }

                    case PbExpressionType.BillValidation:
                    {
                        if (PbImp.Expression.Split(',').Length > 3)
                        {
                            BillValidationComplexExp colExp = new BillValidationComplexExp(PbImp);
                            expression = colExp.GetCodeFromExp(tableRelation, colRelation, colname);
                            temptype   = "BeforeSave";
                        }
                        else
                        {
                            if (PbImp.Expression.Split(',')[2] == "1")
                            {
                                temptype = "Normal";
                            }
                            else
                            {
                                temptype = "BeforeSave";
                            }
                            BillValidationExp colExp = new BillValidationExp(PbImp);
                            expression = colExp.GetCodeFromExp(tableRelation);
                        }
                        break;
                    }

                    case PbExpressionType.ComputeSqlAndFillSpecificBodyCol:
                    {
                        ComputeSqlFillSpecificBodyColExp colExp = new ComputeSqlFillSpecificBodyColExp(PbImp);
                        expression = colExp.GetCodeFromExp(tableRelation, colRelation, colname);
                        break;
                    }

                    case PbExpressionType.ComputeExpAndFillSpecificCol:
                    {
                        ComputeExpAndFillSpecificCol colExp = new ComputeExpAndFillSpecificCol(PbImp);
                        expression = colExp.GetCodeFromExp(tableRelation, colRelation, colname);
                        temptype   = "Normal";       //"Supcan"; comment by ljy 2016.12.10 事件暂时不支持函数
                        break;
                    }

                    case PbExpressionType.IsReadOnly:
                    {
                        IsReadOnlyExp colExp = new IsReadOnlyExp(PbImp);
                        expression = colExp.GetCodeFromExp(tableRelation, colRelation, colname);
                        break;
                    }

                    default:
                        break;
                    }
                }
                catch (Exception e)
                {
                    Logger.Error("ConvertExpression: type:" + PbImp.ExpressionType.ToString() + "\r\n" + e.StackTrace);
                }


                if (!string.IsNullOrEmpty(expression) && !expressions.ContainsKey(expression))
                {
                    expressions.Add(expression, temptype);
                }
            }
        }