// // 這個檔案是 領據 資料表的資料存取類別 檔案一 // 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 // using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Data; using System.Data.Common; using System.Linq; using System.Transactions; using WebLib; using System.Data.SqlClient; namespace Education { /// /// 領據 資料存取類別 /// [DataObject] public partial class DAC_領據 : WebLib.DAC { private const string _tableName = "[領據]"; private const string _allFields = "[編號], [表單編號], [活動日期], [身分別], [講師_非講師編號], [領款人姓名], [身分證字號], [憑證類別], [計畫代號], [計畫名稱], [活動地點], [活動類別], [活動名稱事由], [製單人員], [付款方式], [作廢], [列印次數], [郵件已發送], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; private string _orderBy = "[編號]"; private string _select = "select " + _allFields; private string _insert = "[表單編號], [活動日期], [身分別], [講師_非講師編號], [領款人姓名], [身分證字號], [憑證類別], [計畫代號], [計畫名稱], [活動地點], [活動類別], [活動名稱事由], [製單人員], [付款方式], [作廢], [列印次數], [郵件已發送], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; private string _insertBak = "[編號], [表單編號], [活動日期], [身分別], [講師_非講師編號], [領款人姓名], [身分證字號], [憑證類別], [計畫代號], [計畫名稱], [活動地點], [活動類別], [活動名稱事由], [製單人員], [付款方式], [作廢], [列印次數], [郵件已發送], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR], [DB_TRMOD]"; private string _insertValue = "@表單編號, @活動日期, @身分別, @講師_非講師編號, @領款人姓名, @身分證字號, @憑證類別, @計畫代號, @計畫名稱, @活動地點, @活動類別, @活動名稱事由, @製單人員, @付款方式, @作廢, @列印次數, @郵件已發送, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; private string _insertBakValue = "@編號, @表單編號, @活動日期, @身分別, @講師_非講師編號, @領款人姓名, @身分證字號, @憑證類別, @計畫代號, @計畫名稱, @活動地點, @活動類別, @活動名稱事由, @製單人員, @付款方式, @作廢, @列印次數, @郵件已發送, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR, @DB_TRMOD"; private string _from = " from " + _tableName + " "; private string _where = " where 1=1 "; private string _order = " order by [編號] "; public DAC_領據() : base() { } public DAC_領據(DbConnection conn) : base(conn) { } [DataObjectMethod(DataObjectMethodType.Select)] public 領據List SelectAll(string orderBy = "") { 領據List result = new 領據List(); IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = _select + _from + _where + (orderBy == null || orderBy.Length == 0 ? _order : " order by " + orderBy); Select(cmdSelect, ref list); return result; } public int SelectAllCount() { DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = "select count(1) " + _from; int i; ExecuteScalar(cmdSelect, out i); return i; } [DataObjectMethod(DataObjectMethodType.Select)] public 領據List SelectAllPage(int startRowIndex, int maximumRows, string orderBy = "") { 領據List result = new 領據List(); IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = String.Format("select top {0} * from (", maximumRows) + "select " + _allFields + ", row_number() over (order by " + (orderBy == null || orderBy.Length == 0 ? _orderBy : orderBy) + ") as rowid " + _from + _where + ") as TMP1 where rowid > @startRowIndex "; AddParam(cmdSelect, "startRowIndex", startRowIndex); Select(cmdSelect, ref list); return result; } [DataObjectMethod(DataObjectMethodType.Select)] public 領據List SelectOne(int 編號) { 領據List result = new 領據List(); IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = _select + _from + _where + " and 編號 = @編號 " ; AddParam(cmdSelect, "編號", 編號); Select(cmdSelect, ref list); return result; } /// /// 給查詢畫面用的增加 Where 條件的方法 /// private void AddWhere(DbCommand cmdSelect, ref bool noInput, DateTime? 活動日期_1, DateTime? 活動日期_2, string 身分別, string 講師_非講師編號, string 憑證類別, string 計畫代號, string 計畫名稱, string 活動類別, string 付款方式, string 領款人姓名 = null) { if (活動日期_1.HasValue && 活動日期_2.HasValue) { noInput = false; cmdSelect.CommandText += " and 活動日期 >= @活動日期_1 and 活動日期 < @活動日期_2 "; AddParam(cmdSelect, "活動日期_1", 活動日期_1); AddParam(cmdSelect, "活動日期_2", 活動日期_2.Value.AddDays(1)); } else if (活動日期_1.HasValue && !活動日期_2.HasValue) { noInput = false; cmdSelect.CommandText += " and 活動日期 >= @活動日期_1 "; AddParam(cmdSelect, "活動日期_1", 活動日期_1); } else if (!活動日期_1.HasValue && 活動日期_2.HasValue) { noInput = false; cmdSelect.CommandText += " and 活動日期 < @活動日期_2 "; AddParam(cmdSelect, "活動日期_2", 活動日期_2.Value.AddDays(1)); } if (身分別 != null && 身分別.Length > 0) { noInput = false; cmdSelect.CommandText += " and 身分別 = @身分別 "; AddParam(cmdSelect, "身分別", 身分別); } if (講師_非講師編號 != null && 講師_非講師編號.Length > 0) { noInput = false; cmdSelect.CommandText += " and 講師_非講師編號 = @講師_非講師編號 "; AddParam(cmdSelect, "講師_非講師編號", 講師_非講師編號); } if (憑證類別 != null && 憑證類別.Length > 0) { noInput = false; cmdSelect.CommandText += " and 憑證類別 = @憑證類別 "; AddParam(cmdSelect, "憑證類別", 憑證類別); } if (計畫代號 != null && 計畫代號.Length > 0) { noInput = false; cmdSelect.CommandText += " and 計畫代號 = @計畫代號 "; AddParam(cmdSelect, "計畫代號", 計畫代號); } if (計畫名稱 != null && 計畫名稱.Length > 0) { noInput = false; cmdSelect.CommandText += " and 計畫名稱 like @計畫名稱 "; AddParam(cmdSelect, "計畫名稱", "%" + 計畫名稱 + "%"); } if (活動類別 != null && 活動類別.Length > 0) { noInput = false; cmdSelect.CommandText += " and 活動類別 = @活動類別 "; AddParam(cmdSelect, "活動類別", 活動類別); } if (付款方式 != null && 付款方式.Length > 0) { noInput = false; cmdSelect.CommandText += " and 付款方式 = @付款方式 "; AddParam(cmdSelect, "付款方式", 付款方式); } if (領款人姓名 != null && 領款人姓名.Length > 0) { noInput = false; cmdSelect.CommandText += " and 領款人姓名 like @領款人姓名 "; AddParam(cmdSelect, "領款人姓名", "%" + 領款人姓名 + "%"); } } /// /// 給查詢畫面用的 Select 方法 /// [DataObjectMethod(DataObjectMethodType.Select)] public 領據List Select(bool noInputReturnAll, DateTime? 活動日期_1, DateTime? 活動日期_2, string 身分別, string 講師_非講師編號, string 憑證類別, string 計畫代號, string 計畫名稱, string 活動類別, string 付款方式, string 領款人姓名 = null, string orderBy = "") { 領據List result = new 領據List(); bool noInput = true; IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = _select + _from + _where; AddWhere(cmdSelect, ref noInput, 活動日期_1, 活動日期_2, 身分別, 講師_非講師編號, 憑證類別, 計畫代號, 計畫名稱, 活動類別, 付款方式, 領款人姓名); cmdSelect.CommandText += (orderBy == null || orderBy.Length == 0 ? _order : " order by " + orderBy); if (!noInputReturnAll && noInput) return result; Select(cmdSelect, ref list); return result; } /// /// 給查詢畫面用的 SelectCount 方法 /// [DataObjectMethod(DataObjectMethodType.Select)] public int SelectCount(bool noInputReturnAll, DateTime? 活動日期_1, DateTime? 活動日期_2, string 身分別, string 講師_非講師編號, string 憑證類別, string 計畫代號, string 計畫名稱, string 活動類別, string 付款方式, string 領款人姓名 = null, string orderBy = "") { bool noInput = true; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = "select count(1) " + _from + _where; AddWhere(cmdSelect, ref noInput, 活動日期_1, 活動日期_2, 身分別, 講師_非講師編號, 憑證類別, 計畫代號, 計畫名稱, 活動類別, 付款方式, 領款人姓名); if (!noInputReturnAll && noInput) return 0; int i; ExecuteScalar(cmdSelect, out i); return i; } /// /// 給查詢畫面用的 SelectPage 方法 /// [DataObjectMethod(DataObjectMethodType.Select)] public 領據List SelectPage(bool noInputReturnAll, int startRowIndex, int maximumRows, DateTime? 活動日期_1, DateTime? 活動日期_2, string 身分別, string 講師_非講師編號, string 憑證類別, string 計畫代號, string 計畫名稱, string 活動類別, string 付款方式, string 領款人姓名 = null, string orderBy = "") { 領據List result = new 領據List(); bool noInput = true; IDataList list = result as IDataList; DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = String.Format("select top {0} * from (", maximumRows) + "select " + _allFields + ", row_number() over (order by " + (orderBy == null || orderBy.Length == 0 ? _orderBy : orderBy) + ") as rowid " + _from + _where; AddWhere(cmdSelect, ref noInput, 活動日期_1, 活動日期_2, 身分別, 講師_非講師編號, 憑證類別, 計畫代號, 計畫名稱, 活動類別, 付款方式, 領款人姓名); cmdSelect.CommandText += ") as TMP1 where rowid > @startRowIndex "; AddParam(cmdSelect, "startRowIndex", startRowIndex); if (!noInputReturnAll && noInput) return result; Select(cmdSelect, ref list); return result; } [DataObjectMethod(DataObjectMethodType.Insert)] public 領據Item InsertOne(領據Item value) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeInsertOne(value)) return value; DbCommand cmdInsert = NewCommand(); cmdInsert.CommandText = "insert into [領據]" + " (" + _insert + ")" + "values " + " (" + _insertValue + ");" + "select @@identity" ; AddParam(cmdInsert, "表單編號", value.表單編號); AddParam(cmdInsert, "活動日期", value.活動日期); AddParam(cmdInsert, "身分別", value.身分別); AddParam(cmdInsert, "講師_非講師編號", value.講師_非講師編號); AddParam(cmdInsert, "領款人姓名", value.領款人姓名); AddParam(cmdInsert, "身分證字號", value.身分證字號); AddParam(cmdInsert, "憑證類別", value.憑證類別); AddParam(cmdInsert, "計畫代號", value.計畫代號); AddParam(cmdInsert, "計畫名稱", value.計畫名稱); AddParam(cmdInsert, "活動地點", value.活動地點); AddParam(cmdInsert, "活動類別", value.活動類別); AddParam(cmdInsert, "活動名稱事由", value.活動名稱事由); AddParam(cmdInsert, "製單人員", value.製單人員); AddParam(cmdInsert, "付款方式", value.付款方式); AddParam(cmdInsert, "作廢", value.作廢); AddParam(cmdInsert, "列印次數", value.列印次數); AddParam(cmdInsert, "郵件已發送", value.郵件已發送); AddParam(cmdInsert, "DB_APPNO", 1); AddParam(cmdInsert, "DB_CRDAT", DateTime.Now); AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); int newId; ExecuteScalar(cmdInsert, out newId); value.編號 = newId; AfterInsertOne(value); ts.Complete(); } catch (Exception error) { bool handled; OnInsertOneError(error, out handled); if(!handled) throw error; } return value; } } [DataObjectMethod(DataObjectMethodType.Update)] public 領據Item UpdateOne(領據Item value) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeUpdateOne(value)) return value; 領據List oldValues = SelectOne(value.編號); if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) { throw new DBConcurrencyException("在更新 \"領據\" 資料表時發生並行例外:找不到要更新的資料列"); } else { DoBackup(oldValues[0], "UPDATE"); } DbCommand cmdUpdate = NewCommand(); cmdUpdate.CommandText = @"update [領據] set [表單編號] = @表單編號 , [活動日期] = @活動日期 , [身分別] = @身分別 , [講師_非講師編號] = @講師_非講師編號 , [領款人姓名] = @領款人姓名 , [身分證字號] = @身分證字號 , [憑證類別] = @憑證類別 , [計畫代號] = @計畫代號 , [計畫名稱] = @計畫名稱 , [活動地點] = @活動地點 , [活動類別] = @活動類別 , [活動名稱事由] = @活動名稱事由 , [製單人員] = @製單人員 , [付款方式] = @付款方式 , [作廢] = @作廢 , [列印次數] = @列印次數 , [郵件已發送] = @郵件已發送 , DB_APPNO = DB_APPNO + 1, DB_TRDAT = @DB_TRDAT, DB_TRUSR = @DB_TRUSR where 1=1 and [編號] = @original_編號 and DB_APPNO = @original_DB_APPNO "; AddParam(cmdUpdate, "表單編號", value.表單編號); AddParam(cmdUpdate, "活動日期", value.活動日期); AddParam(cmdUpdate, "身分別", value.身分別); AddParam(cmdUpdate, "講師_非講師編號", value.講師_非講師編號); AddParam(cmdUpdate, "領款人姓名", value.領款人姓名); AddParam(cmdUpdate, "身分證字號", value.身分證字號); AddParam(cmdUpdate, "憑證類別", value.憑證類別); AddParam(cmdUpdate, "計畫代號", value.計畫代號); AddParam(cmdUpdate, "計畫名稱", value.計畫名稱); AddParam(cmdUpdate, "活動地點", value.活動地點); AddParam(cmdUpdate, "活動類別", value.活動類別); AddParam(cmdUpdate, "活動名稱事由", value.活動名稱事由); AddParam(cmdUpdate, "製單人員", value.製單人員); AddParam(cmdUpdate, "付款方式", value.付款方式); AddParam(cmdUpdate, "作廢", value.作廢); AddParam(cmdUpdate, "列印次數", value.列印次數); AddParam(cmdUpdate, "郵件已發送", value.郵件已發送); AddParam(cmdUpdate, "DB_TRDAT", DateTime.Now); AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); AddParam(cmdUpdate, "original_編號", value.編號); AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); ExecuteNonQuery(cmdUpdate); AfterUpdateOne(value); ts.Complete(); return value; } catch (Exception error) { bool handled; OnUpdateOneError(error, out handled); if(!handled) throw error; return value; } } } [DataObjectMethod(DataObjectMethodType.Update)] public 領據Item UpdateOne(領據Item value, 領據Item original_value) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeUpdateOne(value, original_value)) return value; 領據List oldValues = SelectOne(original_value.編號); if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) { throw new DBConcurrencyException("在更新 \"領據\" 資料表時發生並行例外:找不到要更新的資料列"); } else { DoBackup(oldValues[0], "UPDATE"); } DbCommand cmdUpdate = NewCommand(); cmdUpdate.CommandText = @"update [領據] set [表單編號] = @表單編號 , [活動日期] = @活動日期 , [身分別] = @身分別 , [講師_非講師編號] = @講師_非講師編號 , [領款人姓名] = @領款人姓名 , [身分證字號] = @身分證字號 , [憑證類別] = @憑證類別 , [計畫代號] = @計畫代號 , [計畫名稱] = @計畫名稱 , [活動地點] = @活動地點 , [活動類別] = @活動類別 , [活動名稱事由] = @活動名稱事由 , [製單人員] = @製單人員 , [付款方式] = @付款方式 , [作廢] = @作廢 , [列印次數] = @列印次數 , [郵件已發送] = @郵件已發送 , DB_APPNO = DB_APPNO + 1, DB_TRDAT = @DB_TRDAT, DB_TRUSR = @DB_TRUSR where 1=1 and [編號] = @original_編號 and DB_APPNO = @original_DB_APPNO "; AddParam(cmdUpdate, "表單編號", value.表單編號); AddParam(cmdUpdate, "活動日期", value.活動日期); AddParam(cmdUpdate, "身分別", value.身分別); AddParam(cmdUpdate, "講師_非講師編號", value.講師_非講師編號); AddParam(cmdUpdate, "領款人姓名", value.領款人姓名); AddParam(cmdUpdate, "身分證字號", value.身分證字號); AddParam(cmdUpdate, "憑證類別", value.憑證類別); AddParam(cmdUpdate, "計畫代號", value.計畫代號); AddParam(cmdUpdate, "計畫名稱", value.計畫名稱); AddParam(cmdUpdate, "活動地點", value.活動地點); AddParam(cmdUpdate, "活動類別", value.活動類別); AddParam(cmdUpdate, "活動名稱事由", value.活動名稱事由); AddParam(cmdUpdate, "製單人員", value.製單人員); AddParam(cmdUpdate, "付款方式", value.付款方式); AddParam(cmdUpdate, "作廢", value.作廢); AddParam(cmdUpdate, "列印次數", value.列印次數); AddParam(cmdUpdate, "郵件已發送", value.郵件已發送); AddParam(cmdUpdate, "DB_TRDAT", DateTime.Now); AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); AddParam(cmdUpdate, "original_編號", original_value.編號); AddParam(cmdUpdate, "original_DB_APPNO", original_value.DB_APPNO); ExecuteNonQuery(cmdUpdate); AfterUpdateOne(value, original_value); ts.Complete(); return value; } catch (Exception error) { bool handled; OnUpdateOneError(error, out handled); if(!handled) throw error; return value; } } } [DataObjectMethod(DataObjectMethodType.Delete)] public int DeleteOne(int 編號, int DB_APPNO) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeDeleteOne(編號, DB_APPNO)) return -1; 領據List oldValues = SelectOne(編號); if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) { throw new DBConcurrencyException("在刪除 \"領據\" 資料表時發生並行例外:找不到要刪除的資料列"); } else { DoBackup(oldValues[0], "DELETE"); } DbCommand cmdDelete = NewCommand(); cmdDelete.CommandText = @"delete from [領據] where 1=1 and 編號 = @編號 and DB_APPNO = @DB_APPNO "; AddParam(cmdDelete, "編號", 編號); AddParam(cmdDelete, "DB_APPNO", DB_APPNO); int rowsAffected = ExecuteNonQuery(cmdDelete); AfterDeleteOne(編號, DB_APPNO); ts.Complete(); return rowsAffected; } catch (Exception error) { bool handled; OnDeleteOneError(error, out handled); if(!handled) throw error; return -1; } } } [DataObjectMethod(DataObjectMethodType.Delete)] public int DeleteOne(領據Item value) { using (TransactionScope ts = DAC.NewTransactionScope()) { try { if (!BeforeDeleteOne(value)) return -1; 領據List oldValues = SelectOne(value.編號); if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) { throw new DBConcurrencyException("在刪除 \"領據\" 資料表時發生並行例外:找不到要刪除的資料列"); } else { DoBackup(oldValues[0], "DELETE"); } DbCommand cmdDelete = NewCommand(); cmdDelete.CommandText = @"delete from [領據] where 1=1 and 編號 = @編號 and DB_APPNO = @DB_APPNO "; AddParam(cmdDelete, "編號", value.編號); AddParam(cmdDelete, "DB_APPNO", value.DB_APPNO); int rowsAffected = ExecuteNonQuery(cmdDelete); AfterDeleteOne(value); ts.Complete(); return rowsAffected; } catch (Exception error) { bool handled; OnDeleteOneError(error, out handled); if(!handled) throw error; return -1; } } } public bool IsDuplicate(int 編號) { DbCommand cmdSelect = NewCommand(); cmdSelect.CommandText = "select count(1)" + _from + _where + " and 編號 = @編號 " ; AddParam(cmdSelect, "編號", 編號); int count; ExecuteScalar(cmdSelect, out count); return count > 0; } public void DoBackup(領據Item value, string updateMode) { DbCommand cmdBak = NewCommand(); cmdBak.CommandText = "insert into [領據_BAK]" + " (" + _insertBak + ")" + "values " + " (" + _insertBakValue + ");" ; AddParam(cmdBak, "編號", value.編號); AddParam(cmdBak, "表單編號", value.表單編號); AddParam(cmdBak, "活動日期", value.活動日期); AddParam(cmdBak, "身分別", value.身分別); AddParam(cmdBak, "講師_非講師編號", value.講師_非講師編號); AddParam(cmdBak, "領款人姓名", value.領款人姓名); AddParam(cmdBak, "身分證字號", value.身分證字號); AddParam(cmdBak, "憑證類別", value.憑證類別); AddParam(cmdBak, "計畫代號", value.計畫代號); AddParam(cmdBak, "計畫名稱", value.計畫名稱); AddParam(cmdBak, "活動地點", value.活動地點); AddParam(cmdBak, "活動類別", value.活動類別); AddParam(cmdBak, "活動名稱事由", value.活動名稱事由); AddParam(cmdBak, "製單人員", value.製單人員); AddParam(cmdBak, "付款方式", value.付款方式); AddParam(cmdBak, "作廢", value.作廢); AddParam(cmdBak, "列印次數", value.列印次數); AddParam(cmdBak, "郵件已發送", value.郵件已發送); AddParam(cmdBak, "DB_APPNO", value.DB_APPNO); AddParam(cmdBak, "DB_CRDAT", value.DB_CRDAT); AddParam(cmdBak, "DB_CRUSR", value.DB_CRUSR); AddParam(cmdBak, "DB_TRDAT", DateTime.Now); AddParam(cmdBak, "DB_TRUSR", CurrentUserId); AddParam(cmdBak, "DB_TRMOD", updateMode); ExecuteNonQuery(cmdBak); } } /// ///領據 資料集合類別 /// [Serializable] public partial class 領據List : List<領據Item>, IDataList { public void Fill(DbDataReader reader) { DAC.FillData<領據Item>(reader, this); } } /// /// 領據 資料紀錄類別 /// [Serializable] public partial class 領據Item : DataItemBase { private int _編號; private string _表單編號; private DateTime _活動日期; private string _身分別; private string _講師_非講師編號; private string _領款人姓名; private string _身分證字號; private string _憑證類別; private string _計畫代號; private string _計畫名稱; private string _活動地點; private string _活動類別; private string _活動名稱事由; private string _製單人員; private string _付款方式; private int? _作廢; private int? _列印次數; private string _郵件已發送; #region 資料欄位 /// /// /// [DataObjectField(true, false, false)] public int 編號 { get { return _編號; } set { if (value != _編號) { _編號 = value; OnPropertyChanged("編號"); } } } /// /// /// [DataObjectField(false, false, false, 12)] public string 表單編號 { get { return _表單編號; } set { if (value != _表單編號) { _表單編號 = value; OnPropertyChanged("表單編號"); } } } /// /// /// [DataObjectField(false, false, false)] public DateTime 活動日期 { get { return _活動日期; } set { if (value != _活動日期) { _活動日期 = value; OnPropertyChanged("活動日期"); } } } /// /// /// [DataObjectField(false, false, false, 5)] public string 身分別 { get { return _身分別; } set { if (value != _身分別) { _身分別 = value; OnPropertyChanged("身分別"); } } } /// /// /// [DataObjectField(false, false, false, 10)] public string 講師_非講師編號 { get { return _講師_非講師編號; } set { if (value != _講師_非講師編號) { _講師_非講師編號 = value; OnPropertyChanged("講師_非講師編號"); } } } /// /// /// [DataObjectField(false, false, true, 20)] public string 領款人姓名 { get { return _領款人姓名; } set { if (value != _領款人姓名) { _領款人姓名 = value; OnPropertyChanged("領款人姓名"); } } } /// /// /// [DataObjectField(false, false, true, 12)] public string 身分證字號 { get { return _身分證字號; } set { if (value != _身分證字號) { _身分證字號 = value; OnPropertyChanged("身分證字號"); } } } /// /// 付款設定.憑證類別 /// [DataObjectField(false, false, true, 5)] public string 憑證類別 { get { return _憑證類別; } set { if (value != _憑證類別) { _憑證類別 = value; OnPropertyChanged("憑證類別"); } } } /// /// 訓練課程企劃.顯示編號 /// [DataObjectField(false, false, true, 20)] public string 計畫代號 { get { return _計畫代號; } set { if (value != _計畫代號) { _計畫代號 = value; OnPropertyChanged("計畫代號"); } } } /// /// 訓練課程企劃.訓練名稱 /// [DataObjectField(false, false, true, 50)] public string 計畫名稱 { get { return _計畫名稱; } set { if (value != _計畫名稱) { _計畫名稱 = value; OnPropertyChanged("計畫名稱"); } } } /// /// /// [DataObjectField(false, false, true, 100)] public string 活動地點 { get { return _活動地點; } set { if (value != _活動地點) { _活動地點 = value; OnPropertyChanged("活動地點"); } } } /// /// /// [DataObjectField(false, false, true, 100)] public string 活動類別 { get { return _活動類別; } set { if (value != _活動類別) { _活動類別 = value; OnPropertyChanged("活動類別"); } } } /// /// /// [DataObjectField(false, false, true, 200)] public string 活動名稱事由 { get { return _活動名稱事由; } set { if (value != _活動名稱事由) { _活動名稱事由 = value; OnPropertyChanged("活動名稱事由"); } } } /// /// /// [DataObjectField(false, false, true, 10)] public string 製單人員 { get { return _製單人員; } set { if (value != _製單人員) { _製單人員 = value; OnPropertyChanged("製單人員"); } } } /// /// /// [DataObjectField(false, false, true, 5)] public string 付款方式 { get { return _付款方式; } set { if (value != _付款方式) { _付款方式 = value; OnPropertyChanged("付款方式"); } } } /// /// /// [DataObjectField(false, false, true)] public int? 作廢 { get { return _作廢; } set { if (value != _作廢) { _作廢 = value; OnPropertyChanged("作廢"); } } } /// /// /// [DataObjectField(false, false, true)] public int? 列印次數 { get { return _列印次數; } set { if (value != _列印次數) { _列印次數 = value; OnPropertyChanged("列印次數"); } } } /// /// /// [DataObjectField(false, false, true, 1)] public string 郵件已發送 { get { return _郵件已發送; } set { if (value != _郵件已發送) { _郵件已發送 = value; OnPropertyChanged("郵件已發送"); } } } #endregion } }