Browse Source

Code duplications in Wizard

pull/15/head^2
peterforstmeier 15 years ago
parent
commit
0e0dbdc3e2
  1. 45
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/WizardHelper.cs
  2. 77
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs
  3. 82
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs

45
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/WizardHelper.cs

@ -3,6 +3,8 @@
using System; using System;
using System.Data; using System.Data;
using System.Windows.Forms;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin.ReportWizard namespace ICSharpCode.Reports.Addin.ReportWizard
@ -37,6 +39,41 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
} }
internal static ReportItemCollection CreateItemsCollection (DataSet resultDataSet,DataGridViewColumn[] displayCols)
{
ReportItemCollection sourceItems = WizardHelper.ReportItemCollection(resultDataSet);
ReportItemCollection destItems = WizardHelper.ExtractSelectedItems(sourceItems, displayCols);
return destItems;
}
internal static void SetupGridView(DataGridView grdQuery)
{
foreach (DataGridViewColumn dd in grdQuery.Columns)
{
DataGridViewColumnHeaderCheckBoxCell cb = new DataGridViewColumnHeaderCheckBoxCell();
cb.CheckBoxAlignment = HorizontalAlignment.Left;
cb.Checked = true;
dd.HeaderCell = cb;
}
}
internal static ReportItemCollection ExtractSelectedItems(ReportItemCollection sourceItems,DataGridViewColumn[] displayCols)
{
var destItems = new ReportItemCollection();
foreach (DataGridViewColumn cc in displayCols) {
DataGridViewColumnHeaderCheckBoxCell hc = (DataGridViewColumnHeaderCheckBoxCell)cc.HeaderCell;
if (hc.Checked) {
BaseReportItem br = (BaseReportItem)sourceItems.Find(cc.HeaderText);
destItems.Add(br);
}
}
return destItems;
}
internal static ReportItemCollection ReportItemCollection (DataSet dataSet) internal static ReportItemCollection ReportItemCollection (DataSet dataSet)
{ {
if (dataSet == null) { if (dataSet == null) {
@ -49,7 +86,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
ICSharpCode.Core.MessageService.ShowError(s); ICSharpCode.Core.MessageService.ShowError(s);
} }
ReportItemCollection itemCol = new ReportItemCollection(); ReportItemCollection destItems = new ReportItemCollection();
foreach (DataTable tbl in dataSet.Tables) { foreach (DataTable tbl in dataSet.Tables) {
foreach (DataColumn col in tbl.Columns) { foreach (DataColumn col in tbl.Columns) {
@ -59,7 +96,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
rItem.BaseTableName = tbl.TableName; rItem.BaseTableName = tbl.TableName;
rItem.Name = col.ColumnName; rItem.Name = col.ColumnName;
rItem.ScaleImageToSize = false; rItem.ScaleImageToSize = false;
itemCol.Add (rItem); destItems.Add (rItem);
} else { } else {
ICSharpCode.Reports.Core.BaseDataItem rItem = new ICSharpCode.Reports.Core.BaseDataItem(); ICSharpCode.Reports.Core.BaseDataItem rItem = new ICSharpCode.Reports.Core.BaseDataItem();
rItem.ColumnName = col.ColumnName; rItem.ColumnName = col.ColumnName;
@ -68,11 +105,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
rItem.DataType = col.DataType.ToString(); rItem.DataType = col.DataType.ToString();
rItem.Name = col.ColumnName; rItem.Name = col.ColumnName;
rItem.Text = "=[" + col.ColumnName + "]"; rItem.Text = "=[" + col.ColumnName + "]";
itemCol.Add (rItem); destItems.Add (rItem);
} }
} }
} }
return itemCol; return destItems;
} }

77
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs

