public static DataTable GetGridViewContent(ListItemCollection selectedFinalStatuses, ListItemCollection selectedCurrentStatuses, ListItemCollection selectedIDs, ListItemCollection selectedContractTypes, ListItemCollection selectedDivisions, ListItemCollection selectedProjectControllers, ListItemCollection selectedContractReps, ListItemCollection selectedPricers, ListItemCollection selectedSubKReps, ListItemCollection selectedOpCenters, DateTime SubmittedDateStart, DateTime SubmittedDateEnd, DateTime RFQExpectedDateStart, DateTime RFQExpectedDateEnd, DateTime RFQDueDateStart, DateTime RFQDueDateEnd, DateTime TargetDateStart, DateTime TargetDateEnd, DateTime DateDueToCustomerStart, DateTime DateDueToCustomerEnd, DateTime FinalStatusDateStart, DateTime FinalStatusDateEnd, float ValueMinimum, float ValueMaximum) { SqlConnection conn = Connection(); StringBuilder query = new StringBuilder(); Boolean has_criteria = false; //Final Status Selections if (selectedFinalStatuses.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.FINAL_STATUS_ID in ("); foreach (ListItem li in selectedFinalStatuses) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //Current Status Selections if (selectedCurrentStatuses.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.CURRENT_STATUS_ID in ("); foreach (ListItem li in selectedCurrentStatuses) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //ID Selections if (selectedIDs.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.MAIN_ID in ("); foreach (ListItem li in selectedIDs) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //Contract Type Selections if (selectedContractTypes.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.CONTRACT_TYPE_ID in ("); foreach (ListItem li in selectedContractTypes) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //Divsion Selections if (selectedDivisions.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.DIVISION in ("); foreach (ListItem li in selectedDivisions) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //Project Controller Selections if (selectedProjectControllers.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.PROJECT_CONTROLLER_ID in ("); foreach (ListItem li in selectedProjectControllers) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //Contract Rep Selections if (selectedContractReps.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.CONTRACT_REP_ID in ("); foreach (ListItem li in selectedContractReps) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //Pricer Selections if (selectedPricers.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.PRICER_ID in ("); foreach (ListItem li in selectedPricers) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //SubK Rep Selections if (selectedSubKReps.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.SUBCONTRACT_REP_ID in ("); foreach (ListItem li in selectedSubKReps) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //Op Center Selections if (selectedOpCenters.Count > 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.OP_CENTER_ID in ("); foreach (ListItem li in selectedOpCenters) { query.Append(li.Value.ToString()); query.Append(","); } query[query.Length - 1] = ')'; } //For whatever reason, .NET is putting 1/1/0001 as the default value //for these datetime textboxes when they are empty. //Submitted Date Criteria if (SubmittedDateStart.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.SUBMITTED_DATE >= "); query.Append(SubmittedDateStart.ToString()); } if (SubmittedDateEnd.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.SUBMITTED_DATE <= "); query.Append(SubmittedDateEnd.ToString()); } //RFQ Expected Date Criteria if (RFQExpectedDateStart.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.RFQ_EXPECTED_DATE >= "); query.Append(RFQExpectedDateStart.ToString()); } if (RFQExpectedDateEnd.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.RFQ_EXPECTED_DATE <= "); query.Append(RFQExpectedDateEnd.ToString()); } //RFQ Due Date Criteria if (RFQDueDateStart.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.RFQ_DUE_DATE >= "); query.Append(RFQDueDateStart.ToString()); } if (RFQDueDateEnd.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.RFQ_DUE_DATE <= "); query.Append(RFQDueDateEnd.ToString()); } //Target Date Criteria if (TargetDateStart.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.TARGET_DATE >= "); query.Append(TargetDateStart.ToString()); } if (TargetDateEnd.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.TARGET_DATE <= "); query.Append(TargetDateEnd.ToString()); } //Date Due To Customer Criteria if (DateDueToCustomerStart.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.DATE_DUE_TO_CUSTOMER >= "); query.Append(DateDueToCustomerStart.ToString()); } if (DateDueToCustomerEnd.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.DATE_DUE_TO_CUSTOMER <= "); query.Append(DateDueToCustomerEnd.ToString()); } //Final Status Date Criteria if (FinalStatusDateStart.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.FINAL_STATUS_DATE >= "); query.Append(FinalStatusDateStart.ToString()); } if (FinalStatusDateEnd.Year.ToString() != "1") { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.FINAL_STATUS_DATE <= "); query.Append(FinalStatusDateEnd.ToString()); } if (ValueMaximum != 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.TASK_VALUE <= "); query.Append(ValueMaximum.ToString()); } if (ValueMinimum != 0) { if (!has_criteria) { query.Append(" where "); has_criteria = true; } else query.Append(" and "); query.Append("m.TASK_VALUE >= "); query.Append(ValueMinimum.ToString()); } StringBuilder query2 = new StringBuilder(); query2.Append(@"DECLARE @IDs TABLE (ID int) insert into @IDs select m.MAIN_ID from MAIN m"); query2.Append(query.ToString()); query2.Append("\n"); query2.Append(@"select m.MAIN_ID, null as REVISION_ID, m.CUSTOMER_NAME, m.B_AND_P, m.RPF_RFQ, m.DIVISION, m.TITLE, m.END_USER, m.PROGRAM_MANAGER, m.CONTRACT_REP_ID, m.PRICER_ID, m.SUBCONTRACT_REP_ID, m.PROJECT_CONTROLLER_ID, m.TASK_VALUE, m.RFQ_EXPECTED_DATE, m.RFQ_DUE_DATE, m.TARGET_DATE, m.DATE_DUE_TO_CUSTOMER, m.SUBMITTED_DATE, m.FINAL_STATUS_DATE, m.CONTRACT_TYPE_ID, ct.CONTRACT_TYPE_DESCRIPTION, fs.FINAL_STATUS_DESCRIPTION, cs.CURRENT_STATUS_DESCRIPTION, m.FINAL_STATUS_ID, m.CURRENT_STATUS_ID, (select e.emp_fname + ' ' + e.emp_lname from Common.dbo.Employee e where e.emp_no = m.CONTRACT_REP_ID) as CONTRACT_REP_NAME, (select e.emp_fname + ' ' + e.emp_lname from Common.dbo.Employee e where e.emp_no = m.PRICER_ID) as PRICER_NAME, (select e.emp_fname + ' ' + e.emp_lname from Common.dbo.Employee e where e.emp_no = m.SUBCONTRACT_REP_ID) as SUBCONTRACT_REP_NAME, (select e.emp_fname + ' ' + e.emp_lname from Common.dbo.Employee e where e.emp_no = m.PROJECT_CONTROLLER_ID) as PROJECT_CONTROLLER_NAME, DATE_TIMESTAMP, null as REVISION_USER, OP_CENTER_ID from MAIN m left outer join CONTRACT_TYPE ct on ct.CONTRACT_TYPE_ID = m.CONTRACT_TYPE_ID left outer join FINAL_STATUS fs on fs.FINAL_STATUS_ID = m.FINAL_STATUS_ID left outer join CURRENT_STATUS cs on cs.CURRENT_STATUS_ID = m.CURRENT_STATUS_ID"); query2.Append(query.ToString()); query2.Append("\n"); query2.Append(@"union all select r.PARENT_ID as MAIN_ID, r.REVISION_ID, r.CUSTOMER_NAME, r.B_AND_P, r.RPF_RFQ, r.DIVISION, r.TITLE, r.END_USER, r.PROGRAM_MANAGER, r.CONTRACT_REP_ID, r.PRICER_ID, r.SUBCONTRACT_REP_ID, r.PROJECT_CONTROLLER_ID, r.TASK_VALUE, r.RFQ_EXPECTED_DATE, r.RFQ_DUE_DATE, r.TARGET_DATE, r.DATE_DUE_TO_CUSTOMER, r.SUBMITTED_DATE, r.FINAL_STATUS_DATE, r.CONTRACT_TYPE_ID, ct.CONTRACT_TYPE_DESCRIPTION, fs.FINAL_STATUS_DESCRIPTION, cs.CURRENT_STATUS_DESCRIPTION, r.FINAL_STATUS_ID, r.CURRENT_STATUS_ID, (select e.emp_fname + ' ' + e.emp_lname from Common.dbo.Employee e where e.emp_no = r.CONTRACT_REP_ID) as CONTRACT_REP_NAME, (select e.emp_fname + ' ' + e.emp_lname from Common.dbo.Employee e where e.emp_no = r.PRICER_ID) as PRICER_NAME, (select e.emp_fname + ' ' + e.emp_lname from Common.dbo.Employee e where e.emp_no = r.SUBCONTRACT_REP_ID) as SUBCONTRACT_REP_NAME, (select e.emp_fname + ' ' + e.emp_lname from Common.dbo.Employee e where e.emp_no = r.PROJECT_CONTROLLER_ID) as PROJECT_CONTROLLER_NAME, r.DATE_TIMESTAMP, (select e.emp_fname + ' ' + e.emp_lname from Common.dbo.Employee e where e.emp_no = r.REVISION_USER) as REVISION_USER, r.OP_CENTER_ID from REVISIONS r left outer join CONTRACT_TYPE ct on ct.CONTRACT_TYPE_ID = r.CONTRACT_TYPE_ID left outer join FINAL_STATUS fs on fs.FINAL_STATUS_ID = r.FINAL_STATUS_ID left outer join CURRENT_STATUS cs on cs.CURRENT_STATUS_ID = r.CURRENT_STATUS_ID where r.PARENT_ID in (select * FROM @IDs) order by MAIN_ID desc, DATE_TIMESTAMP desc"); SqlCommand cmd = new SqlCommand(query2.ToString(), conn); DataTable dt; SqlDataAdapter sda; try { // Try to open the connection. conn.Open(); dt = new DataTable(); sda = new SqlDataAdapter(cmd); sda.Fill(dt); return dt; } catch (Exception err) { string s = err.ToString(); return null; // Handle an error by displaying the information. } finally { // SQLDataReader requires a live data connection so make // sure we close it. // (Even if the connection wasn't opened successfully, // calling Close() won't cause an error.) conn.Close(); } return null; }