//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); } }
//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); } } }