@ -27,7 +27,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
private ReportStructure reportStructure; private ReportStructure reportStructure;
private Properties customizer; private Properties customizer;
private DataSet resultDataSet; private DataSet resultDataSet;
private AvailableFieldsCollection abstractColumns;
public PushModelPanel() public PushModelPanel()
{ {
@ -36,15 +35,16 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
base.EnableCancel = true; base.EnableCancel = true;
base.EnableNext = false; base.EnableNext = false;
Localize (); Localize ();
} }
void Localize ()
void Localize ()
{ {
this.label1.Text = ResourceService.GetString("SharpReport.Wizard.PushModel.Path"); this.label1.Text = ResourceService.GetString("SharpReport.Wizard.PushModel.Path");
this.label2.Text = ResourceService.GetString("SharpReport.Wizard.PushModel.AvailableFields"); this.label2.Text = ResourceService.GetString("SharpReport.Wizard.PushModel.AvailableFields");
} }
void BtnPathClick(object sender, System.EventArgs e) void BtnPathClick(object sender, System.EventArgs e)
{ {
using (OpenFileDialog fdiag = new OpenFileDialog()) { using (OpenFileDialog fdiag = new OpenFileDialog()) {
@ -60,21 +60,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
base.EnableNext = true; base.EnableNext = true;
base.EnableFinish= true; base.EnableFinish= true;
} }
}
}
private AvailableFieldsCollection AvailableFieldsCollectionFromTable (DataTable table)
{
AvailableFieldsCollection av = new AvailableFieldsCollection();
AbstractColumn ac = null;
foreach (DataColumn dc in resultDataSet.Tables[0].Columns) {
Console.WriteLine("{0} - {1}",dc.ColumnName,dc.DataType);
ac = new AbstractColumn(dc.ColumnName,dc.DataType);
av.Add(ac);
} }
return av;
} }
@ -84,41 +70,15 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
{ {
this.resultDataSet = new DataSet(); this.resultDataSet = new DataSet();
this.resultDataSet.Locale = CultureInfo.CurrentCulture; this.resultDataSet.Locale = CultureInfo.CurrentCulture;
resultDataSet.ReadXml (fileName); resultDataSet.ReadXml (fileName);
this.grdQuery.DataSource = resultDataSet.Tables[0]; this.grdQuery.DataSource = resultDataSet.Tables[0];
this.abstractColumns = WizardHelper.AvailableFieldsCollection(this.resultDataSet); WizardHelper.SetupGridView(this.grdQuery);
foreach (DataGridViewColumn dd in this.grdQuery.Columns) { grdQuery.AllowUserToOrderColumns = true;
DataGridViewColumnHeaderCheckBoxCell cb = new DataGridViewColumnHeaderCheckBoxCell();
cb.CheckBoxAlignment = HorizontalAlignment.Left;
cb.Checked = true;
dd.HeaderCell = cb;
}
base.EnableFinish = true; base.EnableFinish = true;
} }
#endregion #endregion
// only checked columns are use in the report
private ReportItemCollection CreateItemsCollection (DataGridViewColumn[] displayCols)
{
ReportItemCollection items = new ReportItemCollection();
foreach (DataGridViewColumn cc in displayCols) {
DataGridViewColumnHeaderCheckBoxCell hc= (DataGridViewColumnHeaderCheckBoxCell)cc.HeaderCell;
if (hc.Checked) {
AbstractColumn ac = this.abstractColumns.Find(cc.HeaderText);
ICSharpCode.Reports.Core.BaseDataItem br = new ICSharpCode.Reports.Core.BaseDataItem();
br.Name = ac.ColumnName;
br.ColumnName = ac.ColumnName;
br.DataType = ac.DataTypeName;
br.DBValue = ac.ColumnName;
items.Add(br);
}
}
return items;
}
#region overrides #region overrides
@ -149,6 +109,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
} }
private void WriteResult () private void WriteResult ()
{ {
if (this.resultDataSet != null) { if (this.resultDataSet != null) {
@ -165,14 +126,18 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
} }
reportStructure.ReportItemCollection.Clear(); reportStructure.ReportItemCollection.Clear();
reportStructure.ReportItemCollection.AddRange(CreateItemsCollection (displayCols)); var items = WizardHelper.CreateItemsCollection(this.resultDataSet,displayCols);
if (this.abstractColumns != null) { reportStructure.ReportItemCollection.AddRange(items);
var abstractColumns = WizardHelper.AvailableFieldsCollection(this.resultDataSet);
if (abstractColumns != null) {
reportStructure.AvailableFieldsCollection.Clear(); reportStructure.AvailableFieldsCollection.Clear();
reportStructure.AvailableFieldsCollection.AddRange(abstractColumns); reportStructure.AvailableFieldsCollection.AddRange(abstractColumns);
} }
} }
} }
#endregion #endregion
#region Windows Forms Designer generated code #region Windows Forms Designer generated code
@ -193,8 +158,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
// //
// txtPath // txtPath
// //
this.txtPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) this.txtPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.txtPath.Location = new System.Drawing.Point(16, 63); this.txtPath.Location = new System.Drawing.Point(16, 63);
this.txtPath.Name = "txtPath"; this.txtPath.Name = "txtPath";
this.txtPath.Size = new System.Drawing.Size(338, 20); this.txtPath.Size = new System.Drawing.Size(338, 20);
@ -210,8 +175,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
// //
// btnPath // btnPath
// //
this.btnPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) this.btnPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.btnPath.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnPath.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnPath.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnPath.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnPath.Location = new System.Drawing.Point(383, 58); this.btnPath.Location = new System.Drawing.Point(383, 58);
@ -240,9 +205,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
// dataGridView1 // dataGridView1
// //
this.grdQuery.AllowUserToOrderColumns = true; this.grdQuery.AllowUserToOrderColumns = true;
this.grdQuery.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) this.grdQuery.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.grdQuery.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.grdQuery.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.grdQuery.Location = new System.Drawing.Point(16, 120); this.grdQuery.Location = new System.Drawing.Point(16, 120);
this.grdQuery.Name = "dataGridView1"; this.grdQuery.Name = "dataGridView1";

