【发布时间】:2011-11-14 10:09:39
【问题描述】:
我有一张正在打印的表格。我为所有单元格添加了边框,但是当表格进入/退出新页面时出现问题。然后,根据每个单元格占用的可用空间,将边框移动/停留在页面上。是否可以使该行依赖于 sted?
这是问题的图片
灰线是换页。
这是我的做法
foreach (Task task in TasksToShow)
{
myTable.RowGroups[0].Rows.Add(new TableRow());
currentRow = myTable.RowGroups[0].Rows[rowCount++];
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.TaskID.ToString()))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.TaskName))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.TaskResponsible))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.TaskResponsibleDepartment))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.Category))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.Status))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.Priority.ToString()))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.StartDate.ToString("dd/MM/yy")))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.ActualHours.TotalHours.ToString() + "h"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.EstimatedHours.TotalHours.ToString() + "h"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.EstimatedDeploymentDate.ToString("dd/MM/yy")))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.DesiredImplementationDate.ToString("dd/MM/yy")))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.APP.StartDate.ToString("dd/MM/yy")))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.APP.EstimatedHours.TotalHours.ToString() + "h"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.APP.ActualHours.TotalHours.ToString() + "h"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.IN.StartDate.ToString("dd/MM/yy")))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.IN.EstimatedHours.TotalHours.ToString() + "h"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.IN.ActualHours.TotalHours.ToString() + "h"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.SIS.StartDate.ToString("dd/MM/yy")))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.SIS.EstimatedHours.TotalHours.ToString() + "h"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.SIS.ActualHours.TotalHours.ToString() + "h"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.Tags))));
currentRow.FontSize = 10;
currentRow.FontWeight = FontWeights.Normal;
for (int n = 0; n < currentRow.Cells.Count; n++ )
{
currentRow.Cells[n].BorderThickness = new Thickness(1, 1, 1, 1);
currentRow.Cells[n].BorderBrush = Brushes.Black;
}
}
还有没有办法让单元格的宽度取决于最大的单元格,而不仅仅是让所有单元格的宽度相同?
希望你能帮忙。
【问题讨论】:
-
天哪。 1 个字,重构!
-
什么意思?我只是在这里添加数据。我看不出如何让它变得更好!?
-
怎么样:
void AddRow(data) { currentRow.Cells.Add(new TableCell(new Paragraph(new Run(data)))); } -
是的,你是对的,这将使维护更容易......但这仍然不能回答我的问题。我现在将进行一些重构。
标签: c# printing tabular flowdocument