public override string Import(List<IRowStream> Rows)
        {
            List<DAO.UDT_CounselUserDefDataDef> InsertData = new List<DAO.UDT_CounselUserDefDataDef>();
            List<DAO.UDT_CounselUserDefDataDef> UpdateData = new List<DAO.UDT_CounselUserDefDataDef>();
            List<DAO.UDT_CounselUserDefDataDef> HasData = new List<DAO.UDT_CounselUserDefDataDef>();

            List<string> StudentIDList = new List<string>();
            // 取得學生狀態對應
            foreach (IRowStream ir in Rows)
            {
                if (ir.Contains("學號") && ir.Contains("狀態"))
                    StudentIDList.Add(Utility.GetStudentID(ir.GetValue("學號"), ir.GetValue("狀態")).ToString());
            }
            // 已有資料
            HasData = _UDTTransfer.GetCounselUserDefineDataByStudentIDList(StudentIDList);

            foreach (IRowStream ir in Rows)
            {
                DAO.UDT_CounselUserDefDataDef CounselUserDefineData = null;
                int sid = 0;
                if (ir.Contains("學號") && ir.Contains("狀態"))
                {
                    string key = ir.GetValue("學號") + "_";
                    if (Global._StudentStatusDBDict.ContainsKey(ir.GetValue("狀態")))
                        sid = Utility.GetStudentID(ir.GetValue("學號"), ir.GetValue("狀態"));

                        foreach (DAO.UDT_CounselUserDefDataDef rec in HasData.Where(x => x.StudentID == sid))
                        {
                            if (rec.FieldName == ir.GetValue("欄位名稱"))
                                        CounselUserDefineData = rec;
                        }

                    if (CounselUserDefineData == null)
                        CounselUserDefineData = new DAO.UDT_CounselUserDefDataDef();

                    // 學生編號
                    CounselUserDefineData.StudentID = sid;
                    // 欄位名稱
                    CounselUserDefineData.FieldName = ir.GetValue("欄位名稱");
                    // 值
                    CounselUserDefineData.Value = ir.GetValue("值");

                    if (string.IsNullOrEmpty(CounselUserDefineData.UID))
                        InsertData.Add(CounselUserDefineData);
                    else
                        UpdateData.Add(CounselUserDefineData);
                }
            }
            if (InsertData.Count > 0)
                _UDTTransfer.InsertCounselUsereDefinfDataList(InsertData);

            if (UpdateData.Count > 0)
                _UDTTransfer.UpdateCounselUserDefineDataList(UpdateData);

            return "";
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 將讀取資料填入DataGridView
        /// </summary>
        private void DataBindToDataGridView()
        {
            try
            {
                //_LogTransfer.Clear();
                this.Loading = true;
                ChangeManager.SuspendListen();
                dgv.Rows.Clear();
                _FieldNameList.Clear();
                int rowIdx = 0;
                foreach (DAO.UDT_CounselUserDefDataDef udd in _UserDefineData)
                {
                    rowIdx = dgv.Rows.Add();
                    dgv.Rows[rowIdx].Tag = udd;
                    dgv.Rows[rowIdx].Cells[FieldName.Index].Value = udd.FieldName;
                    dgv.Rows[rowIdx].Cells[Value.Index].Value     = udd.Value;
                    _FieldNameList.Add(udd.FieldName);
                    //_LogTransfer.SetLogValue(udd.FieldName, udd.Value);
                }

                // 放入樣板有內容沒有的
                foreach (string str in _UseDefineDataType.Keys)
                {
                    if (!_FieldNameList.Contains(str))
                    {
                        DAO.UDT_CounselUserDefDataDef cudd = new DAO.UDT_CounselUserDefDataDef();
                        cudd.FieldName       = str;
                        cudd.Value           = "";
                        cudd.StudentID       = int.Parse(PrimaryKey);
                        rowIdx               = dgv.Rows.Add();
                        dgv.Rows[rowIdx].Tag = cudd;
                        dgv.Rows[rowIdx].Cells[FieldName.Index].Value = cudd.FieldName;
                        dgv.Rows[rowIdx].Cells[Value.Index].Value     = cudd.Value;
                    }
                }
            }
            catch (Exception ex)
            {
                FISCA.Presentation.Controls.MsgBox.Show(ex.Message);
            }

            this.CancelButtonVisible = false;
            this.SaveButtonVisible   = false;
            this.ContentValidated    = true;

            ChangeManager.Reset();
            ChangeManager.ResumeListen();
            this.Loading = false;
        }
        public override string Import(List <IRowStream> Rows)
        {
            List <DAO.UDT_CounselUserDefDataDef> InsertData = new List <DAO.UDT_CounselUserDefDataDef>();
            List <DAO.UDT_CounselUserDefDataDef> UpdateData = new List <DAO.UDT_CounselUserDefDataDef>();
            List <DAO.UDT_CounselUserDefDataDef> HasData    = new List <DAO.UDT_CounselUserDefDataDef>();

            List <string> StudentIDList = new List <string>();

            // 取得學生狀態對應
            foreach (IRowStream ir in Rows)
            {
                if (ir.Contains("學號") && ir.Contains("狀態"))
                {
                    StudentIDList.Add(Utility.GetStudentID(ir.GetValue("學號"), ir.GetValue("狀態")).ToString());
                }
            }
            // 已有資料
            HasData = _UDTTransfer.GetCounselUserDefineDataByStudentIDList(StudentIDList);


            foreach (IRowStream ir in Rows)
            {
                DAO.UDT_CounselUserDefDataDef CounselUserDefineData = null;
                int sid = 0;
                if (ir.Contains("學號") && ir.Contains("狀態"))
                {
                    string key = ir.GetValue("學號") + "_";
                    if (Global._StudentStatusDBDict.ContainsKey(ir.GetValue("狀態")))
                    {
                        sid = Utility.GetStudentID(ir.GetValue("學號"), ir.GetValue("狀態"));
                    }

                    foreach (DAO.UDT_CounselUserDefDataDef rec in HasData.Where(x => x.StudentID == sid))
                    {
                        if (rec.FieldName == ir.GetValue("欄位名稱"))
                        {
                            CounselUserDefineData = rec;
                        }
                    }

                    if (CounselUserDefineData == null)
                    {
                        CounselUserDefineData = new DAO.UDT_CounselUserDefDataDef();
                    }

                    // 學生編號
                    CounselUserDefineData.StudentID = sid;
                    // 欄位名稱
                    CounselUserDefineData.FieldName = ir.GetValue("欄位名稱");
                    // 值
                    CounselUserDefineData.Value = ir.GetValue("值");


                    if (string.IsNullOrEmpty(CounselUserDefineData.UID))
                    {
                        InsertData.Add(CounselUserDefineData);
                    }
                    else
                    {
                        UpdateData.Add(CounselUserDefineData);
                    }
                }
            }
            if (InsertData.Count > 0)
            {
                _UDTTransfer.InsertCounselUsereDefinfDataList(InsertData);
            }

            if (UpdateData.Count > 0)
            {
                _UDTTransfer.UpdateCounselUserDefineDataList(UpdateData);
            }

            return("");
        }
        /// <summary>
        /// 將讀取資料填入DataGridView
        /// </summary>
        private void DataBindToDataGridView()
        {
            try
            {
                //_LogTransfer.Clear();
                this.Loading = true;
                ChangeManager.SuspendListen();
                dgv.Rows.Clear();
                _FieldNameList.Clear();
                int rowIdx=0;
                foreach(DAO.UDT_CounselUserDefDataDef udd in _UserDefineData)
                {
                    rowIdx = dgv.Rows.Add();
                    dgv.Rows[rowIdx].Tag = udd;
                    dgv.Rows[rowIdx].Cells[FieldName.Index].Value = udd.FieldName;
                    dgv.Rows[rowIdx].Cells[Value.Index].Value = udd.Value;
                    _FieldNameList.Add(udd.FieldName);
                    //_LogTransfer.SetLogValue(udd.FieldName, udd.Value);
                }

                // 放入樣板有內容沒有的
                foreach(string str in _UseDefineDataType.Keys )
                    if (!_FieldNameList.Contains(str))
                    {
                        DAO.UDT_CounselUserDefDataDef cudd = new DAO.UDT_CounselUserDefDataDef();
                        cudd.FieldName = str;
                        cudd.Value = "";
                        cudd.StudentID = int.Parse(PrimaryKey);
                        rowIdx = dgv.Rows.Add();
                        dgv.Rows[rowIdx].Tag = cudd;
                        dgv.Rows[rowIdx].Cells[FieldName.Index].Value = cudd.FieldName;
                        dgv.Rows[rowIdx].Cells[Value.Index].Value = cudd.Value;
                    }
            }
            catch (Exception ex)
            {
                FISCA.Presentation.Controls.MsgBox.Show(ex.Message);
            }

            this.CancelButtonVisible = false;
            this.SaveButtonVisible = false;
            this.ContentValidated = true;

            ChangeManager.Reset();
            ChangeManager.ResumeListen();
            this.Loading = false;
        }
        /// <summary>
        /// 按下儲存
        /// </summary>
        /// <param name="e"></param>
        protected override void OnSaveButtonClick(EventArgs e)
        {
            bool canSave = true;
            dgv.EndEdit();
            // 檢查資料
            foreach (DataGridViewRow drv in dgv.Rows)
            {
                foreach (DataGridViewCell cell in drv.Cells)
                    if (cell.ErrorText != "")
                        canSave = false;
            }

            if (canSave)
            {
                try
                {
                    _InsertDataList.Clear();
                    _UpdateDataList.Clear();
                    _DeleteDataList.Clear();
                    _HasUIDList.Clear();

                    // 儲存資料到 UDT
                    foreach (DataGridViewRow row in dgv.Rows)
                    {
                        if (row.IsNewRow)
                            continue;

                        DAO.UDT_CounselUserDefDataDef udd = new DAO.UDT_CounselUserDefDataDef();

                        // 資料轉型
                        if (row.Tag != null)
                            udd = (DAO.UDT_CounselUserDefDataDef)row.Tag;

                        udd.StudentID = int.Parse(PrimaryKey);
                        if (row.Cells[FieldName.Index].Value != null)
                            udd.FieldName = row.Cells[FieldName.Index].Value.ToString();

                        if (row.Cells[Value.Index].Value != null)
                            udd.Value = row.Cells[Value.Index].Value.ToString();

                        // 新增或更新
                        if (string.IsNullOrEmpty(udd.UID))
                            _InsertDataList.Add(udd);
                        else
                        {
                            _UpdateDataList.Add(udd);
                            _HasUIDList.Add(udd.UID);
                        }
                        //_LogTransfer.SetLogValue(udd.FieldName, udd.Value);
                    }

                    // 新增或更新至 UDT
                    if (_InsertDataList.Count > 0)
                        _UDTTransfer.InsertCounselUsereDefinfDataList(_InsertDataList);

                    if (_UpdateDataList.Count > 0)
                        _UDTTransfer.UpdateCounselUserDefineDataList(_UpdateDataList);

                    // 刪除舊資料 UDT
                    foreach (DAO.UDT_CounselUserDefDataDef udd in _UserDefineData)
                        if (!_HasUIDList.Contains(udd.UID))
                            _DeleteDataList.Add(udd);

                    if (_DeleteDataList.Count > 0)
                        _UDTTransfer.DeleteCounselUserDefineDataList(_DeleteDataList);

                    this.CancelButtonVisible = false;
                    this.SaveButtonVisible = false;
                }
                catch (Exception ex)
                {
                    FISCA.Presentation.Controls.MsgBox.Show("儲存失敗!");
                }
            }
            else
            {
                this.CancelButtonVisible = true;
                this.SaveButtonVisible = false;

            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 按下儲存
        /// </summary>
        /// <param name="e"></param>
        protected override void OnSaveButtonClick(EventArgs e)
        {
            bool canSave = true;

            dgv.EndEdit();
            // 檢查資料
            foreach (DataGridViewRow drv in dgv.Rows)
            {
                foreach (DataGridViewCell cell in drv.Cells)
                {
                    if (cell.ErrorText != "")
                    {
                        canSave = false;
                    }
                }
            }


            if (canSave)
            {
                try
                {
                    _InsertDataList.Clear();
                    _UpdateDataList.Clear();
                    _DeleteDataList.Clear();
                    _HasUIDList.Clear();

                    // 儲存資料到 UDT
                    foreach (DataGridViewRow row in dgv.Rows)
                    {
                        if (row.IsNewRow)
                        {
                            continue;
                        }

                        DAO.UDT_CounselUserDefDataDef udd = new DAO.UDT_CounselUserDefDataDef();

                        // 資料轉型
                        if (row.Tag != null)
                        {
                            udd = (DAO.UDT_CounselUserDefDataDef)row.Tag;
                        }

                        udd.StudentID = int.Parse(PrimaryKey);
                        if (row.Cells[FieldName.Index].Value != null)
                        {
                            udd.FieldName = row.Cells[FieldName.Index].Value.ToString();
                        }

                        if (row.Cells[Value.Index].Value != null)
                        {
                            udd.Value = row.Cells[Value.Index].Value.ToString();
                        }

                        // 新增或更新
                        if (string.IsNullOrEmpty(udd.UID))
                        {
                            _InsertDataList.Add(udd);
                        }
                        else
                        {
                            _UpdateDataList.Add(udd);
                            _HasUIDList.Add(udd.UID);
                        }
                        //_LogTransfer.SetLogValue(udd.FieldName, udd.Value);
                    }



                    // 新增或更新至 UDT
                    if (_InsertDataList.Count > 0)
                    {
                        _UDTTransfer.InsertCounselUsereDefinfDataList(_InsertDataList);
                    }

                    if (_UpdateDataList.Count > 0)
                    {
                        _UDTTransfer.UpdateCounselUserDefineDataList(_UpdateDataList);
                    }



                    // 刪除舊資料 UDT
                    foreach (DAO.UDT_CounselUserDefDataDef udd in _UserDefineData)
                    {
                        if (!_HasUIDList.Contains(udd.UID))
                        {
                            _DeleteDataList.Add(udd);
                        }
                    }

                    if (_DeleteDataList.Count > 0)
                    {
                        _UDTTransfer.DeleteCounselUserDefineDataList(_DeleteDataList);
                    }

                    this.CancelButtonVisible = false;
                    this.SaveButtonVisible   = false;
                }
                catch (Exception ex)
                {
                    FISCA.Presentation.Controls.MsgBox.Show("儲存失敗!");
                }
            }
            else
            {
                this.CancelButtonVisible = true;
                this.SaveButtonVisible   = false;
            }
        }