Я работаю над приложением истории etime, данные приводятся в sql из приложения adp.Использование sqlcommand для заполнения reportviewer, но только выбранные поля заполняются из одной таблицы, как добавить другую таблицу?
Требование
Пользователь хочет видеть старую информацию времени листа для конкретного сотрудника
Процесс
Пользователь нажимает на 1) paygroup из ниспадающего 2) сотрудники drop down получают группировку с помощью paygroup 3) Выбирает (From Date) и (To Date) 4) Щелчки на отчете о запуске и данные заполняются
Заполнение работы выпадающего безупречно, это когда я нажимаю отчет о запуске, только столбцы paygroup, empid и date заполняются, но столбцы DeptNo, WorkCenterID, JobCode, InPunch, OutPunch не заполняются. О, и заполняемые столбцы находятся в таблице EtimePunchDetail, другие - в EtimeEmployees, как я могу использовать EtimeEmployees, а поля в моей SqlCommand - это мой вопрос? Эти поля не являются параметрами, так что тот, где я запутался, потому что другие параметры ...
Код я использовал, чтобы заполнить столбцы
private void button1_Click(object sender, EventArgs e) //run report button loads all the pieces onto the report.
{
if (FromDate.Value > ToDate.Value)
{
MessageBox.Show("From Date Must be Less Than To Date");
}
else
//fileexport
using (MSSQL.SqlConnection connection = new MSSQL.SqlConnection(constr))
{
timepunchnew = new EtimeHistoryDataSet();
connection.Open();
MSSQL.SqlCommand command = new MSSQL.SqlCommand("SELECT * From EtimePunchDetail WHERE (EmpID = @empid) And (Paygroup = @paygroup) And (TransDate >= @fromdate) And (TransDate <= @todate)", connection);
{
MSSQL.SqlParameter parmEmp = new MSSQL.SqlParameter();
parmEmp.ParameterName = "@empid";
parmEmp.Value = Employee.SelectedValue;
command.Parameters.Add(parmEmp);
MSSQL.SqlParameter paramPayGroup = new MSSQL.SqlParameter();
paramPayGroup.ParameterName = "@paygroup";
paramPayGroup.Value = Paygroup.SelectedValue;
command.Parameters.Add(paramPayGroup);
MSSQL.SqlParameter paramFromDate = new MSSQL.SqlParameter();
paramFromDate.ParameterName = "@fromdate";
paramFromDate.DbType = DbType.DateTime;
paramFromDate.SqlDbType = SqlDbType.DateTime;
paramFromDate.Value = FromDate.Value.ToString("");
command.Parameters.Add(paramFromDate);
MSSQL.SqlParameter paramToDate = new MSSQL.SqlParameter();
paramToDate.ParameterName = "@todate";
paramToDate.DbType = DbType.DateTime;
paramToDate.SqlDbType = SqlDbType.DateTime;
paramToDate.Value = ToDate.Value;;
command.Parameters.Add(paramToDate);
MSSQL.SqlDataAdapter EtimePunchDetailTableAdapter = new System.Data.SqlClient.SqlDataAdapter();
EtimePunchDetailTableAdapter.SelectCommand = command;
EtimePunchDetailTableAdapter.Fill(timepunchnew, "Etime");
string exeFolder = Path.GetDirectoryName(Application.ExecutablePath);
string reportPath = exeFolder + @"\Report1.rdlc";
reportViewer1.LocalReport.DisplayName = MakeValidFileName(Employee.Text) + "-" + FromDate.Value.ToString("MM") + "!" + (FromDate.Value.ToString("dd")) + "!" + FromDate.Value.ToString("yyyy") + "-" + ToDate.Value.ToString("MM") + "!" + ToDate.Value.ToString("dd") + "!" + ToDate.Value.ToString("yyyy");
reportViewer1.LocalReport.ReportPath = reportPath;
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("EtimeHistoryDataSet_Etime", timepunchnew.Etime));
reportViewer1.RefreshReport();
reportViewer1.Refresh();
reportViewer1.Visible = true;
}
}
}