示例#1
0
        public string GetFilterLayoutJs(string userId = "")
        {
            List <string> fileds = this.CanFilterFields(userId);

            if (fileds == null || fileds.Count == 0)
            {
                return(string.Empty);
            }
            List <FilterField> filterFiledList = new List <FilterField>();

            foreach (var item in fileds)
            {
                DataTable dt = this.DataSet.Tables[0];
                if (dt.Columns[item] == null)
                {
                    throw new Exception("字段不存在");
                }
                DefineField df = DataSourceHelper.ConvertToDefineField(dt.Columns[item]);
                filterFiledList.Add(new FilterField(df.ControlType, df.Name, df.DisplayName));
            }
            if (this.Template.BillType == BillType.Rpt)
            {
                return(JsBuilder.BuildFilterFieldJs(filterFiledList));
            }

            else
            {
                // 主数据、单据、Grid
                return(JsBuilder.BuildFilterFieldJsForBillListing(filterFiledList));
            }
        }
示例#2
0
        public override string CreateRenderer()
        {
            DataTable          table        = this.DataSet.Tables[TableIndex];
            List <LayoutField> layoutFields = new List <LayoutField>();

            if (GridScheme != null)
            {
                HashSet <string> exist = new HashSet <string>();
                foreach (var item in GridScheme.GridFields)
                {
                    LibGridFieldScheme realItem = item.Field;
                    if (!exist.Contains(realItem.Name))
                    {
                        exist.Add(realItem.Name);
                    }
                    if (!table.Columns.Contains(realItem.Name))
                    {
                        continue;
                    }
                    LayoutField field = new LayoutField(table.Columns[realItem.Name], TableIndex);
                    if (realItem.Width != field.Width)
                    {
                        field.Width = realItem.Width;
                    }
                    layoutFields.Add(field);
                }
                foreach (var item in this.FieldList)
                {
                    if (exist.Contains(item))
                    {
                        continue;
                    }
                    if (string.IsNullOrEmpty(item) || table.Columns.Contains(item) == false)
                    {
                        continue;
                    }
                    LayoutField field = new LayoutField(table.Columns[item], TableIndex);
                    field.Hidden = true;
                    layoutFields.Add(field);
                }
            }
            else
            {
                foreach (var item in this.FieldList)
                {
                    if (string.IsNullOrEmpty(item) || table.Columns.Contains(item) == false)
                    {
                        continue;
                    }
                    layoutFields.Add(new LayoutField(table.Columns[item], TableIndex));
                }
            }
            return(JsBuilder.BuildGrid(layoutFields, AddAutoRowNo));
        }
示例#3
0
        /// <summary>
        /// 生成逻辑
        /// </summary>
        /// <param name="compile">DOJO编译器</param>
        /// <param name="doc">文档对象模型</param>
        public string Build(string project, string screen, ScreenDefinition sd, bool isPreview)
        {
            using (var writer = new StringWriter())
            {
                //根据屏幕生成HTML
                var htmlWriter = new HtmlTextWriter(writer);

                HtmlBuilder htmlBuilder = new HtmlBuilder();
                htmlBuilder.Build(project, sd, htmlWriter, isPreview);

                if (!isPreview)
                {
                    JsBuilder jsBuilder = new JsBuilder();
                    jsBuilder.Build(project, screen, sd, htmlWriter);
                }

                return(writer.ToString());
            }
        }
示例#4
0
文件: JsVec.cs 项目: flippynips/EFZ
 /// <summary>
 /// Build the javascript.
 /// </summary>
 public override void Build(JsBuilder builder)
 {
     builder.String.Append(Value);
 }
 public AspValidateMiddleware(RequestDelegate next, JsBuilder jsBuilder, AspValidateOptions options)
 {
     this.Next      = next;
     this.JsBuilder = jsBuilder;
     this.Options   = options;
 }