/// <summary>method write marker's cells /// </summary> /// <param name="grid">"Markers" section's main grid</param> /// <param name="markerIndex">marker index</param> /// <param name="colValues">names of XML data elements with marker columns values</param> /// <param name="rowIndex">marker's row index</param> /// <param name="startColIndex">start column index of marker's columns group</param> private void WriteMarker(Grid grid, int markerIndex, int rowIndex, int startColIndex) { for (int colIndex = 0; colIndex < LeukemiaLymphomaReportData.MarkerColumnsCount; colIndex++) { XPSHelper.WriteTextBlockToGrid(m_ReportData.GetMarkerCellValue(markerIndex, colIndex), grid, rowIndex, startColIndex++, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize); } }
/// <summary>method write report's main box custom sections to document grid /// </summary> protected override int WriteCustomSectionToMainBox() { const double fontSize = m_FontSize + 2; const double leftMargin = m_LeftMargin + 18; const double topMargin = m_TopMargin + 6; int rowsCount = m_ReportData.ResultRowsCount + 1; Grid grid = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 0.4, 1.5, 2.5 }, m_LeftMargin), rowsCount); grid.Margin = new Thickness(leftMargin, topMargin, 0, 0); for (int i = 0; i < rowsCount; i++) { for (int j = 0; j < ResultColumnsHeaders.GetLength(0); j++) { if (i == 0) { XPSHelper.WriteTextBlockToGrid(ResultColumnsHeaders[j], grid, i, j + 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold, true); } else { XPSHelper.WriteTextBlockToGrid(m_ReportData.GetResultCellValue(i - 1, j), grid, i, j + 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize); } } } return(m_ReportDocument.WriteRowContent(grid)); }
/// <summary>method write phone row of address column to address column grid /// </summary> /// <param name="grid">address column grid</param> /// <param name="rows">array of row's strings</param> /// <param name="rowIndex">row index</param> private void WritePhoneRow(Grid grid, string[] row, int rowIndex) { int i; TextBlock text; int colCount = row.GetLength(0); GridLength[] colWidth = new GridLength[colCount]; for (i = 0; i < colCount; i++) { if (i % 2 == 0) { colWidth[i] = GridLength.Auto; } else { colWidth[i] = new GridLength(0.8 * ReportPage.DisplayResolution); } } Grid childGrid = XPSHelper.GetGrid(colWidth, 1); childGrid.Margin = new Thickness(m_HorMargin, 0, 0, 0); for (i = 0; i < colCount; i++) { text = XPSHelper.WriteTextBlockToGrid(row[i], childGrid, 0, i, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness((i % 2 == 0 ? 0 : 3), (rowIndex == 2 ? 0 : -5.0), 0, 0), m_FontSize); text.FontWeight = (i % 2 == 0 ? FontWeights.Normal : FontWeights.Bold); } XPSHelper.WriteItemToGrid(childGrid, grid, rowIndex, 0); }
/// <summary>method write interpretation reference table to document grid, if it is needed /// </summary> /// <param name="reportData">report XML data object</param> private void WriteInterpretationRefTable(CysticFibrosisReportData reportData) { if (reportData.IsInterpretationRefTableVisible) { int i, j; string cellText; double fontSize = m_FontSize - 0.5; IEnumerable <XElement> colHeaders = reportData.InterpretationRefTableColHeaders; int colCount = colHeaders.Count(); int rowCount = reportData.InterpretationRefTableRowsCount + 1; Grid grid = XPSHelper.GetGridWithEqualColumns(rowCount, colCount, 2.0 * m_LeftMargin, m_TopMargin); WriteSimpleSection(reportData.InterpretationRefTableHeaderText, fontSize); for (j = 0; j < colCount; j++) { XPSHelper.WriteTextBlockToGrid(colHeaders.ElementAt(j).Value, grid, 0, j, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold); } for (i = 1; i < rowCount; i++) { for (j = 0; j < colCount; j++) { cellText = reportData.GetInterpretationRefTableCellText(i - 1, j); XPSHelper.WriteTextBlockToGrid(cellText, grid, i, j, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(0, -2, 0, 0), fontSize); } } m_ReportDocument.WriteRowContent(grid); } }
/// <summary>method write diagnosis comment /// </summary> /// <param name="commentBody">diagnosis comment body text</param> /// <param name="fontSize">diagnosis comment font size</param> /// <param name="leftMargin">diagnosis comment left margin</param> /// <param name="topMargin">diagnosis comment top margin</param> private void WriteDiagnosisComment(string commentBody, double fontSize, double leftMargin, double topMargin) { Grid grid = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 0.8 }), 1, 0, new Thickness(leftMargin, topMargin, 0, 0)); XPSHelper.WriteTextBlockToGrid(CommentLabel, grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold); XPSHelper.WriteTextBlockToGrid(commentBody, grid, 0, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, null, false, true); m_ReportDocument.WriteRowContent(grid); }
/// <summary>method write block with check box and text block to document grid /// </summary> /// <param name="baseGrid">block's parent grid</param> /// <param name="labelText">label of check box</param> /// <param name="stringXMLElementName">XML element name with text block value</param> /// <param name="rowNo">parent grid row number of block</param> /// <param name="colNo">parent grid column number of block</param> private void WriteCheckBoxAndTextBlock(Grid baseGrid, string labelText, string textValue, int rowNo, int colNo) { //string textValue = (stringXMLElementName != string.Empty ? m_PlacentalPathologyData.Element(stringXMLElementName).Value : string.Empty); Grid grid = XPSHelper.GetGrid(new GridLength[] { GridLength.Auto, new GridLength(1, GridUnitType.Star) }, 1, 0.0, new Thickness(0, 0, m_MarginSize * 4, 0)); XPSHelper.WriteItemToGrid(grid, baseGrid, rowNo, colNo); XPSHelper.WriteCheckBox(labelText, (textValue != string.Empty), grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize * 2, m_MarginSize, m_MarginSize), m_FontSize, null, FontWeights.Normal); XPSHelper.WriteTextBlockToGrid(textValue, grid, 0, 1, HorizontalAlignment.Stretch, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize * 2, m_MarginSize, 0), m_FontSize); XPSHelper.WriteUnderliningToGridCell(grid, 0, 1); }
/// <summary>method write block with label and value to document grid /// </summary> /// <param name="baseGrid">block's parent grid</param> /// <param name="labelText">string value in label part of block</param> /// <param name="value">string value in text part of block</param> /// <param name="rowNo">parent grid row number of block</param> /// <param name="colNo">parent grid column number of block</param> /// <param name="addBullet">if true, then bullet added before label part of block</param> /// <param name="colSpan">ColSpan parameter of parent grid cell</param> private static void WriteLabelAndTextBlock(Grid baseGrid, string labelText, string value, int rowNo, int colNo, bool addBullet = true, int colSpan = 0) { Grid grid = XPSHelper.GetGrid(new GridLength[] { GridLength.Auto, new GridLength(1, GridUnitType.Star) }, 1); XPSHelper.WriteItemToGrid(grid, baseGrid, rowNo, colNo, 0, colSpan); string fullLabelText = string.Format("{0}{1}", (addBullet ? string.Format("{0} ", m_Bullet) : ""), labelText); XPSHelper.WriteTextBlockToGrid(fullLabelText, grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize + 1, m_MarginSize, m_MarginSize - 1), m_FontSize); XPSHelper.WriteTextBlockToGrid(value, grid, 0, 1, HorizontalAlignment.Stretch, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize, m_MarginSize, m_MarginSize), m_FontSize); XPSHelper.WriteUnderliningToGridCell(grid, 0, 1); }
/// <summary>method write report's main box reference table to document grid /// </summary> private void WriteReferenceTableSectionToMainBox(Grid grid, double fontSize, Thickness rowMargin) { XPSHelper.WriteTextBlockToGrid(ReferenceTitle, grid, 1, 3, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(10, 15, 0, 0), fontSize, null, FontWeights.Bold, false, false, 0, 3); for (int i = 0; i < ReferenceRows.GetLength(0); i++) { for (int j = 0; j < ReferenceRows.GetLength(1); j++) { XPSHelper.WriteTextBlockToGrid(ReferenceRows[i, j], grid, i + 2, j + 3, HorizontalAlignment.Left, VerticalAlignment.Top, GetReferenceTableRowMargin(i, rowMargin), fontSize); } } }
/// <summary>method write label/value block to second column of informational grid /// </summary> /// <param name="rowNo">row index</param> /// <param name="label">label text</param> /// <param name="value">value text</param> /// <param name="grid">informational grid</param> private void WriteLabelAndTextBlock2(Grid grid, int rowNo, string label, string value) { if (label != string.Empty) { XPSHelper.WriteTextBlockToGrid(label, grid, rowNo, 2, HorizontalAlignment.Right, VerticalAlignment.Bottom, new Thickness(0, 0, 7, 0), m_FontSize + 3); } if (value != string.Empty) { XPSHelper.WriteTextBlockToGrid(value, grid, rowNo, 3, HorizontalAlignment.Left, VerticalAlignment.Bottom, new Thickness(0, 0, 0, 1), m_FontSize + 1); } }
/// <summary>method write report number /// </summary> /// <param name="grid">logo grid</param> private void WriteReportNo(Grid grid) { const int rowIndex = 1; const int labelColIndex = 1; const int valueColIndex = 2; double fontSize = m_FontSize + 7; Thickness margin = new Thickness(0, 2, m_HorMargin, 0); XPSHelper.WriteTextBlockToGrid("Report #:", grid, rowIndex, labelColIndex, HorizontalAlignment.Right, VerticalAlignment.Top, margin, fontSize); XPSHelper.WriteTextBlockToGrid(m_Data.GetStringValue(ReportHeaderData.ReportNo), grid, rowIndex, valueColIndex, HorizontalAlignment.Right, VerticalAlignment.Top, margin, fontSize); }
/// <summary>>method write section row (label/value block) to parent grid /// </summary> /// <param name="labelText">label text</param> /// <param name="valueText">value text</param> /// <param name="parentGrid">parent grid</param> /// <param name="rowNo">TextBlock cell row number in parent grid</param> /// <param name="colNo">TextBlock cell column number in parent grid</param> /// <param name="topMargin">top margin of "Cell Population Of Interest" section</param> protected static void WriteSectionRow(string labelText, string valueText, Grid parentGrid, double[] colWidth, int rowIndex, int colIndex, double topMargin = 0) { Grid grid = XPSHelper.GetGrid(colWidth, 1); grid.Margin = new Thickness(0, topMargin, 0, 0); TextBlock label = XPSHelper.WriteTextBlockToGrid(labelText, grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize); label.FontWeight = FontWeights.Bold; XPSHelper.WriteTextBlockToGrid(valueText, grid, 0, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize); XPSHelper.WriteItemToGrid(grid, parentGrid, rowIndex, colIndex); }
/// <summary>method write "Ancillary Studies" section's table row /// </summary> /// <param name="grid">"Ancillary Studies" section's table grid</param> /// <param name="rowIndex">"Ancillary Studies" section's table row index</param> private void WriteAncillaryStudyRow(Grid grid, int rowIndex) { int colCount = AncillaryStudiesColTitles.GetLength(0); int baseRowIndex = rowIndex * 3; XPSHelper.WriteTextBlockToGrid(m_ReportData.GetAncillaryStudyTitle(rowIndex), grid, baseRowIndex, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(17, 7, 0, 0), m_FontSize + 1, null, FontWeights.Bold, false, false, 0, grid.ColumnDefinitions.Count); for (int i = 0; i < colCount; i++) { XPSHelper.WriteTextBlockToGrid(AncillaryStudiesColTitles[i], grid, baseRowIndex + 1, i + 1, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(0, -2, 0, 0), m_FontSize + 1, null, FontWeights.Bold, true); XPSHelper.WriteTextBlockToGrid(m_ReportData.GetAncillaryStudyCellValue(rowIndex, i), grid, baseRowIndex + 2, i + 1, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(0, -2, 0, 2), m_FontSize); } }
/// <summary>method write report footer to parent grid /// </summary> /// <param name="grid">document grid</param> public override void Write(Grid grid) { const double gridWidth = 7.5; const int rowCount = 3; XPSHelper.SetupGrid(grid, rowCount, m_ColHeaders.GetLength(0), gridWidth); XPSHelper.WriteTextBlockToGrid(m_Title, grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_HorMargin, 0, 0, 0), m_FontSize + 1, m_RedishBrush); WriteColumnHeaders(grid); WriteAddressColumn(m_BillingsRows, grid, 0); WriteAddressColumn(m_CodyRows, grid, 1); WriteSiteColumn(grid); }
/// <summary>method write patient full display name and code /// </summary> /// <param name="grid">informational grid</param> private void WritePatientCode(Grid grid) { const int rowsCount = 1; GridLength[] colWidth = new GridLength[] { GridLength.Auto, new GridLength(1, GridUnitType.Star) }; XPSHelper.WriteTextBlockToGrid("Patient:", grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Bottom, null, m_FontSize + 3); Grid childGrid = XPSHelper.GetGrid(colWidth, rowsCount); XPSHelper.WriteTextBlockToGrid(m_Data.GetPatientDisplayName(), childGrid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Bottom, new Thickness(0, 0, 10, 0), m_FontSize + 6, null, FontWeights.Bold); XPSHelper.WriteTextBlockToGrid(m_Data.GetPatientCode(), childGrid, 0, 1, HorizontalAlignment.Left, VerticalAlignment.Bottom, new Thickness(0, 0, 0, 1), m_FontSize + 1); XPSHelper.WriteItemToGrid(childGrid, grid, 0, 1); }
/// <summary>>method write section row (label/value block) to document grid /// </summary> /// <param name="labelText">label text</param> /// <param name="valueText">value text</param> /// <param name="topMargin">top margin of "Cell Population Of Interest" section</param> protected void WriteSectionRow(string labelText, string valueText, double topMargin = 0) { double[] colWidth = new double[] { 1.75, 5.0 }; Grid grid = XPSHelper.GetGrid(colWidth, 1); grid.Margin = new Thickness(m_LeftMargin, topMargin, 0, 0); TextBlock label = XPSHelper.WriteTextBlockToGrid(labelText, grid, 0, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize); label.FontWeight = FontWeights.Bold; XPSHelper.WriteTextBlockToGrid(valueText, grid, 0, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize); m_ReportDocument.WriteRowContent(grid); }
/// <summary>method write label/value block to first column of informational grid /// </summary> /// <param name="rowNo">row index</param> /// <param name="label">label text</param> /// <param name="value">value text</param> /// <param name="grid">informational grid</param> private void WriteLabelAndTextBlock1(Grid grid, int rowNo, string label, string value, double fontSize = -1.0, bool isItalic = false) { if (label != string.Empty) { XPSHelper.WriteTextBlockToGrid(label, grid, rowNo, 0, HorizontalAlignment.Left, VerticalAlignment.Bottom, null, (fontSize == -1 ? m_FontSize + 3 : fontSize + 2)); } if (value != string.Empty) { TextBlock textBlock = XPSHelper.WriteTextBlockToGrid(value, grid, rowNo, 1, HorizontalAlignment.Left, VerticalAlignment.Bottom, new Thickness(0, 0, 0, 1), (fontSize == -1 ? m_FontSize + 1 : fontSize)); if (isItalic) { textBlock.FontStyle = FontStyles.Italic; } } }
/// <summary>method write report's main box custom sections to document grid /// </summary> /// <returns>main box first row index</returns> protected override int WriteCustomSectionToMainBox() { const double fontSize = m_FontSize + 2; Grid grid = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 2.1 }), 3); WriteResultUnderlinedHeader(grid); int rowIndex = 1; XPSHelper.WriteTextBlockToGrid(m_ReportData.TestNameText, grid, rowIndex, 0, HorizontalAlignment.Right, VerticalAlignment.Top, new Thickness(0, 5, 0, 0), fontSize, null, FontWeights.Bold); XPSHelper.WriteTextBlockToGrid(m_ReportData.TestResultText, grid, rowIndex++, 1, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(20, 5, 0, 0), fontSize, null, FontWeights.Bold); XPSHelper.WriteTextBlockToGrid(m_ReportData.ResultCommentText, grid, rowIndex++, 1, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(20, 0, 5, 0), fontSize, null, FontWeights.Bold, false, true); return(m_ReportDocument.WriteRowContent(grid)); }
/// <summary>method write site column to document grid /// </summary> /// <param name="grid">document grid</param> private void WriteSiteColumn(Grid grid) { const int rowIndex = 2; const int colIndex = 2; const double topMargin = -0.7; HorizontalAlignment horAlign = m_ColAlign[colIndex]; int rowCount = m_SiteRows.GetLength(0); Grid childGrid = XPSHelper.GetGrid(rowCount, 1); for (int i = 0; i < rowCount; i++) { XPSHelper.WriteTextBlockToGrid(m_SiteRows[i], childGrid, i, 0, horAlign, VerticalAlignment.Top, new Thickness(0, topMargin, m_HorMargin, 0), m_FontSize, m_RedishBrush); } XPSHelper.WriteItemToGrid(childGrid, grid, rowIndex, colIndex); }
/// <summary>method return "Result Data" section grid /// </summary> private Grid WriteResultData() { double[] colWidth = new double[] { 2.1, 1.3 }; Thickness margin = new Thickness(10, 0, 0, 0); int rowCount = ResultLabels.GetLength(0); Grid grid = XPSHelper.GetGrid(colWidth, rowCount + 1); int rowIndex = 0; XPSHelper.WriteTextBlockToGrid(ResultDataTitle, grid, rowIndex++, 0, HorizontalAlignment.Center, VerticalAlignment.Top, null, m_FontSize, null, FontWeights.Bold, true, false, 0, 2); for (int i = 0; i < rowCount; i++) { XPSHelper.WriteTextBlockToGrid(ResultLabels[i], grid, rowIndex, 0, HorizontalAlignment.Right, VerticalAlignment.Top, null, m_FontSize); XPSHelper.WriteTextBlockToGrid(m_ReportData.GetResultValue(i), grid, rowIndex++, 1, HorizontalAlignment.Left, VerticalAlignment.Top, margin, m_FontSize); } return(grid); }
/// <summary>method return "Specimen Information" section grid /// </summary> private Grid WriteSpecimenInformation() { double[] colWidth = new double[] { 1.3, 2.5 }; Thickness margin = new Thickness(10, 0, 0, 0); int rowCount = SpecimenLabels.GetLength(0); Grid grid = XPSHelper.GetGrid(colWidth, rowCount + 1); int rowIndex = 0; XPSHelper.WriteTextBlockToGrid(SpecimenTitle, grid, rowIndex++, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(80, 0, 0, 0), m_FontSize, null, FontWeights.Bold, true, false, 0, 2); for (int i = 0; i < rowCount; i++) { XPSHelper.WriteTextBlockToGrid(SpecimenLabels[i], grid, rowIndex, 0, HorizontalAlignment.Right, VerticalAlignment.Top, null, m_FontSize); XPSHelper.WriteTextBlockToGrid(m_ReportData.GetSpecimenValue(i), grid, rowIndex++, 1, HorizontalAlignment.Left, VerticalAlignment.Top, margin, m_FontSize); } return(grid); }
/// <summary>method write report's amendment sections /// </summary> /// <param name="amendment">XML element with amendment parameters</param> /// <param name="haveTop">if true, then amendment box have top edge</param> private void WriteAmendmentBox(XElement amendment, bool haveTop) { Grid grid = XPSHelper.GetGrid(2, 1, ReportPage.ReportWidth - 2.0 * m_LeftMargin / ReportPage.DisplayResolution); int rowIndex = 0; string title = string.Format("{0}: {1}", amendment.Element(YpReportDataBase.AmendmentType).Value, amendment.GetDateTime(YpReportDataBase.AmendmentTime, "MM/dd/yyyy - HH:mm")); XPSHelper.WriteTextBlockToGrid(title, grid, rowIndex++, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_LeftMargin + 6, 5, 0, 0), m_FontSize + 2, null, FontWeights.Bold); XPSHelper.WriteTextBlockToGrid(amendment.Element(YpReportDataBase.AmendmentText).Value, grid, rowIndex++, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_LeftMargin + 6, 2, 0, 0), m_FontSize + 2, null, null, false, true); int startRow = m_ReportDocument.WriteRowContent(grid); TextBlock sign = XPSHelper.GetTextBlock(amendment.Element(YpReportDataBase.AmendmentPathologistSignature).Value, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_SignLeftMargin, m_TopMargin, m_SignRightMargin, m_VerticalGap), m_FontSize + 2); m_ReportDocument.WriteRowContent(sign); TextBlock esign = XPSHelper.GetTextBlock(m_ElectronicSignatureLabelText, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_SignLeftMargin + 20, 0, m_SignRightMargin, m_VerticalGap + m_TopMargin), m_FontSize - 2); int endRow = m_ReportDocument.WriteRowContent(esign) + 1; WriteBoxBorder(startRow, endRow, haveTop); }
/// <summary>method write report's main box custom sections to document grid /// </summary> protected override int WriteCustomSectionToMainBox() { const double fontSize = m_FontSize + 2; Thickness rowMargin = new Thickness(0, -3, 0, 0); Grid grid = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 0.7, 0.55, 4.0, 0.8, 0.3 }), 5); WriteResultUnderlinedHeader(grid); int rowIndex = 2; XPSHelper.WriteTextBlockToGrid(TestNameText, grid, rowIndex, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold); XPSHelper.WriteTextBlockToGrid(m_ReportData.TestResultText, grid, rowIndex++, 2, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold); XPSHelper.WriteTextBlockToGrid(m_ReportData.TestResultValue, grid, rowIndex++, 2, HorizontalAlignment.Left, VerticalAlignment.Top, rowMargin, fontSize, null, FontWeights.Bold); WriteReferenceTableSectionToMainBox(grid, fontSize, rowMargin); return(m_ReportDocument.WriteRowContent(grid)); }
/// <summary>method write report's main box custom sections to document grid /// </summary> protected override int WriteCustomSectionToMainBox() { const double fontSize = m_FontSize + 2; const double leftMargin = m_LeftMargin + 18; const double topMargin = m_TopMargin + 6; const int rowCount = 3; Grid grid = XPSHelper.GetGrid(XPSHelper.GetFullWidthGridColWidthArray(new double[] { 0.5, 1.5 }, m_LeftMargin), rowCount); grid.Margin = new Thickness(leftMargin, topMargin, 0, 0); int rowIndex = 0; XPSHelper.WriteTextBlockToGrid(YpReportBase.ResultLabel, grid, rowIndex++, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold, false, false, 0, 3); XPSHelper.WriteTextBlockToGrid(m_ReportData.TestNameText, grid, rowIndex, 1, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold); XPSHelper.WriteTextBlockToGrid(m_ReportData.TestResultText, grid, rowIndex++, 2, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold); XPSHelper.WriteTextBlockToGrid(m_ReportData.ResultCommentText, grid, rowIndex++, 2, HorizontalAlignment.Left, VerticalAlignment.Top, null, fontSize, null, FontWeights.Bold); return(m_ReportDocument.WriteRowContent(grid)); }
/// <summary>method write "Report Distribution" section to document grid /// </summary> protected void WriteReportDistributionSection(IEnumerable <XElement> reportDistributions) { double[] colWidth = new double[] { ReportPage.ReportWidth / 2 - (2.0 * m_LeftMargin / ReportPage.DisplayResolution) }; int rowCount = reportDistributions.Count(); TextBlock sectionTitle = XPSHelper.GetTextBlock(ReportDistributionLabel, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize, null, FontWeights.Bold, true); Grid grid = XPSHelper.GetGrid(colWidth, rowCount); for (int i = 0; i < rowCount; i++) { XPSHelper.WriteTextBlockToGrid(reportDistributions.ElementAt(i).Value, grid, i, 0, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize); } StackPanel stackPanel = new StackPanel() { Orientation = Orientation.Vertical, Margin = new Thickness(m_LeftMargin, m_TopMargin, 0, 0) }; stackPanel.Children.Add(sectionTitle); stackPanel.Children.Add(grid); m_ReportDocument.WriteRowContent(stackPanel); }
/// <summary>method write address column to document grid /// </summary> /// <param name="rows">array of rows strings</param> /// <param name="grid">document grid</param> /// <param name="colIndex">column index</param> private void WriteAddressColumn(string[][] rows, Grid grid, int colIndex) { const int rowIndex = 2; int colCount; HorizontalAlignment horAlign = m_ColAlign[colIndex]; int rowCount = rows.GetLength(0); Grid childGrid = XPSHelper.GetGrid(rowCount, 1); for (int i = 0; i < rowCount; i++) { colCount = rows[i].GetLength(0); if (colCount == 1) { XPSHelper.WriteTextBlockToGrid(rows[i][0], childGrid, i, 0, horAlign, VerticalAlignment.Top, new Thickness(m_HorMargin, (i == 1 ? -5.0 : 0), 0, 0), m_FontSize + 1, m_GreenishBrush); } else { WritePhoneRow(childGrid, rows[i], i); } } XPSHelper.WriteItemToGrid(childGrid, grid, rowIndex, colIndex); }
/// <summary>method write section title to document grid /// </summary> /// <param name="baseGrid">base grid</param> /// <param name="title">section title text</param> /// <param name="rowNo">base grid row number of section title</param> private static void WriteSectionTitle(Grid baseGrid, string title, int rowNo) { XPSHelper.WriteTextBlockToGrid(title, baseGrid, rowNo, 0, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize, m_MarginSize, m_MarginSize), m_FontSize, null, FontWeights.Bold, true, true, 0, baseGrid.ColumnDefinitions.Count); }
/// <summary>method write column title to document grid /// </summary> /// <param name="baseGrid">parent grid</param> /// <param name="title">section title text</param> /// <param name="rowNo">parent grid row number of section title</param> /// <param name="colNo">parent grid column number of section title</param> private static void WriteColumnTitle(Grid baseGrid, string title, int rowNo, int colNo) { XPSHelper.WriteTextBlockToGrid(title, baseGrid, rowNo, colNo, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(m_MarginSize, m_MarginSize, m_MarginSize, m_MarginSize), m_FontSize, null, FontWeights.Bold, false, true); }
/// <summary>method write section title to parent grid /// </summary> /// <param name="text">section title text</param> /// <param name="parentGrid">parent grid</param> /// <param name="rowNo">TextBlock cell row number in parent grid</param> /// <param name="colNo">TextBlock cell column number in parent grid</param> /// <param name="fontSize">font size</param> protected static void WriteSectionTitle(string text, Grid parentGrid, int rowIndex, int colIndex, double fontSize = -1) { XPSHelper.WriteTextBlockToGrid(text, parentGrid, rowIndex, colIndex, HorizontalAlignment.Left, VerticalAlignment.Top, new Thickness(0, m_TopMargin, 0, 0), (fontSize == -1 ? m_FontSize : fontSize), null, FontWeights.Bold, true); }
/// <summary>method write columns header /// </summary> /// <param name="colHeader">column's headers names</param> /// <param name="grid">"Markers" section's main grid</param> /// <param name="colIndex">column index</param> private static void WriteMarkersColHeader(string colHeader, Grid grid, int colIndex) { XPSHelper.WriteTextBlockToGrid(colHeader, grid, 0, colIndex, HorizontalAlignment.Left, VerticalAlignment.Top, null, m_FontSize, null, FontWeights.Bold, true); }