示例#1
0
 void FillWorksheetNumber()
 {
     if (bsWorksheetPart.DataSource != null)
     {
         DatabaseSet.工作單品號DataTable table = bsWorksheetPart.DataSource as DatabaseSet.工作單品號DataTable;
         foreach (DatabaseSet.工作單品號Row row in table)
         {
             row.單號 = tbxWorksheetNumber.Text;
         }
     }
 }
示例#2
0
        void CheckField()
        {
            DatabaseSet.工作單品號DataTable table = bsWorksheetPart.DataSource as DatabaseSet.工作單品號DataTable;
            foreach (DataRow row in table.Rows)
            {
                if (row.RowState == DataRowState.Deleted)
                {
                    continue;
                }

                if (string.IsNullOrEmpty(row["客戶"] as string))
                {
                    throw new SWLHMSException("品號 " + row["品號"] + " 客戶欄不得為空");
                }
            }
        }
示例#3
0
        public void EditWorksheet(string WorksheetNumber)
        {
            if ((_worksheetTable = 工作單TableAdapter.Instance.GetBy單號(WorksheetNumber)).Count > 0)
            {
                bsWorksheet.DataSource = _worksheetTable[0];

                tbxWorksheetNumber.ReadOnly = true;
                tbxWorksheetNumber.DataBindings.Add("Text", bsWorksheet, "單號", true, DataSourceUpdateMode.Never);
                //tbxCustomerName.DataBindings.Add("Text", bsWorksheet, "客戶名稱", true, DataSourceUpdateMode.OnPropertyChanged);
                dtpBegin.DataBindings.Add("Value", bsWorksheet, "單據日期", true, DataSourceUpdateMode.OnPropertyChanged);
                dtpEnd.DataBindings.Add("Value", bsWorksheet, "實際完成日", true, DataSourceUpdateMode.Never, DateTime.Today);
                //dtpCustomerNeed.DataBindings.Add("Value", bsWorksheet, "客戶需貨日", true, DataSourceUpdateMode.OnPropertyChanged);
                //dtpEstimate.DataBindings.Add("Value", bsWorksheet, "預計完成日", true, DataSourceUpdateMode.OnPropertyChanged);

                if (_worksheetTable[0]["實際完成日"] != DBNull.Value)
                {
                    ckbEnd.Checked = true;
                }

                _worksheetPartTable        = 工作單品號TableAdapter.Instance.GetBy單號(_worksheetTable[0].單號);
                bsWorksheetPart.DataSource = _worksheetPartTable;

                //判斷目前工作單所屬產線
                if (_worksheetPartTable.Count > 0)
                {
                    DatabaseSet.產品品號DataTable tmpTable = 產品品號TableAdapter.Instance.GetBy品號(_worksheetPartTable[0].品號);
                    if (tmpTable.Count > 0)
                    {
                        _curWorkshhetLine = tmpTable[0].產線;
                    }
                    else
                    {
                        throw new SWLHMSException("找不到品號 " + _worksheetPartTable[0].品號 + " 的資料");
                    }
                }

                btnAddWorksheet.Visible = false;
            }
            else
            {
                throw new SWLHMSException("找不到單號 " + WorksheetNumber + " 的資料");
            }
        }
示例#4
0
        // Not used
        void SetFinishDate()
        {
            foreach (KeyValuePair <DataRow, DateTime> kv in _finishDateList)
            {
                string worksheetNumber = kv.Key["工作單號"].ToString();
                string partNumber      = kv.Key["品號"].ToString();
                int    wpid            = (int)kv.Key["工品編號"];

                if (工作單品號TableAdapter.Instance.SetFinishDate(kv.Value, worksheetNumber, wpid) == 0)
                {
                    throw new SWLHMSException("品號 '" + partNumber + "' 設定完成日期時發生錯誤");
                }

                // Check the finish date
                DatabaseSet.工作單品號DataTable table = 工作單品號TableAdapter.Instance.GetBy單號(worksheetNumber);
                bool     allFinished             = true;
                DateTime maxDate = DateTime.MinValue;
                foreach (DatabaseSet.工作單品號Row row in table)
                {
                    if (row["實際完成日"] == DBNull.Value)
                    {
                        allFinished = false;
                        break;
                    }
                    DateTime date = row.實際完成日;
                    if (date > maxDate)
                    {
                        maxDate = date;
                    }
                }
                if (allFinished)
                {
                    工作單TableAdapter.Instance.SetFinishDate(maxDate, worksheetNumber);
                }
            }
        }
示例#5
0
 public virtual DatabaseSet.工作單品號DataTable GetBy單號(string 單號) {
     this.Adapter.SelectCommand = this.CommandCollection[1];
     if ((單號 == null)) {
         throw new global::System.ArgumentNullException("單號");
     }
     else {
         this.Adapter.SelectCommand.Parameters[0].Value = ((string)(單號));
     }
     DatabaseSet.工作單品號DataTable dataTable = new DatabaseSet.工作單品號DataTable();
     this.Adapter.Fill(dataTable);
     return dataTable;
 }
示例#6
0
 public virtual DatabaseSet.工作單品號DataTable GetData() {
     this.Adapter.SelectCommand = this.CommandCollection[0];
     DatabaseSet.工作單品號DataTable dataTable = new DatabaseSet.工作單品號DataTable();
     this.Adapter.Fill(dataTable);
     return dataTable;
 }
示例#7
0
        private void btnAddPart_Click(object sender, EventArgs e)
        {
            try
            {
                if (tbxWorksheetNumber.Text == string.Empty)
                {
                    throw new SWLHMSException("請先填寫工作單號");
                }

                if (dgvPart.CurrentRow != null && bsWorksheetPart.DataSource != null)
                {
                    string partNumber = tbxPartNumber.Text;
                    string line;
                    if (partNumber != dgvPart.CurrentRow.Cells["col品號2"].Value.ToString())
                    {
                        DatabaseSet.產品品號DataTable tmpTable = 產品品號TableAdapter.Instance.GetBy品號(partNumber);
                        if (tmpTable.Rows.Count == 0)
                        {
                            throw new SWLHMSException("品號 " + partNumber + " 不存在");
                        }
                        line = tmpTable[0].產線;
                    }
                    else
                    {
                        line = dgvPart.CurrentRow.Cells["col產線"].Value.ToString();
                    }

                    DatabaseSet.工作單品號DataTable table = bsWorksheetPart.DataSource as DatabaseSet.工作單品號DataTable;

                    //檢查產線一致性
                    if (table.Count > 0)
                    {
                        if (line != _curWorkshhetLine)
                        {
                            throw new SWLHMSException("目前工作單產線為 " + _curWorkshhetLine + ",品號 " + partNumber + " 產線為 " + line + ",請選擇同一產線品號");
                        }
                    }
                    else
                    {
                        _curWorkshhetLine = line;
                    }

                    DatabaseSet.工作單品號Row row = table.New工作單品號Row();

                    row.FillRow(tbxWorksheetNumber.Text, partNumber, 0);

                    // For tmp value
                    int    id  = 0;
                    object tmp = table.Compute("MAX(編號)", null);
                    if (tmp != DBNull.Value)
                    {
                        id = Convert.ToInt32(tmp);
                    }
                    row.編號 = id + 1;

                    table.Rows.Add(row);
                }
            }
            catch (ConstraintException)
            {
                MessageBox.Show("品號 " + dgvPart.CurrentRow.Cells["col品號2"].Value.ToString() + " 已經存在");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }