예제 #1
0
        public static string PartialFormat <TReportModel>(this IEntityReport <TReportModel> report, string formatString, params string[] values)
        {
            if (values == null || values.Length == 0)
            {
                throw new Exception("Expression parameters are required.");
            }

            var paramsString = string.Join(", ", values);

            return(string.Format("Format('{0}', {1})", formatString, paramsString)); // todo: clean formatString
        }
예제 #2
0
 public static string ChildMemberField <TReportModel, TParent>(this IEntityReport <TReportModel> report, Expression <Func <TReportModel, TParent> > parentMember, Expression <Func <TParent, object> > childMember, string formatString = null)
 {
     return(string.IsNullOrWhiteSpace(formatString)
         ? BuildFieldBinding(childMember)
         : _Format(childMember, formatString));
 }
예제 #3
0
 public static string CountOfField <TReportModel>(this IEntityReport <TReportModel> report, Expression <Func <TReportModel, double> > expression, string formatString = null)
 {
     return(CountExpression(expression, formatString));
 }
예제 #4
0
 public static string SumOfField <TReportModel>(this IEntityReport <TReportModel> report, Expression <Func <TReportModel, long> > expression, string formatString = null)
 {
     return(SumExpression(expression, formatString));
 }
예제 #5
0
 public static string JoinField <TReportModel>(this IEntityReport <TReportModel> report, Expression <Func <TReportModel, object> > expression, string separator)
 {
     return(string.Format("=Join('{1}', {0})", PartialField(report, expression), separator));
 }
예제 #6
0
 public static ReportTable <TReportModel, TTableModel> Table <TReportModel, TTableModel>(this IEntityReport <TReportModel> report, Table table, Expression <Func <TReportModel, IEnumerable <TTableModel> > > dataSourceExpression)
 {
     return(new ReportTable <TReportModel, TTableModel>(table, dataSourceExpression));
 }
예제 #7
0
 public static string Field <TReportModel, TMember>(this IEntityReport <TReportModel> report, Expression <Func <TReportModel, TMember> > memberAccessExpression, string formatString = null)
 {
     return(string.IsNullOrWhiteSpace(formatString)
         ? BuildFieldBinding(memberAccessExpression)
         : _Format(memberAccessExpression, formatString));
 }
예제 #8
0
 public static SubReportBinder <TReportModel, TSubReportModel> Bind <TReportModel, TSubReportModel>(this IEntityReport <TReportModel> report, SubReport subreport, Func <TReportModel, TSubReportModel> source)
 {
     return(new SubReportBinder <TReportModel, TSubReportModel>(subreport, source));
 }
예제 #9
0
 public static void Bind <TReportModel, TReportItem, TBind>(this IEntityReport <TReportModel> report, TReportItem reportItem, Expression <Func <TReportItem, TBind> > member, Expression <Func <TReportModel, TBind> > value, string formatString = null)
     where TReportItem : ReportItemBase
 {
     reportItem.Bindings.Add(new Binding(MemberAccessPathBuilder.GetPath(member), Field(null, value, formatString)));
 }
예제 #10
0
 public static string PartialField <TReportModel, TMember>(this IEntityReport <TReportModel> report, Expression <Func <TReportModel, TMember> > expression, string formatString)
 {
     return(_Format(expression, formatString, true));
 }
예제 #11
0
 public static string PartialField <TReportModel, TMember>(this IEntityReport <TReportModel> report, Expression <Func <TReportModel, TMember> > expression)
 {
     return(string.Format("Fields.{0}", MemberAccessPathBuilder.GetPath(expression)));
 }