最も簡単な再構築、あなたはできますか?
3651 ワード
最近Reporting Serviceレポートをプレイして、マイクロソフトの公式クライアントは実現の中でこのようなコードがあります
思わず手がかゆくなって、それを:
この変化には3つの点があります.
1、IsPostBack条件判断を反転させ、ネストを減らす.
2、設定ReportViewerの同じ論理を抽出し、一つの依頼で設定する.
3、コメントを上りコードと1行置きにし、単独で1行を占める.
これ以上簡単ではないでしょうが、あなたはできますか?Sorry、あなたはきっとできますが、たとえあなたができても、マイクロソフトはしません.あなたはしますか?
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Get report path from configuration file
Uri serverurl = new Uri(ConfigurationManager.AppSettings["ReportServerUrl"]);
string reportsfolder = ConfigurationManager.AppSettings["SampleReportsPath"]; // folder or site path
string fileextension = (ConfigurationManager.AppSettings["ReportServerMode"] == "SharePoint" ? ".rdl" : String.Empty); // extension, depending on the report server mode
ReportViewer1.ServerReport.ReportServerUrl = serverurl;
ReportViewer1.ServerReport.ReportPath = String.Format("{0}/Company Sales 2008{1}", reportsfolder, fileextension);
ReportViewer2.ServerReport.ReportServerUrl = serverurl;
ReportViewer2.ServerReport.ReportPath = String.Format("{0}/Employee Sales Summary 2008{1}", reportsfolder, fileextension);
ReportViewer3.ServerReport.ReportServerUrl = serverurl;
ReportViewer3.ServerReport.ReportPath = String.Format("{0}/Product Catalog 2008{1}", reportsfolder, fileextension);
ReportViewer4.ServerReport.ReportServerUrl = serverurl;
ReportViewer4.ServerReport.ReportPath = String.Format("{0}/Sales Trend 2008{1}", reportsfolder, fileextension);
ReportViewer5.ServerReport.ReportServerUrl = serverurl;
ReportViewer5.ServerReport.ReportPath = String.Format("{0}/Territory Sales Drilldown 2008{1}", reportsfolder, fileextension);
}
}
思わず手がかゆくなって、それを:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
// Get report path from configuration file
Uri serverurl = new Uri(ConfigurationManager.AppSettings["ReportServerUrl"]);
string reportsfolder = ConfigurationManager.AppSettings["SampleReportsPath"];
// folder or site path. extension, depending on the report server mode
string fileextension = (ConfigurationManager.AppSettings["ReportServerMode"] == "SharePoint" ? ".rdl" : String.Empty);
Action<Microsoft.Reporting.WebForms.ReportViewer, string> setReportViewer =
(report, reportName) =>
{
report.ServerReport.ReportServerUrl = serverurl;
report.ServerReport.ReportPath = String.Format("{0}/{2}{1}", reportsfolder, fileextension, reportName);
};
setReportViewer(ReportViewer1, "Company Sales 2008");
setReportViewer(ReportViewer2, "Employee Sales Summary 2008");
setReportViewer(ReportViewer3, "Product Catalog 2008");
setReportViewer(ReportViewer4, "Sales Trend 2008");
setReportViewer(ReportViewer5, "Territory Sales Drilldown 2008");
}
この変化には3つの点があります.
1、IsPostBack条件判断を反転させ、ネストを減らす.
2、設定ReportViewerの同じ論理を抽出し、一つの依頼で設定する.
3、コメントを上りコードと1行置きにし、単独で1行を占める.
これ以上簡単ではないでしょうが、あなたはできますか?Sorry、あなたはきっとできますが、たとえあなたができても、マイクロソフトはしません.あなたはしますか?