コード例 #1
0
        // 由微信类生成Excel
        private void ObjectExport(Dictionary <string, ICellStyle> ContentStyles,
                                  ISheet sheet, ObjectListModel objectLM)
        {
            int rowIndex = 1;

            foreach (ObjectContainer container in objectLM.List)
            {
                IRow   dataRow     = sheet.CreateRow(rowIndex);
                int    columnIndex = 0;
                object receiver    = container.MainObject;
                string strValue    = string.Empty;
                foreach (Tk5FieldInfoEx fieldInfo in fMetaData.Table.TableList)
                {
                    ICell cell = dataRow.CreateCell(columnIndex);

                    if (fieldInfo != null)
                    {
                        if (fieldInfo.Decoder == null || fieldInfo.Decoder.Type == DecoderType.None)
                        {
                            strValue = receiver.MemberValue(fieldInfo.NickName).ConvertToString();
                            ExcelUtil.CellPadding(strValue, cell, fieldInfo);
                        }
                        else
                        {
                            strValue = container.Decoder.GetNameString(fieldInfo.NickName);
                        }

                        cell.CellStyle = ContentStyles[fieldInfo.NickName];
                    }
                    columnIndex++;
                }
                rowIndex++;
            }
        }
コード例 #2
0
ファイル: NPOIWrite.cs プロジェクト: ZLLselfRedeem/zllinmitu
        // 由微信类生成Excel
        private static void ObjectExport(ExportExcelPageMaker configData,
            Dictionary<string, ICellStyle> contentStyles, ISheet sheet, ObjectListModel objectLM)
        {
            int rowIndex = 1;
            foreach (ObjectContainer container in objectLM.List)
            {
                IRow dataRow = sheet.CreateRow(rowIndex);
                int columnIndex = 0;
                object receiver = container.MainObject;
                string strValue = string.Empty;
                foreach (Tk5FieldInfoEx fieldInfo in configData.fMetaData.Table.TableList)
                {
                    ICell cell = dataRow.CreateCell(columnIndex);

                    if (fieldInfo != null)
                    {
                        if (fieldInfo.Decoder == null || fieldInfo.Decoder.Type == DecoderType.None)
                        {
                            strValue = receiver.MemberValue(fieldInfo.NickName).ConvertToString();
                            CellPadding(strValue, cell, fieldInfo);
                        }
                        else
                            strValue = container.Decoder.GetNameString(fieldInfo.NickName);

                        cell.CellStyle = contentStyles[fieldInfo.NickName];
                    }
                    columnIndex++;
                }
                rowIndex++;
            }
        }
コード例 #3
0
        public void TestAddModel()
        {
            var list  = new ObjectListModel();
            var model = new SimpleDemoModel(new Vector3(1f, 1f, 1f));

            list.Shapes.Add(model);
            Assert.Contains(model, list.Shapes.ToList());
        }
コード例 #4
0
    public static ObjectListModel ListOperation <T>(ObjectListModel model, IQueryable <T> query, Parameters parameters, string url)
    {
        model.TotalData  = query.Count();
        model.ShowInPage = int.TryParse(parameters.Show, out int _show) ? _show : 30;
        model.ActivePage = int.TryParse(parameters.Page, out int _page) ? _page : 1;
        model.TotalPage  = (int)Math.Ceiling((double)model.TotalData / model.ShowInPage);
        model.Pagination = Pagination(url, model.ActivePage, model.TotalPage);
        model.Datalist   = query.Skip((model.ActivePage - 1) * model.ShowInPage).Take(model.ShowInPage).ToList();

        return(model);
    }
コード例 #5
0
        public void TestAddModelEvent()
        {
            SimpleDemoModel addedModel   = null;
            var             list         = new ObjectListModel();
            var             subscription = list.Shapes.ObserveAdd().Subscribe(p => addedModel = p.Value);
            var             model        = new SimpleDemoModel(new Vector3(1f, 1f, 1f));

            list.Shapes.Add(model);
            subscription.Dispose();
            Assert.AreEqual(model, addedModel);
        }
コード例 #6
0
        public void TestRemoveModel()
        {
            SimpleDemoModel removeModel  = null;
            var             list         = new ObjectListModel();
            var             subscription = list.Shapes.ObserveRemove().Subscribe(p => removeModel = p.Value);
            var             model        = new SimpleDemoModel(new Vector3(1f, 1f, 1f));

            list.Shapes.Add(model);
            Assert.IsTrue(list.Shapes.Contains(model));
            model.Delete();
            subscription.Dispose();
            Assert.AreEqual(model, removeModel);
            Assert.IsFalse(list.Shapes.Contains(model));
        }
