/// <summary> /// Print the data that is shown in a grid /// </summary> /// <param name="AParentForm">The parent form (since a modal dialog is called)</param> /// <param name="APrintApplication">The print application to use - either Word or Excel</param> /// <param name="APreviewOnly">True if preview, False to print without preview</param> /// <param name="AModule">The module that is making the call</param> /// <param name="ATitleText">Title for the page</param> /// <param name="AGrid">A grid displaying data</param> /// <param name="ATableColumnOrder">Zero-based table column order that matches the grid columns</param> public static void SelectAndPrintGridFields(Form AParentForm, TStandardFormPrint.TPrintUsing APrintApplication, bool APreviewOnly, TModule AModule, string ATitleText, TSgrdDataGrid AGrid, int[] ATableColumnOrder) { TFrmSelectPrintFields SelectPrintFields = new TFrmSelectPrintFields(AParentForm, "SelectPrintFields"); SelectPrintFields.InitData(ATableColumnOrder, AGrid, APreviewOnly); SelectPrintFields.ShowDialog(); if (SelectPrintFields.DialogResult == DialogResult.OK) { TStandardFormPrint.PrintGrid(APrintApplication, APreviewOnly, ATitleText, AGrid, SelectPrintFields.GetColumnOrder(), SelectPrintFields.GetColumnID()); } }
/// <summary> /// Initialises the data for the Select Print Fields dialog. /// </summary> /// <param name="AColumnId"></param> /// <param name="AGrid"></param> /// <param name="APreviewMode"></param> public void InitData(int[] AColumnId, TSgrdDataGrid AGrid, bool APreviewMode) { if (APreviewMode) { btnOK.Text = "Preview"; } else { btnOK.Text = "Print"; } TFrmSelectPrintFields SelectPrintFields = new TFrmSelectPrintFields(this, "bliblablub"); DataTable fieldTable = new DataTable(); fieldTable.Columns.Add(new DataColumn("CHECKED", typeof(bool))); fieldTable.Columns.Add(new DataColumn("Name", typeof(string))); fieldTable.Columns.Add(new DataColumn("Id", typeof(int))); fieldTable.Columns.Add(new DataColumn("Details", typeof(int))); fieldTable.Columns.Add(new DataColumn("sortId", typeof(int))); DataRow fieldRow; for (int Counter1 = 0; Counter1 < AColumnId.Length; Counter1++) { fieldRow = fieldTable.NewRow(); fieldRow[0] = true; fieldRow[1] = AGrid.Columns[Counter1].HeaderCell.ToString(); fieldRow[2] = AColumnId[Counter1]; int index = Counter1; fieldRow[3] = index; fieldRow[4] = index; fieldTable.Rows.Add(fieldRow); } this.fieldTable = fieldTable; FView = new DataView(fieldTable); FView.AllowNew = false; clbFields.DataSource = new DevAge.ComponentModel.BoundDataView(FView); }