public DOTNSProgramGridSCR Copy()
        {
            var pm = new DOTNSProgramGridSCR();

            try
            {
                FieldInfo[] infos = typeof(DOTNSProgramGridSCR).GetFields();
                foreach (FieldInfo info in infos)
                {
                    if (info.FieldType == typeof(DataSet))
                    {
                        continue;
                    }
                    else
                    {
                        info.SetValue(pm, info.GetValue(this));
                    }
                }
            }
            catch(Exception ex)
            {
                PLException.AddException(ex);
            }
            return pm;
        }
        public bool Compare(DOTNSProgramGridSCR doTNSProgramGridSCR)
        {
            try
            {
                FieldInfo[] infos = typeof(DOTNSProgramGridSCR).GetFields();
                foreach (FieldInfo info in infos)
                {
                    if (info.FieldType == typeof(DataSet))
                        continue;
                    if (info.Name == "NGUOI_CAP_NHAT" || info.Name == "NGAY_CAP_NHAT") continue;

                    object a = info.GetValue(this);
                    object b = info.GetValue(doTNSProgramGridSCR);
                    if ((a == null && b != null) || a != null && b == null)
                        return false;
                    if (a == null && b == null) continue;

                    if (a.Equals(b) == false)
                        return false;

                }
                return true;
            }
            catch (Exception ex)
            {
                PLException.AddException(ex);
            }
            return false;
        }
        public void UpdateControls()
        {
            if (_isAdd == false)
                _doRootTNSProgramGridSCR = _doTnsProgramGridScr.Copy();

            GhiChu.Text = _doTnsProgramGridScr.GHI_CHU;
            TenFile.Text = _doTnsProgramGridScr.FILE_NAME;
            TenNguon.Text = _doTnsProgramGridScr.NAME;
            HelpDate.SetDateEdit(TuNgay, _doTnsProgramGridScr.TU_NGAY);
            HelpDate.SetDateEdit(DenNgay, _doTnsProgramGridScr.DEN_NGAY);

            UpdateIsAdd(_isAdd);
        }
        private TNSSaveResult SaveData(bool isCopy)
        {
            var r = GetValidData();
            if (r == TNSSaveResult.VALID_DATA)
            {
                if (DATNSProgramGridSCR.I.Update(_doTnsProgramGridScr))
                {
                    _doRootTNSProgramGridSCR = _doTnsProgramGridScr.Copy();
                    if (isCopy == false)
                    {
                        UpdateIsAdd(false);
                    }
                    _doTnsProgramGridScr.DSDetail = null;

                    return TNSSaveResult.SAVE_SUCCESS;
                }
                return TNSSaveResult.SAVE_FAIL;
            }
            return r;
        }
 private bool InitDOData(object id)
 {
     if (id is DOTNSProgramGridSCR)
     {
         _doTnsProgramGridScr = id as DOTNSProgramGridSCR;
         return true;
     }
     if (!((id is Int64) || (id is string))) return false;
     _doTnsProgramGridScr = DATNSProgramGridSCR.I.Load(HelpNumber.ParseInt64(id));
     if (id.ToString() == "-2")
     {
     }
     return true;
 }