コード例 #7
0
    public static ObjectListModel List <T>(IQueryable <T> query, Parameters parameters, string url)
    {
        ObjectListModel result = new ObjectListModel();

        result.Url = url;

        if (!string.IsNullOrEmpty(parameters?.Search))
        {
            url += url.Contains("?") ? "&" : "?";

            query = query.Where(a => EF.Property <string>(a, parameters.Filter).Contains(parameters.Search)) as IOrderedQueryable <T>;

            url += "Filter=" + parameters.Filter + "&Search=" + parameters.Search;
        }

        result = ListOperation(result, query, parameters, url);

        return(result);
    }
コード例 #8
0
        private ObjectListModel FollowingList(IQueryable <Follow> query, Parameters parameters, string url)
        {
            ObjectListModel result = new ObjectListModel();

            result.Url = url;

            if (!string.IsNullOrEmpty(parameters.Search))
            {
                url += url.Contains("?") ? "&" : "?";

                query = query.Where(a => EF.Property <string>(a.Following, parameters.Filter).Contains(parameters.Search)) as IOrderedQueryable <Follow>;

                url += "Filter=" + parameters.Filter + "&Search=" + parameters.Search;
            }

            result = DataListOperations.ListOperation(result, query, parameters, url);

            return(result);
        }
コード例 #9
0
        protected sealed override byte[] CreateExcelData(ExcelExporter exporter, OutputData outputData)
        {
            byte[] data = null;
            switch (outputData.OutputType)
            {
            case SourceOutputType.ToolkitObject:
            case SourceOutputType.Object:
                ObjectListModel model = outputData.Data as ObjectListModel;
                if (model != null)
                {
                    data = exporter.Export(model);
                }
                break;

            case SourceOutputType.DataSet:
                data = exporter.Export(outputData.Data.Convert <DataSet>());
                break;
            }

            return(data);
        }
コード例 #10
0
ファイル: NPOIWrite.cs プロジェクト: hkmujj/zllinmitu
        public static byte[] ExportExcel(OutputData dataSource, ExportExcelPageMaker configData)
        {
            MemoryStream ms = new MemoryStream();

            using (ms)
            {
                IWorkbook workbook = new HSSFWorkbook();
                ISheet    sheet    = workbook.CreateSheet(configData.fMetaData.Table.TableDesc);

                HeaderSetting(configData, workbook, sheet);

                Dictionary <string, ICellStyle> ContentStyles = GetContentStyles(workbook, configData);

                if (dataSource.Data is DataSet)
                {
                    DataSet ds = (DataSet)dataSource.Data;
                    TkDebug.AssertArgumentNull(ds, "ds", null);
                    DataTable dt = ds.Tables[configData.fMetaData.Table.TableName];
                    if (dt != null)
                    {
                        DataTableExport(configData, ContentStyles, sheet, dt);
                    }
                }

                if (dataSource.Data is ObjectListModel)
                {
                    ObjectListModel objectLM = (ObjectListModel)dataSource.Data;
                    if (objectLM.List != null)
                    {
                        ObjectExport(configData, ContentStyles, sheet, objectLM);
                    }
                }

                workbook.Write(ms);
                ms.Flush();
                return(ms.ToArray());
            }
        }
