void runParamRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DollarSaverDB.ParameterRow parameter = (DollarSaverDB.ParameterRow)e.Item.DataItem; Label parameterNameLabel = (Label)e.Item.FindControl("parameterNameLabel"); Label parameterValueLabel = (Label)e.Item.FindControl("parameterValueLabel"); parameterNameLabel.Text = parameter.Name; //parameterValueLabel.Text = parameter.RunParameter.Value.ToString(); switch (parameter.ParameterTypeId) { case 2: parameterValueLabel.Text = ((DateTime)parameter.RunParameter.Value).ToString("MM/dd/yyyy"); break; default: parameterValueLabel.Text = parameter.RunParameter.Value.ToString(); break; } } }
private void parameterRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DollarSaverDB.ParameterRow parameter = (DollarSaverDB.ParameterRow)e.Item.DataItem; HiddenField paramIdHidden = (HiddenField)e.Item.FindControl("paramIdHidden"); paramIdHidden.Value = parameter.ParameterId.ToString(); Label paramNameLabel = (Label)e.Item.FindControl("paramNameLabel"); paramNameLabel.Text = parameter.Name; Label paramTypeLabel = (Label)e.Item.FindControl("paramTypeLabel"); //paramTypeLabel.Text = parameter.ParameterType.Name; PlaceHolder validatorHolder = (PlaceHolder)e.Item.FindControl("validatorHolder"); RegularExpressionValidator rev; RequiredFieldValidator rfv; paramNameLabel.Text = parameter.Name; HiddenField paramValueHidden = (HiddenField)e.Item.FindControl("paramValueHidden"); Label paramValueLabel = (Label)e.Item.FindControl("paramValueLabel"); TextBox paramValueBox = (TextBox)e.Item.FindControl("paramValueBox"); CheckBox paramCheckBox = (CheckBox)e.Item.FindControl("paramCheckBox"); ListBox paramList = (ListBox)e.Item.FindControl("paramList"); PlaceHolder timeHolder = (PlaceHolder)e.Item.FindControl("timeHolder"); DropDownList hourList = (DropDownList)e.Item.FindControl("hourList"); DropDownList minuteList = (DropDownList)e.Item.FindControl("minuteList"); switch (parameter.ParameterTypeId) { case 1: // bit paramValueLabel.Visible = false; paramValueBox.Visible = false; paramCheckBox.Visible = true; paramList.Visible = false; timeHolder.Visible = false; paramCheckBox.Checked = true; if (parameter.Description != string.Empty) { paramTypeLabel.Text = " " + parameter.Description; } break; case 2: // date paramValueLabel.Visible = false; paramValueBox.Visible = true; paramCheckBox.Visible = false; paramList.Visible = false; timeHolder.Visible = false; paramValueBox.Columns = 10; paramValueBox.MaxLength = 12; // default value hacking.. if (parameter.Name.ToUpper().Trim() == "START DATE") { DateTime startDate = DateTime.Now; startDate = startDate.AddMonths(-1); startDate = new DateTime(startDate.Year, startDate.Month, 1); paramValueBox.Text = startDate.ToString("MM/dd/yyyy"); } else if (parameter.Name.ToUpper().Trim() == "END DATE") { DateTime startDate = DateTime.Now; startDate = startDate.AddMonths(-1); startDate = new DateTime(startDate.Year, startDate.Month, 1); DateTime endDate = startDate.AddMonths(1).AddDays(-1); paramValueBox.Text = endDate.ToString("MM/dd/yyyy"); } Image calendarImage = (Image)e.Item.FindControl("calendarImage"); calendarImage.Visible = true; calendarImage.ImageUrl = "~/images/calendar_button.gif"; calendarImage.Attributes["OnClick"] = "showCalendarControl('" + paramValueBox.ClientID + "');"; //paramValueBox.Attributes["onblur"] = "hideCalendarControl();"; rev = GenerateDateREV(paramValueBox); validatorHolder.Controls.Add(rev); rfv = GenerateRFV(paramValueBox); validatorHolder.Controls.Add(rfv); paramTypeLabel.Text = " (MM/DD/YYYY)"; break; case 3: // decimal paramValueLabel.Visible = false; paramValueBox.Visible = true; paramCheckBox.Visible = false; paramList.Visible = false; timeHolder.Visible = false; paramValueBox.Columns = 12; paramValueBox.MaxLength = 20; rev = GenerateDecimalREV(paramValueBox); validatorHolder.Controls.Add(rev); rfv = GenerateRFV(paramValueBox); validatorHolder.Controls.Add(rfv); if (parameter.Description != string.Empty) { paramTypeLabel.Text = " " + parameter.Description; } break; case 4: // int paramValueLabel.Visible = false; paramValueBox.Visible = true; paramCheckBox.Visible = false; paramList.Visible = false; timeHolder.Visible = false; paramValueBox.Columns = 12; paramValueBox.MaxLength = 20; rev = GenerateIntREV(paramValueBox); validatorHolder.Controls.Add(rev); rfv = GenerateRFV(paramValueBox); validatorHolder.Controls.Add(rfv); if (parameter.Description != string.Empty) { paramTypeLabel.Text = " " + parameter.Description; } break; case 5: // varchar paramValueLabel.Visible = false; paramValueBox.Visible = true; paramCheckBox.Visible = false; paramList.Visible = false; timeHolder.Visible = false; paramValueBox.Columns = 20; paramValueBox.MaxLength = 50; rfv = GenerateRFV(paramValueBox); validatorHolder.Controls.Add(rfv); if (parameter.Description != string.Empty) { paramTypeLabel.Text = " " + parameter.Description; } break; case 6: // Station paramValueLabel.Visible = false; paramValueBox.Visible = false; paramCheckBox.Visible = false; paramList.Visible = true; timeHolder.Visible = false; StationTableAdapter adapter = new StationTableAdapter(); DollarSaverDB.StationDataTable stations = adapter.GetStations(); paramList.DataSource = stations; paramList.DataTextField = "Name"; paramList.DataValueField = "StationId"; paramList.DataBind(); break; case 7: // Char paramValueLabel.Visible = false; paramValueBox.Visible = true; paramCheckBox.Visible = false; paramList.Visible = false; timeHolder.Visible = false; paramValueBox.Columns = 20; paramValueBox.MaxLength = 50; rfv = GenerateRFV(paramValueBox); validatorHolder.Controls.Add(rfv); if (parameter.Description != string.Empty) { paramTypeLabel.Text = " " + parameter.Description; } break; case 8: // Date and Time paramValueLabel.Visible = false; paramValueBox.Visible = true; paramCheckBox.Visible = false; paramList.Visible = false; timeHolder.Visible = true; for (int i = 0; i < 24; i++) { hourList.Items.Add(i.ToString("00")); } for (int i = 0; i < 60; i++) { minuteList.Items.Add(i.ToString("00")); } paramValueBox.Columns = 10; paramValueBox.MaxLength = 12; /* * if(reportToRun.TypeId == 2) { // MAC reports only * if(parameter.Name.ToUpper().Trim() == "START DATE") { * DateTime startDate = DateTime.Now; * while(startDate.DayOfWeek != DayOfWeek.Saturday) { * startDate = startDate.AddDays(-1); * } * paramValueBox.Text = startDate.ToString("MM/dd/yyyy"); * } else if (parameter.Name.ToUpper().Trim() == "END DATE") { * paramValueBox.Text = DateTime.Now.ToString("MM/dd/yyyy"); * } * } * */ Image calendarImage2 = (Image)e.Item.FindControl("calendarImage"); calendarImage2.Visible = true; calendarImage2.ImageUrl = "~/images/calendar_button.gif"; calendarImage2.Attributes["OnClick"] = "showCalendarControl('" + paramValueBox.ClientID + "');"; //paramValueBox.Attributes["onblur"] = "hideCalendarControl();"; rev = GenerateDateREV(paramValueBox); validatorHolder.Controls.Add(rev); rfv = GenerateRFV(paramValueBox); validatorHolder.Controls.Add(rfv); paramTypeLabel.Text = " (MM/DD/YYYY HH:MM)"; break; default: throw new Exception("ERROR: Unknown Parameter Type"); } } }
private void runButton_Click(object sender, EventArgs e) { id = Convert.ToInt32(idHidden.Value); ReportTableAdapter reportAdapter = new ReportTableAdapter(); reportToRun = reportAdapter.GetReport(id)[0]; ArrayList sqlParameters = new ArrayList(); ParameterTableAdapter parameterAdapter = new ParameterTableAdapter(); ArrayList parameters = new ArrayList(); foreach (RepeaterItem item in parameterRepeater.Items) { if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem) { HiddenField paramIdHidden = (HiddenField)item.FindControl("paramIdHidden"); DollarSaverDB.ParameterRow parameter = parameterAdapter.GetParameter(Convert.ToInt32(paramIdHidden.Value))[0]; SqlParameter sqlParameter = new SqlParameter(); sqlParameter.ParameterName = parameter.VariableName; sqlParameter.SqlDbType = (SqlDbType)parameter.ParameterType.SqlDbTypeId; TextBox paramValueBox = (TextBox)item.FindControl("paramValueBox"); switch (parameter.ParameterTypeId) { case 1: CheckBox paramCheckBox = (CheckBox)item.FindControl("paramCheckBox"); sqlParameter.Value = paramCheckBox.Checked; break; case 2: DateTime paramDate; try { paramDate = Convert.ToDateTime(paramValueBox.Text.Trim()); } catch { ErrorMessage = parameter.Name + " is not in the proper format"; return; } sqlParameter.Value = paramDate; break; case 3: case 4: case 5: case 7: sqlParameter.Value = paramValueBox.Text.Trim(); break; case 8: DropDownList hourList = (DropDownList)item.FindControl("hourList"); DropDownList minuteList = (DropDownList)item.FindControl("minuteList"); string paramValue = paramValueBox.Text.Trim() + " " + hourList.SelectedValue + ":" + minuteList.SelectedValue + ":00"; DateTime paramDateTime; try { paramDateTime = Convert.ToDateTime(paramValue); } catch { ErrorMessage = parameter.Name + " is not in the proper format"; return; } sqlParameter.Value = paramDateTime; break; case 6: HiddenField paramValueHidden = (HiddenField)item.FindControl("paramValueHidden"); sqlParameter.Value = Convert.ToInt32(paramValueHidden.Value); break; /* case 9 : * case 10 : * */ default: throw new Exception("ERROR: Unknown Parameter Type"); } sqlParameters.Add(sqlParameter); parameter.RunParameter = sqlParameter; parameters.Add(parameter); } } reportHeaderLabel.Text = reportHeaderLabel.Text; parameterHolder.Visible = false; toggleHolder.Visible = false; resultHolder.Visible = true; runDateHolder.Visible = true; bool textFile = false; bool excelFile = false; if (excelRadioButton.Checked) { excelFile = true; } else if (delimitedRadioButton.Checked) { textFile = true; } else { linkHolder.Visible = true; } DataTable results = reportToRun.Execute(sqlParameters); if (!textFile) { String header = string.Empty; foreach (DataColumn column in results.Columns) { header += "<th class=\"reportHeader\" align=\"center\">" + column.ColumnName + "</th>"; } StringBuilder val = new StringBuilder(""); string rowClass; int count = 0; if (results.Rows.Count > 0) { String cellValue = String.Empty; String align = String.Empty; Type intType = typeof(System.Int32); Type smallIntType = typeof(System.Int16); Type decimalType = typeof(System.Decimal); foreach (DataRow row in results.Rows) { count++; if (count % 2 == 0) { rowClass = "reportRow"; } else { rowClass = "reportAlternatingRow"; } val.Append("<tr class=\"" + rowClass + "\";>"); for (int i = 0; i < row.ItemArray.Length; i++) { cellValue = row.ItemArray[i].ToString().Trim(); align = "left"; if (row.ItemArray[i].GetType() == intType || row.ItemArray[i].GetType() == decimalType || row.ItemArray[i].GetType() == smallIntType) { align = "center"; } if (!excelRadioButton.Checked && cellValue == String.Empty) { cellValue = " "; } val.Append("<td align=\"").Append(align).Append("\">").Append(cellValue).Append("</td>"); } val.Append("</tr>\n"); } } else { val.Append("<tr><td colspan=").Append(results.Columns.Count.ToString()).Append(" style=\" padding: 15px;\">No Data Found</td></tr>\n"); } if (excelFile) { String resultTable = "<table border=\"1\" cellpadding=\"5\" cellspacing=\"0\">\n" + "<thead><tr>" + header + "</tr></thead>\n" + "<tbody>" + val + "</tbody>\n" + "</table>\n"; Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment; filename=" + reportToRun.Name + ".xls"); Response.Buffer = true; Response.ContentType = "application/vnd.ms-excel"; Response.Write(resultTable); Response.Flush(); Response.Close(); } else { String resultTable = "<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" class=\"admin_form\" width=\"100%\">\n" + "<thead><tr>" + header + "</tr></thead>\n" + "<tbody>" + val + "</tbody>\n" + "</table>\n"; DateTime runTime = DateTime.Now; runParamRepeater.DataSource = parameters; runParamRepeater.DataBind(); Page.EnableViewState = false; runDateLabel.Text = runTime.ToShortDateString() + " " + runTime.ToShortTimeString(); resultsLabel.Text = resultTable; } } else { StringBuilder val = new StringBuilder(""); char delimiter = ' '; switch (delimiterList.SelectedValue) { case "pipe": delimiter = '|'; break; case "comma": delimiter = ','; break; case "colon": delimiter = ':'; break; case "semicolon": delimiter = ';'; break; case "space": delimiter = ' '; break; case "tab": delimiter = '\t'; break; default: throw new Exception("ERROR: Unknown Delimter Type"); } if (results.Rows.Count > 0) { String cellValue = String.Empty; foreach (DataRow row in results.Rows) { for (int i = 0; i < row.ItemArray.Length; i++) { cellValue = row.ItemArray[i].ToString().Trim(); val.Append(cellValue).Append(delimiter); } val.Append(Environment.NewLine); } } else { // No data found } string fileName = DateTime.Now.ToString("yyyy-MM-dd") + " " + reportToRun.Name + ".txt"; Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName); Response.Buffer = true; Response.ContentType = "text/plain"; Response.Write(val.ToString()); Response.Flush(); Response.Close(); } }