internal void FillTable(TableDataSet dataSet) { int i = 0; // Fill 0 column for (i = 0; i < RowCount; i++) { if (!dataSet.IsInRange(i)) { break; } var control = new TextBlock(); control.Text = dataSet[i, 0]; control.FontFamily = TableFontFamily; control.FontSize = TableFontSize; control.FontStyle = TableFontStyle == FontStyles.Italic ? FontStyles.Italic : FontStyles.Normal; control.FontWeight = TableFontWeight; control.FontStretch = TableFontStretch; Grid.SetColumn(control, 0); Grid.SetRow(control, i); TableGrid.Children.Add(control); } // Fill 2 column for (i = 0; i < RowCount; i++) { if (!dataSet.IsInRange(i)) { break; } var control = new TextBlock(); control.HorizontalAlignment = HorizontalAlignment.Left; control.Text = dataSet[i, 1]; control.FontFamily = TextFontFamily; control.FontSize = TextFontSize; control.FontStyle = TextFontStyle == FontStyles.Italic ? FontStyles.Italic : FontStyles.Normal; control.FontWeight = TextFontWeight; control.FontStretch = TextFontStretch; Grid.SetColumn(control, 2); Grid.SetRow(control, i); TableGrid.Children.Add(control); } ActualRowCount = i; // Fill 1 column GridSplitter gs = new GridSplitter(); gs.Name = "GridSplitter"; gs.Focusable = false; gs.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; Grid.SetColumn(gs, 1); Grid.SetRowSpan(gs, RowCount); TableGrid.Children.Add(gs); TableGrid.UpdateLayout(); }
internal void Initialize(int rowCount, double rowHeight, GridLength col0Width, GridLength col1Width, GridLength col2Width, TableDataSet dataSet) { TableDataSet = dataSet; UpdateTableDefinition(rowCount, rowHeight, col0Width, col1Width, col2Width); FillTable(dataSet); }
private int AddTableElement(TableInfo ci, TableDataSet dataSet, int seek = 0, Point mediaOffset = new Point()) { var element = TableInfo.FromTableInfo(ci, dataSet, ref seek); AddCanvasElement(element, mediaOffset); return(seek); }
private int FillTable(DrawingContext ctx, TableInfo ci, TableDataSet dataSet, int seek = 0, Point mediaOffset = new Point()) { int i = 0; for (i = 0; i < ci.RowCount; i++) { if (!dataSet.IsInRange(i + seek)) { break; } var text = new FormattedText(dataSet[i + seek, 0], System.Globalization.CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface( new FontFamily(ci.FontFamily), ci.FontStyle == FontStyles.Italic.ToString() ? FontStyles.Italic : FontStyles.Normal, FontWeight.FromOpenTypeWeight(OverrideFontWeight == 0 ? ci.FontOpenTypeWeight : OverrideFontWeight), FontStretch.FromOpenTypeStretch(ci.FontOpenTypeStretch)), Helper.ToEmSize(ci.FontSize, m_DpiY), Brushes.Black); var orig = ci.Location(); var loc = new Point(orig.X, orig.Y + ci.RowPixelHeight * i); loc.X += mediaOffset.X; loc.Y += mediaOffset.Y; ctx.DrawText(text, loc); } // Fill 2 column for (i = 0; i < ci.RowCount; i++) { if (!dataSet.IsInRange(i + seek)) { break; } var text = new FormattedText(dataSet[i + seek, 1], System.Globalization.CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface( new FontFamily(ci.TextFontFamily), ci.TextFontStyle == FontStyles.Italic.ToString() ? FontStyles.Italic : FontStyles.Normal, FontWeight.FromOpenTypeWeight(OverrideFontWeight == 0 ? ci.TextFontOpenTypeWeight : OverrideFontWeight), FontStretch.FromOpenTypeStretch(ci.TextFontOpenTypeStretch)), Helper.ToEmSize(ci.TextFontSize, m_DpiY), Brushes.Black); var orig = ci.Location(); var loc = new Point(orig.X + ci.Col0Width + ci.Col1Width, orig.Y + ci.RowPixelHeight * i); loc.X += mediaOffset.X; loc.Y += mediaOffset.Y; ctx.DrawText(text, loc); } return(i + seek); }
public override ITableDataSet GetTableDataSet(Action <TableDataSetOptions> configureDataSet) { var tableDataSetOptions = new TableDataSetOptions(); configureDataSet?.Invoke(tableDataSetOptions); var tableDataSet = new TableDataSet <TItem>(items.Where(Filter.Compile()).AsQueryable()) { PageableOptions = tableDataSetOptions.PageableOptions, SortingOptions = new SortingOptions() }; return(tableDataSet); }
public override ITableDataSet GetTableDataSet(Action <TableDataSetOptions> configureDataSet) { var tableDataSetOptions = new TableDataSetOptions(); configureDataSet?.Invoke(tableDataSetOptions); var tableDataSet = new TableDataSet <TItem>(items.Where(Filter.Compile()).AsQueryable(), new FilterExpressionTreeBuilder <TItem>()) { PageableOptions = tableDataSetOptions.PageableOptions, SortingOptions = tableDataSetOptions.SortingOptions, GridViewEvents = tableDataSetOptions.GridViewEvents, GroupingOptions = tableDataSetOptions.GroupingOptions, }; return(tableDataSet); }
private void DrawRearPage(DrawingContext ctx, LayoutProperties prop) { var student = Student; var mediaOffset = prop.OffsetInPixel; foreach (var ci in prop.m_CaptionInfo.Where(t => Helper.IsNoneBinding(t.XlsColumn))) { DrawFormattedText(ctx, ci.CaptionText, ci, mediaOffset); } if (prop.LayoutType == LayoutType.School9Attachment || prop.LayoutType == LayoutType.School11Attachment) { foreach (var caption in prop.m_CaptionInfo.Where(t => t.XlsColumn == "засвоїв/ла")) { DrawFormattedText(ctx, Helper.educationRecived[1][student.Sex], caption, mediaOffset); } } foreach (var caption in prop.m_CaptionInfo.Where(t => t.XlsColumn == "Регистрационный номер")) { DrawFormattedText(ctx, student.RegisterNumber, caption, mediaOffset); } var m_TableDataSet = new TableDataSet(DisciplineLabels, student.Assessments, IsSkipEmplyLines, IsAssessmentsOnLastLine); var seek = 0; foreach (var tbl in prop.m_Table.OrderBy(t => t.Left + t.Top).AsParallel()) { FillTable(ctx, tbl, m_TableDataSet, seek, mediaOffset); seek += tbl.RowCount; } //foreach (var tbl in prop.m_Table.Where(t => t.XlsColumn == "Оценки слева").OrderBy(t => t.Top)) // seek = FillTable(ctx, tbl, m_TableDataSet, seek, mediaOffset); //foreach (var tbl in prop.m_Table.Where(t => t.XlsColumn == "Оценки справа").OrderBy(t => t.Top)) // seek = FillTable(ctx, tbl, m_TableDataSet, seek, mediaOffset); foreach (var smb in prop.m_ZSumbolInfo.OrderBy(t => t.Top)) { DrawZSumbol(ctx, smb.Path, smb.StrokeThickness, mediaOffset); } }
public IQueryable <T> Set <T>(TableDataSet set) { switch (set) { case TableDataSet.Filtered: return((IQueryable <T>)Filtered); case TableDataSet.Mapped: return((IQueryable <T>)Mapped); case TableDataSet.Ordered: return((IQueryable <T>)Ordered); case TableDataSet.Paged: return((IQueryable <T>)Paged); case TableDataSet.Source: return((IQueryable <T>)Source); } return(null); }
private void DrawFrontPage(DrawingContext ctx, LayoutProperties prop) { var student = Student; var mediaOffset = prop.OffsetInPixel; foreach (var ci in prop.m_CaptionInfo.Where(t => Helper.IsNoneBinding(t.XlsColumn))) { DrawFormattedText(ctx, ci.CaptionText, ci, mediaOffset); } foreach (var column in XLSColumnBinding.GetXLSColums(prop.LayoutType)) { if (string.IsNullOrEmpty(column)) { continue; } foreach (var caption in prop.m_CaptionInfo.Where(t => t.XlsColumn == column)) { DrawFormattedText(ctx, student.GetValue(column), caption, mediaOffset); } } var m_TableDataSet = new TableDataSet(DisciplineLabels, student.Assessments, IsSkipEmplyLines, IsAssessmentsOnLastLine); int seek = 0; foreach (var tbl in prop.m_Table.OrderBy(t => t.Left + t.Top).AsParallel()) { FillTable(ctx, tbl, m_TableDataSet, seek, mediaOffset); seek += tbl.RowCount; } //foreach (var tbl in prop.m_Table.Where(t => t.XlsColumn == "Оценки слева").OrderBy(t => t.Top)) // seek = FillTable(ctx, tbl, m_TableDataSet, seek, mediaOffset); //foreach (var tbl in prop.m_Table.Where(t => t.XlsColumn == "Оценки справа").OrderBy(t => t.Top)) // seek = FillTable(ctx, tbl, m_TableDataSet, seek, mediaOffset); }
public void GridBodyRendererShouldRenderTBodyTag() { //Arrange var modelBuilder = new ModelBuilder(); modelBuilder.Entity <WeatherForecast>() .Property(p => p.Date) .HasOrder(2) .HasValueFormatter(d => d.ToShortDateString()); modelBuilder.Entity <WeatherForecast>() .Property(p => p.Summary) .HasOrder(1) .HasValueFormatter(s => $"{s}!"); var configurationProvider = new GridConfigurationProvider(modelBuilder.Model); var rendererContextFactory = new GridRendererContextFactory(configurationProvider); var source = Enumerable.Range(1, 20).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = 120, Summary = "test" }).AsQueryable(); var tableDataSet = new TableDataSet <WeatherForecast>(source); tableDataSet.GoToPage(0); var rendererTreeBuilder = new RenderTreeBuilder(new TestRenderer()); var rendererContext = rendererContextFactory.CreateRendererContext(tableDataSet, rendererTreeBuilder); var gridBodyRenderer = new GridBodyRenderer(NullLogger <GridBodyRenderer> .Instance); //Act gridBodyRenderer.Render(rendererContext); }
internal void Initialize(int rowCount, double rowHeight, GridLength col0Width, GridLength col1Width, GridLength col2Width, TableDataSet dataSet, ref int seek) { int i = 0; RowCount = rowCount; RowHeight = rowHeight; RowPixelHeight = rowHeight * MainWindow.DpiY / 2.54d / 100d; ColumnDefinition c1 = new ColumnDefinition(); c1.Width = col0Width;// new GridLength(col0Width, GridUnitType.Auto); ColumnDefinition c2 = new ColumnDefinition(); c2.Width = col1Width;// new GridLength(col1Width, GridUnitType.Auto); ColumnDefinition c3 = new ColumnDefinition(); c3.Width = col2Width;// new GridLength(col2Width, GridUnitType.Auto); TableGrid.ColumnDefinitions.Add(c1); TableGrid.ColumnDefinitions.Add(c2); TableGrid.ColumnDefinitions.Add(c3); for (i = 0; i < rowCount; i++) { RowDefinition row = new RowDefinition(); row.Height = new GridLength(RowPixelHeight, GridUnitType.Pixel); TableGrid.RowDefinitions.Add(row); } // Fill 0 column for (i = 0; i < rowCount; i++) { if (!dataSet.IsInRange(i + seek)) { break; } var control = new TextBlock(); control.Text = dataSet[i + seek, 0]; control.FontFamily = TableFontFamily; control.FontSize = TableFontSize; control.FontStyle = TableFontStyle == FontStyles.Italic ? FontStyles.Italic : FontStyles.Normal; control.FontWeight = TableFontWeight; control.FontStretch = TableFontStretch; Grid.SetColumn(control, 0); Grid.SetRow(control, i); TableGrid.Children.Add(control); } // Fill 2 column for (i = 0; i < rowCount; i++) { if (!dataSet.IsInRange(i + seek)) { break; } var control = new TextBlock(); control.HorizontalAlignment = HorizontalAlignment.Left; control.Text = dataSet[i + seek, 1]; control.FontFamily = TableFontFamily; control.FontSize = TableFontSize; control.FontStyle = TableFontStyle == FontStyles.Italic ? FontStyles.Italic : FontStyles.Normal; control.FontWeight = TableFontWeight; control.FontStretch = TableFontStretch; Grid.SetColumn(control, 2); Grid.SetRow(control, i); TableGrid.Children.Add(control); } // Fill 1 column GridSplitter gs = new GridSplitter(); gs.Name = "GridSplitter"; gs.Focusable = false; gs.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; Grid.SetColumn(gs, 1); Grid.SetRowSpan(gs, rowCount); TableGrid.Children.Add(gs); TableGrid.UpdateLayout(); seek += i; }
public void LoadLayout(LayoutProperties prop, StudentInfo student, List <string> disciplineLabels, bool isSkipEmplyLines = false, bool isAssessmentsOnLastLine = false) { using (new WaitCursor()) { if (prop != null) { var mediaOffset = prop.OffsetInPixel; ClearLayout(); ImageBackground.Stretch = Stretch.Fill; ImageBackground.Source = LayoutFileReader.ByteToImageSource(prop.BackgroundImage); Canvas.SetLeft(ImageBackground, mediaOffset.X); Canvas.SetTop(ImageBackground, mediaOffset.Y); // Add labels without data binding. foreach (var ci in prop.m_CaptionInfo.Where(t => Helper.IsNoneBinding(t.XlsColumn)).AsParallel()) { AddSpanElement(ci.CaptionText, ci, mediaOffset); } // Add labels with data binding. foreach (var column in XLSColumnBinding.GetXLSColums(prop.LayoutType).AsParallel()) { if (Helper.IsNoneBinding(column)) { continue; } foreach (var caption in prop.m_CaptionInfo.Where(t => t.XlsColumn == column)) { AddSpanElement(student.GetValue(column), caption, mediaOffset); } } // Add tables. var m_TableDataSet = new TableDataSet(disciplineLabels, student.Assessments, isSkipEmplyLines, isAssessmentsOnLastLine); var seek = 0; foreach (var tbl in prop.m_Table.OrderBy(t => t.Left + t.Top).AsParallel()) { AddTableElement(tbl, m_TableDataSet.Range(seek, tbl.RowCount), mediaOffset); seek += tbl.RowCount; } //foreach (var tbl in prop.m_Table.Where(t => t.XlsColumn == "Оценки слева").OrderBy(t => t.Top).AsParallel()) // seek = AddTableElement(tbl, m_TableDataSet, seek, mediaOffset); //foreach (var tbl in prop.m_Table.Where(t => t.XlsColumn == "Оценки справа").OrderBy(t => t.Top).AsParallel()) // seek = AddTableElement(tbl, m_TableDataSet, seek, mediaOffset); // Add guide lines. foreach (var ci in prop.m_GuideLineInfo) { AddGuigeLine(ci, mediaOffset); } // Add sumbols. foreach (var ci in prop.m_ZSumbolInfo) { AddZSumbolElement(ci, mediaOffset); } } } }
private void AddTableElement(TableInfo ci, TableDataSet dataSet, Point mediaOffset = new Point()) { var element = TableInfo.FromTableInfo(ci, dataSet); AddCanvasElement(element, mediaOffset); }
protected override async Task OnParametersSetAsync() { TableDataSet = GetTableDataSet(); await TableDataSet.GoToPage(0); }