コード例 #11
0
        public byte[] Export(ObjectListModel listModel)
        {
            TkDebug.AssertArgumentNull(listModel, "listModel", null);

            MemoryStream ms = new MemoryStream();

            using (ms)
            {
                IWorkbook workbook = new HSSFWorkbook();
                ISheet    sheet    = workbook.CreateSheet(fMetaData.Table.TableDesc);
                HeaderSetting(workbook, sheet);
                Dictionary <string, ICellStyle> ContentStyles = GetContentStyles(workbook);

                if (listModel.List != null)
                {
                    ObjectExport(ContentStyles, sheet, listModel);
                }

                workbook.Write(ms);
                ms.Flush();
                return(ms.ToArray());
            }
        }
        public override void Execute()
        {
            NormalListData  pageData  = (NormalListData)ViewBag.PageData;
            ObjectListModel listModel = (ObjectListModel)Model;

            WriteLiteral("\r\n");

            DefineSection("DefaultHeader", () => {
                WriteLiteral("\r\n");


                if (pageData.Header != null)
                {
                    Write(RenderRazorOutputData(pageData.Header, Model));
                }
                else
                {
                    WriteLiteral("        <h1>");

                    Write(ViewBag.Title);

                    WriteLiteral("</h1>\r\n");
                }
            });

            DefineSection("DefaultFooter", () => {
                WriteLiteral("\r\n");

                WriteLiteral("    ");

                Write(RenderRazorOutputData(pageData.Footer, Model));

                WriteLiteral("\r\n");
            });

            DefineSection("DefaultListButton", () => {
                WriteLiteral("\r\n");


                if (BootcssUtil.HasListButtons(listModel) || pageData.ShowExportExcel)
                {
                    WriteLiteral("        <div");

                    WriteLiteral(" class=\"panel panel-info\"");

                    WriteLiteral(">\r\n            <div");

                    WriteLiteral(" class=\"panel-body\"");

                    WriteLiteral(">\r\n");


                    if (BootcssUtil.HasListButtons(listModel))
                    {
                        Write(BootcssUtil.CreateListButtons(listModel));
                    }

                    WriteLiteral("                ");

                    if (pageData.ShowExportExcel)
                    {
                        Write(BootcssUtil.CreateExcelButton());
                    }

                    WriteLiteral("            </div>\r\n        </div>\r\n");
                }
            });

            WriteLiteral("<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>");

            Write(ViewBag.Title);

            WriteLiteral("</title>\r\n    <meta");

            WriteLiteral(" http-equiv=\"X-UA-Compatible\"");

            WriteLiteral(" content=\"IE=edge\"");

            WriteLiteral(" />\r\n    <meta");

            WriteLiteral(" http-equiv=\"Content-Type\"");

            WriteLiteral(" content=\"text/html; charset=utf-8\"");

            WriteLiteral(" />\r\n    <meta");

            WriteLiteral(" name=\"viewport\"");

            WriteLiteral(" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable" +
                         "=0;\"");

            WriteLiteral(" />\r\n");

            WriteLiteral("    ");

            Write(RenderLayoutPartial("../bin/css.cshtml", null));

            WriteLiteral("\r\n    <link");

            WriteLiteral(" rel=\"stylesheet\"");

            WriteLiteral(" type=\"text/css\"");

            WriteAttribute("href", Tuple.Create(" href=\"", 1533), Tuple.Create("\"", 1596)
                           , Tuple.Create(Tuple.Create("", 1540), Tuple.Create <System.Object, System.Int32>("toolkitcss/v5/commonM/datalist.css".AppVirutalPath()
                                                                                                             , 1540), false)
                           );

            WriteLiteral(" />\r\n");

            WriteLiteral("    ");

            Write(ViewBag.Script.CreateUserCss());

            WriteLiteral("\r\n</head>\r\n<body");

            WriteAttribute("id", Tuple.Create(" id=\"", 1653), Tuple.Create("\"", 1706)
                           , Tuple.Create(Tuple.Create("", 1658), Tuple.Create <System.Object, System.Int32>(HtmlUtil.GetDynamicPageId(listModel.CallerInfo)
                                                                                                             , 1658), false)
                           );

            WriteLiteral(" class=\"tk-dataPage\"");

            WriteLiteral(" data-webpath=\"");

            Write(HtmlUtil.AppVirtualPath);

            WriteLiteral("\"");

            WriteLiteral(" data-dialog-height=\"");

            Write(pageData.DialogHeight);

            WriteLiteral("\"");

            WriteLiteral(">\r\n    <div");

            WriteLiteral(" class=\"container-fluid\"");

            WriteLiteral(">\r\n");


            if (pageData.ShowTitle)
            {
                Write(RenderSectionOrDefault("Header", "DefaultHeader"));
            }



            WriteLiteral("        <div");

            WriteLiteral(" class=\"tk-datalist\"");

            WriteLiteral(">\r\n");


            if (pageData.OperatorPosition != OperatorPosition.None)
            {
                Write(RenderSectionOrDefault("ListButtons", "DefaultListButton"));
            }

            WriteLiteral("            <div");

            WriteLiteral(" id=\"listData\"");

            WriteLiteral(">\r\n");

            WriteLiteral("                ");

            Write(RenderSectionIfDefined("Main", "listmain.cshtml", Model));

            WriteLiteral("\r\n            </div>\r\n        </div>\r\n");

            WriteLiteral("        ");

            Write(RenderSectionOrDefault("Footer", "DefaultFooter"));

            WriteLiteral("\r\n    </div>\r\n");

            WriteLiteral("    ");

            Write(RenderLayoutPartial("../bin/js.cshtml", null));

            WriteLiteral("\r\n    <script");

            WriteLiteral(" type=\"text/javascript\"");

            WriteAttribute("src", Tuple.Create(" src=\"", 2542), Tuple.Create("\"", 2622)
                           , Tuple.Create(Tuple.Create("", 2548), Tuple.Create <System.Object, System.Int32>("toolkitjs/v5/toolkit/coreT/toolkit.normallist.js?v=1".AppVirutalPath()
                                                                                                             , 2548), false)
                           );

            WriteLiteral("> </script>\r\n");

            WriteLiteral("    ");

            Write(ViewBag.Script.CreateUserJavaScript());

            WriteLiteral("\r\n</body>\r\n</html>\r\n");
        }
