// 由微信类生成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++; } }
// 由微信类生成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++; } }
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()); }
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); }
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); }
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)); }
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); }
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); }
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); }
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()); } }
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"); }
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) { } } }
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(); } }