protected void btn_AddOK_Click(object sender, EventArgs e) { #region try { ResetDisplayModeForProcessing(); ArrayList ParameterList1 = new ArrayList();//20091113 ParameterList1.Clear(); ParameterList1.Add(txt_DIS_NO_OLD.Text.Trim()); ParameterList1.Add(SLP_SKU1.Text.Trim()); ParameterList1.Add(SLP_ItemPeriod1.Text.Trim()); ParameterList1.Add(SLP_SKU2.Text.Trim()); ParameterList1.Add(SLP_ItemPeriod2.Text.Trim()); if (CheckDisCopyCanAdd(ParameterList1)) { string strUser = Session["UID"].ToString(); string strCode = string.Format("AF_{0}_{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), strUser); Int32 iChanType = GetChanType(); int iResult = 0; bool bResult = false; DataTable dtDetail = dtDetailData; DataTable dtDetailDeleted = dtForDetailDeleted; DataRow dr = null; CheckBox chk = null; DateTime processtime = DateTime.Now; ALOModel.MaintainDisCopy BCO = new ALOModel.MaintainDisCopy(ConnectionDB); ALOModel.QueryALOCommon BCO2 = new ALOModel.QueryALOCommon(ConnectionDB); ArrayList ParameterList = new ArrayList();//20091113 ArrayList ParameterList2 = new ArrayList();//20091113 if (CurrentPageMode == PageCurrentMode.Insert) { #region //if (CheckItemIsAvailable(SLP_SKU1.Text.Trim(), SLP_ItemPeriod1.Text.Trim())) //{ #region Master ParameterList.Clear(); ParameterList.Add(strCode); ParameterList.Add(processtime); ParameterList.Add(strUser); ParameterList.Add(processtime); ParameterList.Add(strUser); ParameterList.Add(txt_DIS_NO_OLD.Text.Trim()); ParameterList.Add(SLP_SKU1.Text.Trim()); ParameterList.Add(SLP_ItemPeriod1.Text.Trim()); ParameterList.Add(SLP_SLPDate1.Text.Trim()); ParameterList.Add(null); ParameterList.Add(SLP_SKU2.Text.Trim()); ParameterList.Add(SLP_ItemPeriod2.Text.Trim()); ParameterList.Add(ddl_OpType.SelectedValue.ToString()); ParameterList.Add(iChanType); ParameterList.Add(((CheckBox)SLP_Boolean1.FindControl("C1")).Checked ? 1 : 0); ParameterList.Add(PageTimeStamp.Value); #endregion #region Detail dtDetail.Clear(); ParameterList2.Clear(); ParameterList2.Add(txt_DIS_NO_OLD.Text.Trim()); dtDisChanByDisNo = BCO2.QueryDisChanByDisNo(ParameterList2); if (iChanType == 0)//全通路 { if (dtDisChanByDisNo != null) { for (Int32 i = 0; i <= dtDisChanByDisNo.Rows.Count - 1; i++) { dr = dtDetail.NewRow(); dr["CHAN_NO"] = dtDisChanByDisNo.Rows[i]["CHAN_NO"].ToString(); dr["USERID"] = strUser; dtDetail.Rows.Add(dr); } } } else if (iChanType == 1)//個別通路 { for (Int32 i = 0; i <= gv_DisChan.Rows.Count - 1; i++) { chk = ((CheckBox)gv_DisChan.Rows[i].FindControl("chk_Single")); if (chk.Checked) { dr = dtDetail.NewRow(); dr["CHAN_NO"] = chk.Text; dr["USERID"] = strUser; dtDetail.Rows.Add(dr); } } } #endregion iResult = BCO.CreateMasterAndDetail(ParameterList, dtDetail, null); if (iResult != 0) { ResultMsgLabel.Text = "新增成功"; } else { ResultMsgLabel.Text = "新增失敗"; } //} //else //{ // throw new Exception("輸入之原商品/品號、原期別與資料庫不相符!"); //} #endregion } else if (CurrentPageMode == PageCurrentMode.Edit) { #region #region Master DataTable dtTemp = dtForMasterAndDetail; string strPID = dtTemp.Rows[iEditingRowIndex]["ID"].ToString().Trim(); ParameterList.Clear(); //old params ParameterList.Add(strPID); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["CODE"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["CREATEDATE"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["CREATEUID"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["UPDATEDATE"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["UPDATEUID"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["STATUS"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["SRC_DIS_NO"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["SRC_ITEM"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["SRC_PERIOD"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["ST_ACCEPT_DATE"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["NEW_DIS_NO"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["NEW_ITEM"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["NEW_PERIOD"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["DIS_OP_TYPE"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["CHAN_TYPE"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["IS_COPY_PO"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["COPY_RESULT"]); ParameterList.Add(dtTemp.Rows[iEditingRowIndex]["OP_CODE"]); //new params ParameterList.Add(iChanType); ParameterList.Add(((CheckBox)SLP_Boolean1.FindControl("C1")).Checked ? 1 : 0); ParameterList.Add(processtime); ParameterList.Add(strUser); #endregion #region Detail dtDetail.Clear(); dtDetailDeleted.Clear(); ParameterList2.Clear(); ParameterList2.Add(txt_DIS_NO_OLD.Text.Trim()); dtDisChanByDisNo = BCO2.QueryDisChanByDisNo(ParameterList2); if (iChanType == 0)//全通路 { #region if (dtDisChanByDisNo != null) { for (Int32 i = 0; i <= dtDisChanByDisNo.Rows.Count - 1; i++) { dr = dtDetail.NewRow(); dr["PID"] = strPID; dr["CHAN_NO"] = dtDisChanByDisNo.Rows[i]["CHAN_NO"].ToString(); dtDetail.Rows.Add(dr); } } dtDetailDeleted = null; #endregion } else if (iChanType == 1)//個別通路 { #region if (iChanTypeOriginal == 0)//原來是全通路 { for (Int32 i = 0; i <= gv_DisChan.Rows.Count - 1; i++) { chk = ((CheckBox)gv_DisChan.Rows[i].FindControl("chk_Single")); if (chk.Checked) { dr = dtDetail.NewRow(); dr["PID"] = strPID; dr["CHAN_NO"] = chk.Text; dtDetail.Rows.Add(dr); } } dtDetailDeleted = null; } else//原來是個別通路 { #region 比對舊資料是否有刪除 for (Int32 i = 0; i <= gv_DisChan.Rows.Count - 1; i++) { chk = ((CheckBox)gv_DisChan.Rows[i].FindControl("chk_Single")); for (Int32 k = 0; k <= dtCurrentDisChanData.Rows.Count - 1; k++) { if (dtCurrentDisChanData.Rows[k]["CHAN_NO"].ToString() == chk.Text) { if (!chk.Checked)//跟原來資料的比較未勾選的則進行刪除 { dr = dtDetailDeleted.NewRow(); dr["ID"] = dtCurrentDisChanData.Rows[k]["ID"]; dr["PID"] = dtCurrentDisChanData.Rows[k]["PID"]; dr["CREATEDATE"] = dtCurrentDisChanData.Rows[k]["CREATEDATE"]; dr["CREATEUID"] = dtCurrentDisChanData.Rows[k]["CREATEUID"]; dr["UPDATEDATE"] = dtCurrentDisChanData.Rows[k]["UPDATEDATE"]; dr["UPDATEUID"] = dtCurrentDisChanData.Rows[k]["UPDATEUID"]; dr["CHAN_NO"] = dtCurrentDisChanData.Rows[k]["CHAN_NO"]; dr["UIDFORLOG"] = Session["UID"].ToString(); dtDetailDeleted.Rows.Add(dr); } //else //{ // dr = dtDetail.NewRow();//只要有被勾選就列為新增,重複時會在PKG處理 // dr["PID"] = strPID; // dr["CHAN_NO"] = chk.Text; // dtDetail.Rows.Add(dr); //} } } if (chk.Checked)//只要有被勾選就列為新增,重複時會在PKG處理 { dr = dtDetail.NewRow(); dr["PID"] = strPID; dr["CHAN_NO"] = chk.Text; dtDetail.Rows.Add(dr); } } #endregion } #endregion } #endregion bResult = BCO.UpdateMasterAndDetail(ParameterList, dtDetail, strUser, dtDetailDeleted, null); if (bResult) { ResultMsgLabel.Text = "更新成功"; } else { ResultMsgLabel.Text = "更新失敗"; } #endregion } QueryData();//取出儲存後資料 CurrentPageMode = PageCurrentMode.Readonly; } } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; } finally { hiddenRowCounts.Value = gv_Temp.Rows.Count.ToString(); } #endregion }
protected void gv_Temp_RowEditing(object sender, GridViewEditEventArgs e) { #region try { CurrentPageMode = PageCurrentMode.Edit; GridView gv = sender as GridView; DataTable dtTemp = dtForMasterAndDetail; iEditingRowIndex = e.NewEditIndex; ALOModel.MaintainDisCopy BCO = new ALOModel.MaintainDisCopy(ConnectionDB); txt_DIS_NO_OLD.Text = dtTemp.Rows[e.NewEditIndex]["SRC_DIS_NO"].ToString().Trim(); SLP_SKU1.Text = dtTemp.Rows[e.NewEditIndex]["SRC_ITEM"].ToString().Trim(); SLP_ItemPeriod1.Text = dtTemp.Rows[e.NewEditIndex]["SRC_PERIOD"].ToString().Trim(); SLP_SKU2.Text = dtTemp.Rows[e.NewEditIndex]["NEW_ITEM"].ToString().Trim(); SLP_ItemPeriod2.Text = dtTemp.Rows[e.NewEditIndex]["NEW_PERIOD"].ToString().Trim(); ddl_OpType.SelectedValue = dtTemp.Rows[e.NewEditIndex]["DIS_OP_TYPE"].ToString().Trim(); Label lbl_ID = (Label)gv.Rows[e.NewEditIndex].FindControl("lbl_ID"); Int32 iChanNo; Int32.TryParse(dtTemp.Rows[e.NewEditIndex]["CHAN_TYPE"].ToString().Trim(), out iChanNo); //20090731 added 重新取得該配本序號下之通路 ArrayList ParameterList2 = new ArrayList();//20091113 ParameterList2.Clear(); ParameterList2.Add(txt_DIS_NO_OLD.Text.Trim()); ALOModel.QueryALOCommon BCO2 = new ALOModel.QueryALOCommon(ConnectionDB); dtDisChanByDisNo = BCO2.QueryDisChanByDisNo(ParameterList2); if (iChanNo == 0)//全通路 { rbtn_ChanAll.Checked = true; rbtn_ChanSingle.Checked = false; btn_ChanSetting.Enabled = false; } else if (iChanNo == 1)//個別通路 { rbtn_ChanAll.Checked = false; rbtn_ChanSingle.Checked = true; btn_ChanSetting.Enabled = true; ArrayList ParameterList1 = new ArrayList();//20091113 ParameterList1.Clear(); ParameterList1.Add(lbl_ID.Text); //取得目前設定之通路 dtCurrentDisChanData = BCO.QueryChanByPID(ParameterList1); gv_DisChan.DataSource = dtDisChanByDisNo; } gv_DisChan.DataBind(); iChanTypeOriginal = iChanNo; if (dtTemp.Rows[e.NewEditIndex]["IS_COPY_PO"].ToString().Trim() == "0") ((CheckBox)SLP_Boolean1.FindControl("C1")).Checked = false; else ((CheckBox)SLP_Boolean1.FindControl("C1")).Checked = true; } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; } #endregion }
/// <summary> /// �ھڰt���Ǹ��B�~���B��O�ot��q��T /// </summary> /// <param name="strDisNo"></param> /// <param name="strItem"></param> /// <param name="strPeriod"></param> private void GetDisChan(string strDisNo, string strItem, string strPeriod) { #region DataTable dt = new DataTable(); try { if (strDisNo != "" && strItem != "" && strPeriod != "") { ArrayList ParameterList = new ArrayList();//20091113 ParameterList.Clear(); ParameterList.Add(strDisNo);//DIS_NO ParameterList.Add(strItem);//ITEM ParameterList.Add(strPeriod);//PERIOD ALOModel.QueryALOCommon BCO = new ALOModel.QueryALOCommon(ConnectionDB); dt = BCO.QueryDisChanByDisNo(ParameterList); } } catch (Exception ex) { throw ex; } dtDisChanByDisNo = dt.Copy(); dt.Dispose(); #endregion }