コード例 #13
0
        public override void Execute()
        {
            ObjectListModel model     = (ObjectListModel)Model;
            CountInfo       countRow  = model.Count;
            ListSortInfo    sortRow   = model.Sort;
            int             sortField = sortRow.SortField;
            string          tableName = ViewBag.MetaData.Table.TableName;

            IEnumerable <ObjectContainer> dataTable = model.List;
            UrlInfo  urlInfo  = model.CallerInfo.URL;
            string   url      = urlInfo.DSelfUrl;
            PageInfo pageInfo = model.CallerInfo.Info;

            string condition = sortRow.SqlCon;
            IEnumerable <IFieldInfoEx> fields   = ViewBag.MetaData.Table.TableList;
            NormalListData             pageData = (NormalListData)ViewBag.PageData;

            WriteLiteral("\r\n");

            DefineSection("DefaultListHeader", () => {
                WriteLiteral("\r\n    <tr>\r\n");


                if (pageData.OperatorPosition == OperatorPosition.Left)
                {
                    WriteLiteral("            <th");

                    WriteLiteral(" class=\"text-center text-nowrap\"");

                    WriteLiteral(">\r\n                <div>");

                    Write(pageData.OperationCaption);

                    WriteLiteral("</div>\r\n            </th>\r\n");
                }

                WriteLiteral("        ");


                int index = 0;

                WriteLiteral("\r\n");


                foreach (IFieldInfoEx field in fields)
                {
                    WriteLiteral("            <th ");

                    Write(CreateHeadAttrs(field, index++, sortField, sortRow));

                    WriteLiteral(">\r\n                <div>");

                    Write(field.DisplayName);

                    WriteLiteral("</div>\r\n            </th>\r\n");
                }

                WriteLiteral("        ");

                if (pageData.OperatorPosition == OperatorPosition.Right)
                {
                    WriteLiteral("            <th");

                    WriteLiteral(" class=\"text-center text-nowrap\"");

                    WriteLiteral(">\r\n                <div>");

                    Write(pageData.OperationCaption);

                    WriteLiteral("</div>\r\n            </th>\r\n");
                }

                WriteLiteral("    </tr>\r\n");
            });

            DefineSection("DefaultListWidth", () => {
                WriteLiteral("\r\n");


                if (pageData.OperatorPosition == OperatorPosition.Left)
                {
                    WriteLiteral("        <col ");

                    Write(OperatorWidth(pageData.OperatorWidth));

                    WriteLiteral(" />\r\n");
                }

                WriteLiteral("    ");


                int index = 0;

                WriteLiteral("\r\n");


                foreach (IFieldInfoEx field in fields)
                {
                    WriteLiteral("        <col ");

                    Write(CreateColAttrs(field, index++, sortField));

                    WriteLiteral(" />\r\n");
                }

                WriteLiteral("    ");

                if (pageData.OperatorPosition == OperatorPosition.Right)
                {
                    WriteLiteral("        <col ");

                    Write(OperatorWidth(pageData.OperatorWidth));

                    WriteLiteral(" />\r\n");
                }
            });

            DefineSection("DefaultTabSheet", () => {
                WriteLiteral("\r\n    ");

                WriteLiteral("\r\n");
            });

            Write(RenderSectionOrDefault("TabSheet", "DefaultTabSheet"));

            WriteLiteral("\r\n<table");

            WriteAttribute("class", Tuple.Create(" class=\"", 4099), Tuple.Create("\"", 4185)
                           , Tuple.Create(Tuple.Create("", 4107), Tuple.Create <System.Object, System.Int32>(HtmlUtil.MergeClass("list-table table", pageData.Display.TableDisplayClass())
                                                                                                             , 4107), false)
                           );

            WriteLiteral(">\r\n    <colgroup>\r\n");

            WriteLiteral("        ");

            Write(RenderSectionOrDefault("ListWidth", "DefaultListWidth"));

            WriteLiteral("\r\n    </colgroup>\r\n");


            if (pageData.ShowListHeader)
            {
                WriteLiteral("        <thead>\r\n");

                WriteLiteral("            ");

                Write(RenderSectionOrDefault("ListHeader", "DefaultListHeader"));

                WriteLiteral("\r\n        </thead>\r\n");
            }

            WriteLiteral("    <tbody");

            WriteLiteral(" id=\"pageList\"");

            WriteLiteral(" data-totalcount=\"");

            Write(countRow.TotalCount);

            WriteLiteral("\"");

            WriteLiteral(" data-totalpage=\"");

            Write(countRow.TotalPage);

            WriteLiteral("\"");

            WriteLiteral(" data-sort=\"");

            Write(sortField);

            WriteLiteral("\"");

            WriteLiteral(" data-order=\"");

            Write(sortRow.Order);

            WriteLiteral("\"");

            WriteLiteral(" data-page=\"");

            Write(countRow.CurrentPage);

            WriteLiteral("\"");

            WriteLiteral(" data-url=\"");

            Write(url);

            WriteLiteral("\"");

            WriteLiteral(" data-condition=\"");

            Write(condition);

            WriteLiteral("\"");

            WriteLiteral(" data-source=\"");

            Write(pageInfo.Source);

            WriteLiteral("\"");

            WriteLiteral(" ");

            WriteLiteral(">\r\n");


            if (dataTable != null)
            {
                foreach (ObjectContainer row in dataTable)
                {
                    string rowString = @RenderRow(row);


                    if (rowString != null)
                    {
                        Write(rowString);
                    }
                    else
                    {
                        WriteLiteral("            <tr>\r\n");


                        if (pageData.OperatorPosition == OperatorPosition.Left)
                        {
                            WriteLiteral("                    <td");

                            WriteLiteral(" class=\"text-nowrap text-center\"");

                            WriteLiteral(">");

                            Write(BootcssUtil.CreateRowOperators(model.RowOperators, row));

                            WriteLiteral("</td>\r\n");
                        }
                        WriteLiteral("\r\n");


                        foreach (IFieldInfoEx field in fields)
                        {
                            Tk5FieldInfoEx fieldInfo   = field.Convert <Tk5FieldInfoEx>();
                            string         fieldString = @RenderFieldItem(row, fieldInfo);


                            if (fieldString == null)
                            {
                                WriteLiteral("                    <td>");

                                Write(fieldInfo.DisplayValue(row));

                                WriteLiteral("</td>\r\n");
                            }
                            else
                            {
                                Write(fieldString);
                            }
                        }
                        WriteLiteral("\r\n");


                        if (pageData.OperatorPosition == OperatorPosition.Right)
                        {
                            WriteLiteral("                    <td");

                            WriteLiteral(" class=\"text-nowrap text-center\"");

                            WriteLiteral(">");

                            Write(BootcssUtil.CreateRowOperators(model.RowOperators, row));

                            WriteLiteral("</td>\r\n");
                        }
                        WriteLiteral("\r\n            </tr>\r\n");
                    }
                }
            }

            WriteLiteral("    </tbody>\r\n</table>\r\n");

            if (countRow.TotalCount == 0)
            {
                WriteLiteral("    <div");

                WriteLiteral(" class=\"p30\"");

                WriteLiteral(">");

                Write(pageData.NoDataCaption);

                WriteLiteral("</div>\r\n");
            }
            else
            {
                if (@pageData.ShowPage)
                {
                }
            }
        }
コード例 #14
0
        public byte[] Export(ObjectListModel listModel)
        {
            TkDebug.AssertArgumentNull(listModel, "listModel", null);

            MemoryStream ms = new MemoryStream();
            using (ms)
            {
                IWorkbook workbook = new HSSFWorkbook();
                ISheet sheet = workbook.CreateSheet(fMetaData.Table.TableDesc);
                HeaderSetting(workbook, sheet);
                Dictionary<string, ICellStyle> ContentStyles = GetContentStyles(workbook);

                if (listModel.List != null)
                    ObjectExport(ContentStyles, sheet, listModel);

                workbook.Write(ms);
                ms.Flush();
                return ms.ToArray();
            }
        }