private void btnSave_Click(object sender, EventArgs e) { if (!Row.IsLockedNull() && Row.Locked) { MessageBox.Show("此單己核定,無法存檔!"); return; } var details = Row.GetShiftDetailRows(); int i = 0; int count = m_HRList.Count; foreach (var detail in details) { if (i >= count) { detail.Delete(); } else { tempHR hr = m_HRList[i]; PanelData2ShiftDetail(hr, detail); } i++; } for (; i < count; i++) { var detail = m_DataSet.ShiftDetail.NewShiftDetailRow(); detail.ID = Guid.NewGuid(); detail.SetParentRow(Row); tempHR hr = m_HRList[i]; PanelData2ShiftDetail(hr, detail); m_DataSet.ShiftDetail.Rows.Add(detail); } try { var table = m_DataSet.ShiftDetail.GetChanges() as MyShiftDetailTable; var shiftDetailAdapter = new VoucherExpense.DamaiDataSetTableAdapters.ShiftDetailTableAdapter(); shiftDetailAdapter.Update(table); m_DataSet.ShiftDetail.Merge(table); m_DataSet.ShiftDetail.AcceptChanges(); } catch (Exception ex) { MessageBox.Show("更新ShiftDetail資料出錯:" + ex.Message); } }
private void FormShift_Load(object sender, EventArgs e) { SetupBindingSource(); var shiftDetailAdapter = new VoucherExpense.DamaiDataSetTableAdapters.ShiftDetailTableAdapter(); var hRAdapter = new VoucherExpense.DamaiDataSetTableAdapters.HRTableAdapter(); var operatorAdapter = new VoucherExpense.DamaiDataSetTableAdapters.OperatorTableAdapter(); operatorAdapter.Connection.ConnectionString = DB.SqlConnectString(MyFunction.HardwareCfg); try { ShiftAdapter.Fill(m_DataSet.ShiftTable); shiftDetailAdapter.Fill(m_DataSet.ShiftDetail); hRAdapter.Fill(m_DataSet.HR); operatorAdapter.Fill(m_DataSet.Operator); } catch (Exception ex) { MessageBox.Show("Ex:" + ex.Message); } m_MonthList.Add(new CMonthForCombo(0, " ")); for (int mon = 1; mon <= 12; mon++) { m_MonthList.Add(new CMonthForCombo(mon, mon.ToString() + "月")); } cMonthForComboBindingSource.DataSource = m_MonthList; m_CodeList.Add(new CCodeForCombo(' ')); for (char c = 'A'; c <= 'Z'; c++) { m_CodeList.Add(new CCodeForCombo(c)); } cCodeForComboBindingSource.DataSource = m_CodeList; for (int h = 0; h < 16; h++) { m_HourList.Add(new CHourForCombo(h)); } cHourForComboBindingSource.DataSource = m_HourList; LoadCfg(); cShiftCodeBindingSource.DataSource = m_ShiftCodeList; columnLocked.ReadOnly = !MyFunction.LockHR; }