82
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs

@ -105,10 +105,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
if (t != null) { if (t != null) {
str = t.Name; str = t.Name;
} }
else else
{ {
//str = reportStructure.IDatabaseObjectBase.Parent.Name;
str = "Table1"; str = "Table1";
} }
return str; return str;
@ -276,13 +274,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
{ {
if (this.resultDataSet != null) { if (this.resultDataSet != null) {
this.grdQuery.DataSource = this.resultDataSet.Tables[0]; this.grdQuery.DataSource = this.resultDataSet.Tables[0];
foreach (DataGridViewColumn dd in this.grdQuery.Columns) { WizardHelper.SetupGridView(this.grdQuery);
DataGridViewColumnHeaderCheckBoxCell cb = new DataGridViewColumnHeaderCheckBoxCell();
cb.CheckBoxAlignment = HorizontalAlignment.Right;
cb.Checked = true;
dd.HeaderCell = cb;
dd.SortMode = DataGridViewColumnSortMode.NotSortable;
}
this.grdQuery.AllowUserToOrderColumns = true; this.grdQuery.AllowUserToOrderColumns = true;
} }
} }
@ -290,55 +282,35 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
private void WriteResult () private void WriteResult ()
{ {
if (this.resultDataSet != null) { if (this.resultDataSet != null) {
// check reordering of columns // check reordering of columns
DataGridViewColumn[] displayCols; DataGridViewColumn[] displayCols;
DataGridViewColumnCollection dc = this.grdQuery.Columns; DataGridViewColumnCollection dc = this.grdQuery.Columns;
displayCols = new DataGridViewColumn[dc.Count]; displayCols = new DataGridViewColumn[dc.Count];
for (int i = 0; i < dc.Count; i++){ for (int i = 0; i < dc.Count; i++){
if (dc[i].Visible) { if (dc[i].Visible) {
displayCols[dc[i].DisplayIndex] = dc[i]; displayCols[dc[i].DisplayIndex] = dc[i];
}
}
ReportItemCollection sourceItems = WizardHelper.ReportItemCollection(this.resultDataSet);
AvailableFieldsCollection abstractColumns = WizardHelper.AvailableFieldsCollection(this.resultDataSet);
ReportItemCollection destItems = new ReportItemCollection();
// only checked columns are used in the report
foreach (DataGridViewColumn cc in displayCols) {
DataGridViewColumnHeaderCheckBoxCell hc= (DataGridViewColumnHeaderCheckBoxCell)cc.HeaderCell;
if (hc.Checked) {
BaseReportItem br = (BaseReportItem)sourceItems.Find(cc.HeaderText);
destItems.Add(br);
}
}
reportStructure.ReportItemCollection.Clear();
reportStructure.ReportItemCollection.AddRange(destItems);
/*
if ((this.sqlParamsCollection != null) && (this.sqlParamsCollection.Count > 0)) {
reportStructure.SqlQueryParameters.AddRange(sqlParamsCollection);
}
*/
if (abstractColumns != null) {
reportStructure.AvailableFieldsCollection.Clear();
reportStructure.AvailableFieldsCollection.AddRange(abstractColumns);
}
/*
if ((this.sqlParamsCollection != null) && (this.sqlParamsCollection.Count > 0)) {
reportStructure.SqlQueryParameters.Clear();
reportStructure.SqlQueryParameters.AddRange(sqlParamsCollection);
} }
*/
} }
base.EnableNext = true;
base.EnableFinish = true; ReportItemCollection destItems = WizardHelper.CreateItemsCollection(this.resultDataSet,displayCols);
reportStructure.ReportItemCollection.Clear();
reportStructure.ReportItemCollection.AddRange(destItems);
var abstractColumns = WizardHelper.AvailableFieldsCollection(this.resultDataSet);
if (abstractColumns != null) {
reportStructure.AvailableFieldsCollection.Clear();
reportStructure.AvailableFieldsCollection.AddRange(abstractColumns);
}
}
base.EnableNext = true;
base.EnableFinish = true;
} }
#endregion #endregion
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)

Loading…
Cancel
Save