/// <summary> /// Заполняет набор данных информацией о текущих зарегистрированных сотрудниках /// </summary> /// <param name="susp">true - выбираются только "подозрительные" сотрудники (у которых временной диапазон приход/уход слишком большой); false - выбираются все текуще зарегистированные сотрудники </param> private dsCurrent fillToEdit(bool susp) { dsCurrent sqlDS = null; string sql = ""; try { sql = sql + "SELECT ec.MID,em.MCODE,ISNULL(em.MSURNAME, '')+' '+ISNULL(em.MNAME, '')+' '+ISNULL(em.MSECNAME, '') AS FIO, em.MDEPARTMENT as MDEPARTMENT,em.MGROUP as MGROUP, ec.INDT as INOUTDATETIME, "; sql = sql + "CAST(DATEDIFF(mi, ec.INDT, GETDATE()) / 60 AS varchar) + ' ч. ' + CAST(DATEDIFF(mi, ec.INDT, GETDATE()) % 60 AS varchar)+' мин.' AS DUR "; sql = sql + "FROM EmplCurrent AS ec INNER JOIN EmplMain AS em ON ec.MID = em.MID WHERE (ec.ID IN (SELECT MAX(ID) AS MAXID FROM EmplCurrent AS ec1 GROUP BY MID)) AND (ec.OUTDT IS NULL) "; if (susp) { sql = sql + " AND (DATEDIFF(mi, ec.INDT,GETDATE()) > 720) "; //в минутах подозрительное время на работе, сейчас 12 часов } sql = sql + " ORDER BY em.MSURNAME"; OleDbDataAdapter sqlDA = new OleDbDataAdapter(sql, conStr); sqlDA.SelectCommand.CommandTimeout = 120; sqlDS = new dsCurrent(); sqlDA.Fill(sqlDS, "EmplEdit"); } catch (Exception e) { MessageBox.Show(e.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } return(sqlDS); }
public override DataSet Clone() { dsCurrent cln = ((dsCurrent)(base.Clone())); cln.InitVars(); return(cln); }
/// <summary> /// Иницирует к открытию отчёт о текуще зарегистрированных сотрудниках /// </summary> private void btnPrint_Click(object sender, System.EventArgs e) { dsCurrent ds = null; try { crCurrent cr = new crCurrent(); ds = fillCurrent(cbSusp.Checked); cr.SetDataSource(ds); fmRep codeRep = new fmRep(cr); codeRep.ShowDialog(); } catch (Exception ex) { MessageBox.Show("Не удалось создать отчёт! " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } }
private void fmEmplEdit_Load(object sender, System.EventArgs e) { DataSet sqlDS = new DataSet(); string sql = ""; try { OleDbDataAdapter sqlDA = new OleDbDataAdapter(sql, conStr); sqlDA.SelectCommand.CommandTimeout = 120; sqlDS = new dsCurrent(); sql = "SELECT ISNULL(MSURNAME, '')+' '+ISNULL(MNAME, '')+' '+ISNULL(MSECNAME, ''), " + "MDEPARTMENT AS FIO, MGROUP FROM EmplMain WHERE MCODE = '" + emplMcode + "'"; sqlDA.SelectCommand.CommandText = sql; sqlDA.Fill(sqlDS); tbFIO.Text = (string)sqlDS.Tables[2].Rows[0][0]; tbDivision.Text = sqlDS.Tables[2].Rows[0][1] as string; tbGroup.Text = Convert.ToString(sqlDS.Tables[2].Rows[0][2]); // sql="SELECT TOP 1 MPHOTO FROM EmplMain where MCODE = '" + emplMcode + "'"; // sqlDA.SelectCommand.CommandText = sql; // sqlDA.Fill(sqlDS); // byte [] photo=(Convert.IsDBNull(sqlDS.Tables[2].Rows[0][0]))?new byte[0]:(byte [])sqlDS.Tables[2].Rows[0][0]; //// if(photo.Length!=0) //// { //// MemoryStream ms=new MemoryStream(photo); //// pbPhoto.Image=new Bitmap(ms); //// lbPhoto.Hide(); //// } //// else //// { //// pbPhoto.Image=null; //// lbPhoto.Show(); //// } sql = "SELECT ISNULL(em.MSURNAME, '')+' '+ISNULL(em.MNAME, '')+' '+ISNULL(em.MSECNAME, '') AS FIO, em.MDEPARTMENT as MDEPARTMENT,em.MGROUP as MGROUP, ec.INDT as INOUTDATETIME, "; sql = sql + "CAST(DATEDIFF(mi, ec.INDT, GETDATE()) / 60 AS varchar) + ' ч. ' + CAST(DATEDIFF(mi, ec.INDT, GETDATE()) % 60 AS varchar)+' мин.' AS DUR "; sql = sql + "FROM EmplCurrent AS ec INNER JOIN EmplMain AS em ON ec.MID = em.MID WHERE em.MCODE = '" + emplMcode + "'"; sql = sql + " ORDER BY em.MSURNAME"; sqlDA.SelectCommand.CommandText = sql; sqlDA.Fill(sqlDS, "EmplEdit"); } catch (Exception e1) { MessageBox.Show(e1.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } if (sqlDS == null) { MessageBox.Show("Не удалось загрузить данные о выбранном сотруднике!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); Close(); } else { try { if (dgCurrent.TableStyles["EmplEdit"] == null) { DataGridTableStyle ts = new DataGridTableStyle(); ts.MappingName = "EmplEdit"; ts.AllowSorting = true; ts.AlternatingBackColor = Color.Honeydew; //фио DataGridTextBoxColumn tb3 = new DataGridTextBoxColumn(); tb3.Width = 150; tb3.MappingName = Convert.ToString(sqlDS.Tables["EmplEdit"].Columns[0].ColumnName); tb3.HeaderText = "ФИО"; tb3.ReadOnly = true; //отдел DataGridTextBoxColumn tb4 = new DataGridTextBoxColumn(); tb4.Width = 150; tb4.MappingName = Convert.ToString(sqlDS.Tables["EmplEdit"].Columns[1].ColumnName); tb4.HeaderText = "Отдел"; tb4.ReadOnly = true; //группа DataGridTextBoxColumn tb5 = new DataGridTextBoxColumn(); tb5.Width = 100; tb5.MappingName = Convert.ToString(sqlDS.Tables["EmplEdit"].Columns[2].ColumnName); tb5.HeaderText = "Группа"; tb5.ReadOnly = true; //время прихода DataGridTextBoxColumn tb6 = new DataGridTextBoxColumn(); tb6.Width = 120; tb6.MappingName = Convert.ToString(sqlDS.Tables["EmplEdit"].Columns[3].ColumnName); tb6.HeaderText = "Приход"; //времени на рабочем месте DataGridTextBoxColumn tb7 = new DataGridTextBoxColumn(); tb7.Width = 100; tb7.MappingName = Convert.ToString(sqlDS.Tables["EmplEdit"].Columns[4].ColumnName); tb7.HeaderText = "Отработано"; tb7.ReadOnly = true; ts.GridColumnStyles.Add(tb3); ts.GridColumnStyles.Add(tb4); ts.GridColumnStyles.Add(tb5); ts.GridColumnStyles.Add(tb6); ts.GridColumnStyles.Add(tb7); dgCurrent.TableStyles.Add(ts); dgCurrent.ReadOnly = false; } dgCurrent.SetDataBinding(sqlDS, "EmplEdit"); } catch (Exception e2) { MessageBox.Show("Ошибка при инициализации таблицы. " + e2.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } }
/// <summary> /// Связывает элемент управления "таблица" на форме с набором данных о текуще зарегистрированных сотрудниках /// </summary> /// <param name="susp"></param> private void setGridToEdit(bool susp) { dsCurrent dsCur = fillToEdit(susp); if (dsCur == null) { MessageBox.Show("Не удалось загрузить данные о присутствующих на данный момент сотрудниках!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); Close(); } else { try { if (dgCurrent.TableStyles["EmplEdit"] == null) { DataGridTableStyle ts = new DataGridTableStyle(); ts.MappingName = "EmplEdit"; ts.AllowSorting = true; ts.AlternatingBackColor = Color.Honeydew; DataGridTextBoxColumn tb1 = new DataGridTextBoxColumn(); //идентификатор tb1.MappingName = Convert.ToString(dsCur.Tables["EmplEdit"].Columns[0].ColumnName); tb1.Width = 0; //штрих-код DataGridTextBoxColumn tb2 = new DataGridTextBoxColumn(); tb2.Width = 120; tb2.MappingName = Convert.ToString(dsCur.Tables["EmplEdit"].Columns[1].ColumnName); tb2.HeaderText = "Штрих-код"; //фио DataGridTextBoxColumn tb3 = new DataGridTextBoxColumn(); tb3.Width = 200; tb3.MappingName = Convert.ToString(dsCur.Tables["EmplEdit"].Columns[2].ColumnName); tb3.HeaderText = "ФИО"; //отдел DataGridTextBoxColumn tb4 = new DataGridTextBoxColumn(); tb4.Width = 200; tb4.MappingName = Convert.ToString(dsCur.Tables["EmplEdit"].Columns[3].ColumnName); tb4.HeaderText = "Отдел"; //группа DataGridTextBoxColumn tb5 = new DataGridTextBoxColumn(); tb5.Width = 150; tb5.MappingName = Convert.ToString(dsCur.Tables["EmplEdit"].Columns[4].ColumnName); tb5.HeaderText = "Группа"; //время прихода DataGridTextBoxColumn tb6 = new DataGridTextBoxColumn(); tb6.Width = 120; tb6.MappingName = Convert.ToString(dsCur.Tables["EmplEdit"].Columns[5].ColumnName); tb6.HeaderText = "Приход"; //времени на рабочем месте DataGridTextBoxColumn tb7 = new DataGridTextBoxColumn(); tb7.Width = 100; tb7.MappingName = Convert.ToString(dsCur.Tables["EmplEdit"].Columns[6].ColumnName); tb7.HeaderText = "Отработано"; ts.GridColumnStyles.Add(tb1); ts.GridColumnStyles.Add(tb2); ts.GridColumnStyles.Add(tb3); ts.GridColumnStyles.Add(tb4); ts.GridColumnStyles.Add(tb5); ts.GridColumnStyles.Add(tb6); ts.GridColumnStyles.Add(tb7); dgCurrent.TableStyles.Add(ts); dgCurrent.ReadOnly = true; } dgCurrent.SetDataBinding(dsCur, "EmplEdit"); } catch (Exception e) { MessageBox.Show("Ошбика при инициализации таблицы. " + e.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } }