diff --git a/.gitignore b/.gitignore index 3d66f9c..2791e92 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,9 @@ packages/ # Subversion (此專案曾用 SVN) .svn/ +# 分支備份目錄(僅保留在本機) +branches/ + # ASP.NET / IIS *.Cache *.dll.refresh diff --git a/branches/1150807/.editorconfig b/branches/1150807/.editorconfig deleted file mode 100644 index 9fa5e75..0000000 --- a/branches/1150807/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ - -# All files -[*] -indent_style = space - -# Xml files -[*.xml] -indent_size = 2 - -# 設定所有文字檔案使用 UTF-8 編碼 -[*] -charset = utf-8-bom - diff --git a/branches/1150807/App_Browsers/Others.browser b/branches/1150807/App_Browsers/Others.browser deleted file mode 100644 index 24639bc..0000000 --- a/branches/1150807/App_Browsers/Others.browser +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/branches/1150807/App_Themes/Default/Button.css b/branches/1150807/App_Themes/Default/Button.css deleted file mode 100644 index b5b78d9..0000000 --- a/branches/1150807/App_Themes/Default/Button.css +++ /dev/null @@ -1,547 +0,0 @@ -a.button, button, input[type=button], submit, input[type=submit] { - color: #000000; - padding: 0; - margin: 2px; - /* height: 25px; */ - line-height: 25px; - display: inline-block; - font-family: Arial, Helvetica, sans-serif, "Microsoft JhengHei", "Microsoft YaHei", MingLiU, SimSun; - font-size: 12pt; - text-decoration: none; - vertical-align: top; - text-align: center; - background-repeat: no-repeat; - background-position: 0 0; - /* 圓角 */ - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px -} - - a.button:hover, button:hover, input[type=button]:hover, submit:hover, input[type=submit]:hover { - font-weight: bold; - } - - - a.blue120, button.blue120, input[type=button].blue120, submit.blue120, input[type=submit].blue120 { - width: 120px; - color: #2172B5; - border: 1px solid #2172B5; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#8CC6EF,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -ms-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -linear-gradient(top, #8CC6EF, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#8CC6EF), to(#FFFFFF)); - background: -o-linear-gradient(top, #8CC6EF, #FFFFFF) - } - - a.orange120, button.orange120, input[type=button].orange120, submit.orange120, input[type=submit].orange120 { - width: 120px; - color: #B25300; - border: 1px solid #B25300; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FFAA5F,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -ms-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -linear-gradient(top, #FFAA5F, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FFAA5F), to(#FFFFFF)); - background: -o-linear-gradient(top, #FFAA5F, #FFFFFF) - } - - a.red120, button.red120, input[type=button].red120, submit.red120, input[type=submit].red120 { - width: 120px; - color: #A71717; - border: 1px solid #A71717; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F4B4B4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -ms-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -linear-gradient(top, #F4B4B4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F4B4B4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F4B4B4, #FFFFFF) - } - - a.green120, button.green120, input[type=button].green120, submit.green120, input[type=submit].green120 { - width: 120px; - color: #055705; - border: 1px solid #055705; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#6EF66E,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #6EF66E, #FFFFFF); - background: -ms-linear-gradient(top, #6EF66E, #FFFFFF); - background: -linear-gradient(top, #6EF66E, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#6EF66E), to(#FFFFFF)); - background: -o-linear-gradient(top, #6EF66E, #FFFFFF) - } - - a.purple120, button.purple120, input[type=button].purple120, submit.purple120, input[type=submit].purple120 { - width: 120px; - color: #800080; - border: 1px solid #800080; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F694F4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F694F4, #FFFFFF); - background: -ms-linear-gradient(top, #F694F4, #FFFFFF); - background: -linear-gradient(top, #F694F4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F694F4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F694F4, #FFFFFF) - } - - a.gray120, button.gray120, input[type=button].gray120, submit.gray120, input[type=submit].gray120 { - width: 120px; - color: #303030; - border: 1px solid #A7A7A7; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#D0D0D0,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -ms-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -linear-gradient(top, #D0D0D0, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#D0D0D0), to(#FFFFFF)); - background: -o-linear-gradient(top, #D0D0D0, #FFFFFF) - } - - a.yellow120, button.yellow120, input[type=button].yellow120, submit.yellow120, input[type=submit].yellow120 { - width: 120px; - color: #97A004; - border: 1px solid #97A004; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FAFFA3,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -ms-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -linear-gradient(top, #FAFFA3, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FAFFA3), to(#FFFFFF)); - background: -o-linear-gradient(top, #FAFFA3, #FFFFFF) - } - - a.blue100, button.blue100, input[type=button].blue100, submit.blue100, input[type=submit].blue100 { - width: 100px; - color: #2172B5; - border: 1px solid #2172B5; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#8CC6EF,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -ms-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -linear-gradient(top, #8CC6EF, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#8CC6EF), to(#FFFFFF)); - background: -o-linear-gradient(top, #8CC6EF, #FFFFFF) - } - - a.orange100, button.orange100, input[type=button].orange100, submit.orange100, input[type=submit].orange100 { - width: 100px; - color: #B25300; - border: 1px solid #B25300; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FFAA5F,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -ms-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -linear-gradient(top, #FFAA5F, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FFAA5F), to(#FFFFFF)); - background: -o-linear-gradient(top, #FFAA5F, #FFFFFF) - } - - a.red100, button.red100, input[type=button].red100, submit.red100, input[type=submit].red100 { - width: 100px; - color: #A71717; - border: 1px solid #A71717; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F4B4B4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -ms-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -linear-gradient(top, #F4B4B4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F4B4B4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F4B4B4, #FFFFFF) - } - - a.green100, button.green100, input[type=button].green100, submit.green100, input[type=submit].green100 { - width: 100px; - color: #055705; - border: 1px solid #055705; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#6EF66E,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #6EF66E, #FFFFFF); - background: -ms-linear-gradient(top, #6EF66E, #FFFFFF); - background: -linear-gradient(top, #6EF66E, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#6EF66E), to(#FFFFFF)); - background: -o-linear-gradient(top, #6EF66E, #FFFFFF) - } - - a.purple100, button.purple100, input[type=button].purple100, submit.purple100, input[type=submit].purple100 { - width: 100px; - color: #800080; - border: 1px solid #800080; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F694F4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F694F4, #FFFFFF); - background: -ms-linear-gradient(top, #F694F4, #FFFFFF); - background: -linear-gradient(top, #F694F4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F694F4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F694F4, #FFFFFF) - } - - a.gray100, button.gray100, input[type=button].gray100, submit.gray100, input[type=submit].gray100 { - width: 100px; - color: #303030; - border: 1px solid #A7A7A7; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#D0D0D0,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -ms-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -linear-gradient(top, #D0D0D0, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#D0D0D0), to(#FFFFFF)); - background: -o-linear-gradient(top, #D0D0D0, #FFFFFF) - } - - a.yellow100, button.yellow100, input[type=button].yellow100, submit.yellow100, input[type=submit].yellow100 { - width: 100px; - color: #97A004; - border: 1px solid #97A004; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FAFFA3,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -ms-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -linear-gradient(top, #FAFFA3, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FAFFA3), to(#FFFFFF)); - background: -o-linear-gradient(top, #FAFFA3, #FFFFFF) - } - - a.blue80, button.blue80, input[type=button].blue80, submit.blue80, input[type=submit].blue80 { - width: 80px; - color: #2172B5; - border: 1px solid #2172B5; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#8CC6EF,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -ms-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -linear-gradient(top, #8CC6EF, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#8CC6EF), to(#FFFFFF)); - background: -o-linear-gradient(top, #8CC6EF, #FFFFFF) - } - - a.orange80, button.orange80, input[type=button].orange80, submit.orange80, input[type=submit].orange80 { - width: 80px; - color: #B25300; - border: 1px solid #B25300; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FFAA5F,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -ms-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -linear-gradient(top, #FFAA5F, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FFAA5F), to(#FFFFFF)); - background: -o-linear-gradient(top, #FFAA5F, #FFFFFF) - } - - a.red80, button.red80, input[type=button].red80, submit.red80, input[type=submit].red80 { - width: 80px; - color: #A71717; - border: 1px solid #A71717; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F4B4B4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -ms-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -linear-gradient(top, #F4B4B4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F4B4B4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F4B4B4, #FFFFFF) - } - - a.green80, button.green80, input[type=button].green80, submit.green80, input[type=submit].green80 { - width: 80px; - color: #055705; - border: 1px solid #055705; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#6EF66E,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #6EF66E, #FFFFFF); - background: -ms-linear-gradient(top, #6EF66E, #FFFFFF); - background: -linear-gradient(top, #6EF66E, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#6EF66E), to(#FFFFFF)); - background: -o-linear-gradient(top, #6EF66E, #FFFFFF) - } - - a.purple80, button.purple80, input[type=button].purple80, submit.purple80, input[type=submit].purple80 { - width: 80px; - color: #800080; - border: 1px solid #800080; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F694F4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F694F4, #FFFFFF); - background: -ms-linear-gradient(top, #F694F4, #FFFFFF); - background: -linear-gradient(top, #F694F4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F694F4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F694F4, #FFFFFF) - } - - a.gray80, button.gray80, input[type=button].gray80, submit.gray80, input[type=submit].gray80 { - width: 80px; - color: #303030; - border: 1px solid #A7A7A7; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#D0D0D0,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -ms-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -linear-gradient(top, #D0D0D0, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#D0D0D0), to(#FFFFFF)); - background: -o-linear-gradient(top, #D0D0D0, #FFFFFF) - } - - a.yellow80, button.yellow80, input[type=button].yellow80, submit.yellow80, input[type=submit].yellow80 { - width: 80px; - color: #97A004; - border: 1px solid #97A004; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FAFFA3,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -ms-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -linear-gradient(top, #FAFFA3, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FAFFA3), to(#FFFFFF)); - background: -o-linear-gradient(top, #FAFFA3, #FFFFFF) - } - - a.blue60, button.blue60, input[type=button].blue60, submit.blue60, input[type=submit].blue60 { - width: 60px; - color: #2172B5; - border: 1px solid #2172B5; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#8CC6EF,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -ms-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -linear-gradient(top, #8CC6EF, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#8CC6EF), to(#FFFFFF)); - background: -o-linear-gradient(top, #8CC6EF, #FFFFFF) - } - - a.orange60, button.orange60, input[type=button].orange60, submit.orange60, input[type=submit].orange60 { - width: 60px; - color: #B25300; - border: 1px solid #B25300; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FFAA5F,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -ms-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -linear-gradient(top, #FFAA5F, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FFAA5F), to(#FFFFFF)); - background: -o-linear-gradient(top, #FFAA5F, #FFFFFF) - } - - a.red60, button.red60, input[type=button].red60, submit.red60, input[type=submit].red60 { - width: 60px; - color: #A71717; - border: 1px solid #A71717; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F4B4B4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -ms-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -linear-gradient(top, #F4B4B4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F4B4B4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F4B4B4, #FFFFFF) - } - - a.green60, button.green60, input[type=button].green60, submit.green60, input[type=submit].green60 { - width: 60px; - color: #055705; - border: 1px solid #055705; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#6EF66E,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #6EF66E, #FFFFFF); - background: -ms-linear-gradient(top, #6EF66E, #FFFFFF); - background: -linear-gradient(top, #6EF66E, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#6EF66E), to(#FFFFFF)); - background: -o-linear-gradient(top, #6EF66E, #FFFFFF) - } - - a.purple60, button.purple60, input[type=button].purple60, submit.purple60, input[type=submit].purple60 { - width: 60px; - color: #800080; - border: 1px solid #800080; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F694F4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F694F4, #FFFFFF); - background: -ms-linear-gradient(top, #F694F4, #FFFFFF); - background: -linear-gradient(top, #F694F4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F694F4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F694F4, #FFFFFF) - } - - a.gray60, button.gray60, input[type=button].gray60, submit.gray60, input[type=submit].gray60 { - width: 60px; - color: #303030; - border: 1px solid #A7A7A7; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#D0D0D0,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -ms-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -linear-gradient(top, #D0D0D0, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#D0D0D0), to(#FFFFFF)); - background: -o-linear-gradient(top, #D0D0D0, #FFFFFF) - } - - a.yellow60, button.yellow60, input[type=button].yellow60, submit.yellow60, input[type=submit].yellow60 { - width: 60px; - color: #97A004; - border: 1px solid #97A004; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FAFFA3,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -ms-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -linear-gradient(top, #FAFFA3, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FAFFA3), to(#FFFFFF)); - background: -o-linear-gradient(top, #FAFFA3, #FFFFFF) - } - - a.blue40, button.blue40, input[type=button].blue40, submit.blue40, input[type=submit].blue40 { - width: 40px; - color: #2172B5; - border: 1px solid #2172B5; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#8CC6EF,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -ms-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -linear-gradient(top, #8CC6EF, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#8CC6EF), to(#FFFFFF)); - background: -o-linear-gradient(top, #8CC6EF, #FFFFFF) - } - - a.orange40, button.orange40, input[type=button].orange40, submit.orange40, input[type=submit].orange40 { - width: 40px; - color: #B25300; - border: 1px solid #B25300; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FFAA5F,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -ms-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -linear-gradient(top, #FFAA5F, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FFAA5F), to(#FFFFFF)); - background: -o-linear-gradient(top, #FFAA5F, #FFFFFF) - } - - a.red40, button.red40, input[type=button].red40, submit.red40, input[type=submit].red40 { - width: 40px; - color: #A71717; - border: 1px solid #A71717; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F4B4B4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -ms-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -linear-gradient(top, #F4B4B4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F4B4B4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F4B4B4, #FFFFFF) - } - - a.green40, button.green40, input[type=button].green40, submit.green40, input[type=submit].green40 { - width: 40px; - color: #055705; - border: 1px solid #055705; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#6EF66E,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #6EF66E, #FFFFFF); - background: -ms-linear-gradient(top, #6EF66E, #FFFFFF); - background: -linear-gradient(top, #6EF66E, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#6EF66E), to(#FFFFFF)); - background: -o-linear-gradient(top, #6EF66E, #FFFFFF) - } - - a.purple40, button.purple40, input[type=button].purple40, submit.purple40, input[type=submit].purple40 { - width: 40px; - color: #800080; - border: 1px solid #800080; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F694F4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F694F4, #FFFFFF); - background: -ms-linear-gradient(top, #F694F4, #FFFFFF); - background: -linear-gradient(top, #F694F4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F694F4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F694F4, #FFFFFF) - } - - a.gray40, button.gray40, input[type=button].gray40, submit.gray40, input[type=submit].gray40 { - width: 40px; - color: #303030; - border: 1px solid #A7A7A7; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#D0D0D0,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -ms-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -linear-gradient(top, #D0D0D0, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#D0D0D0), to(#FFFFFF)); - background: -o-linear-gradient(top, #D0D0D0, #FFFFFF) - } - - a.yellow40, button.yellow40, input[type=button].yellow40, submit.yellow40, input[type=submit].yellow40 { - width: 40px; - color: #97A004; - border: 1px solid #97A004; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FAFFA3,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -ms-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -linear-gradient(top, #FAFFA3, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FAFFA3), to(#FFFFFF)); - background: -o-linear-gradient(top, #FAFFA3, #FFFFFF) - } - - a.blue28, button.blue28, input[type=button].blue28, submit.blue28, input[type=submit].blue28 { - width: 28px; - color: #2172B5; - border: 1px solid #2172B5; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#8CC6EF,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -ms-linear-gradient(top, #8CC6EF, #FFFFFF); - background: -linear-gradient(top, #8CC6EF, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#8CC6EF), to(#FFFFFF)); - background: -o-linear-gradient(top, #8CC6EF, #FFFFFF) - } - - a.orange28, button.orange28, input[type=button].orange28, submit.orange28, input[type=submit].orange28 { - width: 28px; - color: #B25300; - border: 1px solid #B25300; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FFAA5F,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -ms-linear-gradient(top, #FFAA5F, #FFFFFF); - background: -linear-gradient(top, #FFAA5F, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FFAA5F), to(#FFFFFF)); - background: -o-linear-gradient(top, #FFAA5F, #FFFFFF) - } - - a.red28, button.red28, input[type=button].red28, submit.red28, input[type=submit].red28 { - width: 28px; - color: #A71717; - border: 1px solid #A71717; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F4B4B4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -ms-linear-gradient(top, #F4B4B4, #FFFFFF); - background: -linear-gradient(top, #F4B4B4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F4B4B4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F4B4B4, #FFFFFF) - } - - a.green28, button.green28, input[type=button].green28, submit.green28, input[type=submit].green28 { - width: 28px; - color: #055705; - border: 1px solid #055705; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#6EF66E,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #6EF66E, #FFFFFF); - background: -ms-linear-gradient(top, #6EF66E, #FFFFFF); - background: -linear-gradient(top, #6EF66E, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#6EF66E), to(#FFFFFF)); - background: -o-linear-gradient(top, #6EF66E, #FFFFFF) - } - - a.purple28, button.purple28, input[type=button].purple28, submit.purple28, input[type=submit].purple28 { - width: 28px; - color: #800080; - border: 1px solid #800080; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#F694F4,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #F694F4, #FFFFFF); - background: -ms-linear-gradient(top, #F694F4, #FFFFFF); - background: -linear-gradient(top, #F694F4, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#F694F4), to(#FFFFFF)); - background: -o-linear-gradient(top, #F694F4, #FFFFFF) - } - - a.gray28, button.gray28, input[type=button].gray28, submit.gray28, input[type=submit].gray28 { - width: 28px; - color: #303030; - border: 1px solid #A7A7A7; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#D0D0D0,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -ms-linear-gradient(top, #D0D0D0, #FFFFFF); - background: -linear-gradient(top, #D0D0D0, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#D0D0D0), to(#FFFFFF)); - background: -o-linear-gradient(top, #D0D0D0, #FFFFFF) - } - - a.yellow28, button.yellow28, input[type=button].yellow28, submit.yellow28, input[type=submit].yellow28 { - width: 28px; - color: #97A004; - border: 1px solid #97A004; - FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FAFFA3,endColorStr=#FFFFFF,gradientType=0); - background: -moz-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -ms-linear-gradient(top, #FAFFA3, #FFFFFF); - background: -linear-gradient(top, #FAFFA3, #FFFFFF); - background: -webkit-gradient(linear, left top, left bottom, from(#FAFFA3), to(#FFFFFF)); - background: -o-linear-gradient(top, #FAFFA3, #FFFFFF) - } - -a.pickupbutton { - width: 16px; - height: 16px; - background-image: Url("Img/pickup.gif"); -} - -a[disabled="disabled"], a.button[disabled="disabled"], button[disabled="disabled"], input[type=button][disabled="disabled"], submit[disabled="disabled"], input[type=submit][disabled="disabled"] { - color: #808080; - border: 1px solid #909090; - FILTER: initial; - background: none; - background-color: #E0E0E0; -} - -a[disabled="disabled"]:hover { - font-weight: normal; - cursor: default; -} diff --git a/branches/1150807/App_Themes/Default/Img/Button100B.png b/branches/1150807/App_Themes/Default/Img/Button100B.png deleted file mode 100644 index 3ec6ecc..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button100B.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button100G.png b/branches/1150807/App_Themes/Default/Img/Button100G.png deleted file mode 100644 index 00ee732..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button100G.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button100GR.png b/branches/1150807/App_Themes/Default/Img/Button100GR.png deleted file mode 100644 index 9ab79c7..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button100GR.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button100O.png b/branches/1150807/App_Themes/Default/Img/Button100O.png deleted file mode 100644 index 41a75a6..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button100O.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button100P.png b/branches/1150807/App_Themes/Default/Img/Button100P.png deleted file mode 100644 index 3c5539a..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button100P.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button100R.png b/branches/1150807/App_Themes/Default/Img/Button100R.png deleted file mode 100644 index 5a355c2..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button100R.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button100Y.png b/branches/1150807/App_Themes/Default/Img/Button100Y.png deleted file mode 100644 index fbdc81b..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button100Y.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button120B.png b/branches/1150807/App_Themes/Default/Img/Button120B.png deleted file mode 100644 index 51becd6..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button120B.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button120G.png b/branches/1150807/App_Themes/Default/Img/Button120G.png deleted file mode 100644 index 6e7f659..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button120G.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button120GR.png b/branches/1150807/App_Themes/Default/Img/Button120GR.png deleted file mode 100644 index f7c38ff..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button120GR.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button120O.png b/branches/1150807/App_Themes/Default/Img/Button120O.png deleted file mode 100644 index f01c35e..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button120O.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button120P.png b/branches/1150807/App_Themes/Default/Img/Button120P.png deleted file mode 100644 index 48189b1..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button120P.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button120R.png b/branches/1150807/App_Themes/Default/Img/Button120R.png deleted file mode 100644 index 552abe2..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button120R.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button120Y.png b/branches/1150807/App_Themes/Default/Img/Button120Y.png deleted file mode 100644 index 8bd6325..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button120Y.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button28B.png b/branches/1150807/App_Themes/Default/Img/Button28B.png deleted file mode 100644 index df21321..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button28B.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button28G.png b/branches/1150807/App_Themes/Default/Img/Button28G.png deleted file mode 100644 index 344f1df..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button28G.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button28GR.png b/branches/1150807/App_Themes/Default/Img/Button28GR.png deleted file mode 100644 index 506863b..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button28GR.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button28O.png b/branches/1150807/App_Themes/Default/Img/Button28O.png deleted file mode 100644 index dd1bf28..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button28O.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button28P.png b/branches/1150807/App_Themes/Default/Img/Button28P.png deleted file mode 100644 index 76aad13..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button28P.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button28R.png b/branches/1150807/App_Themes/Default/Img/Button28R.png deleted file mode 100644 index b50859d..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button28R.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button28Y.png b/branches/1150807/App_Themes/Default/Img/Button28Y.png deleted file mode 100644 index e7ee01c..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button28Y.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button40B.png b/branches/1150807/App_Themes/Default/Img/Button40B.png deleted file mode 100644 index 50f7416..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button40B.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button40G.png b/branches/1150807/App_Themes/Default/Img/Button40G.png deleted file mode 100644 index 80d68e0..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button40G.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button40GR.png b/branches/1150807/App_Themes/Default/Img/Button40GR.png deleted file mode 100644 index 3dffe91..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button40GR.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button40O.png b/branches/1150807/App_Themes/Default/Img/Button40O.png deleted file mode 100644 index bd48f0f..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button40O.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button40P.png b/branches/1150807/App_Themes/Default/Img/Button40P.png deleted file mode 100644 index 9c479a6..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button40P.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button40R.png b/branches/1150807/App_Themes/Default/Img/Button40R.png deleted file mode 100644 index bc60ebf..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button40R.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button40Y.png b/branches/1150807/App_Themes/Default/Img/Button40Y.png deleted file mode 100644 index 470e5cb..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button40Y.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button60B.png b/branches/1150807/App_Themes/Default/Img/Button60B.png deleted file mode 100644 index 1df0326..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button60B.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button60G.png b/branches/1150807/App_Themes/Default/Img/Button60G.png deleted file mode 100644 index a8c4469..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button60G.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button60GR.png b/branches/1150807/App_Themes/Default/Img/Button60GR.png deleted file mode 100644 index cd09353..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button60GR.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button60O.png b/branches/1150807/App_Themes/Default/Img/Button60O.png deleted file mode 100644 index 8cc6394..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button60O.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button60P.png b/branches/1150807/App_Themes/Default/Img/Button60P.png deleted file mode 100644 index 61d0ab0..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button60P.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button60R.png b/branches/1150807/App_Themes/Default/Img/Button60R.png deleted file mode 100644 index dea078f..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button60R.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button60Y.png b/branches/1150807/App_Themes/Default/Img/Button60Y.png deleted file mode 100644 index b7491c6..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button60Y.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button80B.png b/branches/1150807/App_Themes/Default/Img/Button80B.png deleted file mode 100644 index 1538119..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button80B.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button80G.png b/branches/1150807/App_Themes/Default/Img/Button80G.png deleted file mode 100644 index ed665c7..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button80G.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button80GR.png b/branches/1150807/App_Themes/Default/Img/Button80GR.png deleted file mode 100644 index a754918..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button80GR.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button80O.png b/branches/1150807/App_Themes/Default/Img/Button80O.png deleted file mode 100644 index 3410bcb..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button80O.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button80P.png b/branches/1150807/App_Themes/Default/Img/Button80P.png deleted file mode 100644 index 1230e75..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button80P.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button80R.png b/branches/1150807/App_Themes/Default/Img/Button80R.png deleted file mode 100644 index f9b44d8..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button80R.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Button80Y.png b/branches/1150807/App_Themes/Default/Img/Button80Y.png deleted file mode 100644 index 9311147..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Button80Y.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Tab.png b/branches/1150807/App_Themes/Default/Img/Tab.png deleted file mode 100644 index 112ef54..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Tab.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Tab1.png b/branches/1150807/App_Themes/Default/Img/Tab1.png deleted file mode 100644 index 3426385..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Tab1.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/Tab3.png b/branches/1150807/App_Themes/Default/Img/Tab3.png deleted file mode 100644 index 3539bfe..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/Tab3.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/TabBase.png b/branches/1150807/App_Themes/Default/Img/TabBase.png deleted file mode 100644 index ba81755..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/TabBase.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/TabYellow.png b/branches/1150807/App_Themes/Default/Img/TabYellow.png deleted file mode 100644 index 9376c97..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/TabYellow.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/area.png b/branches/1150807/App_Themes/Default/Img/area.png deleted file mode 100644 index 1c3d4ad..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/area.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/logout.png b/branches/1150807/App_Themes/Default/Img/logout.png deleted file mode 100644 index 0b20c12..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/logout.png and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/outbg.gif b/branches/1150807/App_Themes/Default/Img/outbg.gif deleted file mode 100644 index 852f18e..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/outbg.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/pickup.gif b/branches/1150807/App_Themes/Default/Img/pickup.gif deleted file mode 100644 index 669492d..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/pickup.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_caption.gif b/branches/1150807/App_Themes/Default/Img/window_caption.gif deleted file mode 100644 index 1d238e5..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_caption.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_caption_left.gif b/branches/1150807/App_Themes/Default/Img/window_caption_left.gif deleted file mode 100644 index 703645c..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_caption_left.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_caption_left_corner.gif b/branches/1150807/App_Themes/Default/Img/window_caption_left_corner.gif deleted file mode 100644 index 6753a68..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_caption_left_corner.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_caption_right.gif b/branches/1150807/App_Themes/Default/Img/window_caption_right.gif deleted file mode 100644 index 243a844..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_caption_right.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_caption_right_corner.gif b/branches/1150807/App_Themes/Default/Img/window_caption_right_corner.gif deleted file mode 100644 index 80e8148..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_caption_right_corner.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_left_border.gif b/branches/1150807/App_Themes/Default/Img/window_left_border.gif deleted file mode 100644 index 7ea1731..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_left_border.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_lower_border.gif b/branches/1150807/App_Themes/Default/Img/window_lower_border.gif deleted file mode 100644 index a6cc812..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_lower_border.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_lower_left_corner.gif b/branches/1150807/App_Themes/Default/Img/window_lower_left_corner.gif deleted file mode 100644 index c029fa7..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_lower_left_corner.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_lower_right_corner.gif b/branches/1150807/App_Themes/Default/Img/window_lower_right_corner.gif deleted file mode 100644 index 6f4b82f..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_lower_right_corner.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Img/window_right_border.gif b/branches/1150807/App_Themes/Default/Img/window_right_border.gif deleted file mode 100644 index 298a3cc..0000000 Binary files a/branches/1150807/App_Themes/Default/Img/window_right_border.gif and /dev/null differ diff --git a/branches/1150807/App_Themes/Default/Loading.css b/branches/1150807/App_Themes/Default/Loading.css deleted file mode 100644 index 184bbec..0000000 --- a/branches/1150807/App_Themes/Default/Loading.css +++ /dev/null @@ -1,49 +0,0 @@ -/* Loading 遮罩樣式 */ -.loading-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0); - display: flex; - justify-content: center; - align-items: center; - z-index: 10000; -} - -.loading-spinner { - background-color: white; - padding: 40px; - border-radius: 8px; - text-align: center; - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); -} - - .loading-spinner p { - margin-top: 15px; - color: #333; - font-size: 16px; - font-weight: 500; - } - -/* 轉圈圈動畫 */ -.spinner { - width: 50px; - height: 50px; - border: 4px solid #cccccc; - border-top: 4px solid #ffffff; - border-radius: 50%; - animation: spin 1s linear infinite; - margin: 0 auto; -} - -@keyframes spin { - 0% { - transform: rotate(0deg); - } - - 100% { - transform: rotate(360deg); - } -} diff --git a/branches/1150807/App_Themes/Default/Menu.css b/branches/1150807/App_Themes/Default/Menu.css deleted file mode 100644 index a408fa6..0000000 --- a/branches/1150807/App_Themes/Default/Menu.css +++ /dev/null @@ -1,45 +0,0 @@ -a.menu { - display: inline-block; - color: Black; - width: 100%; - height: 27px; - line-height: 26px; - vertical-align: top; - overflow: hidden; - text-align: left; - cursor: pointer !important; - z-index: 999; -} - -a.menu_toplevel { - display: inline-block; - color: White; - width: 100%; - height: 27px; - line-height: 26px; - vertical-align: top; - text-align: left; - cursor: pointer !important; - z-index: 999; -} - -a.menuSelected { - display: inline-block; - color: White; - width: 100%; - height: 27px; - line-height: 26px; - vertical-align: top; - text-align: left; - z-index: 999; -} - -a.menu:hover { - color: White; - background-color: #007ACC; -} - -a.menu_toplevel:hover { - color: White; - background-color: #007ACC; -} diff --git a/branches/1150807/App_Themes/Default/PopupWindow.css b/branches/1150807/App_Themes/Default/PopupWindow.css deleted file mode 100644 index 4d61603..0000000 --- a/branches/1150807/App_Themes/Default/PopupWindow.css +++ /dev/null @@ -1,105 +0,0 @@ -div.popup_title_left_corner -{ - padding:0; - margin:0; - width: 3px; - height:27px; - background-image:url("Img/window_caption_left_corner.gif"); - background-repeat:no-repeat; - float:left; -} - -div.popup_title_right_corner -{ - padding:0; - margin:0; - width: 3px; - height: 27px; - background-image:url("Img/window_caption_right_corner.gif"); - background-repeat:no-repeat; - float:left; -} - -div.popup_title_left -{ - padding:0; - margin:0; - width: 4px; - height:27px; - background-image:url("Img/window_caption_left.gif"); - background-repeat:no-repeat; - float:left; -} - -div.popup_title_right -{ - padding:0; - margin:0; - width: 4px; - height:27px; - background-image:url("Img/window_caption_right.gif"); - background-repeat:no-repeat; - float:left; -} - -div.popup_title -{ - padding:0; - margin:0; - height:27px; - background-image:url("Img/window_caption.gif"); - background-repeat:repeat-x; - float:left; -} - -div.popup_left_border -{ - padding:0; - margin:0; - width:3px; - background-image:url("Img/window_left_border.gif"); - background-repeat:repeat-y; - float:left; -} - -div.popup_right_border -{ - padding:0; - margin:0; - width:3px; - background-image:url("Img/window_right_border.gif"); - background-repeat:repeat-y; - float:left; -} - -div.popup_lower_left_corner -{ - padding:0; - margin:0; - width:3px; - height:3px; - background-image:url("Img/window_lower_left_corner.gif"); - background-repeat:no-repeat; - float:left; -} - -div.popup_lower_right_corner -{ - padding:0; - margin:0; - width:3px; - height:3px; - background-image:url("Img/window_lower_right_corner.gif"); - background-repeat:no-repeat; - float:left; -} - -div.popup_lower_border -{ - padding:0; - margin:0; - height:3px; - background-image:url("Img/window_lower_border.gif"); - background-repeat:repeat-x; - float:left; -} diff --git a/branches/1150807/App_Themes/Default/Skin1.skin b/branches/1150807/App_Themes/Default/Skin1.skin deleted file mode 100644 index 887e1d8..0000000 --- a/branches/1150807/App_Themes/Default/Skin1.skin +++ /dev/null @@ -1,107 +0,0 @@ -<%-- -預設面板範本。下列面板僅提供做為範例的用途。 - -1. 具名控制面板。SkinId 應為唯一定義,因為在相同主題中,一個控制項型別不能具有重複的 SkinId。 - - - - - -2. 預設面板。SkinId 未定義。在相同主題中,每個控制項型別只能有一個預設控制面板。 - - ---%> - -<%@ Register Assembly="WebLib" Namespace="WebLib" TagPrefix="weblib" %> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/branches/1150807/App_Themes/Default/Style1.css b/branches/1150807/App_Themes/Default/Style1.css deleted file mode 100644 index 1515bcc..0000000 --- a/branches/1150807/App_Themes/Default/Style1.css +++ /dev/null @@ -1,372 +0,0 @@ -body, div, table { - padding: 0; - margin: 0; -} - -body { - font-family: Arial, Helvetica, sans-serif, "Microsoft JhengHei", "Microsoft YaHei", MingLiU, SimSun; - font-size: 12pt; - background-color: #eee; -} - -input:where([type="text"], [type="password"], [type="date"], [type="datetime"], [type="number"]), -textarea, -select { - padding: 3px; - border: solid 1px #ccc; - border-radius: 3px; -} - - input:where([type="text"], [type="password"], [type="date"], [type="datetime"], [type="number"])[readonly], - input:where([type="text"], [type="password"], [type="date"], [type="datetime"], [type="number"])[disabled], - textarea[readonly], - textarea[disabled], - select[disabled] { - background-color: #ccc; - } - -/*select { - padding: 3px; - height: 1.7em; - background-color: #FFF; -} -*/ - -.hide { - display: none; -} - -.background { - width: 100%; - text-align: center; - background-image: url('img/outbg.gif'); -} - -.ta-center { - text-align: center; -} - -.ta-left { - text-align: left; -} - -.ta-right { - text-align: right; -} - -.timeText { - font-size: 12pt; - color: Black; -} - -.labelCell { - text-align: right; -} - -.displayCell { - background-color: #C6E8FF; -} - -.inputCell { - background-color: White; -} - -input { - font-family: Arial, Helvetica, sans-serif, "Microsoft JhengHei", "Microsoft YaHei", MingLiU, SimSun; - font-size: 12pt; - word-break: break-all; - box-sizing: border-box; -} - - input[type="text"]:focus { - background-color: #FFFFD0; - } - - input[type="password"]:focus { - background-color: #FFFFD0; - } - -textarea { - font-family: Arial, Helvetica, sans-serif, "Microsoft JhengHei", "Microsoft YaHei", MingLiU, SimSun; - font-size: 12pt; - word-break: break-all; - line-height: 1.5em; -} - - textarea:focus { - background-color: #FFFFD0; - } - -select { - font-family: Arial, Helvetica, sans-serif, "Microsoft JhengHei", "Microsoft YaHei", MingLiU, SimSun; - font-size: 12pt; - margin-right: 0; - height: auto; -} - -.inputFull { - width: 100%; - margin: 0; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - _box-sizing: border-box; - word-break: break-all; - -ms-word-break: break-all; -} - -.inputFullBlock { - width: 100%; - height: 100%; - margin: 0; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - _box-sizing: border-box; - font-size: 12pt; -} - -a.hiddenLink { - text-decoration: none; - color: Black; -} - - a.hiddenLink:hover { - color: Blue; - } - -.functionTitle { - font-size: 14pt; - font-weight: bold; - color: #004d7a; - padding-top: 6px; - padding-bottom: 6px; -} - -.marqueeText { - font-size: 12pt; - font-weight: bolder; - color: Red; -} - -.groupHeaderCell { - text-align: center; - border-bottom-style: solid; - border-bottom-width: 1px; - border-bottom-color: black; -} - -.FunctionName { - color: #2472B2; - font-size: 12pt; - font-weight: bold; -} - -.ErrorMessage { - color: red; - font-size: 12pt; - font-weight: bold; -} - -a.LogoutButton { - height: 32px; - width: 32px; - background-image: Url("Img/logout.png"); - background-repeat: no-repeat; - background-position: 0 0; -} - -a.election { - color: Blue; - font-weight: bold; -} - -a.cancelelection { - color: Blue; - font-weight: bold; -} - -.padding0 { - padding: 0; -} - -.padding3 { - padding: 3px; -} - -.padding5 { - padding: 5px; -} - -.minwidth10 { - min-width: 10px; -} - -.minwidth20 { - min-width: 20px; -} - -.minwidth30 { - min-width: 30px; -} - -.minwidth40 { - min-width: 40px; -} - -.minwidth50 { - min-width: 50px; -} - -.minwidth60 { - min-width: 60px; -} - -.minwidth70 { - min-width: 70px; -} - -.minwidth80 { - min-width: 80px; -} - -.minwidth90 { - min-width: 90px; -} - -.minwidth100 { - min-width: 100px; -} - -.minwidth110 { - min-width: 110px; -} - -.minwidth120 { - min-width: 120px; -} - -.minwidth130 { - min-width: 130px; -} - -.minwidth140 { - min-width: 140px; -} - -.minwidth150 { - min-width: 150px; -} - -.minwidth160 { - min-width: 160px; -} - -.minwidth170 { - min-width: 170px; -} - -.minwidth180 { - min-width: 180px; -} - -.minwidth190 { - min-width: 190px; -} - -.minwidth200 { - min-width: 200px; -} - -.maxwidth10 { - max-width: 10px; -} - -.maxwidth20 { - max-width: 20px; -} - -.maxwidth30 { - max-width: 30px; -} - -.maxwidth40 { - max-width: 40px; -} - -.maxwidth50 { - max-width: 50px; -} - -.maxwidth60 { - max-width: 60px; -} - -.maxwidth70 { - max-width: 70px; -} - -.maxwidth80 { - max-width: 80px; -} - -.maxwidth90 { - max-width: 90px; -} - -.maxwidth100 { - max-width: 100px; -} - -.maxwidth110 { - max-width: 110px; -} - -.maxwidth120 { - max-width: 120px; -} - -.maxwidth130 { - max-width: 130px; -} - -.maxwidth140 { - max-width: 140px; -} - -.maxwidth150 { - max-width: 150px; -} - -.maxwidth160 { - max-width: 160px; -} - -.maxwidth170 { - max-width: 170px; -} - -.maxwidth180 { - max-width: 180px; -} - -.maxwidth190 { - max-width: 190px; -} - -.maxwidth200 { - max-width: 200px; -} - -.phraselink { - text-decoration: none; - margin-right: 1em; - color: #007ACC; - cursor: pointer; - display: inline-block; -} - - .phraselink:hover { - background-color: #007ACC; - color: #FFF; - } diff --git a/branches/1150807/App_Themes/Default/Tab.css b/branches/1150807/App_Themes/Default/Tab.css deleted file mode 100644 index b05b041..0000000 --- a/branches/1150807/App_Themes/Default/Tab.css +++ /dev/null @@ -1,36 +0,0 @@ -/* 頁籤樣式 */ -a.tabButton -{ - font-size: 12pt; - text-decoration : none; - text-align:center; - padding-top: 0px; - display: inline-block; - vertical-align: top; - width: 179px; - height: 27px; - line-height: 24px; - background-image: Url("Img/TabYellow.png"); - background-repeat: no-repeat; - background-position: 0 0; - color : Black; - font-weight: normal; -} - -a.tabButtonSelected -{ - font-size: 12pt; - text-decoration : none; - text-align: center; - padding-top: 0px; - display: inline-block; - vertical-align: top; - width: 179px; - height: 27px; - line-height: 24px; - background-image: Url("Img/TabYellow.png"); - background-repeat: no-repeat; - background-position: 0 -27px; - color : Black; - font-weight: normal; -} diff --git a/branches/1150807/App_Themes/Default/Table.css b/branches/1150807/App_Themes/Default/Table.css deleted file mode 100644 index 1febf09..0000000 --- a/branches/1150807/App_Themes/Default/Table.css +++ /dev/null @@ -1,90 +0,0 @@ -table { - font-family: Arial, Helvetica, sans-serif, "Microsoft JhengHei", "Microsoft YaHei", MingLiU, SimSun; - font-size: 12pt; - border-collapse: separate; - border-spacing: 0; - margin-bottom: 0; -} - - table.formview table { - border-collapse: separate; - border-spacing: 2px; - } - - table.fixedwithborder { - table-layout: fixed; - border-collapse: collapse; - border: 1px solid #DDD; - } - - table.fixedwithoutborder { - table-layout: fixed; - border-collapse: collapse; - border: 0; - } - - table.autowidth { - table-layout: auto; - } - -th { - padding: 3px; - text-align: center; - background-color: #DDDDDD; - font-weight: normal; - color: Black; - border: 1px solid #DDD; - word-break: break-all; -} - -td { - word-break: break-all; -} - - td.caption { - padding: 3px; - text-align: right; - background-color: #FFFFFF; - word-break: break-all; - } - - td.captionCenter { - padding: 3px; - text-align: center; - background-color: #FFFFFF; - word-break: break-all; - } - - td.captionLeft { - padding: 3px; - text-align: left; - background-color: #FFFFFF; - word-break: break-all; - } - - td.datainput { - padding: 3px; - } - - td.datadisplay { - padding: 5px; - background-color: #DEF0FC; - word-wrap: break-word; - word-break: break-all; - } - - td.widthcontrol { - padding: 0; - margin: 0; - height: 0; - font-size: 0; - } - -table.gridview { - border-collapse: collapse; -} - - table.gridview tr th, td { - border-left-color: #DDD; - border-right-color: #DDD; - } diff --git a/branches/1150807/App_Themes/Default/jquery-ui.min.css b/branches/1150807/App_Themes/Default/jquery-ui.min.css deleted file mode 100644 index 2c081d5..0000000 --- a/branches/1150807/App_Themes/Default/jquery-ui.min.css +++ /dev/null @@ -1,1784 +0,0 @@ -/*! jQuery UI - v1.11.4 - 2016-03-25 -* http://jqueryui.com -* Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px -* Copyright jQuery Foundation and other contributors; Licensed MIT */ - -.ui-helper-hidden { - display: none; -} - -.ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -.ui-helper-reset { - margin: 0; - padding: 0; - border: 0; - outline: 0; - line-height: 1.3; - text-decoration: none; - font-size: 100%; - list-style: none; -} - -.ui-helper-clearfix:before, .ui-helper-clearfix:after { - content: ""; - display: table; - border-collapse: collapse; -} - -.ui-helper-clearfix:after { - clear: both; -} - -.ui-helper-clearfix { - min-height: 0; -} - -.ui-helper-zfix { - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; - opacity: 0; - filter: Alpha(Opacity=0); -} - -.ui-front { - z-index: 100; -} - -.ui-state-disabled { - cursor: default !important; -} - -.ui-icon { - display: block; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; -} - -.ui-widget-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.ui-draggable-handle { - -ms-touch-action: none; - touch-action: none; -} - -.ui-resizable { - position: relative; -} - -.ui-resizable-handle { - position: absolute; - font-size: 0.1px; - display: block; - -ms-touch-action: none; - touch-action: none; -} - -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { - display: none; -} - -.ui-resizable-n { - cursor: n-resize; - height: 7px; - width: 100%; - top: -5px; - left: 0; -} - -.ui-resizable-s { - cursor: s-resize; - height: 7px; - width: 100%; - bottom: -5px; - left: 0; -} - -.ui-resizable-e { - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; -} - -.ui-resizable-w { - cursor: w-resize; - width: 7px; - left: -5px; - top: 0; - height: 100%; -} - -.ui-resizable-se { - cursor: se-resize; - width: 12px; - height: 12px; - right: 1px; - bottom: 1px; -} - -.ui-resizable-sw { - cursor: sw-resize; - width: 9px; - height: 9px; - left: -5px; - bottom: -5px; -} - -.ui-resizable-nw { - cursor: nw-resize; - width: 9px; - height: 9px; - left: -5px; - top: -5px; -} - -.ui-resizable-ne { - cursor: ne-resize; - width: 9px; - height: 9px; - right: -5px; - top: -5px; -} - -.ui-selectable { - -ms-touch-action: none; - touch-action: none; -} - -.ui-selectable-helper { - position: absolute; - z-index: 100; - border: 1px dotted black; -} - -.ui-sortable-handle { - -ms-touch-action: none; - touch-action: none; -} - -.ui-accordion .ui-accordion-header { - display: block; - cursor: pointer; - position: relative; - margin: 2px 0 0 0; - padding: .5em .5em .5em .7em; - min-height: 0; - font-size: 100%; -} - -.ui-accordion .ui-accordion-icons { - padding-left: 2.2em; -} - - .ui-accordion .ui-accordion-icons .ui-accordion-icons { - padding-left: 2.2em; - } - -.ui-accordion .ui-accordion-header .ui-accordion-header-icon { - position: absolute; - left: .5em; - top: 50%; - margin-top: -8px; -} - -.ui-accordion .ui-accordion-content { - padding: 1em 2.2em; - border-top: 0; - overflow: auto; -} - -.ui-autocomplete { - position: absolute; - top: 0; - left: 0; - cursor: default; -} - -.ui-button { - display: inline-block; - position: relative; - padding: 0; - line-height: normal; - margin-right: .1em; - cursor: pointer; - vertical-align: middle; - text-align: center; - overflow: visible; -} - - .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { - text-decoration: none; - } - -.ui-button-icon-only { - width: 2.2em; -} - -button.ui-button-icon-only { - width: 2.4em; -} - -.ui-button-icons-only { - width: 3.4em; -} - -button.ui-button-icons-only { - width: 3.7em; -} - -.ui-button .ui-button-text { - display: block; - line-height: normal; -} - -.ui-button-text-only .ui-button-text { - padding: .4em 1em; -} - -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { - padding: .4em; - text-indent: -9999999px; -} - -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { - padding: .4em 1em .4em 2.1em; -} - -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { - padding: .4em 2.1em .4em 1em; -} - -.ui-button-text-icons .ui-button-text { - padding-left: 2.1em; - padding-right: 2.1em; -} - -input.ui-button { - padding: .4em 1em; -} - -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { - position: absolute; - top: 50%; - margin-top: -8px; -} - -.ui-button-icon-only .ui-icon { - left: 50%; - margin-left: -8px; -} - -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { - left: .5em; -} - -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { - right: .5em; -} - -.ui-buttonset { - margin-right: 7px; -} - - .ui-buttonset .ui-button { - margin-left: 0; - margin-right: -.3em; - } - -input.ui-button::-moz-focus-inner, button.ui-button::-moz-focus-inner { - border: 0; - padding: 0; -} - -.ui-datepicker { - width: 17em; - padding: .2em .2em 0; - display: none; -} - - .ui-datepicker .ui-datepicker-header { - position: relative; - padding: .2em 0; - } - - .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { - position: absolute; - top: 2px; - width: 1.8em; - height: 1.8em; - } - - .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { - top: 1px; - } - - .ui-datepicker .ui-datepicker-prev { - left: 2px; - } - - .ui-datepicker .ui-datepicker-next { - right: 2px; - } - - .ui-datepicker .ui-datepicker-prev-hover { - left: 1px; - } - - .ui-datepicker .ui-datepicker-next-hover { - right: 1px; - } - - .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { - display: block; - position: absolute; - left: 50%; - margin-left: -8px; - top: 50%; - margin-top: -8px; - } - - .ui-datepicker .ui-datepicker-title { - margin: 0 2.3em; - line-height: 1.8em; - text-align: center; - } - - .ui-datepicker .ui-datepicker-title select { - font-size: 1em; - margin: 1px 0; - } - - .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { - width: 45%; - } - - .ui-datepicker table { - width: 100%; - font-size: .9em; - border-collapse: collapse; - margin: 0 0 .4em; - } - - .ui-datepicker th { - padding: .7em .3em; - text-align: center; - font-weight: bold; - border: 0; - } - - .ui-datepicker td { - border: 0; - padding: 1px; - } - - .ui-datepicker td span, .ui-datepicker td a { - display: block; - padding: .2em; - text-align: right; - text-decoration: none; - } - - .ui-datepicker .ui-datepicker-buttonpane { - background-image: none; - margin: .7em 0 0 0; - padding: 0 .2em; - border-left: 0; - border-right: 0; - border-bottom: 0; - } - - .ui-datepicker .ui-datepicker-buttonpane button { - float: right; - margin: .5em .2em .4em; - cursor: pointer; - padding: .2em .6em .3em .6em; - width: auto; - overflow: visible; - } - - .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { - float: left; - } - - .ui-datepicker.ui-datepicker-multi { - width: auto; - } - -.ui-datepicker-multi .ui-datepicker-group { - float: left; -} - - .ui-datepicker-multi .ui-datepicker-group table { - width: 95%; - margin: 0 auto .4em; - } - -.ui-datepicker-multi-2 .ui-datepicker-group { - width: 50%; -} - -.ui-datepicker-multi-3 .ui-datepicker-group { - width: 33.3%; -} - -.ui-datepicker-multi-4 .ui-datepicker-group { - width: 25%; -} - -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { - border-left-width: 0; -} - -.ui-datepicker-multi .ui-datepicker-buttonpane { - clear: left; -} - -.ui-datepicker-row-break { - clear: both; - width: 100%; - font-size: 0; -} - -.ui-datepicker-rtl { - direction: rtl; -} - - .ui-datepicker-rtl .ui-datepicker-prev { - right: 2px; - left: auto; - } - - .ui-datepicker-rtl .ui-datepicker-next { - left: 2px; - right: auto; - } - - .ui-datepicker-rtl .ui-datepicker-prev:hover { - right: 1px; - left: auto; - } - - .ui-datepicker-rtl .ui-datepicker-next:hover { - left: 1px; - right: auto; - } - - .ui-datepicker-rtl .ui-datepicker-buttonpane { - clear: right; - } - - .ui-datepicker-rtl .ui-datepicker-buttonpane button { - float: left; - } - - .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, .ui-datepicker-rtl .ui-datepicker-group { - float: right; - } - - .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { - border-right-width: 0; - border-left-width: 1px; - } - -.ui-dialog { - overflow: hidden; - position: absolute; - top: 0; - left: 0; - padding: .2em; - outline: 0; -} - - .ui-dialog .ui-dialog-titlebar { - padding: .4em 1em; - position: relative; - } - - .ui-dialog .ui-dialog-title { - float: left; - margin: .1em 0; - white-space: nowrap; - width: 90%; - overflow: hidden; - text-overflow: ellipsis; - font-size: 14px; - } - - .ui-dialog .ui-dialog-titlebar-close { - position: absolute; - right: .3em; - top: 50%; - width: 20px; - margin: -10px 0 0 0; - padding: 1px; - height: 20px; - } - - .ui-dialog .ui-dialog-content { - position: relative; - border: 0; - padding: .5em 1em; - background: none; - overflow: auto; - } - - .ui-dialog .ui-dialog-buttonpane { - text-align: left; - border-width: 1px 0 0 0; - background-image: none; - margin-top: .5em; - padding: .3em 1em .5em .4em; - } - - .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { - float: right; - } - - .ui-dialog .ui-dialog-buttonpane button { - margin: .5em .4em .5em 0; - cursor: pointer; - } - - .ui-dialog .ui-resizable-se { - width: 12px; - height: 12px; - right: -5px; - bottom: -5px; - background-position: 16px 16px; - } - -.ui-draggable .ui-dialog-titlebar { - cursor: move; -} - -.ui-menu { - list-style: none; - padding: 0; - margin: 0; - display: block; - outline: none; -} - - .ui-menu .ui-menu { - position: absolute; - } - - .ui-menu .ui-menu-item { - position: relative; - margin: 0; - padding: 3px 1em 3px .4em; - cursor: pointer; - min-height: 0; - list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); - } - - .ui-menu .ui-menu-divider { - margin: 5px 0; - height: 0; - font-size: 0; - line-height: 0; - border-width: 1px 0 0 0; - } - - .ui-menu .ui-state-focus, .ui-menu .ui-state-active { - margin: -1px; - } - -.ui-menu-icons { - position: relative; -} - - .ui-menu-icons .ui-menu-item { - padding-left: 2em; - } - -.ui-menu .ui-icon { - position: absolute; - top: 0; - bottom: 0; - left: .2em; - margin: auto 0; -} - -.ui-menu .ui-menu-icon { - left: auto; - right: 0; -} - -.ui-progressbar { - height: 2em; - text-align: left; - overflow: hidden; -} - - .ui-progressbar .ui-progressbar-value { - margin: -1px; - height: 100%; - } - - .ui-progressbar .ui-progressbar-overlay { - background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); - height: 100%; - filter: alpha(opacity=25); - opacity: 0.25; - } - -.ui-progressbar-indeterminate .ui-progressbar-value { - background-image: none; -} - -.ui-selectmenu-menu { - padding: 0; - margin: 0; - position: absolute; - top: 0; - left: 0; - display: none; -} - - .ui-selectmenu-menu .ui-menu { - overflow: auto; - overflow-x: hidden; - padding-bottom: 1px; - } - - .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { - font-size: 1em; - font-weight: bold; - line-height: 1.5; - padding: 2px 0.4em; - margin: 0.5em 0 0 0; - height: auto; - border: 0; - } - -.ui-selectmenu-open { - display: block; -} - -.ui-selectmenu-button { - display: inline-block; - overflow: hidden; - position: relative; - text-decoration: none; - cursor: pointer; -} - - .ui-selectmenu-button span.ui-icon { - right: 0.5em; - left: auto; - margin-top: -8px; - position: absolute; - top: 50%; - } - - .ui-selectmenu-button span.ui-selectmenu-text { - text-align: left; - padding: 0.4em 2.1em 0.4em 1em; - display: block; - line-height: 1.4; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - -.ui-slider { - position: relative; - text-align: left; -} - - .ui-slider .ui-slider-handle { - position: absolute; - z-index: 2; - width: 1.2em; - height: 1.2em; - cursor: default; - -ms-touch-action: none; - touch-action: none; - } - - .ui-slider .ui-slider-range { - position: absolute; - z-index: 1; - font-size: .7em; - display: block; - border: 0; - background-position: 0 0; - } - - .ui-slider.ui-state-disabled .ui-slider-handle, .ui-slider.ui-state-disabled .ui-slider-range { - filter: inherit; - } - -.ui-slider-horizontal { - height: .8em; -} - - .ui-slider-horizontal .ui-slider-handle { - top: -.3em; - margin-left: -.6em; - } - - .ui-slider-horizontal .ui-slider-range { - top: 0; - height: 100%; - } - - .ui-slider-horizontal .ui-slider-range-min { - left: 0; - } - - .ui-slider-horizontal .ui-slider-range-max { - right: 0; - } - -.ui-slider-vertical { - width: .8em; - height: 100px; -} - - .ui-slider-vertical .ui-slider-handle { - left: -.3em; - margin-left: 0; - margin-bottom: -.6em; - } - - .ui-slider-vertical .ui-slider-range { - left: 0; - width: 100%; - } - - .ui-slider-vertical .ui-slider-range-min { - bottom: 0; - } - - .ui-slider-vertical .ui-slider-range-max { - top: 0; - } - -.ui-spinner { - position: relative; - display: inline-block; - overflow: hidden; - padding: 0; - vertical-align: middle; -} - -.ui-spinner-input { - border: none; - background: none; - color: inherit; - padding: 0; - margin: .2em 0; - vertical-align: middle; - margin-left: .4em; - margin-right: 22px; -} - -.ui-spinner-button { - width: 16px; - height: 50%; - font-size: .5em; - padding: 0; - margin: 0; - text-align: center; - position: absolute; - cursor: default; - display: block; - overflow: hidden; - right: 0; -} - -.ui-spinner a.ui-spinner-button { - border-top: none; - border-bottom: none; - border-right: none; -} - -.ui-spinner .ui-icon { - position: absolute; - margin-top: -8px; - top: 50%; - left: 0; -} - -.ui-spinner-up { - top: 0; -} - -.ui-spinner-down { - bottom: 0; -} - -.ui-spinner .ui-icon-triangle-1-s { - background-position: -65px -16px; -} - -.ui-tabs { - position: relative; - padding: .2em; -} - - .ui-tabs .ui-tabs-nav { - margin: 0; - padding: .2em .2em 0; - } - - .ui-tabs .ui-tabs-nav li { - list-style: none; - float: left; - position: relative; - top: 0; - margin: 1px .2em 0 0; - border-bottom-width: 0; - padding: 0; - white-space: nowrap; - } - - .ui-tabs .ui-tabs-nav .ui-tabs-anchor { - float: left; - padding: .5em 1em; - text-decoration: none; - } - - .ui-tabs .ui-tabs-nav li.ui-tabs-active { - margin-bottom: -1px; - padding-bottom: 1px; - } - - .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { - cursor: text; - } - -.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { - cursor: pointer; -} - -.ui-tabs .ui-tabs-panel { - display: block; - border-width: 0; - padding: 1em 1.4em; - background: none; -} - -.ui-tooltip { - padding: 8px; - position: absolute; - z-index: 9999; - max-width: 300px; - -webkit-box-shadow: 0 0 5px #aaa; - box-shadow: 0 0 5px #aaa; -} - -body .ui-tooltip { - border-width: 2px; -} - -.ui-widget { - font-family: Arial,Helvetica,sans-serif; - font-size: 1em; -} - - .ui-widget .ui-widget { - font-size: 1em; - } - - .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { - font-family: Arial,Helvetica,sans-serif; - font-size: 1em; - } - -.ui-widget-content { - border: 1px solid #ddd; - background: #fff; - color: #333; -} - - .ui-widget-content a { - color: #333; - } - -.ui-widget-header { - border: 1px solid #ddd; - background: #e9e9e9; - color: #333; - font-weight: bold; -} - - .ui-widget-header a { - color: #333; - } - - .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { - border: 1px solid #c5c5c5; - background: #f6f6f6; - font-weight: normal; - color: #454545; - } - - .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { - color: #454545; - text-decoration: none; - } - - .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { - border: 1px solid #ccc; - background: #ededed; - font-weight: normal; - color: #2b2b2b; - } - - .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited, .ui-state-focus a, .ui-state-focus a:hover, .ui-state-focus a:link, .ui-state-focus a:visited { - color: #2b2b2b; - text-decoration: none; - } - - .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { - border: 1px solid #003eff; - background: #007fff; - font-weight: normal; - color: #fff; - } - - .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { - color: #fff; - text-decoration: none; - } - - .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { - border: 1px solid #dad55e; - background: #fffa90; - color: #777620; - } - - .ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a { - color: #777620; - } - - .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { - border: 1px solid #f1a899; - background: #fddfdf; - color: #5f3f3f; - } - - .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { - color: #5f3f3f; - } - - .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { - color: #5f3f3f; - } - - .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { - font-weight: bold; - } - - .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { - opacity: .7; - filter: Alpha(Opacity=70); - font-weight: normal; - } - - .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { - opacity: .35; - filter: Alpha(Opacity=35); - background-image: none; - } - - .ui-state-disabled .ui-icon { - filter: Alpha(Opacity=35); - } - -.ui-icon { - width: 16px; - height: 16px; -} - -.ui-icon, .ui-widget-content .ui-icon { - background-image: url("images/ui-icons_444444_256x240.png"); -} - -.ui-widget-header .ui-icon { - background-image: url("images/ui-icons_444444_256x240.png"); -} - -.ui-state-default .ui-icon { - background-image: url("images/ui-icons_777777_256x240.png"); -} - -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon { - background-image: url("images/ui-icons_555555_256x240.png"); -} - -.ui-state-active .ui-icon { - background-image: url("images/ui-icons_ffffff_256x240.png"); -} - -.ui-state-highlight .ui-icon { - background-image: url("images/ui-icons_777620_256x240.png"); -} - -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon { - background-image: url("images/ui-icons_cc0000_256x240.png"); -} - -.ui-icon-blank { - background-position: 16px 16px; -} - -.ui-icon-carat-1-n { - background-position: 0 0; -} - -.ui-icon-carat-1-ne { - background-position: -16px 0; -} - -.ui-icon-carat-1-e { - background-position: -32px 0; -} - -.ui-icon-carat-1-se { - background-position: -48px 0; -} - -.ui-icon-carat-1-s { - background-position: -64px 0; -} - -.ui-icon-carat-1-sw { - background-position: -80px 0; -} - -.ui-icon-carat-1-w { - background-position: -96px 0; -} - -.ui-icon-carat-1-nw { - background-position: -112px 0; -} - -.ui-icon-carat-2-n-s { - background-position: -128px 0; -} - -.ui-icon-carat-2-e-w { - background-position: -144px 0; -} - -.ui-icon-triangle-1-n { - background-position: 0 -16px; -} - -.ui-icon-triangle-1-ne { - background-position: -16px -16px; -} - -.ui-icon-triangle-1-e { - background-position: -32px -16px; -} - -.ui-icon-triangle-1-se { - background-position: -48px -16px; -} - -.ui-icon-triangle-1-s { - background-position: -64px -16px; -} - -.ui-icon-triangle-1-sw { - background-position: -80px -16px; -} - -.ui-icon-triangle-1-w { - background-position: -96px -16px; -} - -.ui-icon-triangle-1-nw { - background-position: -112px -16px; -} - -.ui-icon-triangle-2-n-s { - background-position: -128px -16px; -} - -.ui-icon-triangle-2-e-w { - background-position: -144px -16px; -} - -.ui-icon-arrow-1-n { - background-position: 0 -32px; -} - -.ui-icon-arrow-1-ne { - background-position: -16px -32px; -} - -.ui-icon-arrow-1-e { - background-position: -32px -32px; -} - -.ui-icon-arrow-1-se { - background-position: -48px -32px; -} - -.ui-icon-arrow-1-s { - background-position: -64px -32px; -} - -.ui-icon-arrow-1-sw { - background-position: -80px -32px; -} - -.ui-icon-arrow-1-w { - background-position: -96px -32px; -} - -.ui-icon-arrow-1-nw { - background-position: -112px -32px; -} - -.ui-icon-arrow-2-n-s { - background-position: -128px -32px; -} - -.ui-icon-arrow-2-ne-sw { - background-position: -144px -32px; -} - -.ui-icon-arrow-2-e-w { - background-position: -160px -32px; -} - -.ui-icon-arrow-2-se-nw { - background-position: -176px -32px; -} - -.ui-icon-arrowstop-1-n { - background-position: -192px -32px; -} - -.ui-icon-arrowstop-1-e { - background-position: -208px -32px; -} - -.ui-icon-arrowstop-1-s { - background-position: -224px -32px; -} - -.ui-icon-arrowstop-1-w { - background-position: -240px -32px; -} - -.ui-icon-arrowthick-1-n { - background-position: 0 -48px; -} - -.ui-icon-arrowthick-1-ne { - background-position: -16px -48px; -} - -.ui-icon-arrowthick-1-e { - background-position: -32px -48px; -} - -.ui-icon-arrowthick-1-se { - background-position: -48px -48px; -} - -.ui-icon-arrowthick-1-s { - background-position: -64px -48px; -} - -.ui-icon-arrowthick-1-sw { - background-position: -80px -48px; -} - -.ui-icon-arrowthick-1-w { - background-position: -96px -48px; -} - -.ui-icon-arrowthick-1-nw { - background-position: -112px -48px; -} - -.ui-icon-arrowthick-2-n-s { - background-position: -128px -48px; -} - -.ui-icon-arrowthick-2-ne-sw { - background-position: -144px -48px; -} - -.ui-icon-arrowthick-2-e-w { - background-position: -160px -48px; -} - -.ui-icon-arrowthick-2-se-nw { - background-position: -176px -48px; -} - -.ui-icon-arrowthickstop-1-n { - background-position: -192px -48px; -} - -.ui-icon-arrowthickstop-1-e { - background-position: -208px -48px; -} - -.ui-icon-arrowthickstop-1-s { - background-position: -224px -48px; -} - -.ui-icon-arrowthickstop-1-w { - background-position: -240px -48px; -} - -.ui-icon-arrowreturnthick-1-w { - background-position: 0 -64px; -} - -.ui-icon-arrowreturnthick-1-n { - background-position: -16px -64px; -} - -.ui-icon-arrowreturnthick-1-e { - background-position: -32px -64px; -} - -.ui-icon-arrowreturnthick-1-s { - background-position: -48px -64px; -} - -.ui-icon-arrowreturn-1-w { - background-position: -64px -64px; -} - -.ui-icon-arrowreturn-1-n { - background-position: -80px -64px; -} - -.ui-icon-arrowreturn-1-e { - background-position: -96px -64px; -} - -.ui-icon-arrowreturn-1-s { - background-position: -112px -64px; -} - -.ui-icon-arrowrefresh-1-w { - background-position: -128px -64px; -} - -.ui-icon-arrowrefresh-1-n { - background-position: -144px -64px; -} - -.ui-icon-arrowrefresh-1-e { - background-position: -160px -64px; -} - -.ui-icon-arrowrefresh-1-s { - background-position: -176px -64px; -} - -.ui-icon-arrow-4 { - background-position: 0 -80px; -} - -.ui-icon-arrow-4-diag { - background-position: -16px -80px; -} - -.ui-icon-extlink { - background-position: -32px -80px; -} - -.ui-icon-newwin { - background-position: -48px -80px; -} - -.ui-icon-refresh { - background-position: -64px -80px; -} - -.ui-icon-shuffle { - background-position: -80px -80px; -} - -.ui-icon-transfer-e-w { - background-position: -96px -80px; -} - -.ui-icon-transferthick-e-w { - background-position: -112px -80px; -} - -.ui-icon-folder-collapsed { - background-position: 0 -96px; -} - -.ui-icon-folder-open { - background-position: -16px -96px; -} - -.ui-icon-document { - background-position: -32px -96px; -} - -.ui-icon-document-b { - background-position: -48px -96px; -} - -.ui-icon-note { - background-position: -64px -96px; -} - -.ui-icon-mail-closed { - background-position: -80px -96px; -} - -.ui-icon-mail-open { - background-position: -96px -96px; -} - -.ui-icon-suitcase { - background-position: -112px -96px; -} - -.ui-icon-comment { - background-position: -128px -96px; -} - -.ui-icon-person { - background-position: -144px -96px; -} - -.ui-icon-print { - background-position: -160px -96px; -} - -.ui-icon-trash { - background-position: -176px -96px; -} - -.ui-icon-locked { - background-position: -192px -96px; -} - -.ui-icon-unlocked { - background-position: -208px -96px; -} - -.ui-icon-bookmark { - background-position: -224px -96px; -} - -.ui-icon-tag { - background-position: -240px -96px; -} - -.ui-icon-home { - background-position: 0 -112px; -} - -.ui-icon-flag { - background-position: -16px -112px; -} - -.ui-icon-calendar { - background-position: -32px -112px; -} - -.ui-icon-cart { - background-position: -48px -112px; -} - -.ui-icon-pencil { - background-position: -64px -112px; -} - -.ui-icon-clock { - background-position: -80px -112px; -} - -.ui-icon-disk { - background-position: -96px -112px; -} - -.ui-icon-calculator { - background-position: -112px -112px; -} - -.ui-icon-zoomin { - background-position: -128px -112px; -} - -.ui-icon-zoomout { - background-position: -144px -112px; -} - -.ui-icon-search { - background-position: -160px -112px; -} - -.ui-icon-wrench { - background-position: -176px -112px; -} - -.ui-icon-gear { - background-position: -192px -112px; -} - -.ui-icon-heart { - background-position: -208px -112px; -} - -.ui-icon-star { - background-position: -224px -112px; -} - -.ui-icon-link { - background-position: -240px -112px; -} - -.ui-icon-cancel { - background-position: 0 -128px; -} - -.ui-icon-plus { - background-position: -16px -128px; -} - -.ui-icon-plusthick { - background-position: -32px -128px; -} - -.ui-icon-minus { - background-position: -48px -128px; -} - -.ui-icon-minusthick { - background-position: -64px -128px; -} - -.ui-icon-close { - background-position: -80px -128px; -} - -.ui-icon-closethick { - background-position: -96px -128px; -} - -.ui-icon-key { - background-position: -112px -128px; -} - -.ui-icon-lightbulb { - background-position: -128px -128px; -} - -.ui-icon-scissors { - background-position: -144px -128px; -} - -.ui-icon-clipboard { - background-position: -160px -128px; -} - -.ui-icon-copy { - background-position: -176px -128px; -} - -.ui-icon-contact { - background-position: -192px -128px; -} - -.ui-icon-image { - background-position: -208px -128px; -} - -.ui-icon-video { - background-position: -224px -128px; -} - -.ui-icon-script { - background-position: -240px -128px; -} - -.ui-icon-alert { - background-position: 0 -144px; -} - -.ui-icon-info { - background-position: -16px -144px; -} - -.ui-icon-notice { - background-position: -32px -144px; -} - -.ui-icon-help { - background-position: -48px -144px; -} - -.ui-icon-check { - background-position: -64px -144px; -} - -.ui-icon-bullet { - background-position: -80px -144px; -} - -.ui-icon-radio-on { - background-position: -96px -144px; -} - -.ui-icon-radio-off { - background-position: -112px -144px; -} - -.ui-icon-pin-w { - background-position: -128px -144px; -} - -.ui-icon-pin-s { - background-position: -144px -144px; -} - -.ui-icon-play { - background-position: 0 -160px; -} - -.ui-icon-pause { - background-position: -16px -160px; -} - -.ui-icon-seek-next { - background-position: -32px -160px; -} - -.ui-icon-seek-prev { - background-position: -48px -160px; -} - -.ui-icon-seek-end { - background-position: -64px -160px; -} - -.ui-icon-seek-start { - background-position: -80px -160px; -} - -.ui-icon-seek-first { - background-position: -80px -160px; -} - -.ui-icon-stop { - background-position: -96px -160px; -} - -.ui-icon-eject { - background-position: -112px -160px; -} - -.ui-icon-volume-off { - background-position: -128px -160px; -} - -.ui-icon-volume-on { - background-position: -144px -160px; -} - -.ui-icon-power { - background-position: 0 -176px; -} - -.ui-icon-signal-diag { - background-position: -16px -176px; -} - -.ui-icon-signal { - background-position: -32px -176px; -} - -.ui-icon-battery-0 { - background-position: -48px -176px; -} - -.ui-icon-battery-1 { - background-position: -64px -176px; -} - -.ui-icon-battery-2 { - background-position: -80px -176px; -} - -.ui-icon-battery-3 { - background-position: -96px -176px; -} - -.ui-icon-circle-plus { - background-position: 0 -192px; -} - -.ui-icon-circle-minus { - background-position: -16px -192px; -} - -.ui-icon-circle-close { - background-position: -32px -192px; -} - -.ui-icon-circle-triangle-e { - background-position: -48px -192px; -} - -.ui-icon-circle-triangle-s { - background-position: -64px -192px; -} - -.ui-icon-circle-triangle-w { - background-position: -80px -192px; -} - -.ui-icon-circle-triangle-n { - background-position: -96px -192px; -} - -.ui-icon-circle-arrow-e { - background-position: -112px -192px; -} - -.ui-icon-circle-arrow-s { - background-position: -128px -192px; -} - -.ui-icon-circle-arrow-w { - background-position: -144px -192px; -} - -.ui-icon-circle-arrow-n { - background-position: -160px -192px; -} - -.ui-icon-circle-zoomin { - background-position: -176px -192px; -} - -.ui-icon-circle-zoomout { - background-position: -192px -192px; -} - -.ui-icon-circle-check { - background-position: -208px -192px; -} - -.ui-icon-circlesmall-plus { - background-position: 0 -208px; -} - -.ui-icon-circlesmall-minus { - background-position: -16px -208px; -} - -.ui-icon-circlesmall-close { - background-position: -32px -208px; -} - -.ui-icon-squaresmall-plus { - background-position: -48px -208px; -} - -.ui-icon-squaresmall-minus { - background-position: -64px -208px; -} - -.ui-icon-squaresmall-close { - background-position: -80px -208px; -} - -.ui-icon-grip-dotted-vertical { - background-position: 0 -224px; -} - -.ui-icon-grip-dotted-horizontal { - background-position: -16px -224px; -} - -.ui-icon-grip-solid-vertical { - background-position: -32px -224px; -} - -.ui-icon-grip-solid-horizontal { - background-position: -48px -224px; -} - -.ui-icon-gripsmall-diagonal-se { - background-position: -64px -224px; -} - -.ui-icon-grip-diagonal-se { - background-position: -80px -224px; -} - -.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { - border-top-left-radius: 3px; -} - -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { - border-top-right-radius: 3px; -} - -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { - border-bottom-left-radius: 3px; -} - -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { - border-bottom-right-radius: 3px; -} - -.ui-widget-overlay { - background: #aaa; - opacity: .3; - filter: Alpha(Opacity=30); -} - -.ui-widget-shadow { - margin: 0 0 0 0; - padding: 5px; - background: #666; - opacity: .3; - filter: Alpha(Opacity=30); - border-radius: 8px; -} - -.no-close .ui-dialog-titlebar-close { - display: none; -} - -.ui-dialog-topmost { - z-index: 2147483647!important; -} \ No newline at end of file diff --git a/branches/1150807/App_Themes/Default/toast.css b/branches/1150807/App_Themes/Default/toast.css deleted file mode 100644 index 1c6446d..0000000 --- a/branches/1150807/App_Themes/Default/toast.css +++ /dev/null @@ -1,70 +0,0 @@ -/* 警告訊息進入動畫 */ -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - - to { - opacity: 1; - transform: translateY(0); - } -} - -/* Toast 進入動畫 */ -@keyframes slideIn { - from { - transform: translateX(400px); - opacity: 0; - } - - to { - transform: translateX(0); - opacity: 1; - } -} - -/* Toast 訊息容器樣式 */ -.toast-message { - position: fixed; - top: 20px; - right: 20px; - padding: 15px 20px; - border-radius: 4px; - color: white; - font-weight: 500; - z-index: 9999; - animation: slideIn 0.3s ease-out; - max-width: 400px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - word-wrap: break-word; - word-break: break-word; -} - -/* Toast 訊息類型樣式 */ -.toast-success { - background-color: #28a745; -} - -.toast-error { - background-color: #dc3545; -} - -.toast-warning { - background-color: #ffc107; - color: #333; -} - -.toast-info { - background-color: #17a2b8; -} - -/* Vue transition 動畫 */ -.toast-enter-active, .toast-leave-active { - transition: all 0.3s ease; -} - -.toast-enter, .toast-leave-to { - transform: translateX(100%); - opacity: 0; -} diff --git a/branches/1150807/Common/EncDec.cs b/branches/1150807/Common/EncDec.cs deleted file mode 100644 index 07f2d16..0000000 --- a/branches/1150807/Common/EncDec.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Text; - -namespace Education -{ - public class EncDec - { - /// - /// WLIB 新版密碼的加密函數 - /// - /// 欲加密之密碼字串,最大長度 8 位,僅可包含A-Z、a-z、0-9 - /// 加密後之密碼字串 - public static string KeyEnc(string S) - { - int k1 = 0; - int k2 = 0; - int i, j; - Random rnd = new Random(DateTime.UtcNow.AddHours(8).Millisecond); - byte[] inBuf = new byte[8]; - byte[] outBuf = new byte[10]; - string tmp; - - while (true) - { - k1 = rnd.Next(31); - k2 = rnd.Next(31); - outBuf[0] = (byte)(k1 + 44); - outBuf[9] = (byte)(k2 + 66); - - if (S.Length < 8) - inBuf = Encoding.ASCII.GetBytes(S.PadRight(8)); - else - inBuf = Encoding.ASCII.GetBytes(S); - - for (i = 1; i <= 8; i++) - { - j = (k1 % 31) + i; - j = ((k2 + j) % 31) + 1; - - outBuf[i] = (byte)(inBuf[i - 1] ^ j); - } - tmp = Encoding.ASCII.GetString(outBuf); - if (tmp.IndexOf('\'') < 0 && tmp.IndexOf('"') < 0) - break; - } - return tmp; - } - - /// - /// WLIB 新版密碼的解密函數 - /// - /// 欲解密之密碼字串,固定 10 位 - /// 解密後之密碼字串。若參數 S 長度不是 10 位,則傳回".." + S + ".." - public static string KeyDec(string S) - { - int i, j; - int Key1, Key2; - byte[] inBuf; - byte[] outBuf = new byte[8]; - - if (S.Length != 10) - return ".." + S + ".."; - - //解密 - inBuf = Encoding.ASCII.GetBytes(S); - Key1 = inBuf[0] - 44; - Key2 = inBuf[9] - 66; - - for (i = 1; i <= 8; i++) - { - j = Key1 % 31 + i; - j = (Key2 + j) % 31 + 1; - outBuf[i - 1] = (byte)(inBuf[i] ^ j); - } - return Encoding.ASCII.GetString(outBuf).Trim(); - } - } -} \ No newline at end of file diff --git a/branches/1150807/Common/FollowService.cs b/branches/1150807/Common/FollowService.cs deleted file mode 100644 index 849fefb..0000000 --- a/branches/1150807/Common/FollowService.cs +++ /dev/null @@ -1,211 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Timers; -using System.IO; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using WebLib; - -namespace Education -{ - public class FollowService - { - private static FollowService _instance = null; - private Timer _timer = null; - private static int _interval = 30; - private static string _doWorkTime = "00:00"; - private static bool _enabled = false; - private static bool _busy = false; - private static 發送郵件 發送郵件 = new 發送郵件(); - private DAC_BPSN Dao員工; - private DbConnection conn; - - /// - /// 發動時間,預設值為 00:00 - /// - public static string DoWorkTime - { - get - { - return _doWorkTime; - } - set - { - _doWorkTime = value; - } - } - - /// - /// 郵件模版路徑 - /// - public static string TemplatePath { get; set; } - - /// - /// 設定或取得簽核跟催服務是否啟動 - /// - public static bool Enabled - { - get - { - return _enabled; - } - set - { - if (value) - { - if (_enabled) - return; - - Instance._timer.Interval = _interval * 1000; - Instance._timer.AutoReset = true; - Instance._timer.Enabled = true; - _enabled = true; - } - else - { - if (!_enabled) - return; - - _enabled = false; - Instance._timer.Enabled = false; - } - } - } - - private FollowService() - { - _timer = new Timer(); - _timer.Enabled = false; - _timer.Elapsed += new ElapsedEventHandler(DoFollowWork); - conn = DAC.NewConnection(); - Dao員工 = new DAC_BPSN(conn); - } - - public static FollowService Instance - { - get - { - if (_instance == null) - _instance = new FollowService(); - return _instance; - } - } - - private void DoFollowWork(object sender, ElapsedEventArgs e) - { - string nowTime = DateTime.UtcNow.AddHours(8).ToString("HH:mm"); - if (nowTime.CompareTo(_doWorkTime) == 0 && !_busy) - { - _busy = true; - try - { - DAC_表單簽核明細 dao表單簽核明細 = new DAC_表單簽核明細(conn); - 表單簽核明細List first = dao表單簽核明細.Select第一次稽催(); - 表單簽核明細List second = dao表單簽核明細.Select第二次稽催(); - 表單簽核明細List third = dao表單簽核明細.Select第三次稽催(); - - foreach (表單簽核明細 item in first) - { - SendFollowMail(item, 3); - item.稽催狀態 = 1; - dao表單簽核明細.UpdateOne(item); - } - - foreach (表單簽核明細 item in second) - { - SendFollowMail(item, 7); - item.稽催狀態 = 2; - dao表單簽核明細.UpdateOne(item); - } - - foreach (表單簽核明細 item in third) - { - SendFollowMail(item, 14); - item.稽催狀態 = 3; - dao表單簽核明細.UpdateOne(item); - } - - DoSurveyReminderWork(); - } - finally - { - _busy = false; - } - } - } - - private void SendFollowMail(表單簽核明細 item, int 天數) - { - string 電子郵件 = Dao員工.Get電子郵件(item.簽核人員); - string 員工姓名 = Dao員工.Get員工姓名(item.簽核人員); - 發送郵件 發送郵件 = new 發送郵件(); - 發送郵件.發送簽核跟催郵件(item.簽核ID, 員工姓名, 電子郵件, 天數, TemplatePath); - } - - private void DoSurveyReminderWork() - { - if (string.IsNullOrEmpty(PublicVariable.SiteBaseUrl)) - return; - - string 手機版網址 = PublicVariable.SiteBaseUrl + "/MobileSurvey/Login.aspx"; - int deadlineDays = PublicVariable.SurveyReminderDeadlineDays; - DateTime minDate = PublicVariable.SurveyReminderMinCourseDate; - string[] excludeEmps = PublicVariable.SurveyReminderExcludeEmployees - .Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); - - DbCommand cmd = conn.CreateCommand(); - cmd.CommandText = - @"select A.學員編號, A.訓練課程編號, C.BPNME as 學員姓名, C.BPEML as 電子郵件, - B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄 - from 課程報名 A - inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號 - inner join BPSNView C on A.學員編號 = C.BPENO - where (A.報名狀態 = 'Y' or A.報名狀態 = 'R') - and B.訓練日期 >= @MinCourseDate - and (A.滿意度催填狀態 is null or A.滿意度催填狀態 = '') - and not exists ( - select 1 from 滿意度調查 D - where D.訓練課程企劃編號 = A.訓練課程編號 and D.學員編號 = A.學員編號 - ) - and dateadd(day, @DeadlineDays, B.訓練日期迄) < getdate() - order by A.學員編號"; - cmd.Parameters.Add(new SqlParameter("@MinCourseDate", minDate)); - cmd.Parameters.Add(new SqlParameter("@DeadlineDays", deadlineDays)); - - DataTable dt = new DataTable(); - using (var reader = cmd.ExecuteReader()) - { - dt.Load(reader); - } - - foreach (DataRow row in dt.Rows) - { - string 學員編號 = DAC.GetString(row["學員編號"]); - if (excludeEmps.Contains(學員編號)) - continue; - - string 學員姓名 = DAC.GetString(row["學員姓名"]); - string 電子郵件 = DAC.GetString(row["電子郵件"]); - string 訓練名稱 = DAC.GetString(row["訓練名稱"]); - DateTime 訓練日期 = DAC.GetDateTime(row["訓練日期"]); - DateTime 訓練日期迄 = DAC.GetDateTime(row["訓練日期迄"]); - int 訓練課程編號 = DAC.GetInt32(row["訓練課程編號"]); - - 發送郵件 發送郵件 = new 發送郵件(); - 發送郵件.發送滿意度催填郵件(學員姓名, 電子郵件, 訓練名稱, 訓練日期, 訓練日期迄, 手機版網址); - - DbCommand cmdUpd = conn.CreateCommand(); - cmdUpd.CommandText = - "update 課程報名 set 滿意度催填狀態 = 'Y'" + - " where 訓練課程編號 = @訓練課程編號 and 學員編號 = @學員編號"; - cmdUpd.Parameters.Add(new SqlParameter("@訓練課程編號", 訓練課程編號)); - cmdUpd.Parameters.Add(new SqlParameter("@學員編號", 學員編號)); - cmdUpd.ExecuteNonQuery(); - } - } - - } -} \ No newline at end of file diff --git a/branches/1150807/Common/PublicVariable.cs b/branches/1150807/Common/PublicVariable.cs deleted file mode 100644 index 4700e95..0000000 --- a/branches/1150807/Common/PublicVariable.cs +++ /dev/null @@ -1,255 +0,0 @@ -using NPOI.SS.Formula.Functions; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Web; -using System.Web.UI.WebControls; -using WebLib; - -namespace Education -{ - public class PublicVariable : WebLib.PublicVariable - { - private static Random r = new Random(); - - // 常用變數 - public static string[] 換行分隔 = { "\r\n" }; - - #region SESSION 變數名稱 - public const string CompanyId = "CompanyId"; - public const string EmployeeId = "EmployeeId"; - public const string EmployeeName = "EmployeeName"; - public const string EmployeeFunction = "EmployeeFunction"; - public const string CurrentPlace = "CurrentPlace"; - public const string CurrentPlaceName = "CurrentPlaceName"; - public const string UserGroups = "UserGroups"; - public const string EventPicturePath = "~/Upload/Event/"; - public const string BulletinAttachPath = "~/Upload/Attach/"; - public const string IsManager = "IsManager"; - public const string IsWorker = "IsWorker"; - public const string IsBackend = "IsBackend"; - #endregion - - #region 檔案上傳/圖檔上傳路徑 - public const string 講師照片路徑 = "~/PhotoUpload/Teacher/"; - public const string 場地照片路徑 = "~/PhotoUpload/Place/"; - public const string 課程剪影路徑 = "~/PhotoUpload/Class/"; - public const string 證照上傳路徑 = "~/DocUpload/Certificate/"; - public const string 溝通記錄上傳路徑 = "~/DocUpload/Communication/"; - #endregion - - #region 系統設定變數,由 Global.asax 讀取 web.config 中的設定 - - /// - /// 系統名稱 - /// - public static string SystemName = "Education"; - - /// - /// 未登入時開放某些功能 - /// - public static bool NoLoginFunction = false; - - /// - /// 是否為偵錯模式,會將系統錯誤訊息顯示在網頁上 - /// - public static bool DEBUG = true; - - /// - /// 管理員群組 - /// - public static string ManagerGroup = "'TR01'"; - - /// - /// 承辦人群組 - /// - public static string WorkerGroup = "'TR02'"; - - /// - /// 總管理處ID - /// - public static int 總管理處ID = 2; - - /// - /// 人資部ID - /// - public static int 人資部ID = 56; - - /// - /// 財務部ID - /// - public static int 財務部ID = 60; - - /// - /// 是否使用 SSL 登入發郵件 - /// - public static bool SendMailBySSL = false; - - /// - /// 郵件發送主機 - /// - public static string SendMailHost = ""; - - /// - /// 郵件發送通訊埠,不使用 SSL 的通常是 25,使用 SSL 的通常是 465 - /// - public static int SendMailPort = 25; - - /// - /// 郵件發送帳號 - /// - public static string SendMailUserName = ""; - - /// - /// 郵件發送密碼 - /// - public static string SendMailPassword = ""; - - #region 滿意度調查催填設定 - public const string SurveyReminderDeadlineDaysKey = "SurveyReminderDeadlineDays"; - public const string SurveyReminderExcludeEmployeesKey = "SurveyReminderExcludeEmployees"; - public const string SurveyReminderMinCourseDateKey = "SurveyReminderMinCourseDate"; - public const string SiteBaseUrlKey = "SiteBaseUrl"; - - /// - /// 上課後幾天內要填寫滿意度調查 - /// - public static int SurveyReminderDeadlineDays = 10; - - /// - /// 排除催填的員工編號(逗號分隔) - /// - public static string SurveyReminderExcludeEmployees = "00002,00003"; - - /// - /// 只催填此日期之後的課程 - /// - public static DateTime SurveyReminderMinCourseDate = new DateTime(2026, 7, 1); - - /// - /// 站台基礎 URL(如 http://hostname:port) - /// - public static string SiteBaseUrl = ""; - #endregion - - #endregion - - public static string SystemVersion - { - get - { - System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); - FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location); - return fvi.FileVersion; - } - } - - private static DateTime? _領據關帳年月UpdateTime = null; - private static string _領據關帳年月 = string.Empty; - public static string 領據關帳年月 - { - get - { - if (string.IsNullOrEmpty(_領據關帳年月) || !_領據關帳年月UpdateTime.HasValue || _領據關帳年月UpdateTime < DateTime.Now.AddMinutes(-10)) - { - using (var conn = DAC.NewConnection()) - { - var daoBWEX = new DAC_BWEX(conn); - _領據關帳年月 = daoBWEX.Read領據關帳年月; - _領據關帳年月UpdateTime = DateTime.Now; - } - } - return _領據關帳年月; - } - set - { - _領據關帳年月 = value; - _領據關帳年月UpdateTime = DateTime.Now; - using (var conn = DAC.NewConnection()) - { - new DAC_BWEX(conn).WriteSetting("領據關帳年月", 1, value); - } - } - } - - private static decimal? _領據執行業務所得課稅門檻 = null; - public static decimal 領據執行業務所得課稅門檻 - { - get - { - if (!_領據執行業務所得課稅門檻.HasValue) - { - using (var conn = DAC.NewConnection()) - { - _領據執行業務所得課稅門檻 = new DAC_BRTE(conn).領據執行業務所得課稅門檻; - } - } - return _領據執行業務所得課稅門檻.Value; - } - } - - private static decimal? _領據薪資課稅門檻 = null; - public static decimal 領據薪資課稅門檻 - { - get - { - if (!_領據薪資課稅門檻.HasValue) - { - using (var conn = DAC.NewConnection()) - { - _領據薪資課稅門檻 = new DAC_BRTE(conn).領據薪資課稅門檻; - } - } - return _領據薪資課稅門檻.Value; - } - } - - private static decimal? _領據基本工資 = null; - public static decimal 領據基本工資 - { - get - { - if (!_領據基本工資.HasValue) - { - using (var conn = DAC.NewConnection()) - { - _領據基本工資 = new DAC_BRTE(conn).領據基本工資; - } - } - return _領據基本工資.Value; - } - } - - private static decimal? _領據執行業務所得稅率 = null; - public static decimal 領據執行業務所得稅率 - { - get - { - if (!_領據執行業務所得稅率.HasValue) - { - using (var conn = DAC.NewConnection()) - { - _領據執行業務所得稅率 = new DAC_BRTE(conn).領據執行業務所得稅率; - } - } - return _領據執行業務所得稅率.Value; - } - } - - private static decimal? _領據薪資稅率 = null; - public static decimal 領據薪資稅率 - { - get - { - if (!_領據薪資稅率.HasValue) - { - using (var conn = DAC.NewConnection()) - { - _領據薪資稅率 = new DAC_BRTE(conn).領據薪資稅率; - } - } - return _領據薪資稅率.Value; - } - } - } -} \ No newline at end of file diff --git a/branches/1150807/Common/UNMWEB.cs b/branches/1150807/Common/UNMWEB.cs deleted file mode 100644 index 492ee8e..0000000 --- a/branches/1150807/Common/UNMWEB.cs +++ /dev/null @@ -1,220 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Data.Common; -using System.Text; -using WebLib; - -namespace Education -{ - /// - /// 取得權限設定 - /// - public class MWEB: DAC - { - public MWEB() - { - } - - /// - /// 檢查目前登入的員工是否有某程式的權限 - /// - /// 程式編號 - /// 權限名稱 - /// 員工編號 - /// - public bool CheckRight(string programId, WRightName rightName, string employeeId) - { - if (programId == null) - programId = "NO PROGRAM ID"; - if (employeeId == null) - employeeId = "NOBODY"; - - // 取得員工權限 - string right1 = BWCPE_GetRight(programId, employeeId, rightName); - - // 取得這個員工隸屬的群組 - string[] bpglps = BWEH_GetBpglpListByBpeno(employeeId); - - // 取得各群組權限 - string[] right2 = new string[bpglps.Length]; - for (int i = 0; i < right2.Length; i++) - { - right2[i] = BWCPG_GetRight(programId, bpglps[i], rightName); - } - - // 綜合判斷權限 - string right = ""; - - if (right1 != "") - right = right1; - - if (right != "Y") - for (int i = 0; i < right2.Length; i++) - { - if (right2[i] != "") - { - if (right != "Y" && right2[i] == "Y") - right = "Y"; - else if (right != "Y" && right2[i] == "N") - right = "N"; - } - } - return right == "Y"; - } - - /// - /// 取員工權限 - /// - /// 權限編號 - /// 員工編號 - /// 功能名稱 - /// - private string BWCPE_GetRight(string rightId, string employId, WRightName functionName) - { - string funcName = ""; - switch (functionName) - { - case WRightName.Execute: - funcName = "BPRT1"; - break; - case WRightName.Insert: - funcName = "BPRTI"; - break; - case WRightName.Update: - funcName = "BPRTM"; - break; - case WRightName.Delete: - funcName = "BPRTD"; - break; - case WRightName.Search: - funcName = "BPRTF"; - break; - case WRightName.Print: - funcName = "BPRTP"; - break; - } - - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP FROM BWCPE WHERE BPPRG=@BPPRG AND BPENO=@BPENO"; - - AddParam(cmd, "BPPRG", rightId); - AddParam(cmd, "BPENO", employId); - - DataTable data = Select(cmd); - if (data.Rows.Count != 0) - { - return data.Rows[0][funcName].ToString(); - } - return ""; - } - - /// - /// 取員工所屬群組 - /// - /// - /// - private string[] BWEH_GetBpglpListByBpeno(string employeeId) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT E.BPGLP AS BPGLP - FROM BWEG E, BWEH G - WHERE E.BPGLP=G.BPGLP AND G.BPENO=@BPENO - ORDER BY E.BPGLP "; - AddParam(cmd, "BPENO", employeeId); - - DataTable inGroup = Select(cmd); - if (inGroup.Rows.Count == 0) - return new string[0]; - else - { - string[] result = new string[inGroup.Rows.Count]; - for (int i = 0; i < inGroup.Rows.Count; i++) - { - result[i] = inGroup.Rows[i][0].ToString(); - } - return result; - } - } - - /// - /// 取群組權限 - /// - /// 權限編號 - /// 群組編號 - /// 功能名稱 - /// - /// - private string BWCPG_GetRight(string rightId, string groupId, WRightName functionName) - { - string funcName = ""; - switch (functionName) - { - case WRightName.Execute: - funcName = "BPRT1"; - break; - case WRightName.Insert: - funcName = "BPRTI"; - break; - case WRightName.Update: - funcName = "BPRTM"; - break; - case WRightName.Delete: - funcName = "BPRTD"; - break; - case WRightName.Search: - funcName = "BPRTF"; - break; - case WRightName.Print: - funcName = "BPRTP"; - break; - } - - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP FROM BWCPG WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP"; - - AddParam(cmd, "BPPRG", rightId); - AddParam(cmd, "BPGLP", groupId); - - DataTable data = Select(cmd); - if (data.Rows.Count != 0) - { - return data.Rows[0][funcName].ToString(); - } - return ""; - } - } - - public enum WRightName - { - /// - /// 主檔 - /// - Execute, - /// - /// 新增 - /// - Insert, - /// - /// 更正 - /// - Update, - /// - /// 刪除 - /// - Delete, - /// - /// 查詢 - /// - Search, - /// - /// 印表 - /// - Print - } - - public class ProgramID - { - public const string 匯出基本資料 = "TR_EXPORT"; - } -} diff --git a/branches/1150807/Common/WDeleteFileService.cs b/branches/1150807/Common/WDeleteFileService.cs deleted file mode 100644 index 646b223..0000000 --- a/branches/1150807/Common/WDeleteFileService.cs +++ /dev/null @@ -1,173 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Collections; -using System.Timers; -using System.IO; - -namespace Wellan.Service -{ - /// - /// 檔案定時清除服務 - /// - public class WDeleteFileService - { - private WDeleteFileService() - { - _deleteFilePatterns = new List(); - _timer = new Timer(); - _timer.Enabled = false; - _timer.Elapsed += new ElapsedEventHandler(DoDeleteFile); - } - - public static WDeleteFileService GetInstance() - { - if (_instance == null) - _instance = new WDeleteFileService(); - return _instance; - } - - /// - /// 檔案刪除間隔時間,單位為秒。預設值為 600 秒 - /// - public int Interval - { - get - { - return _interval; - } - set - { - _interval = value; - } - } - - /// - /// 要刪除多久之前的檔案,單位為秒。預設值為 600 秒 - /// - public int FileAgeToDelete - { - get - { - return Convert.ToInt32(_fileAge.TotalSeconds); - } - set - { - _fileAge = new TimeSpan(value * TimeSpan.TicksPerSecond); - } - } - - /// - /// 設定或取得檔案定時清除服務是否啟動 - /// - public bool Enabled - { - get - { - return _enabled; - } - set - { - if (value) - { - if (_enabled) - return; - - _timer.Interval = _interval * 1000; - _timer.AutoReset = true; - _timer.Enabled = true; - _enabled = true; - } - else - { - if (!_enabled) - return; - - _enabled = false; - _timer.Enabled = false; - } - } - } - - /// - /// 欲清除的檔案路徑及檔案名稱,檔案名稱可以使用萬用字元 - /// 需要多個檔案路徑及檔案名稱時,請將所需的檔案路徑及檔案名稱一一加入 - /// 例如:c:\temp\*.mdb 表示要清除 c:\temp 目錄下的 *.mdb - /// - public List DeletePatterns - { - get - { - return _deleteFilePatterns; - } - } - - /// - /// 實際執行刪除的動作 - /// - private void DoDeleteFile(object sender, ElapsedEventArgs e) - { - if (!_enabled) - { - _timer.Enabled = false; - return; - } - - _timer.Enabled = false; - try - { - foreach (string pattern in _deleteFilePatterns) - { - string namepart = Path.GetFileName(pattern); - string pathPart = pattern.Substring(0, pattern.Length - namepart.Length); - try - { - DirectoryInfo dirInfo = new DirectoryInfo(pathPart); - FileInfo[] matchFiles = dirInfo.GetFiles(namepart); - foreach (FileInfo file in matchFiles) - { - try - { - if (DateTime.Now - file.LastWriteTime > _fileAge) - file.Delete(); - } - catch - { - // do nothing - } - } - } - catch - { - // do nothing - } - } - } - finally - { - _timer.Enabled = true; - } - } - - private static WDeleteFileService _instance = null; - private List _deleteFilePatterns = null; - private Timer _timer = null; - private int _interval = 600; - private TimeSpan _fileAge = new TimeSpan(TimeSpan.TicksPerSecond * 600); - private bool _enabled = false; - - #region UNIT TEST - public static void Main() - { - WDeleteFileService delSrv = WDeleteFileService.GetInstance(); - delSrv.DeletePatterns.Add(@"c:\temp\*.*"); - delSrv.Interval = 5; - delSrv.FileAgeToDelete = 1; - delSrv.Enabled = true; - Console.WriteLine("Press ENTER to end program"); - Console.ReadLine(); - delSrv.Enabled = false; - } - #endregion - } -} diff --git a/branches/1150807/Common/WMailSender.cs b/branches/1150807/Common/WMailSender.cs deleted file mode 100644 index ce36ef6..0000000 --- a/branches/1150807/Common/WMailSender.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Net; -using System.Net.Mail; -using System.Collections.Generic; -using System.Timers; - -/// -/// 郵件傳送服務 -/// -public class WMailSender -{ - private static WMailSender _instance = null; - private Queue _queue = null; - private bool _enabled = false; - private int _interval = 30; - private Timer _timer = null; - private string _host = ""; - - private WMailSender() - { - _queue = new Queue(); - - _timer = new Timer(); - _timer.Enabled = false; - _timer.Elapsed += new ElapsedEventHandler(SendMailLoop); - } - - public static WMailSender GetInstance() - { - if (_instance == null) - _instance = new WMailSender(); - return _instance; - } - - public string Host - { - set - { - _host = value; - } - get - { - return _host; - } - } - - public void Send(MailMessage message) - { - _queue.Enqueue(message); - } - - private void SendMailLoop(object sender, ElapsedEventArgs e) - { - if (!_enabled) - { - _timer.Enabled = false; - return; - } - - _timer.Enabled = false; - - SmtpClient _client = new SmtpClient(); - //_client.DeliveryMethod = SmtpDeliveryMethod.Network; - - try - { - while (_queue.Count > 0) - { - MailMessage message = _queue.Dequeue(); - try - { - _client.Send(message); - } - catch - { - // 如果傳送失敗,需重傳 - _queue.Enqueue(message); - } - } - } - finally - { - _timer.Enabled = true; - } - } - - public int Interval - { - get - { - return _interval; - } - set - { - _interval = value; - } - } - - public bool Enabled - { - get - { - return _enabled; - } - set - { - if (value) - { - if (_enabled) - return; - - _timer.Interval = _interval * 1000; - _timer.AutoReset = true; - _timer.Enabled = true; - _enabled = true; - } - else - { - if (!_enabled) - return; - - _enabled = false; - _timer.Enabled = false; - } - } - } -} diff --git a/branches/1150807/Config/LookupConfig.xml b/branches/1150807/Config/LookupConfig.xml deleted file mode 100644 index a17e654..0000000 --- a/branches/1150807/Config/LookupConfig.xml +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/branches/1150807/Config/LookupConfig.xsd b/branches/1150807/Config/LookupConfig.xsd deleted file mode 100644 index cda1c8a..0000000 --- a/branches/1150807/Config/LookupConfig.xsd +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/branches/1150807/Config/LookupConfig.xsx b/branches/1150807/Config/LookupConfig.xsx deleted file mode 100644 index 53cfc18..0000000 --- a/branches/1150807/Config/LookupConfig.xsx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/branches/1150807/DAC/Common/DAC_檔案圖示.cs b/branches/1150807/DAC/Common/DAC_檔案圖示.cs deleted file mode 100644 index ab4d83e..0000000 --- a/branches/1150807/DAC/Common/DAC_檔案圖示.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class DAC_檔案圖示: NameValueList - { - public DAC_檔案圖示() - { - Add("doc.png", "doc"); - Add("doc.png", "docx"); - Add("xls.png", "xls"); - Add("xls.png", "xlsx"); - Add("txt.png", "txt"); - Add("exe.png", "exe"); - Add("gif.png", "gif"); - Add("html.png", "htm"); - Add("html.png", "html"); - Add("jpg.png", "jpg"); - Add("jpg.png", "jpeg"); - Add("pdf.png", "pdf"); - Add("png.png", "png"); - Add("ppt.png", "ppt"); - Add("rar.png", "rar"); - Add("rtf.png", "rtf"); - Add("swf.png", "swf"); - Add("zip.png", "zip"); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/Common/GetData.cs b/branches/1150807/DAC/Common/GetData.cs deleted file mode 100644 index bca6c60..0000000 --- a/branches/1150807/DAC/Common/GetData.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Data.Common; -using WebLib; - -namespace Education -{ - public class DAC_GetData : DAC - { - public DAC_GetData() - : base() - { } - - public DAC_GetData(DbConnection conn) - : base(conn) - { } - - public 場地 取得選定場地(int 課程企劃id) - { - DAC_場地 Dao場地 = new DAC_場地(conn); - DAC_訓練課程企劃 Dao訓練課程企劃 = new DAC_訓練課程企劃(conn); - int 場地編號 = Dao訓練課程企劃.Select選定場地(課程企劃id); - if (場地編號 > 0) - { - 場地List d = Dao場地.SelectOne(場地編號); - if (d.Count > 0) - return d[0]; - } - else - { - string 場地名稱 = Dao訓練課程企劃.Select選定場地名稱(課程企劃id); - if (!string.IsNullOrEmpty(場地名稱)) - { - 場地 result = new 場地(); - result.場地名稱 = 場地名稱; - return result; - } - } - return new 場地(); - } - - public 講師 取得選定講師(int 課程企劃id, int 課程序號) - { - DAC_講師 Dao講師 = new DAC_講師(conn); - DAC_訓練課程企劃 Dao訓練課程企劃 = new DAC_訓練課程企劃(conn); - int 講師編號 = Dao訓練課程企劃.Select選定講師(課程企劃id, 課程序號); - if (講師編號 > 0) - { - 講師List d = Dao講師.SelectOne(講師編號); - if (d.Count > 0) - return d[0]; - } - else - { - string 講師姓名 = Dao訓練課程企劃.Select選定講師名稱(課程企劃id, 課程序號); - if (!string.IsNullOrEmpty(講師姓名)) - { - 講師 result = new 講師(); - result.姓名 = 講師姓名; - return result; - } - } - return new 講師(); - } - - public 講師 取得選定講師(object 課程企劃id, object 課程序號) - { - return 取得選定講師(DAC.GetInt32(課程企劃id), DAC.GetInt32(課程序號)); - } - - public string 取得檢附資料參考(string id) - { - return new DAC_BCLS().Get類別名稱(DAC_檢附資料參考.BSPAR, id).Replace("\r\n", "
").Replace("\r", "
").Replace("\n", "
"); - } - - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/人派/BWCPE_DAC.cs b/branches/1150807/DAC/人派/BWCPE_DAC.cs deleted file mode 100644 index 17e1633..0000000 --- a/branches/1150807/DAC/人派/BWCPE_DAC.cs +++ /dev/null @@ -1,235 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Wellan.Common; -using System.Data; -using System.Data.Common; - -namespace Education -{ - /// - /// 員工權限 - /// - public class BWCPE_DAC : DAC - { - private DbCommand cmdSelect = null; - private DbCommand cmdSelectRight = null; - private DbCommand cmdCheckExist = null; - private DbCommand cmdInsert = null; - private DbCommand cmdUpdate = null; - - public BWCPE_DAC() - { - } - - public BWCPE_DAC(string connectionConfig, string connectionConfigName) - : base(connectionConfig, connectionConfigName) - { - } - - private void PrepareSql() - { - EnsureQuery(); - string tblBwcpe = WGuard1.WCFA("BWCPE"); - - if (cmdSelect == null) - { - cmdSelect = Query.NewCommand(Query.ReplaceParamNamePrefix( - "SELECT B.BPPRG AS BPPRG, B.BPENO AS BPENO, A.BPENO AS BBPENO, A.BPNME AS BBPNME, " - + " B.BPRT1 AS BPRT1, B.BPRTI AS BPRTI, B.BPRTM AS BPRTM, B.BPRTD AS BPRTD, " - + " B.BPRTF AS BPRTF, B.BPRTP AS BPRTP, B.TRDAT AS TRDAT, B.TRMOD AS TRMOD, " - + " B.TRUSR AS TRUSR " - + " FROM " + WGuard1.WCFA("BPSN") + " A " - + " LEFT OUTER JOIN " + tblBwcpe + " B ON A.BPENO=B.BPENO AND B.BPPRG=@BPPRG " - + " WHERE A.BPEDY IS NULL AND A.BPENO <> '  ' " - + " ORDER BY A.BPENO ")); - cmdSelect.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - } - - if (cmdCheckExist == null) - { - cmdCheckExist = Query.NewCommand(Query.ReplaceParamNamePrefix("SELECT COUNT(1) FROM " + tblBwcpe + " WHERE BPPRG=@BPPRG AND BPENO=@BPENO")); - cmdCheckExist.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - cmdCheckExist.Parameters.Add(Query.NewParameter("BPENO", DbType.AnsiString)); - } - - if (cmdInsert == null) - { - cmdInsert = Query.NewCommand(Query.ReplaceParamNamePrefix( - "INSERT INTO " + tblBwcpe + " (BPPRG, BPENO, BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP, TRDAT, TRMOD, TRUSR) " - + " VALUES (@BPPRG, @BPENO, @BPRT1, @BPRTI, @BPRTM, @BPRTD, @BPRTF, @BPRTP, @TRDAT, 'INSERT', @TRUSR)")); - cmdInsert.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPENO", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRT1", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTI", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTM", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTD", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTF", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTP", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("TRDAT", DbType.DateTime)); - cmdInsert.Parameters.Add(Query.NewParameter("TRUSR", DbType.AnsiString)); - } - - if (cmdUpdate == null) - { - cmdUpdate = Query.NewCommand(Query.ReplaceParamNamePrefix( - "UPDATE " + tblBwcpe - + " SET BPRT1=@BPRT1, BPRTI=@BPRTI, BPRTM=@BPRTM, BPRTD=@BPRTD, BPRTF=@BPRTF," - + " BPRTP=@BPRTP, TRDAT=@TRDAT, TRMOD='UPDATE', TRUSR=@TRUSR" - + " WHERE BPPRG=@BPPRG AND BPENO=@BPENO")); - cmdUpdate.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPENO", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRT1", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTI", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTM", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTD", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTF", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTP", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("TRDAT", DbType.DateTime)); - cmdUpdate.Parameters.Add(Query.NewParameter("TRUSR", DbType.AnsiString)); - } - - if (cmdSelectRight == null) - { - cmdSelectRight = Query.NewCommand(Query.ReplaceParamNamePrefix( - "SELECT BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP " - + " FROM " + tblBwcpe + " WHERE BPPRG=@BPPRG AND BPENO=@BPENO ")); - cmdSelectRight.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - cmdSelectRight.Parameters.Add(Query.NewParameter("BPENO", DbType.AnsiString)); - } - } - - public DataTable Select(string bpprg) - { - PrepareSql(); - cmdSelect.Parameters["BPPRG"].Value = bpprg; - return Query.Select(cmdSelect); - } - - public bool CheckExist(string bpprg, string bpeno) - { - PrepareSql(); - cmdCheckExist.Parameters["BPPRG"].Value = bpprg; - cmdCheckExist.Parameters["BPENO"].Value = bpeno; - int i = Convert.ToInt16(Query.ExecuteScalar(cmdCheckExist)); - return !(i == 0); - } - - public void Insert(string bpprg, string bpeno, string bprt1, string bprti, - string bprtm, string bprtd, string bprtf, string bprtp) - { - PrepareSql(); - FillParameters(cmdInsert, bpprg, bpeno, bprt1, bprti, bprtm, bprtd, bprtf, bprtp); - Query.ExecuteNonQuery(cmdInsert); - } - - public void Update(string bpprg, string bpeno, string bprt1, string bprti, - string bprtm, string bprtd, string bprtf, string bprtp) - { - PrepareSql(); - FillParameters(cmdUpdate, bpprg, bpeno, bprt1, bprti, bprtm, bprtd, bprtf, bprtp); - Query.ExecuteNonQuery(cmdUpdate); - } - - public void SetAllRight(string bpprg, string bpeno, bool right) - { - string r = right ? "Y" : "N"; - if (!CheckExist(bpprg, bpeno)) - { - Insert(bpprg, bpeno, r, r, r, r, r, r); - } - else - { - Update(bpprg, bpeno, r, r, r, r, r, r); - } - } - - private void FillParameters(DbCommand cmd, string bpprg, string bpeno, string bprt1, string bprti, - string bprtm, string bprtd, string bprtf, string bprtp) - { - cmd.Parameters["BPPRG"].Value = bpprg; - cmd.Parameters["BPENO"].Value = bpeno; - cmd.Parameters["BPRT1"].Value = bprt1 == "Y" || bprt1 == "N" ? bprt1 : "N"; - cmd.Parameters["BPRTI"].Value = bprti == "Y" || bprti == "N" ? bprti : "N"; - cmd.Parameters["BPRTM"].Value = bprtm == "Y" || bprtm == "N" ? bprtm : "N"; - cmd.Parameters["BPRTD"].Value = bprtd == "Y" || bprtd == "N" ? bprtd : "N"; - cmd.Parameters["BPRTF"].Value = bprtf == "Y" || bprtf == "N" ? bprtf : "N"; - cmd.Parameters["BPRTP"].Value = bprtp == "Y" || bprtp == "N" ? bprtp : "N"; - cmd.Parameters["TRDAT"].Value = DateTime.UtcNow.AddHours(8); - cmd.Parameters["TRUSR"].Value = WGuard1.CUSR; - } - - /// - /// 取得員工權限 - /// "Y" 表示有權限 "N" 表示無權限 "" 表示未設定 - /// - /// 程式名稱 - /// 員工編號 - /// 權限 - /// "Y" 表示有權限 "N" 表示無權限 "" 表示未設定 - public string GetRight(string bpprg, string bpeno, WRightName right) - { - PrepareSql(); - string funcName = ""; - switch (right) - { - case WRightName.Execute: - funcName = "BPRT1"; - break; - case WRightName.Insert: - funcName = "BPRTI"; - break; - case WRightName.Update: - funcName = "BPRTM"; - break; - case WRightName.Delete: - funcName = "BPRTD"; - break; - case WRightName.Search: - funcName = "BPRTF"; - break; - case WRightName.Print: - funcName = "BPRTP"; - break; - } - - cmdSelectRight.Parameters["BPPRG"].Value = bpprg; - cmdSelectRight.Parameters["BPENO"].Value = bpeno; - DataTable data = Query.Select(cmdSelectRight); - - if (data.Rows.Count != 0) - { - return data.Rows[0][funcName].ToString(); - } - return ""; - } - } - - public enum WRightName - { - /// - /// 主檔 - /// - Execute, - /// - /// 新增 - /// - Insert, - /// - /// 更正 - /// - Update, - /// - /// 刪除 - /// - Delete, - /// - /// 查詢 - /// - Search, - /// - /// 印表 - /// - Print - } -} diff --git a/branches/1150807/DAC/人派/BWCPG_DAC.cs b/branches/1150807/DAC/人派/BWCPG_DAC.cs deleted file mode 100644 index 980b2e0..0000000 --- a/branches/1150807/DAC/人派/BWCPG_DAC.cs +++ /dev/null @@ -1,206 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Wellan.Common; -using System.Data; -using System.Data.Common; - -namespace Education -{ - /// - /// 群組權限 - /// - public class BWCPG_DAC : DAC - { - private DbCommand cmdSelect = null; - private DbCommand cmdSelectRight = null; - private DbCommand cmdCheckExist = null; - private DbCommand cmdInsert = null; - private DbCommand cmdUpdate = null; - - public BWCPG_DAC() - { - } - - public BWCPG_DAC(string connectionConfig, string connectionConfigName) - : base(connectionConfig, connectionConfigName) - { - } - - private void PrepareSql() - { - EnsureQuery(); - string tblBwcpg = WGuard1.WCFA("BWCPG"); - - if (cmdSelect == null) - { - cmdSelect = Query.NewCommand(Query.ReplaceParamNamePrefix( - "SELECT B.BPPRG AS BPPRG, B.BPGLP AS BPGLP, A.BPGLP AS BBPGLP, A.BPDSP AS BBPDSP, " - + " B.BPRT1 AS BPRT1, B.BPRTI AS BPRTI, B.BPRTM AS BPRTM, B.BPRTD AS BPRTD, " - + " B.BPRTF AS BPRTF, B.BPRTP AS BPRTP, B.TRDAT AS TRDAT, B.TRMOD AS TRMOD, " - + " B.TRUSR AS TRUSR " - + " FROM " + WGuard1.WCFA("BWEG") + " A " - + " LEFT OUTER JOIN " + tblBwcpg + " B ON A.BPGLP=B.BPGLP AND B.BPPRG=@BPPRG " - + " ORDER BY A.BPGLP ")); - cmdSelect.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - } - - if (cmdCheckExist == null) - { - cmdCheckExist = Query.NewCommand(Query.ReplaceParamNamePrefix("SELECT COUNT(1) FROM " + tblBwcpg + " WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP")); - cmdCheckExist.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - cmdCheckExist.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString)); - } - - if (cmdInsert == null) - { - cmdInsert = Query.NewCommand(Query.ReplaceParamNamePrefix( - "INSERT INTO " + tblBwcpg + " (BPPRG, BPGLP, BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP, TRDAT, TRMOD, TRUSR) " - + " VALUES (@BPPRG, @BPGLP, @BPRT1, @BPRTI, @BPRTM, @BPRTD, @BPRTF, @BPRTP, @TRDAT, 'INSERT', @TRUSR)")); - cmdInsert.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRT1", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTI", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTM", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTD", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTF", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("BPRTP", DbType.AnsiString)); - cmdInsert.Parameters.Add(Query.NewParameter("TRDAT", DbType.DateTime)); - cmdInsert.Parameters.Add(Query.NewParameter("TRUSR", DbType.AnsiString)); - } - - if (cmdUpdate == null) - { - cmdUpdate = Query.NewCommand(Query.ReplaceParamNamePrefix( - "UPDATE " + tblBwcpg - + " SET BPRT1=@BPRT1, BPRTI=@BPRTI, BPRTM=@BPRTM, BPRTD=@BPRTD, BPRTF=@BPRTF," - + " BPRTP=@BPRTP, TRDAT=@TRDAT, TRMOD='UPDATE', TRUSR=@TRUSR" - + " WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP")); - cmdUpdate.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRT1", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTI", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTM", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTD", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTF", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("BPRTP", DbType.AnsiString)); - cmdUpdate.Parameters.Add(Query.NewParameter("TRDAT", DbType.DateTime)); - cmdUpdate.Parameters.Add(Query.NewParameter("TRUSR", DbType.AnsiString)); - } - - if (cmdSelectRight == null) - { - cmdSelectRight = Query.NewCommand(Query.ReplaceParamNamePrefix( - "SELECT BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP " - + " FROM " + tblBwcpg + " WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP ")); - cmdSelectRight.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString)); - cmdSelectRight.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString)); - } - } - - public DataTable Select(string bpprg) - { - PrepareSql(); - cmdSelect.Parameters["BPPRG"].Value = bpprg; - return Query.Select(cmdSelect); - } - - public bool CheckExist(string bpprg, string bpglp) - { - PrepareSql(); - cmdCheckExist.Parameters["BPPRG"].Value = bpprg; - cmdCheckExist.Parameters["BPGLP"].Value = bpglp; - int i = Convert.ToInt16(Query.ExecuteScalar(cmdCheckExist)); - return i != 0; - } - - public void Insert(string bpprg, string bpglp, string bprt1, string bprti, - string bprtm, string bprtd, string bprtf, string bprtp) - { - PrepareSql(); - FillParameters(cmdInsert, bpprg, bpglp, bprt1, bprti, bprtm, bprtd, bprtf, bprtp); - Query.ExecuteNonQuery(cmdInsert); - } - - public void Update(string bpprg, string bpglp, string bprt1, string bprti, - string bprtm, string bprtd, string bprtf, string bprtp) - { - PrepareSql(); - FillParameters(cmdUpdate, bpprg, bpglp, bprt1, bprti, bprtm, bprtd, bprtf, bprtp); - Query.ExecuteNonQuery(cmdUpdate); - } - - public void SetAllRight(string bpprg, string bpglp, bool right) - { - string r = right ? "Y" : "N"; - if (!CheckExist(bpprg, bpglp)) - { - Insert(bpprg, bpglp, r, r, r, r, r, r); - } - else - { - Update(bpprg, bpglp, r, r, r, r, r, r); - } - } - - private void FillParameters(DbCommand cmd, string bpprg, string bpglp, string bprt1, string bprti, - string bprtm, string bprtd, string bprtf, string bprtp) - { - cmd.Parameters["BPPRG"].Value = bpprg; - cmd.Parameters["BPGLP"].Value = bpglp; - cmd.Parameters["BPRT1"].Value = bprt1 == "Y" || bprt1 == "N" ? bprt1 : "N"; - cmd.Parameters["BPRTI"].Value = bprti == "Y" || bprti == "N" ? bprti : "N"; - cmd.Parameters["BPRTM"].Value = bprtm == "Y" || bprtm == "N" ? bprtm : "N"; - cmd.Parameters["BPRTD"].Value = bprtd == "Y" || bprtd == "N" ? bprtd : "N"; - cmd.Parameters["BPRTF"].Value = bprtf == "Y" || bprtf == "N" ? bprtf : "N"; - cmd.Parameters["BPRTP"].Value = bprtp == "Y" || bprtp == "N" ? bprtp : "N"; - cmd.Parameters["TRDAT"].Value = DateTime.UtcNow.AddHours(8); - cmd.Parameters["TRUSR"].Value = WGuard1.CUSR; - } - - /// - /// 取得群組權限 - /// "Y" 表示有權限 "N" 表示無權限 "" 表示未設定 - /// - /// 程式名稱 - /// 群組編號 - /// 權限 - /// "Y" 表示有權限 "N" 表示無權限 "" 表示未設定 - public string GetRight(string bpprg, string bpglp, WRightName right) - { - PrepareSql(); - string funcName = ""; - switch (right) - { - case WRightName.Execute: - funcName = "BPRT1"; - break; - case WRightName.Insert: - funcName = "BPRTI"; - break; - case WRightName.Update: - funcName = "BPRTM"; - break; - case WRightName.Delete: - funcName = "BPRTD"; - break; - case WRightName.Search: - funcName = "BPRTF"; - break; - case WRightName.Print: - funcName = "BPRTP"; - break; - } - - cmdSelectRight.Parameters["BPPRG"].Value = bpprg; - cmdSelectRight.Parameters["BPGLP"].Value = bpglp; - DataTable data = Query.Select(cmdSelectRight); - - if (data.Rows.Count != 0) - { - return data.Rows[0][funcName].ToString(); - } - return ""; - } - } -} diff --git a/branches/1150807/DAC/人派/BWEH_DAC.cs b/branches/1150807/DAC/人派/BWEH_DAC.cs deleted file mode 100644 index 12cb0f1..0000000 --- a/branches/1150807/DAC/人派/BWEH_DAC.cs +++ /dev/null @@ -1,215 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.Common; -using Wellan.Common; - -namespace Education -{ - /// - /// 員工群組 - /// - public class BWEH_DAC : DAC - { - DbCommand cmdInsert = null; - DbCommand cmdDelete = null; - - public BWEH_DAC() - { - } - - public BWEH_DAC(string connectionConfig, string connectionConfigName) - : base(connectionConfig, connectionConfigName) - { - } - - private void PrepareSql() - { - EnsureQuery(); - - if (cmdInsert == null) - { - cmdInsert = Query.NewCommand("INSERT INTO " + WGuard1.WCFA("BWEH") + " (BPGLP, BPENO) VALUES (@BPGLP, @BPENO)"); - cmdInsert.Parameters.Add(Query.NewParameter("BPGLP", DbType.String)); - cmdInsert.Parameters.Add(Query.NewParameter("BPENO", DbType.String)); - } - - if (cmdDelete == null) - { - cmdDelete = Query.NewCommand("DELETE FROM " + WGuard1.WCFA("BWEH") + " WHERE BPGLP=@BPGLP AND BPENO=@BPENO"); - cmdDelete.Parameters.Add(Query.NewParameter("BPGLP", DbType.String)); - cmdDelete.Parameters.Add(Query.NewParameter("BPENO", DbType.String)); - } - } - - public void SelectByBpglp(string bpglp, out DataTable inGroup, out DataTable outGroup) - { - PrepareSql(); - inGroup = Query.Select( - "SELECT E.BPENO AS BPENO, E.BPNME AS BPNME " - + " FROM " + WGuard1.WCFA("BPSN") + " E," + WGuard1.WCFA("BWEH") + " G" - + " WHERE G.BPENO=E.BPENO AND G.BPGLP='" + bpglp +"' " - + " AND E.BPEDY IS NULL " - + " ORDER BY E.BPENO "); - - outGroup = Query.Select( - "SELECT BPENO, BPNME FROM " + WGuard1.WCFA("BPSN") - + " WHERE BPENO<>'  ' " - + " AND BPEDY IS NULL " - + " AND BPENO NOT IN (SELECT E.BPENO AS BPENO " - + " FROM " + WGuard1.WCFA("BPSN") + " E," + WGuard1.WCFA("BWEH") + " G" - + " WHERE G.BPENO=E.BPENO AND G.BPGLP='" + bpglp + "' " - + " AND E.BPEDY IS NULL ) " - + " ORDER BY BPENO"); - } - - public string[] GetBpenoListByBpglp(string bpglp) - { - PrepareSql(); - DataTable inGroup = Query.Select( - "SELECT E.BPENO AS BPENO " - + " FROM " + WGuard1.WCFA("BPSN") + " E," + WGuard1.WCFA("BWEH") + " G" - + " WHERE G.BPENO=E.BPENO AND G.BPGLP='" + bpglp + "' " - + " AND E.BPEDY IS NULL " - + " ORDER BY E.BPENO "); - - if (inGroup.Rows.Count == 0) - return new string[0]; - else - { - string[] result = new string[inGroup.Rows.Count]; - for (int i = 0; i < inGroup.Rows.Count; i++) - { - result[i] = inGroup.Rows[i][0].ToString(); - } - return result; - } - } - - public void UpdateByBpglp(string bpglp, DataTable updateTable) - { - PrepareSql(); - DbConnection conn = Query.NewConnection(); - cmdDelete.Connection = conn; - cmdInsert.Connection = conn; - conn.Open(); - - DbTransaction tran = conn.BeginTransaction(); - cmdDelete.Transaction = tran; - cmdInsert.Transaction = tran; - try - { - foreach (DataRow row in updateTable.Rows) - { - if (row.RowState == DataRowState.Added) - { - cmdInsert.Parameters["BPGLP"].Value = bpglp; - cmdInsert.Parameters["BPENO"].Value = row["BPENO", DataRowVersion.Current]; - cmdInsert.ExecuteNonQuery(); - } - - if (row.RowState == DataRowState.Deleted) - { - cmdDelete.Parameters["BPGLP"].Value = bpglp; - cmdDelete.Parameters["BPENO"].Value = row["BPENO", DataRowVersion.Original]; - cmdDelete.ExecuteNonQuery(); - } - } - tran.Commit(); - updateTable.AcceptChanges(); - } - catch - { - tran.Rollback(); - } - finally - { - conn.Close(); - cmdInsert.Dispose(); - cmdDelete.Dispose(); - } - } - - public void SelectByBpeno(string bpeno, out DataTable inGroup, out DataTable outGroup) - { - PrepareSql(); - inGroup = Query.Select( - "SELECT E.BPGLP AS BPGLP, E.BPDSP AS BPDSP " - + " FROM " + WGuard1.WCFA("BWEG") + " E," + WGuard1.WCFA("BWEH") + " G" - + " WHERE E.BPGLP=G.BPGLP AND G.BPENO='" + bpeno + "' " - + " ORDER BY E.BPGLP "); - - outGroup = Query.Select( - "SELECT BPGLP, BPDSP FROM " + WGuard1.WCFA("BWEG") - + " WHERE BPGLP NOT IN (SELECT BPGLP FROM " + WGuard1.WCFA("BWEH") + " WHERE BPENO='" + bpeno + "')" - + " ORDER BY BPGLP"); - } - - public string[] GetBpglpListByBpeno(string bpeno) - { - PrepareSql(); - DataTable inGroup = Query.Select( - "SELECT E.BPGLP AS BPGLP " - + " FROM " + WGuard1.WCFA("BWEG") + " E," + WGuard1.WCFA("BWEH") + " G" - + " WHERE E.BPGLP=G.BPGLP AND G.BPENO='" + bpeno + "' " - + " ORDER BY E.BPGLP "); - - if (inGroup.Rows.Count == 0) - return new string[0]; - else - { - string[] result = new string[inGroup.Rows.Count]; - for (int i = 0; i < inGroup.Rows.Count; i++) - { - result[i] = inGroup.Rows[i][0].ToString(); - } - return result; - } - } - - public void UpdateByBpeno(string bpeno, DataTable updateTable) - { - PrepareSql(); - DbConnection conn = Query.NewConnection(); - cmdDelete.Connection = conn; - cmdInsert.Connection = conn; - conn.Open(); - - DbTransaction tran = conn.BeginTransaction(); - cmdDelete.Transaction = tran; - cmdInsert.Transaction = tran; - try - { - foreach (DataRow row in updateTable.Rows) - { - if (row.RowState == DataRowState.Added) - { - cmdInsert.Parameters["BPENO"].Value = bpeno; - cmdInsert.Parameters["BPGLP"].Value = row["BPGLP", DataRowVersion.Current]; - cmdInsert.ExecuteNonQuery(); - } - - if (row.RowState == DataRowState.Deleted) - { - cmdDelete.Parameters["BPENO"].Value = bpeno; - cmdDelete.Parameters["BPGLP"].Value = row["BPGLP", DataRowVersion.Original]; - cmdDelete.ExecuteNonQuery(); - } - } - tran.Commit(); - updateTable.AcceptChanges(); - } - catch - { - tran.Rollback(); - } - finally - { - conn.Close(); - cmdDelete.Dispose(); - cmdInsert.Dispose(); - } - } - } -} diff --git a/branches/1150807/DAC/人派/DAC_BCLS.cs b/branches/1150807/DAC/人派/DAC_BCLS.cs deleted file mode 100644 index 8b67bcb..0000000 --- a/branches/1150807/DAC/人派/DAC_BCLS.cs +++ /dev/null @@ -1,139 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Data; -using System.Data.Common; -using System.ComponentModel; -using WebLib; - -namespace Education -{ - [DataObject] - public class DAC_BCLS : DAC - { - public DAC_BCLS() - { } - - public DAC_BCLS(DbConnection conn) - : base(conn) - { } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Get類別資料By大類ForList(string 大類) - { - NameValueList result = new NameValueList(); - - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT BSCLS, BSSCR FROM BCLS WHERE BSPAR=@BSPAR AND (BLOCK='' OR BLOCK IS NULL)"; - AddParam(cmd, "BSPAR", 大類); - - bool wantClose; - IDataReader reader = ExecuteReader(cmd, out wantClose); - try - { - result.Fill(reader, 1, 0); - cmd.Cancel(); - reader.Close(); - } - finally - { - cmd.Dispose(); - reader.Dispose(); - CloseConnection(wantClose); - } - - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Get類別資料By大類ForDropDown(string 大類) - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", DBNull.Value); - - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT BSCLS, BSSCR FROM BCLS WHERE BSPAR=@BSPAR AND (BLOCK='' OR BLOCK IS NULL)"; - AddParam(cmd, "BSPAR", 大類); - - bool wantClose; - IDataReader reader = ExecuteReader(cmd, out wantClose); - try - { - result.Fill(reader, 1, 0, false); - cmd.Cancel(); - reader.Close(); - } - finally - { - cmd.Dispose(); - reader.Dispose(); - CloseConnection(wantClose); - } - - return result; - } - - public string Get類別名稱(object 大類, object 類別編號) - { - if (大類 == null) - 大類 = DBNull.Value; - if (類別編號 == null) - 類別編號 = DBNull.Value; - - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT BSSCR FROM BCLS WHERE BSPAR=@BSPAR AND BSCLS=@BSCLS"; - AddParam(cmd, "BSPAR", 大類); - AddParam(cmd, "BSCLS", 類別編號); - string result; - ExecuteScalar(cmd, out result); - return result; - } - - public void UpdateOne(object 大類, object 類別編號, object 類別值) - { - if (大類 == null) - 大類 = DBNull.Value; - if (類別編號 == null) - 類別編號 = DBNull.Value; - if (類別值 == null) - 類別值 = DBNull.Value; - - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT COUNT(1) FROM BCLS WHERE BSPAR=@BSPAR AND BSCLS=@BSCLS"; - AddParam(cmd, "BSPAR", 大類); - AddParam(cmd, "BSCLS", 類別編號); - int count; - ExecuteScalar(cmd, out count); - - if (count == 0) - { - cmd.CommandText = - @"INSERT INTO BCLS (BSPAR, BSCLS, BSSCR, BLOCK, TRDAT, TRMOD, TRUSR, BSRMK, DB_APPNO) - VALUES (@BSPAR, @BSCLS, @BSSCR, '', GETDATE(), 'INSERT', @TRUSR, '', 1)"; - AddParam(cmd, "BSPAR", 大類); - AddParam(cmd, "BSCLS", 類別編號); - AddParam(cmd, "BSSCR", 類別值); - AddParam(cmd, "TRUSR", CurrentUserId); - ExecuteNonQuery(cmd); - } - else - { - cmd.CommandText = - @"UPDATE BCLS - SET BSSCR = @BSSCR , - TRDAT = GETDATE() , - TRMOD = 'UPDATE' , - TRUSR = @TRUSR , - DB_APPNO = DB_APPNO + 1 - WHERE BSPAR = @BSPAR - AND BSCLS = @BSCLS"; - - AddParam(cmd, "BSPAR", 大類); - AddParam(cmd, "BSCLS", 類別編號); - AddParam(cmd, "BSSCR", 類別值); - AddParam(cmd, "TRUSR", CurrentUserId); - ExecuteNonQuery(cmd); - } - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/人派/DAC_BPAA.cs b/branches/1150807/DAC/人派/DAC_BPAA.cs deleted file mode 100644 index 3df4116..0000000 --- a/branches/1150807/DAC/人派/DAC_BPAA.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Data; -using System.Data.Common; -using System.ComponentModel; -using WebLib; - -namespace Education -{ - [DataObject] - public class DAC_BPAA: DAC - { - /// - /// 取得指定年度專案計畫代號與名稱,不含總公司 - /// - /// 指定年度 - /// - public DataTable GetBpaa(int year) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = - @"SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM - FROM BPAA WHERE (BPYER=@BPYER) AND (BPCSD IS NULL) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') - ORDER BY BPPYN"; - AddParam(cmd, "BPYER", year - PublicVariable.CY11); - return Select(cmd); - } - - /// - /// 取得所有年度專案計畫代號與名稱,含總公司 - /// - /// - public DataTable GetBpaaWithTY() - { - DbCommand cmd = NewCommand(); - cmd.CommandText = - @"SELECT '000000001' BPPYN, '【非專案人員】' BPPYM - UNION - SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM - FROM BPAA WHERE (BPCSD IS NULL) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') AND (BPPYN <> '102JYB00001') AND (BPPYN <> '102TYB00001') - UNION - SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM - FROM BPAA WHERE (BPCSD IS NULL) AND (BPPYN = '103JYB00001' OR BPPYN = '103TYB00001') - ORDER BY BPPYN"; - return Select(cmd); - } - - /// - /// 取得所有年度專案計畫代號與名稱,含總公司,並加上一個空項目 - /// - /// - public DataTable GetBpaaWithTYPlusNone() - { - DbCommand cmd = NewCommand(); - cmd.CommandText = - @"SELECT '' BPPYN, '【全部】' BPPYM - UNION - SELECT '000000001' BPPYN, '【非專案人員】' BPPYM - UNION - SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM - FROM BPAA WHERE (BPCSD IS NULL) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') - UNION - SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM - FROM BPAA WHERE (BPCSD IS NULL) AND (BPPYN = '103JYB00001' OR BPPYN = '103TYB00001') - ORDER BY BPPYN"; - return Select(cmd); - } - - /// - /// 取得指定年度專案計畫代號與名稱,含總公司 - /// - /// 指定年度 - /// 公司別 - /// - public DataTable GetBpaaWithTY(int year, string companyID) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = - @"SELECT '000000001' AS BPPYN, '【非專案人員】' AS BPPYM - UNION - SELECT BPPYN, BPPYM FROM - ( - SELECT BPPYN, - ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM AS BPPYM, - (SELECT TOP 1 BPCPY FROM BPRJ WHERE BPRJ.BPPNM=BPAA.BPPNM) AS BPCPY - FROM BPAA WHERE (BPYER=@BPYER) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') AND (BPPYN <> '102JYB00001') AND (BPPYN <> '102TYB00001') - UNION - SELECT BPPYN, - ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM AS BPPYM, - (SELECT TOP 1 BPCPY FROM BPRJ WHERE BPRJ.BPPNM=BPAA.BPPNM) AS BPCPY - FROM BPAA WHERE (BPPYN = '103JYB00001') OR (BPPYN = '103TYB00001') - ) AS TMP1 WHERE BPCPY=@BPCPY - ORDER BY BPPYN"; - -// @"SELECT '000000001' BPPYN, '【非專案人員】' BPPYM -// UNION -// SELECT BPPYN, '【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】' + BPPYM BPPYM -// FROM BPAA WHERE (BPYER=@BPYER) AND (BPPYN <> '000000001') -// ORDER BY BPPYN"; - AddParam(cmd, "BPYER", year); - AddParam(cmd, "BPCPY", companyID); - return Select(cmd); - } - - /// - /// 取得指定年度專案計畫代號與名稱,含總公司,並加上一個空項目 - /// - /// 指定年度 - /// - public DataTable GetBpaaWithTYPlusNone(int year) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = - @"SELECT '' BPPYN, '【全部】' BPPYM - UNION - SELECT '000000001' BPPYN, '【非專案人員】' BPPYM - UNION - SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM - FROM BPAA WHERE (BPYER=@BPYER) AND (BPPYN <> '000000001') AND (BPPYN <> '103JYB00001') AND (BPPYN <> '103TYB00001') AND (BPPYN <> '102JYB00001') AND (BPPYN <> '102TYB00001') - UNION - SELECT BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(BPPYN,LEN(BPPYN)-5,1)) + '】', '') + BPPYM BPPYM - FROM BPAA WHERE (BPPYN = '103JYB00001' OR BPPYN = '103TYB00001') - ORDER BY BPPYN"; - AddParam(cmd, "BPYER", year - PublicVariable.CY11); - return Select(cmd); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/人派/DAC_BPSN.cs b/branches/1150807/DAC/人派/DAC_BPSN.cs deleted file mode 100644 index e59c9e4..0000000 --- a/branches/1150807/DAC/人派/DAC_BPSN.cs +++ /dev/null @@ -1,124 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Data; -using System.Data.Common; -using System.ComponentModel; -using WebLib; - -namespace Education -{ - [DataObject] - public class DAC_BPSN : DAC - { - public DAC_BPSN() - { } - - public DAC_BPSN(DbConnection conn) - : base(conn) - { } - - public string Get員工姓名(object BPENO) - { - if (BPENO == null) - BPENO = DBNull.Value; - - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT BPNME FROM BPSNView WHERE BPENO=@BPENO"; - AddParam(cmd, "BPENO", BPENO); - string result; - ExecuteScalar(cmd, out result); - return result; - } - - public string Get電子郵件(object BPENO) - { - if (BPENO == null) - BPENO = DBNull.Value; - - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT BPEML FROM BPSNView WHERE BPENO=@BPENO"; - AddParam(cmd, "BPENO", BPENO); - string result; - ExecuteScalar(cmd, out result); - return result; - } - - public string Get公司電話(object BPENO) - { - if (BPENO == null) - BPENO = DBNull.Value; - - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT BPOTL FROM BPSNView WHERE BPENO=@BPENO"; - AddParam(cmd, "BPENO", BPENO); - string result; - ExecuteScalar(cmd, out result); - return result; - } - - public bool Is管理群組(object BPENO) - { - if (BPENO == null) - return false; - - DbCommand cmd = NewCommand(); - cmd.CommandText = - String.Format(@"SELECT COUNT(1) FROM BWEH WHERE BPENO=@BPENO AND BPGLP IN ({0})", PublicVariable.ManagerGroup); - AddParam(cmd, "BPENO", BPENO); - int i; - ExecuteScalar(cmd, out i); - return i > 0; - } - - public bool Is承辦人群組(object BPENO) - { - if (BPENO == null) - return false; - - DbCommand cmd = NewCommand(); - cmd.CommandText = - String.Format(@"SELECT COUNT(1) FROM BWEH WHERE BPENO=@BPENO AND BPGLP IN ({0})", PublicVariable.WorkerGroup); - AddParam(cmd, "BPENO", BPENO); - int i; - ExecuteScalar(cmd, out i); - return i > 0; - } - - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select(string BPENO, string BPNME) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select C.BPENO AS 員工編號, C.BPNME as 員工姓名, C.BPEML as 電子郵件, - D.RAPYN AS 計畫年度編號, ISNULL('【' + I.BSSCR + '】', '') + E.BPPYM AS 計畫年度名稱, - D.RABRH AS 站別編號, F.BSSCR AS 站別名稱, - D.RAJNO AS 職務編號, G.BPJME AS 職務名稱, - D.RACNO AS 等級編號, H.BPCME AS 等級名稱 - from BPSNView C - left outer join RASN D on C.BPENO = D.RANUM and D.RAEDT is NULL - left outer join BPAA E on D.RAPYN = E.BPPYN - left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH' - left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO - left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO - left outer join BCLS I on I.BSCLS = SUBSTRING(D.RAPYN, LEN(D.RAPYN)-5,1) and I.BSPAR = 'BCUSZON' - where C.BPEDY is null "; - - if (BPENO != null && BPENO.Length > 0) - { - cmdSelect.CommandText += " and C.BPENO like @BPENO "; - AddParam(cmdSelect, "BPENO", BPENO + "%"); - } - - if (BPNME != null && BPNME.Length > 0) - { - cmdSelect.CommandText += " and C.BPNME like @BPNME "; - AddParam(cmdSelect, "BPNME", BPNME + "%"); - } - - cmdSelect.CommandText += " order by C.BPENO"; - return Select(cmdSelect); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/人派/DAC_BRTE.cs b/branches/1150807/DAC/人派/DAC_BRTE.cs deleted file mode 100644 index cb11c05..0000000 --- a/branches/1150807/DAC/人派/DAC_BRTE.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class DAC_BRTE : DAC - { - public DAC_BRTE() - { } - - public DAC_BRTE(DbConnection conn) - : base(conn) - { } - - private decimal GetValue(string brtyp) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT TOP 1 BRRTE FROM BRTE WHERE BRTYP=@BRTYP AND BRSDT <= @TODAY ORDER BY BRSDT DESC"; - AddParam(cmd, "BRTYP", brtyp); - AddParam(cmd, "TODAY", PublicVariable.TaiwanNow.Date); - ExecuteScalar(cmd, out decimal value); - return value; - } - - public decimal 領據執行業務所得課稅門檻 - { - get - { - return GetValue("領據執行業務所得課稅門檻"); - } - } - - public decimal 領據薪資課稅門檻 - { - get - { - return GetValue("領據薪資課稅門檻"); - } - } - - public decimal 領據基本工資 - { - get - { - return GetValue("領據基本工資"); - } - } - - public decimal 領據執行業務所得稅率 - { - get - { - return GetValue("領據執行業務所得稅率"); - } - } - - public decimal 領據薪資稅率 - { - get - { - return GetValue("領據薪資稅率"); - } - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/人派/DAC_BWEX.cs b/branches/1150807/DAC/人派/DAC_BWEX.cs deleted file mode 100644 index 4d86755..0000000 --- a/branches/1150807/DAC/人派/DAC_BWEX.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class DAC_BWEX: DAC - { - private const string _tableName = "BWEX"; - private const string 領據關帳年月 = "領據關帳年月"; - - public DAC_BWEX() - { } - - public DAC_BWEX(DbConnection conn) - : base(conn) - { } - - /// - /// 讀取設定 - /// - /// - /// - /// - public string ReadSetting(string bsnum, int bsitm) - { - var cmd = NewCommand($"SELECT BSNAM FROM {_tableName} WHERE BSNUM=@BSNUM AND BSITM=@BSITM"); - AddParam(cmd, "BSNUM", bsnum); - AddParam(cmd, "BSITM", $"{bsitm,4}"); - if (ExecuteScalar(cmd, out string value)) - { - return value; - } - else - { - return ""; - } - } - - /// - /// 寫入設定 - /// - /// - /// - /// - public void WriteSetting(string bsnum, int bsitm, string bsnam) - { - var cmdRead = NewCommand($"SELECT COUNT(*) FROM {_tableName} WHERE BSNUM=@BSNUM AND BSITM=@BSITM"); - AddParam(cmdRead, "BSNUM", bsnum); - AddParam(cmdRead, "BSITM", $"{bsitm,4}"); - ExecuteScalar(cmdRead, out int count); - - if (count > 0) - { - var cmd = NewCommand($"UPDATE {_tableName} SET BSNAM=@BSNAM, TRDAT=@TRDAT, TRMOD=@TRMOD, TRUSR=@TRUSR WHERE BSNUM=@BSNUM AND BSITM=@BSITM"); - AddParam(cmd, "BSNAM", bsnam); - AddParam(cmd, "TRDAT", DateTime.Now); - AddParam(cmd, "TRMOD", "UPDATE"); - AddParam(cmd, "TRUSR", CurrentUserId); - AddParam(cmd, "BSNUM", bsnum); - AddParam(cmd, "BSITM", $"{bsitm,4}"); - ExecuteNonQuery(cmd); - } - else - { - var cmd = NewCommand($"INSERT INTO {_tableName} (BSNUM, BSITM, BSNAM, TRDAT, TRMOD, TRUSR) VALUES (@BSNUM, @BSITM, @BSNAM, @TRDAT, @TRMOD, @TRUSR)"); - AddParam(cmd, "BSNUM", bsnum); - AddParam(cmd, "BSITM", $"{bsitm,4}"); - AddParam(cmd, "BSNAM", bsnam); - AddParam(cmd, "TRDAT", DateTime.Now); - AddParam(cmd, "TRMOD", "INSERT"); - AddParam(cmd, "TRUSR", CurrentUserId); - ExecuteNonQuery(cmd); - } - } - - public string Read領據關帳年月 - { - get - { - using (var conn = DAC.NewConnection()) - { - var daoBWEX = new DAC_BWEX(conn); - return daoBWEX.ReadSetting(領據關帳年月, 1); - } - } - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/人派/DAC_RASN.cs b/branches/1150807/DAC/人派/DAC_RASN.cs deleted file mode 100644 index 54d5e90..0000000 --- a/branches/1150807/DAC/人派/DAC_RASN.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Data; -using System.Data.Common; -using System.ComponentModel; -using WebLib; - -namespace Education -{ - [DataObject] - public class DAC_RASN : DAC - { - public DAC_RASN() - { } - - public DAC_RASN(DbConnection conn) - : base(conn) - { } - - /* - SELECT B.BPENO AS 員工編號, B.BPENO + ' ' + B.BPNME AS 員工姓名, - ISNULL(D.RPCPY, C.RPCPY) AS 公司別, - A.RAPYN AS 專案編號, F.BPPYM AS 專案名稱, - A.RAJNO AS 職稱編號, E.BPJME AS 職稱名稱 - FROM BPSN B - INNER JOIN RASN A ON A.RANUM=B.BPENO AND B.BPEDY IS NULL -- 派遣紀錄 - LEFT JOIN RPIR C ON A.RANUM=C.RPENO AND C.RPREN=(SELECT MAX(RPREN) FROM RPIR WHERE RPENO=A.RANUM) -- 勞健保紀錄 - LEFT JOIN RPIB D ON C.RPREN=D.RPREN AND D.RPITM=(SELECT MAX(RPITM) FROM RPIB WHERE RPREN=D.RPREN) -- 勞健保異動紀錄 - LEFT JOIN BPJA E ON E.BPPYN=A.RAPYN AND E.BPJNO=A.RAJNO -- 專案年度職稱 - LEFT JOIN BPAA F ON F.BPPYN=A.RAPYN -- 專案年度接單 - WHERE RAEDT IS NULL - ORDER BY BPENO - */ - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select專案人員(string 專案年度編號, string 公司別) - { - NameValueList result = new NameValueList(); - - DbCommand cmd = NewCommand(); - cmd.CommandText = - @"SELECT 員工編號, 員工姓名 FROM - ( - SELECT A.RANUM AS 員工編號, A.RANUM + ' ' + B.BPNME AS 員工姓名, ISNULL(D.RPCPY, C.RPCPY) AS 公司別 - FROM RASN A - INNER JOIN BPSNView B ON A.RANUM=B.BPENO AND B.BPEDY IS NULL - LEFT JOIN RPIR C ON A.RANUM=C.RPENO AND C.RPREN=(SELECT MAX(RPREN) FROM RPIR WHERE RPENO=A.RANUM) - LEFT JOIN RPIB D ON C.RPREN=D.RPREN AND D.RPITM=(SELECT MAX(RPITM) FROM RPIB WHERE RPREN=D.RPREN) - WHERE A.RAPYN=@專案年度編號 - AND RAEDT IS NULL - ) AS TMP1 - WHERE 公司別=@公司別 - ORDER BY 員工編號"; - - // @"SELECT A.RANUM AS 員工編號, A.RANUM + ' ' + B.BPNME AS 員工姓名 - // FROM RASN A - // INNER JOIN BPSN B ON A.RANUM=B.BPENO AND B.BPEDY IS NULL - // WHERE A.RAPYN=@RAPYN - // AND RAEDT IS NULL - // ORDER BY A.RANUM"; - AddParam(cmd, "專案年度編號", 專案年度編號); - AddParam(cmd, "公司別", 公司別); - - bool wantClose; - IDataReader reader = ExecuteReader(cmd, out wantClose); - try - { - result.Fill(reader, 1, 0); - cmd.Cancel(); - reader.Close(); - } - finally - { - cmd.Dispose(); - reader.Dispose(); - CloseConnection(wantClose); - } - - return result; - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/人派/LoginBPAP.cs b/branches/1150807/DAC/人派/LoginBPAP.cs deleted file mode 100644 index 9ee0488..0000000 --- a/branches/1150807/DAC/人派/LoginBPAP.cs +++ /dev/null @@ -1,132 +0,0 @@ -using System; -using System.Data; -using System.Data.Common; -using WebLib; - -/// -/// Summary description for Login -/// -namespace Education -{ - public class LoginBPAP : DAC - { - private string _userId = ""; - private string _password = ""; - private string _userName = ""; - private string _errMessage = ""; - private string _userLang = ""; - private bool _noPassword = false; - - public LoginBPAP() - { - } - - public string UserId - { - get - { - return _userId; - } - set - { - _userId = value; - } - } - - public string Password - { - get - { - return _password; - } - set - { - _password = value; - } - } - - public string UserName - { - get - { - return _userName; - } - } - - public string ErrorMessage - { - get - { - return _errMessage; - } - } - - public bool NoPassword - { - get - { - return _noPassword; - } - } - - public string UserLang - { - get - { - return _userLang; - } - set - { - _userLang = value; - } - } - - /// - /// 取得是否登入成功 - /// - /// 登入成功與否。若回傳 false,錯誤訊息將儲存在 ErrorMessage 屬性中 - public bool GetResult() - { - DbConnection conn = NewConnection(); - DbCommand cmd = NewCommand("SELECT BPENO, BPNME, BPPWD FROM BPAP WHERE BPENO=@BPENO"); - AddParam(cmd, "BPENO", _userId); - DataTable rs = Select(cmd); - _noPassword = false; - - if (rs.Rows.Count == 0) - { - _errMessage = "無此使用者代號或是密碼錯誤"; - return false; - } - else - { - string pwd1 = GetString(rs.Rows[0]["BPPWD"]); - string pwd2 = EncDec.KeyDec(pwd1); - - if (pwd1.CompareTo("\u007f\u007f\u007f\u007f") == 0) - { - _noPassword = true; - pwd2 = ""; - } - - if (_password.CompareTo(pwd2) != 0) - { - _errMessage = "無此使用者代號或是密碼錯誤"; - return false; - } - - /* - if (rs.Rows[0]["BPEDY"] != DBNull.Value) - { - _errMessage = "您沒有使用這個系統的權限"; - return false; - } - */ - } - - _errMessage = ""; - _userName = GetString(rs.Rows[0]["BPNME"]); - return true; - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/人派/LoginBPSN.cs b/branches/1150807/DAC/人派/LoginBPSN.cs deleted file mode 100644 index 6ff45b4..0000000 --- a/branches/1150807/DAC/人派/LoginBPSN.cs +++ /dev/null @@ -1,155 +0,0 @@ -using System; -using System.Data; -using System.Data.Common; -using WebLib; - -/// -/// Summary description for Login -/// -namespace Education -{ - public class LoginBPSN : DAC - { - private string _userId = ""; - private string _password = ""; - private string _userName = ""; - private string _errMessage = ""; - private string _userLang = ""; - private bool _noPassword = false; - private bool _isManager = false; - private bool _isWorker = false; - - public LoginBPSN() - { - } - - public string UserId - { - get - { - return _userId; - } - set - { - _userId = value; - } - } - - public string Password - { - get - { - return _password; - } - set - { - _password = value; - } - } - - public string UserName - { - get - { - return _userName; - } - } - - public string ErrorMessage - { - get - { - return _errMessage; - } - } - - public bool NoPassword - { - get - { - return _noPassword; - } - } - - public string UserLang - { - get - { - return _userLang; - } - set - { - _userLang = value; - } - } - - /// - /// 是否是管理員 - /// - public bool IsManager - { - get - { - return _isManager; - } - } - - /// - /// 是否是承辦人 - /// - public bool IsWorker - { - get - { - return _isWorker; - } - } - - /// - /// 取得是否登入成功 - /// - /// 登入成功與否。若回傳 false,錯誤訊息將儲存在 ErrorMessage 屬性中 - public bool GetResult() - { - DbCommand cmd = NewCommand("SELECT BPENO, BPNME, BPEDY, BPAWD FROM BPSNView WHERE BPENO=@BPENO"); - AddParam(cmd, "BPENO", _userId); - DataTable rs = Select(cmd); - _noPassword = false; - - if (rs.Rows.Count == 0) - { - _errMessage = "無此使用者代號或是密碼錯誤"; - return false; - } - else - { - string pwd1 = GetString(rs.Rows[0]["BPAWD"]); - string pwd2 = EncDec.KeyDec(pwd1); - - if (pwd1.CompareTo("\u007f\u007f\u007f\u007f") == 0) - { - _noPassword = true; - pwd2 = ""; - } - - if (_password.CompareTo(pwd2) != 0) - { - _errMessage = "無此使用者代號或是密碼錯誤"; - return false; - } - - if (rs.Rows[0]["BPEDY"] != DBNull.Value) - { - _errMessage = "您沒有使用這個系統的權限"; - return false; - } - } - - _errMessage = ""; - _userName = GetString(rs.Rows[0]["BPNME"]); - _isManager = new DAC_BPSN(conn).Is管理群組(_userId); - _isWorker = new DAC_BPSN(conn).Is承辦人群組(_userId); - return true; - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/基本資料/DAC_公司別.cs b/branches/1150807/DAC/基本資料/DAC_公司別.cs deleted file mode 100644 index 246e218..0000000 --- a/branches/1150807/DAC/基本資料/DAC_公司別.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class DAC_公司別 : NameValueList - { - public DAC_公司別() - { - this.Add("新譽管理有限公司", "TY"); - this.Add("展譽職涯管理顧問有限公司", "JY"); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/基本資料/DAC_場地1.cs b/branches/1150807/DAC/基本資料/DAC_場地1.cs deleted file mode 100644 index 6965094..0000000 --- a/branches/1150807/DAC/基本資料/DAC_場地1.cs +++ /dev/null @@ -1,897 +0,0 @@ -// -// 這個檔案是 場地 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 場地 資料存取類別 - /// - [DataObject] - public partial class DAC_場地 : WebLib.DAC - { - private string _tableName = "場地"; - private string _select = "select 編號, 單位名稱, 場地名稱, 場地類型, 價格, 坪數, 容納人數, 地址_郵編, 地址_縣市, 地址_鄉鎮市區, 地址_街道地址, 捷運可到, 捷運分鐘, 公車可到, 公車分鐘, 火車可到, 火車分鐘, 步行可到, 步行分鐘, 設備提供, 聯絡人, 聯絡人電話, 電子郵件, 傳真, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "單位名稱, 場地名稱, 場地類型, 價格, 坪數, 容納人數, 地址_郵編, 地址_縣市, 地址_鄉鎮市區, 地址_街道地址, 捷運可到, 捷運分鐘, 公車可到, 公車分鐘, 火車可到, 火車分鐘, 步行可到, 步行分鐘, 設備提供, 聯絡人, 聯絡人電話, 電子郵件, 傳真, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@單位名稱, @場地名稱, @場地類型, @價格, @坪數, @容納人數, @地址_郵編, @地址_縣市, @地址_鄉鎮市區, @地址_街道地址, @捷運可到, @捷運分鐘, @公車可到, @公車分鐘, @火車可到, @火車分鐘, @步行可到, @步行分鐘, @設備提供, @聯絡人, @聯絡人電話, @電子郵件, @傳真, @備註, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 場地 "; - 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() - { - 場地List result = new 場地List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - 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; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public int InsertOne(場地 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return -1; - - 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, "步行分鐘", 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - int newId; - ExecuteScalar(cmdInsert, out newId); - AfterInsertOne(value); - ts.Complete(); - return newId; - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(場地 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 場地List oldValues = SelectOne(value.編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"場地\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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, "步行分鐘", value.步行分鐘); - AddParam(cmdUpdate, "設備提供", value.設備提供); - AddParam(cmdUpdate, "聯絡人", value.聯絡人); - AddParam(cmdUpdate, "聯絡人電話", value.聯絡人電話); - AddParam(cmdUpdate, "電子郵件", value.電子郵件); - AddParam(cmdUpdate, "傳真", value.傳真); - AddParam(cmdUpdate, "備註", value.備註); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_編號", value.編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(編號, DB_APPNO)) - return -1; - - 場地List oldValues = SelectOne(編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"場地\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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(場地 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 場地List oldValues = SelectOne(value.編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"場地\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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 partial class 場地List : List<場地>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 場地 newItem = new 場地(); - newItem.編號 = DAC.GetInt32(reader[0]); - newItem.單位名稱 = DAC.GetString(reader[1]); - newItem.場地名稱 = DAC.GetString(reader[2]); - newItem.場地類型 = DAC.GetString(reader[3]); - newItem.價格 = DAC.GetInt32(reader[4]); - newItem.坪數 = DAC.GetInt32(reader[5]); - newItem.容納人數 = DAC.GetInt32(reader[6]); - newItem.地址_郵編 = DAC.GetString(reader[7]); - newItem.地址_縣市 = DAC.GetString(reader[8]); - newItem.地址_鄉鎮市區 = DAC.GetString(reader[9]); - newItem.地址_街道地址 = DAC.GetString(reader[10]); - newItem.捷運可到 = DAC.GetString(reader[11]); - newItem.捷運分鐘 = DAC.GetInt32(reader[12]); - newItem.公車可到 = DAC.GetString(reader[13]); - newItem.公車分鐘 = DAC.GetInt32(reader[14]); - newItem.火車可到 = DAC.GetString(reader[15]); - newItem.火車分鐘 = DAC.GetInt32(reader[16]); - newItem.步行可到 = DAC.GetString(reader[17]); - newItem.步行分鐘 = DAC.GetInt32(reader[18]); - newItem.設備提供 = DAC.GetString(reader[19]); - newItem.聯絡人 = DAC.GetString(reader[20]); - newItem.聯絡人電話 = DAC.GetString(reader[21]); - newItem.電子郵件 = DAC.GetString(reader[22]); - newItem.傳真 = DAC.GetString(reader[23]); - newItem.備註 = DAC.GetString(reader[24]); - newItem.DB_APPNO = DAC.GetInt32(reader[25]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[26]); - newItem.DB_CRUSR = DAC.GetString(reader[27]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[28]); - newItem.DB_TRUSR = DAC.GetString(reader[29]); - Add(newItem); - } - } - } - - /// - /// 場地 資料紀錄類別 - /// - [Serializable] - public partial class 場地 : DataItemBase - { - private int _編號; - private string _單位名稱; - private string _場地名稱; - private string _場地類型; - private int _價格; - private int _坪數; - private int _容納人數; - private string _地址_郵編; - private string _地址_縣市; - private string _地址_鄉鎮市區; - private string _地址_街道地址; - private string _捷運可到; - private int _捷運分鐘; - private string _公車可到; - private int _公車分鐘; - private string _火車可到; - private int _火車分鐘; - private string _步行可到; - private int _步行分鐘; - private string _設備提供; - private string _聯絡人; - private string _聯絡人電話; - private string _電子郵件; - private string _傳真; - private string _備註; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - 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, 50)] - 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)] - 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)] - public int 容納人數 - { - 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, 10)] - 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, 30)] - public string 地址_街道地址 - { - get - { - return _地址_街道地址; - } - set - { - if (value != _地址_街道地址) - { - _地址_街道地址 = value; - OnPropertyChanged("地址_街道地址"); - } - } - } - - /// - /// 捷運可到 - /// - [DataObjectField(false, false, true, 1)] - 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, 1)] - 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, 1)] - 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, 1)] - 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, 1000)] - 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, 50)] - 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, 50)] - public string 傳真 - { - get - { - return _傳真; - } - set - { - if (value != _傳真) - { - _傳真 = value; - OnPropertyChanged("傳真"); - } - } - } - - /// - /// 備註 - /// - [DataObjectField(false, false, true, 1000)] - public string 備註 - { - get - { - return _備註; - } - set - { - if (value != _備註) - { - _備註 = value; - OnPropertyChanged("備註"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_場地2.cs b/branches/1150807/DAC/基本資料/DAC_場地2.cs deleted file mode 100644 index 8a77516..0000000 --- a/branches/1150807/DAC/基本資料/DAC_場地2.cs +++ /dev/null @@ -1,347 +0,0 @@ -// -// 這個檔案是 場地 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 場地 資料存取類別 - /// - public partial class DAC_場地 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 場地List Select(bool noInputReturnAll, string 單位名稱, string 場地名稱, string 場地類型, string 聯絡人, string 聯絡人電話) - { - 場地List result = new 場地List(); - - if (!noInputReturnAll - && 單位名稱 == null - && 場地名稱 == null - && 場地類型 == null - && 聯絡人 == null - && 聯絡人電話 == null) - return result; - - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - if (單位名稱 != null && 單位名稱.Length > 0) - { - cmdSelect.CommandText += " and 單位名稱 like @單位名稱 "; - AddParam(cmdSelect, "單位名稱", "%" + 單位名稱 + "%"); - } - - if (場地名稱 != null && 場地名稱.Length > 0) - { - cmdSelect.CommandText += " and 場地名稱 like @場地名稱 "; - AddParam(cmdSelect, "場地名稱", "%" + 場地名稱 + "%"); - } - - if (場地類型 != null && 場地類型.Length > 0) - { - cmdSelect.CommandText += " and 場地類型 like @場地類型 "; - AddParam(cmdSelect, "場地類型", "%" + 場地類型 + "%"); - } - - if (聯絡人 != null && 聯絡人.Length > 0) - { - cmdSelect.CommandText += " and 聯絡人 like @聯絡人 "; - AddParam(cmdSelect, "聯絡人", "%" + 聯絡人 + "%"); - } - - if (聯絡人電話 != null && 聯絡人電話.Length > 0) - { - cmdSelect.CommandText += " and 聯絡人電話 like @聯絡人電話 "; - AddParam(cmdSelect, "聯絡人電話", "%" + 聯絡人電話 + "%"); - } - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(場地 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(場地 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(場地 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(場地 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(場地 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(場地 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - /// - /// 取得場地名稱 - /// - /// - /// - public string Get場地名稱(object 編號) - { - DbCommand cmd = NewCommand("SELECT 場地名稱 FROM " + _tableName - + " WHERE 編號=@編號"); - AddParam(cmd, "編號", 編號); - string s; - ExecuteScalar(cmd, out s); - return s; - } - - public NameValueList Select地區ForDropDown() - { - NameValueList result = new NameValueList(); - DbCommand cmd = NewCommand("SELECT DISTINCT 地址_縣市 FROM " + _tableName + " ORDER BY 地址_縣市"); - - result.Add("(請選擇)", ""); - result.Fill(Select(cmd), "地址_縣市", "地址_縣市", false); - - return result; - } - - public NameValueList Select教室類型ForDropDown() - { - NameValueList result = new NameValueList(); - DbCommand cmd = NewCommand("SELECT DISTINCT 場地類型 FROM " + _tableName + " ORDER BY 場地類型"); - - result.Add("(請選擇)", ""); - result.Fill(Select(cmd), "場地類型", "場地類型", false); - - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 場地List 查詢作業(bool noInputReturnAll, string 地區, int 價格1, int 價格2, int 人數1, int 人數2, - string 場地類型, int 滿意度1, int 滿意度2) - { - 場地List result = new 場地List(); - - if (!noInputReturnAll - && 地區 == null - && 場地類型 == null - && 價格1 == 0 - && 價格2 == 0 - && 人數1 == 0 - && 人數2 == 0 - && 滿意度1 == 0 - && 滿意度2 == 0) - return result; - - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + - @" FROM - ( SELECT A.*, - ISNULL(( SELECT CAST(SUM(場地滿意度分數) AS FLOAT) / COUNT(1) - FROM 滿意度調查課程企劃 - WHERE 場地編號 = A.編號), 0) AS 滿意度 - FROM 場地 A - ) AS TMP1" - + _where; - - if (地區 != null && 地區.Length > 0) - { - cmdSelect.CommandText += " and 地址_縣市 like @地區 "; - AddParam(cmdSelect, "地區", "%" + 地區 + "%"); - } - - if (場地類型 != null && 場地類型.Length > 0) - { - cmdSelect.CommandText += " and 場地類型 like @場地類型 "; - AddParam(cmdSelect, "場地類型", "%" + 場地類型 + "%"); - } - - if (價格1 > 0 && 價格2 > 0) - { - cmdSelect.CommandText += " and 價格 >= @價格1 and 價格 <= @價格2 "; - AddParam(cmdSelect, "價格1", 價格1); - AddParam(cmdSelect, "價格2", 價格2); - } - else if (價格1 > 0 && 價格2 == 0) - { - cmdSelect.CommandText += " and 價格 >= @價格1 "; - AddParam(cmdSelect, "價格1", 價格1); - } - else if (價格1 == 0 && 價格2 < 0) - { - cmdSelect.CommandText += " and 價格 <= @價格2 "; - AddParam(cmdSelect, "價格2", 價格2); - } - - if (人數1 > 0 && 人數2 > 0) - { - cmdSelect.CommandText += " and 容納人數 >= @人數1 and 容納人數 <= @人數2 "; - AddParam(cmdSelect, "人數1", 人數1); - AddParam(cmdSelect, "人數2", 人數2); - } - else if (人數1 > 0 && 人數2 == 0) - { - cmdSelect.CommandText += " and 容納人數 >= @人數1 "; - AddParam(cmdSelect, "人數1", 人數1); - } - else if (人數1 == 0 && 人數2 < 0) - { - cmdSelect.CommandText += " and 容納人數 <= @人數2 "; - AddParam(cmdSelect, "人數2", 人數2); - } - - if (滿意度1 != 0 && 滿意度2 != 0) - { - cmdSelect.CommandText += " and 滿意度 between @滿意度1 and @滿意度2 "; - AddParam(cmdSelect, "滿意度1", 滿意度1); - AddParam(cmdSelect, "滿意度2", 滿意度2); - } - else if (滿意度1 != 0 && 滿意度2 == 0) - { - cmdSelect.CommandText += " and 滿意度 >= @滿意度1 "; - AddParam(cmdSelect, "滿意度1", 滿意度1); - } - else if (滿意度1 == 0 && 滿意度2 != 0) - { - cmdSelect.CommandText += " and 滿意度 <= @滿意度2 "; - AddParam(cmdSelect, "滿意度2", 滿意度2); - } - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - public DataTable Select滿意度統計(int 場地編號) - { - DbCommand cmdSelect = NewCommand( - @"SELECT - (SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 5) AS 場地滿意度5, - (SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 4) AS 場地滿意度4, - (SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 3) AS 場地滿意度3, - (SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 2) AS 場地滿意度2, - (SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號 AND 場地滿意度填答 = 1) AS 場地滿意度1, - (SELECT ISNULL(AVG(CAST(場地滿意度分數 AS FLOAT)), 0) FROM 滿意度調查課程企劃 WHERE 場地編號 = @場地編號) AS 場地滿意度總分"); - AddParam(cmdSelect, "場地編號", 場地編號); - return Select(cmdSelect); - } - - public bool IsOccipued(int 場地編號) - { - DbCommand cmd = NewCommand( - @"SELECT - (SELECT COUNT(1) FROM 場地遴選 WHERE 場地編號_A = @場地編號 OR 場地編號_B = @場地編號 OR 場地編號_C = @場地編號) - + (SELECT COUNT(1) FROM 場地異動 WHERE 場地編號 = @場地編號)"); - AddParam(cmd, "場地編號", 場地編號); - int i; - ExecuteScalar(cmd, out i); - return i > 0; - } - - - } - - /// - /// 場地 資料集合類別 - /// - public partial class 場地List : List<場地> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 場地 資料紀錄類別 - /// - public partial class 場地 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_片語1.cs b/branches/1150807/DAC/基本資料/DAC_片語1.cs deleted file mode 100644 index ca28a98..0000000 --- a/branches/1150807/DAC/基本資料/DAC_片語1.cs +++ /dev/null @@ -1,528 +0,0 @@ -// -// 這個檔案是 片語 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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, string 適用欄位, string 片語內容) - { - if (適用欄位 != null && 適用欄位.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 適用欄位 like @適用欄位 "; - AddParam(cmdSelect, "適用欄位", "%" + 適用欄位 + "%"); - } - if (片語內容 != null && 片語內容.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 片語內容 like @片語內容 "; - AddParam(cmdSelect, "片語內容", "%" + 片語內容 + "%"); - } - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 片語List Select(bool noInputReturnAll, string 適用欄位, string 片語內容, 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, 適用欄位, 片語內容); - 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, string 適用欄位, string 片語內容, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 適用欄位, 片語內容); - - 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, string 適用欄位, string 片語內容, 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, 適用欄位, 片語內容); - 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, "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, "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, "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) - { - } - - } - - - /// - ///片語 資料集合類別 - /// - [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 string _片語內容; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 適用欄位 - /// - [DataObjectField(false, false, false, 100)] - public string 適用欄位 - { - get - { - return _適用欄位; - } - set - { - if (value != _適用欄位) - { - _適用欄位 = value; - OnPropertyChanged("適用欄位"); - } - } - } - - /// - /// 片語內容 - /// - [DataObjectField(false, false, false, 100)] - public string 片語內容 - { - get - { - return _片語內容; - } - set - { - if (value != _片語內容) - { - _片語內容 = value; - OnPropertyChanged("片語內容"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_片語2.cs b/branches/1150807/DAC/基本資料/DAC_片語2.cs deleted file mode 100644 index d2360af..0000000 --- a/branches/1150807/DAC/基本資料/DAC_片語2.cs +++ /dev/null @@ -1,195 +0,0 @@ -// -// 這個檔案是 片語 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using NPOI.SS.Formula.Functions; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.Linq; -using System.Text; -using System.Web.UI.WebControls; -using WebLib; - -namespace Education -{ - /// - /// 片語 資料存取類別 - /// - public partial class DAC_片語 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(片語Item value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(片語Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(片語Item value) - { - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(片語Item value, 片語Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(片語Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(片語Item value, 片語Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(片語Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(片語Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - public 片語List SelectBy適用欄位(string 適用欄位) - { - return Select(false, 適用欄位, "", "片語內容"); - } - - public NameValueList SelectSearchBy適用欄位(string 適用欄位) - { - var result = new NameValueList(); - result.Add("(請選擇)", ""); - foreach (var item in Select(false, 適用欄位, "", "片語內容")) - { - result.Add(item.片語內容, item.片語內容); - } - return result; - } - - public NameValueList OptionsForSearch() - { - var options = Options(); - options.Insert(0, new NameValueItem() { Name = "(全部)", Value = "" }); - return options; - } - - public NameValueList Options() - { - return new NameValueList() { - new NameValueItem() { Name = "授課專長領域", Value = "授課專長領域" }, - new NameValueItem() { Name = "合作狀態", Value = "合作狀態" }, - new NameValueItem() { Name = "合作方式", Value = "合作方式" }, - new NameValueItem() { Name = "證照資料", Value = "證照資料" }, - new NameValueItem() { Name = "異常標註", Value = "異常標註" }, - new NameValueItem() { Name = "講師來源", Value = "講師來源" }, - new NameValueItem() { Name = "推薦授課主題", Value = "推薦授課主題" }, - new NameValueItem() { Name = "跟課觀察", Value = "跟課觀察" }, - new NameValueItem() { Name = "異常情形", Value = "異常情形" }, - new NameValueItem() { Name = "合作滿意度", Value = "合作滿意度" }, - new NameValueItem() { Name = "活動地點", Value = "活動地點" }, - new NameValueItem() { Name = "活動類別", Value = "活動類別" }, - new NameValueItem() { Name = "票價資訊", Value = "票價資訊" } - }; - } - } - - /// - ///片語 資料集合類別 - /// - public partial class 片語List : List<片語Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///片語 資料紀錄類別 - /// - public partial class 片語Item - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_站別.cs b/branches/1150807/DAC/基本資料/DAC_站別.cs deleted file mode 100644 index d7b5cb0..0000000 --- a/branches/1150807/DAC/基本資料/DAC_站別.cs +++ /dev/null @@ -1,117 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Data; -using System.Data.Common; -using System.ComponentModel; -using WebLib; - -namespace Education -{ - [DataObject] - public class DAC_站別: DAC - { - public DAC_站別() - { } - - public DAC_站別(DbConnection conn) - : base(conn) - { } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList SelectForList() - { - NameValueList result = new NameValueList(); - - DbCommand cmd1 = NewCommand(); - cmd1.CommandText = - @"SELECT 'A|' + CAST(組織ID AS VARCHAR) AS VALUE, '[部門] ' + 組織名稱 AS NAME FROM 組織圖 - WHERE 上層ID = 1 - UNION ALL - SELECT 'B|' + BSCLS AS VALUE, '[站別] ' + BSRMK AS NAME FROM BCLS WHERE BSPAR='BPSNBRH' - ORDER BY VALUE"; - - bool wantClose; - IDataReader reader1 = ExecuteReader(cmd1, out wantClose); - try - { - result.Fill(reader1, 1, 0); - cmd1.Cancel(); - reader1.Close(); - } - finally - { - cmd1.Dispose(); - reader1.Dispose(); - CloseConnection(wantClose); - } - - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList SelectForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(全部)", ""); - - DbCommand cmd = NewCommand(); - cmd.CommandText = - @"SELECT 'A|' + CAST(組織ID AS VARCHAR) AS VALUE, '[部門] ' + 組織名稱 AS NAME FROM 組織圖 - WHERE 上層ID = 1 - UNION ALL - SELECT 'B|' + BSCLS AS VALUE, '[站別] ' + BSRMK AS NAME FROM BCLS WHERE BSPAR='BPSNBRH' - ORDER BY VALUE"; - - bool wantClose; - IDataReader reader = ExecuteReader(cmd, out wantClose); - try - { - result.Fill(reader, 1, 0, false); - cmd.Cancel(); - reader.Close(); - } - finally - { - cmd.Dispose(); - reader.Dispose(); - CloseConnection(wantClose); - } - - return result; - } - - public string GetName(object value) - { - if (value == null) - return ""; - string[] valueParts = DAC.GetString(value).Split('|'); - if (valueParts.Length == 0) - return ""; - - if (valueParts.Length == 1 || valueParts.Length > 1 && valueParts[0] == "B") - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT BSRMK FROM BCLS WHERE BSPAR='BPSNBRH' AND BSCLS=@BSCLS"; - if (valueParts.Length == 1) - AddParam(cmd, "BSCLS", valueParts[0]); - if (valueParts.Length > 1) - AddParam(cmd, "BSCLS", valueParts[1]); - string result; - ExecuteScalar(cmd, out result); - return result; - } - else if (valueParts.Length > 1 && valueParts[0] == "A") - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT 組織名稱 FROM 組織圖 WHERE 組織ID=@組織ID"; - AddParam(cmd, "組織ID", valueParts[1]); - string result; - ExecuteScalar(cmd, out result); - return result; - } - else - return ""; - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/基本資料/DAC_組織人員1.cs b/branches/1150807/DAC/基本資料/DAC_組織人員1.cs deleted file mode 100644 index a5fe10a..0000000 --- a/branches/1150807/DAC/基本資料/DAC_組織人員1.cs +++ /dev/null @@ -1,377 +0,0 @@ -// -// 這個檔案是 組織人員 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 組織人員 資料存取類別 - /// - [DataObject] - public partial class DAC_組織人員 : WebLib.DAC - { - //private string _tableName = "組織人員"; - private string _select = "select 組織ID, 人員ID, 職務ID, 直接主管ID, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "組織ID, 人員ID, 職務ID, 直接主管ID, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@組織ID, @人員ID, @職務ID, @直接主管ID, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 組織人員 "; - private string _where = " where 1=1 "; - private string _order = " order by 組織ID, 人員ID "; - - public DAC_組織人員() - : base() - { - } - - public DAC_組織人員(DbConnection conn) - : base(conn) - { - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 組織人員List SelectAll() - { - 組織人員List result = new 組織人員List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 組織人員List SelectOne(int 組織ID, string 人員ID) - { - 組織人員List result = new 組織人員List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 組織ID = @組織ID " - + " and 人員ID = @人員ID " - ; - AddParam(cmdSelect, "組織ID", 組織ID); - AddParam(cmdSelect, "人員ID", 人員ID); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(組織人員 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 組織人員" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "組織ID", value.組織ID); - AddParam(cmdInsert, "人員ID", value.人員ID); - AddParam(cmdInsert, "職務ID", value.職務ID); - AddParam(cmdInsert, "直接主管ID", value.直接主管ID); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(組織人員 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 組織人員List oldValues = SelectOne(value.組織ID, value.人員ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"組織人員\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 組織人員 - set - 職務ID = @職務ID , - 直接主管ID = @直接主管ID , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 組織ID = @original_組織ID - and 人員ID = @original_人員ID - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "職務ID", value.職務ID); - AddParam(cmdUpdate, "直接主管ID", value.直接主管ID); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_組織ID", value.組織ID); - AddParam(cmdUpdate, "original_人員ID", value.人員ID); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 組織ID, string 人員ID, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(組織ID, 人員ID, DB_APPNO)) - return -1; - - 組織人員List oldValues = SelectOne(組織ID, 人員ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"組織人員\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 組織人員 - where 1=1 - and 組織ID = @組織ID - and 人員ID = @人員ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "組織ID", 組織ID); - AddParam(cmdDelete, "人員ID", 人員ID); - AddParam(cmdDelete, "DB_APPNO", DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdDelete); - AfterDeleteOne(組織ID, 人員ID, 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(組織人員 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 組織人員List oldValues = SelectOne(value.組織ID, value.人員ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"組織人員\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 組織人員 - where 1=1 - and 組織ID = @組織ID - and 人員ID = @人員ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "組織ID", value.組織ID); - AddParam(cmdDelete, "人員ID", value.人員ID); - 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 組織ID, string 人員ID) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 組織ID = @組織ID " - + " and 人員ID = @人員ID " - ; - AddParam(cmdSelect, "組織ID", 組織ID); - AddParam(cmdSelect, "人員ID", 人員ID); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 組織人員 資料集合類別 - /// - public partial class 組織人員List : List<組織人員>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 組織人員 newItem = new 組織人員(); - newItem.組織ID = DAC.GetInt32(reader[0]); - newItem.人員ID = DAC.GetString(reader[1]); - newItem.職務ID = DAC.GetInt32(reader[2]); - newItem.直接主管ID = DAC.GetString(reader[3]); - newItem.DB_APPNO = DAC.GetInt32(reader[4]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[5]); - newItem.DB_CRUSR = DAC.GetString(reader[6]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[7]); - newItem.DB_TRUSR = DAC.GetString(reader[8]); - Add(newItem); - } - } - } - - /// - /// 組織人員 資料紀錄類別 - /// - [Serializable] - public partial class 組織人員 : DataItemBase - { - private int _組織ID; - private string _人員ID; - private int _職務ID; - private string _直接主管ID; - - #region 資料欄位 - /// - /// - /// - [DataObjectField(true, false, false)] - public int 組織ID - { - get - { - return _組織ID; - } - set - { - if (value != _組織ID) - { - _組織ID = value; - OnPropertyChanged("組織ID"); - } - } - } - - /// - /// - /// - [DataObjectField(true, false, false, 10)] - public string 人員ID - { - get - { - return _人員ID; - } - set - { - if (value != _人員ID) - { - _人員ID = value; - OnPropertyChanged("人員ID"); - } - } - } - - /// - /// - /// - [DataObjectField(false, false, false)] - public int 職務ID - { - get - { - return _職務ID; - } - set - { - if (value != _職務ID) - { - _職務ID = value; - OnPropertyChanged("職務ID"); - } - } - } - - /// - /// - /// - [DataObjectField(false, false, true, 10)] - public string 直接主管ID - { - get - { - return _直接主管ID; - } - set - { - if (value != _直接主管ID) - { - _直接主管ID = value; - OnPropertyChanged("直接主管ID"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_組織人員2.cs b/branches/1150807/DAC/基本資料/DAC_組織人員2.cs deleted file mode 100644 index 04a8e44..0000000 --- a/branches/1150807/DAC/基本資料/DAC_組織人員2.cs +++ /dev/null @@ -1,195 +0,0 @@ -// -// 這個檔案是 組織人員 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 組織人員 資料存取類別 - /// - public partial class DAC_組織人員 : WebLib.DAC - { - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(組織人員 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(組織人員 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(組織人員 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(組織人員 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(組織人員 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(組織人員 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 組織ID, string 人員ID, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 組織ID, string 人員ID, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - [DataObjectMethod(DataObjectMethodType.Select)] - public 組織人員List Select組織(int 組織ID) - { - 組織人員List result = new 組織人員List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 組織ID = @組織ID " - + _order; - AddParam(cmdSelect, "組織ID", 組織ID); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select組織人員(int 組織ID) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"SELECT '' AS 人員ID, '(無)' AS 人員姓名 - UNION ALL - SELECT A.人員ID, A.人員ID + ' ' + B.BPNME AS 人員姓名 FROM 組織人員 A - INNER JOIN BPSNView B ON A.人員ID=B.BPENO - WHERE A.組織ID = @組織ID - ORDER BY 人員ID "; - AddParam(cmdSelect, "組織ID", 組織ID); - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public void Delete組織人員(int 組織ID) - { - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"DELETE FROM 組織人員 - WHERE 組織ID = @組織ID"; - AddParam(cmdDelete, "組織ID", 組織ID); - ExecuteNonQuery(cmdDelete); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 組織人員List Select人員所屬的組織(string 人員ID) - { - 組織人員List result = new 組織人員List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 人員ID = @人員ID " - + _order; - AddParam(cmdSelect, "人員ID", 人員ID); - Select(cmdSelect, ref list); - return result; - } - - /// - /// 判斷人員是否屬於某組織 - /// - /// 組織編號 - /// 人員編號 - /// - public bool Is人員屬於組織(int 組織ID, string 人員ID) - { - return SelectOne(組織ID, 人員ID).Count > 0; - } - } - - /// - /// 組織人員 資料集合類別 - /// - public partial class 組織人員List : List<組織人員> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 組織人員 資料紀錄類別 - /// - public partial class 組織人員 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_組織圖1.cs b/branches/1150807/DAC/基本資料/DAC_組織圖1.cs deleted file mode 100644 index 75e61ea..0000000 --- a/branches/1150807/DAC/基本資料/DAC_組織圖1.cs +++ /dev/null @@ -1,422 +0,0 @@ -// -// 這個檔案是 組織圖 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 組織圖 資料存取類別 - /// - [DataObject] - public partial class DAC_組織圖 : WebLib.DAC - { - private string _tableName = "組織圖"; - private string _select = "select 組織ID, 組織名稱, 組織類別ID, 上層ID, 排序, 部門主管, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "組織名稱, 組織類別ID, 上層ID, 排序, 部門主管, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@組織名稱, @組織類別ID, @上層ID, @排序, @部門主管, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 組織圖 "; - private string _where = " where 1=1 "; - private string _order = " order by 組織ID "; - - public DAC_組織圖() - : base() - { - } - - public DAC_組織圖(DbConnection conn) - : base(conn) - { - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 組織圖List SelectAll() - { - 組織圖List result = new 組織圖List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 組織圖List SelectOne(int 組織ID) - { - 組織圖List result = new 組織圖List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 組織ID = @組織ID " - ; - AddParam(cmdSelect, "組織ID", 組織ID); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public int InsertOne(組織圖 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return -1; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 組織圖" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - + "select @@identity" - ; - AddParam(cmdInsert, "組織名稱", value.組織名稱); - AddParam(cmdInsert, "組織類別ID", value.組織類別ID); - AddParam(cmdInsert, "上層ID", value.上層ID); - AddParam(cmdInsert, "排序", value.排序); - AddParam(cmdInsert, "部門主管", value.部門主管); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - int newId; - ExecuteScalar(cmdInsert, out newId); - AfterInsertOne(value); - ts.Complete(); - return newId; - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(組織圖 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 組織圖List oldValues = SelectOne(value.組織ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"組織圖\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 組織圖 - set - 組織名稱 = @組織名稱 , - 組織類別ID = @組織類別ID , - 上層ID = @上層ID , - 排序 = @排序 , - 部門主管 = @部門主管 , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 組織ID = @original_組織ID - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "組織名稱", value.組織名稱); - AddParam(cmdUpdate, "組織類別ID", value.組織類別ID); - AddParam(cmdUpdate, "上層ID", value.上層ID); - AddParam(cmdUpdate, "排序", value.排序); - AddParam(cmdUpdate, "部門主管", value.部門主管); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_組織ID", value.組織ID); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 組織ID, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(組織ID, DB_APPNO)) - return -1; - - 組織圖List oldValues = SelectOne(組織ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"組織圖\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 組織圖 - where 1=1 - and 組織ID = @組織ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "組織ID", 組織ID); - AddParam(cmdDelete, "DB_APPNO", DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdDelete); - AfterDeleteOne(組織ID, 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(組織圖 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 組織圖List oldValues = SelectOne(value.組織ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"組織圖\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 組織圖 - where 1=1 - and 組織ID = @組織ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "組織ID", value.組織ID); - 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 組織ID) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 組織ID = @組織ID " - ; - AddParam(cmdSelect, "組織ID", 組織ID); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 組織圖 資料集合類別 - /// - public partial class 組織圖List : List<組織圖>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 組織圖 newItem = new 組織圖(); - newItem.組織ID = DAC.GetInt32(reader[0]); - newItem.組織名稱 = DAC.GetString(reader[1]); - newItem.組織類別ID = DAC.GetInt32(reader[2]); - newItem.上層ID = DAC.GetInt32(reader[3]); - newItem.排序 = DAC.GetInt32(reader[4]); - newItem.部門主管 = DAC.GetString(reader[5]); - newItem.DB_APPNO = DAC.GetInt32(reader[6]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[7]); - newItem.DB_CRUSR = DAC.GetString(reader[8]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[9]); - newItem.DB_TRUSR = DAC.GetString(reader[10]); - Add(newItem); - } - } - } - - /// - /// 組織圖 資料紀錄類別 - /// - [Serializable] - public partial class 組織圖 : DataItemBase - { - private int _組織ID; - private string _組織名稱; - private int _組織類別ID; - private int _上層ID; - private int _排序; - private string _部門主管; - - #region 資料欄位 - /// - /// - /// - [DataObjectField(true, false, false)] - public int 組織ID - { - get - { - return _組織ID; - } - set - { - if (value != _組織ID) - { - _組織ID = value; - OnPropertyChanged("組織ID"); - } - } - } - - /// - /// - /// - [DataObjectField(false, false, false, 30)] - public string 組織名稱 - { - get - { - return _組織名稱; - } - set - { - if (value != _組織名稱) - { - _組織名稱 = value; - OnPropertyChanged("組織名稱"); - } - } - } - - /// - /// - /// - [DataObjectField(false, false, false)] - public int 組織類別ID - { - get - { - return _組織類別ID; - } - set - { - if (value != _組織類別ID) - { - _組織類別ID = value; - OnPropertyChanged("組織類別ID"); - } - } - } - - /// - /// - /// - [DataObjectField(false, false, true)] - public int 上層ID - { - get - { - return _上層ID; - } - set - { - if (value != _上層ID) - { - _上層ID = value; - OnPropertyChanged("上層ID"); - } - } - } - - /// - /// - /// - [DataObjectField(false, false, true)] - public int 排序 - { - get - { - return _排序; - } - set - { - if (value != _排序) - { - _排序 = value; - OnPropertyChanged("排序"); - } - } - } - - /// - /// - /// - [DataObjectField(false, false, true, 10)] - public string 部門主管 - { - get - { - return _部門主管; - } - set - { - if (value != _部門主管) - { - _部門主管 = value; - OnPropertyChanged("部門主管"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_組織圖2.cs b/branches/1150807/DAC/基本資料/DAC_組織圖2.cs deleted file mode 100644 index 5be9980..0000000 --- a/branches/1150807/DAC/基本資料/DAC_組織圖2.cs +++ /dev/null @@ -1,246 +0,0 @@ -// -// 這個檔案是 組織圖 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.Web.UI.WebControls; -using WebLib; - -namespace Education -{ - /// - /// 組織圖 資料存取類別 - /// - public partial class DAC_組織圖 : WebLib.DAC - { - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(組織圖 value) - { - value.排序 = Next排序(value.組織類別ID, value.上層ID); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(組織圖 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(組織圖 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(組織圖 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(組織圖 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(組織圖 value) - { - new DAC_組織人員(conn).Delete組織人員(value.組織ID); - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 組織ID, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 組織ID, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - public int Next排序(int 組織類別ID, int 上層ID) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "SELECT ISNULL(MAX(排序), 0) + 1 " - + _from - + " WHERE 組織類別ID=@組織類別ID AND 上層ID=@上層ID"; - AddParam(cmdSelect, "組織類別ID", 組織類別ID); - AddParam(cmdSelect, "上層ID", 上層ID); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - #region 畫樹狀結構的方法 - public void DrawTree(TreeView tv, int 組織類別Id) - { - tv.Nodes.Clear(); - DoDrawTree(tv.Nodes, 組織類別Id, 0); - } - - private void DoDrawTree(TreeNodeCollection nodes, int 組織類別Id, int 上層ID) - { - 組織圖List data = SelectOneLevel(組織類別Id, 上層ID); - foreach (組織圖 item in data) - { - TreeNode newNode = new TreeNode(); - newNode.Value = item.組織ID.ToString(); - newNode.Text = item.組織名稱; - nodes.Add(newNode); - - DoDrawTree(newNode.ChildNodes, 組織類別Id, item.組織ID); - } - } - - public 組織圖List SelectOneLevel(int 組織類別ID, int 上層ID) - { - 組織圖List result = new 組織圖List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + " WHERE 組織類別ID=@組織類別ID AND 上層ID=@上層ID ORDER BY 排序"; - AddParam(cmdSelect, "組織類別ID", 組織類別ID); - AddParam(cmdSelect, "上層ID", 上層ID); - Select(cmdSelect, ref list); - return result; - } - #endregion - - #region 調整樹狀結構的方法 - /// - /// 移動這個節點的位置 - /// - /// - /// - /// - public void Update上層ID(int 組織ID, int 上層ID, string userId) - { - 組織圖List values = SelectOne(組織ID); - if (values.Count == 0) - return; - values[0].上層ID = 上層ID; - values[0].DB_TRUSR = userId; - UpdateOne(values[0]); - } - - /// - /// 更新排序號 - /// - public void Update排序(int 組織ID, int 排序, string userId) - { - 組織圖List values = SelectOne(組織ID); - if (values.Count == 0) - return; - values[0].排序 = 排序; - values[0].DB_TRUSR = userId; - UpdateOne(values[0]); - } - #endregion - - /// - /// 取得組織名稱 - /// - /// - /// - public string Get組織名稱(object 組織ID) - { - DbCommand cmd = NewCommand("SELECT 組織名稱 FROM " + _tableName - + " WHERE 組織ID=@組織ID"); - AddParam(cmd, "組織ID", 組織ID); - string s; - ExecuteScalar(cmd, out s); - return s; - } - - private void Select子樹1(int 組織類別ID, int 組織ID, ref 組織圖List list) - { - 組織圖List sub = SelectOneLevel(組織類別ID, 組織ID); - - foreach (組織圖 item in sub) - { - list.Add(item); - Select子樹1(組織類別ID, item.組織ID, ref list); - } - } - - public 組織圖List Select子樹(int 組織類別ID, int 組織ID) - { - 組織圖List result = SelectOne(組織ID); - if (result.Count >= 0) - Select子樹1(組織類別ID, 組織ID, ref result); - return result; - } - - } - - /// - /// 組織圖 資料集合類別 - /// - public partial class 組織圖List : List<組織圖> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 組織圖 資料紀錄類別 - /// - public partial class 組織圖 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_組織類別1.cs b/branches/1150807/DAC/基本資料/DAC_組織類別1.cs deleted file mode 100644 index b6ca270..0000000 --- a/branches/1150807/DAC/基本資料/DAC_組織類別1.cs +++ /dev/null @@ -1,322 +0,0 @@ -// -// 這個檔案是 組織類別 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 組織類別 資料存取類別 - /// - [DataObject] - public partial class DAC_組織類別 : WebLib.DAC - { - //private string _tableName = "組織類別"; - private string _select = "select 組織類別ID, 組織類別名稱, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "組織類別名稱, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@組織類別名稱, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 組織類別 "; - private string _where = " where 1=1 "; - private string _order = " order by 組織類別ID "; - - public DAC_組織類別() - : base() - { - } - - public DAC_組織類別(DbConnection conn) - : base(conn) - { - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 組織類別List SelectAll() - { - 組織類別List result = new 組織類別List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 組織類別List SelectOne(int 組織類別ID) - { - 組織類別List result = new 組織類別List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 組織類別ID = @組織類別ID " - ; - AddParam(cmdSelect, "組織類別ID", 組織類別ID); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public int InsertOne(組織類別 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return -1; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 組織類別" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - + "select @@identity" - ; - AddParam(cmdInsert, "組織類別名稱", value.組織類別名稱); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - int newId; - ExecuteScalar(cmdInsert, out newId); - AfterInsertOne(value); - ts.Complete(); - return newId; - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(組織類別 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 組織類別List oldValues = SelectOne(value.組織類別ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"組織類別\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 組織類別 - set - 組織類別名稱 = @組織類別名稱 , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 組織類別ID = @original_組織類別ID - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "組織類別名稱", value.組織類別名稱); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_組織類別ID", value.組織類別ID); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 組織類別ID, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(組織類別ID, DB_APPNO)) - return -1; - - 組織類別List oldValues = SelectOne(組織類別ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"組織類別\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 組織類別 - where 1=1 - and 組織類別ID = @組織類別ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "組織類別ID", 組織類別ID); - AddParam(cmdDelete, "DB_APPNO", DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdDelete); - AfterDeleteOne(組織類別ID, 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(組織類別 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 組織類別List oldValues = SelectOne(value.組織類別ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"組織類別\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 組織類別 - where 1=1 - and 組織類別ID = @組織類別ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "組織類別ID", value.組織類別ID); - 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 組織類別ID) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 組織類別ID = @組織類別ID " - ; - AddParam(cmdSelect, "組織類別ID", 組織類別ID); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 組織類別 資料集合類別 - /// - public partial class 組織類別List : List<組織類別>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 組織類別 newItem = new 組織類別(); - newItem.組織類別ID = DAC.GetInt32(reader[0]); - newItem.組織類別名稱 = DAC.GetString(reader[1]); - newItem.DB_APPNO = DAC.GetInt32(reader[2]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[3]); - newItem.DB_CRUSR = DAC.GetString(reader[4]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[5]); - newItem.DB_TRUSR = DAC.GetString(reader[6]); - Add(newItem); - } - } - } - - /// - /// 組織類別 資料紀錄類別 - /// - [Serializable] - public partial class 組織類別 : DataItemBase - { - private int _組織類別ID; - private string _組織類別名稱; - - #region 資料欄位 - /// - /// 組織類別ID - /// - [DataObjectField(true, false, false)] - public int 組織類別ID - { - get - { - return _組織類別ID; - } - set - { - if (value != _組織類別ID) - { - _組織類別ID = value; - OnPropertyChanged("組織類別ID"); - } - } - } - - /// - /// 組織類別名稱 - /// - [DataObjectField(false, false, true, 50)] - public string 組織類別名稱 - { - get - { - return _組織類別名稱; - } - set - { - if (value != _組織類別名稱) - { - _組織類別名稱 = value; - OnPropertyChanged("組織類別名稱"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_組織類別2.cs b/branches/1150807/DAC/基本資料/DAC_組織類別2.cs deleted file mode 100644 index 21d314d..0000000 --- a/branches/1150807/DAC/基本資料/DAC_組織類別2.cs +++ /dev/null @@ -1,131 +0,0 @@ -// -// 這個檔案是 組織類別 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 組織類別 資料存取類別 - /// - public partial class DAC_組織類別 : WebLib.DAC - { - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(組織類別 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(組織類別 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(組織類別 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(組織類別 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(組織類別 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(組織類別 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 組織類別ID, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 組織類別ID, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 組織類別 資料集合類別 - /// - public partial class 組織類別List : List<組織類別> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 組織類別 資料紀錄類別 - /// - public partial class 組織類別 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_職務1.cs b/branches/1150807/DAC/基本資料/DAC_職務1.cs deleted file mode 100644 index ff098fb..0000000 --- a/branches/1150807/DAC/基本資料/DAC_職務1.cs +++ /dev/null @@ -1,372 +0,0 @@ -// -// 這個檔案是 職務 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 職務 資料存取類別 - /// - [DataObject] - public partial class DAC_職務 : WebLib.DAC - { - private string _tableName = "職務"; - private string _select = "select 職務ID, 職務名稱, 組織類別ID, 主管, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "職務名稱, 組織類別ID, 主管, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@職務名稱, @組織類別ID, @主管, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 職務 "; - private string _where = " where 1=1 "; - private string _order = " order by 職務ID "; - - public DAC_職務() - : base() - { - } - - public DAC_職務(DbConnection conn) - : base(conn) - { - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 職務List SelectAll() - { - 職務List result = new 職務List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 職務List SelectOne(int 職務ID) - { - 職務List result = new 職務List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 職務ID = @職務ID " - ; - AddParam(cmdSelect, "職務ID", 職務ID); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public int InsertOne(職務 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return -1; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 職務" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - + "select @@identity" - ; - AddParam(cmdInsert, "職務名稱", value.職務名稱); - AddParam(cmdInsert, "組織類別ID", value.組織類別ID); - AddParam(cmdInsert, "主管", value.主管); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - int newId; - ExecuteScalar(cmdInsert, out newId); - AfterInsertOne(value); - ts.Complete(); - return newId; - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if (!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(職務 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 職務List oldValues = SelectOne(value.職務ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"職務\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 職務 - set - 職務名稱 = @職務名稱 , - 組織類別ID = @組織類別ID , - 主管 = @主管 , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 職務ID = @original_職務ID - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "職務名稱", value.職務名稱); - AddParam(cmdUpdate, "組織類別ID", value.組織類別ID); - AddParam(cmdUpdate, "主管", value.主管); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_職務ID", value.職務ID); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if (!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 職務ID, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(職務ID, DB_APPNO)) - return -1; - - 職務List oldValues = SelectOne(職務ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"職務\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 職務 - where 1=1 - and 職務ID = @職務ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "職務ID", 職務ID); - AddParam(cmdDelete, "DB_APPNO", DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdDelete); - AfterDeleteOne(職務ID, 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(職務 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 職務List oldValues = SelectOne(value.職務ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"職務\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 職務 - where 1=1 - and 職務ID = @職務ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "職務ID", value.職務ID); - 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 職務ID) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 職務ID = @職務ID " - ; - AddParam(cmdSelect, "職務ID", 職務ID); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 職務 資料集合類別 - /// - public partial class 職務List : List<職務>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 職務 newItem = new 職務(); - newItem.職務ID = DAC.GetInt32(reader[0]); - newItem.職務名稱 = DAC.GetString(reader[1]); - newItem.組織類別ID = DAC.GetString(reader[2]); - newItem.主管 = DAC.GetString(reader[3]); - newItem.DB_APPNO = DAC.GetInt32(reader[4]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[5]); - newItem.DB_CRUSR = DAC.GetString(reader[6]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[7]); - newItem.DB_TRUSR = DAC.GetString(reader[8]); - Add(newItem); - } - } - } - - /// - /// 職務 資料紀錄類別 - /// - [Serializable] - public partial class 職務 : DataItemBase - { - private int _職務ID; - private string _職務名稱; - private string _組織類別ID; - private string _主管; - - #region 資料欄位 - /// - /// 職務ID - /// - [DataObjectField(true, false, false)] - public int 職務ID - { - get - { - return _職務ID; - } - set - { - if (value != _職務ID) - { - _職務ID = value; - OnPropertyChanged("職務ID"); - } - } - } - - /// - /// 職務名稱 - /// - [DataObjectField(false, false, false, 30)] - public string 職務名稱 - { - get - { - return _職務名稱; - } - set - { - if (value != _職務名稱) - { - _職務名稱 = value; - OnPropertyChanged("職務名稱"); - } - } - } - - /// - /// 組織類別ID - /// - [DataObjectField(false, false, false, 10)] - public string 組織類別ID - { - get - { - return _組織類別ID; - } - set - { - if (value != _組織類別ID) - { - _組織類別ID = value; - OnPropertyChanged("組織類別ID"); - } - } - } - - /// - /// 主管 - /// - [DataObjectField(false, false, true, 1)] - public string 主管 - { - get - { - return _主管; - } - set - { - if (value != _主管) - { - _主管 = value; - OnPropertyChanged("主管"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_職務2.cs b/branches/1150807/DAC/基本資料/DAC_職務2.cs deleted file mode 100644 index 9465bcb..0000000 --- a/branches/1150807/DAC/基本資料/DAC_職務2.cs +++ /dev/null @@ -1,163 +0,0 @@ -// -// 這個檔案是 職務 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 職務 資料存取類別 - /// - public partial class DAC_職務 : WebLib.DAC - { - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(職務 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(職務 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(職務 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(職務 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(職務 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(職務 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 職務ID, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 職務ID, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - [DataObjectMethod(DataObjectMethodType.Select)] - public 職務List Select組織類別(int 組織類別ID) - { - 職務List result = new 職務List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " AND 組織類別ID = @組織類別ID " + _order; - AddParam(cmdSelect, "組織類別ID", 組織類別ID); - Select(cmdSelect, ref list); - return result; - } - - public string Get職務名稱(object 職務ID) - { - DbCommand cmd = NewCommand("SELECT 職務名稱 FROM " + _tableName - + " WHERE 職務ID=@職務ID"); - AddParam(cmd, "職務ID", 職務ID); - string s; - ExecuteScalar(cmd, out s); - return s; - } - - public bool Is主管職(object 職務ID) - { - DbCommand cmd = NewCommand("SELECT 主管 FROM " + _tableName - + " WHERE 職務ID=@職務ID"); - AddParam(cmd, "職務ID", 職務ID); - string s; - ExecuteScalar(cmd, out s); - return s.ToUpper() == "Y"; - } - } - - /// - /// 職務 資料集合類別 - /// - public partial class 職務List : List<職務> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 職務 資料紀錄類別 - /// - public partial class 職務 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_計畫別.cs b/branches/1150807/DAC/基本資料/DAC_計畫別.cs deleted file mode 100644 index 1d1a16c..0000000 --- a/branches/1150807/DAC/基本資料/DAC_計畫別.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.ComponentModel; -using WebLib; - -namespace Education -{ - [DataObject] - public class DAC_計畫別 - { - public DAC_計畫別() - { - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList SelectForList() - { - NameValueList result = new NameValueList(); - result.Add("核心職能", "核心"); - result.Add("專業職能", "專業"); - result.Add("管理職能", "管理"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList SelectForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("核心職能", "核心"); - result.Add("專業職能", "專業"); - result.Add("管理職能", "管理"); - return result; - } - - public static string Get計畫別名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": - return "人提"; - case "2": - return "人派"; - case "3": - return "一般"; - case "核心": - return "核心職能"; - case "專業": - return "專業職能"; - case "管理": - return "管理職能"; - default: - return ""; - } - } - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_課程1.cs b/branches/1150807/DAC/基本資料/DAC_課程1.cs deleted file mode 100644 index ae6bd7c..0000000 --- a/branches/1150807/DAC/基本資料/DAC_課程1.cs +++ /dev/null @@ -1,494 +0,0 @@ -// -// 這個檔案是 課程 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 課程 資料存取類別 - /// - [DataObject] - public partial class DAC_課程 : WebLib.DAC - { - private string _tableName = "課程"; - private string _select = "select 課程編號, 課程類別, 課程類型, 課程名稱, 訓練對象, 課程時數, 課程內容, 預期效益, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "課程編號, 課程類別, 課程類型, 課程名稱, 訓練對象, 課程時數, 課程內容, 預期效益, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@課程編號, @課程類別, @課程類型, @課程名稱, @訓練對象, @課程時數, @課程內容, @預期效益, @備註, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 課程 "; - 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() - { - 課程List result = new 課程List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 課程List SelectOne(string 課程編號) - { - 課程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; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(課程 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 課程" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(課程 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 課程List oldValues = SelectOne(value.課程編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"課程\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_課程編號", value.課程編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(string 課程編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(課程編號, DB_APPNO)) - return -1; - - 課程List oldValues = SelectOne(課程編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"課程\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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(課程 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 課程List oldValues = SelectOne(value.課程編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"課程\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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(string 課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 課程編號 = @課程編號 " - ; - AddParam(cmdSelect, "課程編號", 課程編號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 課程 資料集合類別 - /// - public partial class 課程List : List<課程>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 課程 newItem = new 課程(); - newItem.課程編號 = DAC.GetString(reader[0]); - newItem.課程類別 = DAC.GetString(reader[1]); - newItem.課程類型 = DAC.GetString(reader[2]); - newItem.課程名稱 = DAC.GetString(reader[3]); - newItem.訓練對象 = DAC.GetString(reader[4]); - newItem.課程時數 = DAC.GetInt32(reader[5]); - newItem.課程內容 = DAC.GetString(reader[6]); - newItem.預期效益 = DAC.GetString(reader[7]); - newItem.備註 = DAC.GetString(reader[8]); - newItem.DB_APPNO = DAC.GetInt32(reader[9]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[10]); - newItem.DB_CRUSR = DAC.GetString(reader[11]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[12]); - newItem.DB_TRUSR = DAC.GetString(reader[13]); - Add(newItem); - } - } - } - - /// - /// 課程 資料紀錄類別 - /// - [Serializable] - public partial class 課程 : DataItemBase - { - private string _課程編號; - private string _課程類別; - private string _課程類型; - private string _課程名稱; - private string _訓練對象; - private int _課程時數; - private string _課程內容; - private string _預期效益; - private string _備註; - - #region 資料欄位 - /// - /// 課程編號 - /// - [DataObjectField(true, false, false, 50)] - public string 課程編號 - { - get - { - return _課程編號; - } - set - { - if (value != _課程編號) - { - _課程編號 = value; - OnPropertyChanged("課程編號"); - } - } - } - - /// - /// 課程類別 - /// - [DataObjectField(false, false, false, 50)] - public string 課程類別 - { - get - { - return _課程類別; - } - set - { - if (value != _課程類別) - { - _課程類別 = value; - OnPropertyChanged("課程類別"); - } - } - } - - /// - /// 課程類型 - /// - [DataObjectField(false, false, false, 1)] - public string 課程類型 - { - get - { - return _課程類型; - } - set - { - if (value != _課程類型) - { - _課程類型 = value; - OnPropertyChanged("課程類型"); - } - } - } - - /// - /// 課程名稱 - /// - [DataObjectField(false, false, false, 100)] - 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)] - public int 課程時數 - { - get - { - return _課程時數; - } - set - { - if (value != _課程時數) - { - _課程時數 = value; - OnPropertyChanged("課程時數"); - } - } - } - - /// - /// 課程內容 - /// - [DataObjectField(false, false, true, 2000)] - public string 課程內容 - { - get - { - return _課程內容; - } - set - { - if (value != _課程內容) - { - _課程內容 = value; - OnPropertyChanged("課程內容"); - } - } - } - - /// - /// 預期效益 - /// - [DataObjectField(false, false, true, 1000)] - public string 預期效益 - { - get - { - return _預期效益; - } - set - { - if (value != _預期效益) - { - _預期效益 = value; - OnPropertyChanged("預期效益"); - } - } - } - - /// - /// 備註 - /// - [DataObjectField(false, false, true, 1000)] - public string 備註 - { - get - { - return _備註; - } - set - { - if (value != _備註) - { - _備註 = value; - OnPropertyChanged("備註"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_課程2.cs b/branches/1150807/DAC/基本資料/DAC_課程2.cs deleted file mode 100644 index 6708270..0000000 --- a/branches/1150807/DAC/基本資料/DAC_課程2.cs +++ /dev/null @@ -1,235 +0,0 @@ -// -// 這個檔案是 課程 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 課程 資料存取類別 - /// - public partial class DAC_課程 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 課程List Select(bool noInputReturnAll, string 課程編號, string 課程類別, string 課程名稱, string 訓練對象) - { - 課程List result = new 課程List(); - - if (!noInputReturnAll - && 課程編號 == null - && 課程類別 == null - && 課程名稱 == null - && 訓練對象 == null) - return result; - - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - if (課程編號 != null && 課程編號.Length > 0) - { - cmdSelect.CommandText += " and 課程編號 like @課程編號 "; - AddParam(cmdSelect, "課程編號", 課程編號 + "%"); - } - - if (課程類別 != null && 課程類別.Length > 0) - { - cmdSelect.CommandText += " and 課程類別 like @課程類別 "; - AddParam(cmdSelect, "課程類別", 課程類別 + "%"); - } - - if (課程名稱 != null && 課程名稱.Length > 0) - { - cmdSelect.CommandText += " and 課程名稱 like @課程名稱 "; - AddParam(cmdSelect, "課程名稱", 課程名稱 + "%"); - } - - if (訓練對象 != null && 訓練對象.Length > 0) - { - cmdSelect.CommandText += " and 訓練對象 like @訓練對象 "; - AddParam(cmdSelect, "訓練對象", 訓練對象 + "%"); - } - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 課程List Select(string 課程類別, string 課程名稱, string 課程類型) - { - 課程List result = new 課程List(); - - if ((課程類別 == null || 課程類別.Length == 0) && - (課程名稱 == null || 課程名稱.Length == 0) && - (課程類型 == null || 課程類型.Length == 0)) - return result; - - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - if (課程類別 != null && 課程類別.Length > 0) - { - cmdSelect.CommandText += " and 課程類別 = @課程類別 "; - AddParam(cmdSelect, "課程類別", 課程類別); - } - else - { - return result; - } - - if (課程名稱 != null && 課程名稱.Length > 0) - { - cmdSelect.CommandText += " and 課程名稱 like @課程名稱 "; - AddParam(cmdSelect, "課程名稱", "%" + 課程名稱 + "%"); - } - - if (課程類型 != null && 課程類型.Length > 0) - { - cmdSelect.CommandText += " and 課程類型 = @課程類型 "; - AddParam(cmdSelect, "課程類型", 課程類型); - } - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(課程 value) - { - value.課程編號 = Next課程編號(value.課程類別); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(課程 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(課程 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(課程 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(課程 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(課程 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(string 課程編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(string 課程編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - protected string Next課程編號(string 課程類別) - { - return Next單號(DateTime.UtcNow.AddHours(8).Date, _tableName, "課程編號", String.Format("\"{0}\"<999>", 課程類別), ""); - } - - public bool IsOccipued(string 課程編號) - { - DbCommand cmd = NewCommand( - @"SELECT COUNT(1) FROM 訓練課程內容 WHERE 課程編號 = @課程編號"); - AddParam(cmd, "課程編號", 課程編號); - int i; - ExecuteScalar(cmd, out i); - return i > 0; - } - } - - /// - /// 課程 資料集合類別 - /// - public partial class 課程List : List<課程> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 課程 資料紀錄類別 - /// - public partial class 課程 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_講師1.cs b/branches/1150807/DAC/基本資料/DAC_講師1.cs deleted file mode 100644 index f8961f4..0000000 --- a/branches/1150807/DAC/基本資料/DAC_講師1.cs +++ /dev/null @@ -1,1403 +0,0 @@ -// -// 這個檔案是 講師 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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, string 姓名, string 電話, string 手機) - { - if (姓名 != null && 姓名.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 姓名 like @姓名 "; - AddParam(cmdSelect, "姓名", "%" + 姓名 + "%"); - } - - if (電話 != null && 電話.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 電話 like @電話 "; - AddParam(cmdSelect, "電話", "%" + 電話 + "%"); - } - - if (手機 != null && 手機.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 手機 like @手機 "; - AddParam(cmdSelect, "手機", "%" + 手機 + "%"); - } - - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 講師List Select(bool noInputReturnAll, string 姓名, string 電話, string 手機, 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, 姓名, 電話, 手機); - 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, string 姓名, string 電話, string 手機, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 姓名, 電話, 手機); - - 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, string 姓名, string 電話, string 手機, 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, 姓名, 電話, 手機); - 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 講師 InsertOne(講師 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, "最高學歷", 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 講師 UpdateOne(講師 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("在更新 \"講師\" 資料表時發生並行例外:找不到要更新的資料列"); - } - - 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, "最高學歷學校", 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 講師 UpdateOne(講師 value, 講師 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("在更新 \"講師\" 資料表時發生並行例外:找不到要更新的資料列"); - } - - 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, "最高學歷學校", 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("在刪除 \"講師\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - - 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(講師 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("在刪除 \"講師\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - - 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; - } - - } - - - /// - ///講師 資料集合類別 - /// - [Serializable] - public partial class 講師List : List<講師>, IDataList - { - public void Fill(DbDataReader reader) - { - DAC.FillData<講師>(reader, this); - } - //public void Fill(DbDataReader reader) - //{ - // while (reader.Read()) - // { - // 講師 newItem = new 講師(); - // newItem.編號 = DAC.GetInt32(reader[0]); - // newItem.姓名 = DAC.GetString(reader[1]); - // newItem.出生日期 = DAC.GetDateTime(reader[2]); - // newItem.性別 = DAC.GetString(reader[3]); - // newItem.身份證字號 = DAC.GetString(reader[4]); - // newItem.電話 = DAC.GetString(reader[5]); - // newItem.手機 = DAC.GetString(reader[6]); - // newItem.電子郵件 = DAC.GetString(reader[7]); - // newItem.戶籍地址_郵編 = DAC.GetString(reader[8]); - // newItem.戶籍地址_縣市 = DAC.GetString(reader[9]); - // newItem.戶籍地址_鄉鎮市區 = DAC.GetString(reader[10]); - // newItem.戶籍地址_街道地址 = DAC.GetString(reader[11]); - // newItem.居住地址_郵編 = DAC.GetString(reader[12]); - // newItem.居住地址_縣市 = DAC.GetString(reader[13]); - // newItem.居住地址_鄉鎮市區 = DAC.GetString(reader[14]); - // newItem.居住地址_街道地址 = DAC.GetString(reader[15]); - // newItem.現職 = DAC.GetString(reader[16]); - // newItem.最高學歷 = DAC.GetString(reader[17]); - // newItem.最高學歷學校 = DAC.GetString(reader[18]); - // newItem.最高學歷科系 = DAC.GetString(reader[19]); - // newItem.授課區域 = DAC.GetString(reader[20]); - // newItem.授課專長領域 = DAC.GetString(reader[21]); - // newItem.授課經歷概述 = DAC.GetString(reader[22]); - // newItem.重要經歷 = DAC.GetString(reader[23]); - // newItem.重要研究與著作 = DAC.GetString(reader[24]); - // newItem.照片圖檔 = DAC.GetString(reader[25]); - // newItem.合作狀態 = DAC.GetString(reader[26]); - // newItem.合作狀態說明 = DAC.GetString(reader[27]); - // newItem.合作方式 = DAC.GetString(reader[28]); - // newItem.證照資料 = DAC.GetString(reader[29]); - // newItem.異常標註 = DAC.GetString(reader[30]); - // newItem.講師來源 = DAC.GetString(reader[31]); - // newItem.推薦授課主題 = DAC.GetString(reader[32]); - // newItem.DB_APPNO = DAC.GetInt32(reader[33]); - // newItem.DB_CRDAT = DAC.GetDateTime(reader[34]); - // newItem.DB_CRUSR = DAC.GetString(reader[35]); - // newItem.DB_TRDAT = DAC.GetDateTime(reader[36]); - // newItem.DB_TRUSR = DAC.GetString(reader[37]); - - // //newItem.編號 = DAC.GetInt32(reader[0]); - // //newItem.姓名 = DAC.GetString(reader[1]); - // //newItem.出生日期 = DAC.GetDateTime(reader[2]); - // //newItem.性別 = DAC.GetString(reader[3]); - // //newItem.身份證字號 = DAC.GetString(reader[4]); - // //newItem.電話 = DAC.GetString(reader[5]); - // //newItem.手機 = DAC.GetString(reader[6]); - // //newItem.電子郵件 = DAC.GetString(reader[7]); - // //newItem.戶籍地址_郵編 = DAC.GetString(reader[8]); - // //newItem.戶籍地址_縣市 = DAC.GetString(reader[9]); - // //newItem.戶籍地址_鄉鎮市區 = DAC.GetString(reader[10]); - // //newItem.戶籍地址_街道地址 = DAC.GetString(reader[11]); - // //newItem.居住地址_郵編 = DAC.GetString(reader[12]); - // //newItem.居住地址_縣市 = DAC.GetString(reader[13]); - // //newItem.居住地址_鄉鎮市區 = DAC.GetString(reader[14]); - // //newItem.居住地址_街道地址 = DAC.GetString(reader[15]); - // //newItem.現職 = DAC.GetString(reader[16]); - // //newItem.最高學歷 = DAC.GetString(reader[17]); - // //newItem.最高學歷學校 = DAC.GetString(reader[18]); - // //newItem.最高學歷科系 = DAC.GetString(reader[19]); - // //newItem.授課區域 = DAC.GetString(reader[20]); - // //newItem.授課專長領域 = DAC.GetString(reader[21]); - // //newItem.授課經歷概述 = DAC.GetString(reader[22]); - // //newItem.重要經歷 = DAC.GetString(reader[23]); - // //newItem.重要研究與著作 = DAC.GetString(reader[24]); - // //newItem.照片圖檔 = DAC.GetString(reader[25]); - // //newItem.DB_APPNO = DAC.GetInt32(reader[26]); - // //newItem.DB_CRDAT = DAC.GetDateTime(reader[27]); - // //newItem.DB_CRUSR = DAC.GetString(reader[28]); - // //newItem.DB_TRDAT = DAC.GetDateTime(reader[29]); - // //newItem.DB_TRUSR = DAC.GetString(reader[30]); - // Add(newItem); - // } - //} - } - - - /// - /// 講師 資料紀錄類別 - /// - [Serializable] - public partial class 講師 : 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 string _居住地址_街道地址; - 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 string _合作方式; - private string _證照資料; - private string _異常標註; - private string _講師來源; - private string _推薦授課主題; - private string _備註; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 姓名 - /// - [DataObjectField(false, false, true, 30)] - public string 姓名 - { - get - { - return _姓名; - } - set - { - if (value != _姓名) - { - _姓名 = value; - OnPropertyChanged("姓名"); - } - } - } - - /// - /// 出生日期 - /// - [DataObjectField(false, false, true)] - public DateTime? 出生日期 - { - get - { - return _出生日期; - } - set - { - if (value != _出生日期) - { - _出生日期 = value; - OnPropertyChanged("出生日期"); - } - } - } - - /// - /// 性別,M=男、F=女 - /// - [DataObjectField(false, false, true, 1)] - 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, 50)] - 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, 10)] - 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, 10)] - 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, 10)] - 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, 10)] - 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, 500)] - public string 現職 - { - get - { - return _現職; - } - set - { - if (value != _現職) - { - _現職 = value; - OnPropertyChanged("現職"); - } - } - } - - /// - /// 最高學歷 - /// - [DataObjectField(false, false, true, 1)] - 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, 200)] - 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, 2000)] - public string 授課專長領域 - { - get - { - return _授課專長領域; - } - set - { - if (value != _授課專長領域) - { - _授課專長領域 = value; - OnPropertyChanged("授課專長領域"); - } - } - } - - /// - /// 授課經歷概述 - /// - [DataObjectField(false, false, true, 2000)] - public string 授課經歷概述 - { - get - { - return _授課經歷概述; - } - set - { - if (value != _授課經歷概述) - { - _授課經歷概述 = value; - OnPropertyChanged("授課經歷概述"); - } - } - } - - /// - /// 重要經歷 - /// - [DataObjectField(false, false, true, 2000)] - public string 重要經歷 - { - get - { - return _重要經歷; - } - set - { - if (value != _重要經歷) - { - _重要經歷 = value; - OnPropertyChanged("重要經歷"); - } - } - } - - /// - /// 重要研究與著作 - /// - [DataObjectField(false, false, true, 2000)] - 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, 1)] - public string 合作狀態 - { - get - { - return _合作狀態; - } - set - { - if (value != _合作狀態) - { - _合作狀態 = value; - OnPropertyChanged("合作狀態"); - } - } - } - - /// - /// 合作狀態說明 - /// - [DataObjectField(false, false, true, 2000)] - public string 合作狀態說明 - { - get - { - return _合作狀態說明; - } - set - { - if (value != _合作狀態說明) - { - _合作狀態說明 = value; - OnPropertyChanged("合作狀態說明"); - } - } - } - - /// - /// 合作方式 - /// - [DataObjectField(false, false, true, 2000)] - public string 合作方式 - { - get - { - return _合作方式; - } - set - { - if (value != _合作方式) - { - _合作方式 = value; - OnPropertyChanged("合作方式"); - } - } - } - - /// - /// 證照資料 - /// - [DataObjectField(false, false, true, 2000)] - public string 證照資料 - { - get - { - return _證照資料; - } - set - { - if (value != _證照資料) - { - _證照資料 = value; - OnPropertyChanged("證照資料"); - } - } - } - - /// - /// 異常標註 - /// - [DataObjectField(false, false, true, 2000)] - public string 異常標註 - { - get - { - return _異常標註; - } - set - { - if (value != _異常標註) - { - _異常標註 = value; - OnPropertyChanged("異常標註"); - } - } - } - - /// - /// 講師來源 - /// - [DataObjectField(false, false, true, 2000)] - public string 講師來源 - { - get - { - return _講師來源; - } - set - { - if (value != _講師來源) - { - _講師來源 = value; - OnPropertyChanged("講師來源"); - } - } - } - - /// - /// 推薦授課主題 - /// - [DataObjectField(false, false, true, 2000)] - public string 推薦授課主題 - { - get - { - return _推薦授課主題; - } - set - { - if (value != _推薦授課主題) - { - _推薦授課主題 = value; - OnPropertyChanged("推薦授課主題"); - } - } - } - - /// - /// 備註 - /// - [DataObjectField(false, false, true, 2000)] - public string 備註 - { - get - { - return _備註; - } - set - { - if (value != _備註) - { - _備註 = value; - OnPropertyChanged("備註"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/基本資料/DAC_講師2.cs b/branches/1150807/DAC/基本資料/DAC_講師2.cs deleted file mode 100644 index 79407e5..0000000 --- a/branches/1150807/DAC/基本資料/DAC_講師2.cs +++ /dev/null @@ -1,709 +0,0 @@ -// -// 這個檔案是 講師 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using NPOI.SS.Formula.Functions; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.EnterpriseServices.Internal; -using System.Linq; -using System.Text; -using System.Web.UI.WebControls; -using WebLib; - -namespace Education -{ - /// - /// 講師 資料存取類別 - /// - public partial class DAC_講師 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 講師List Select講師遴選(string 姓名, string 電話, string 手機) - { - 講師List result = new 講師List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + " and 合作狀態 <> 'X' "; - - if (姓名 != null && 姓名.Length > 0) - { - cmdSelect.CommandText += " and 姓名 like @姓名 "; - AddParam(cmdSelect, "姓名", 姓名 + "%"); - } - if (電話 != null && 電話.Length > 0) - { - cmdSelect.CommandText += " and 電話 like @電話 "; - AddParam(cmdSelect, "電話", 電話 + "%"); - } - if (手機 != null && 手機.Length > 0) - { - cmdSelect.CommandText += " and 手機 like @手機 "; - AddParam(cmdSelect, "手機", 手機 + "%"); - } - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(講師 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(講師 value) - { - } - - /// - /// InsertOne 錯誤時會觸發的方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(講師 value) - { - return true; - } - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(講師 value, 講師 original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(講師 value) - { - } - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(講師 value, 講師 original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(講師 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(講師 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - public string Get姓名(object 編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "SELECT 姓名 " + _from + " WHERE 編號 = @編號 "; - AddParam(cmdSelect, "編號", 編號); - string s; - ExecuteScalar(cmdSelect, out s); - return s; - } - - public NameValueList Select地區ForDropDown() - { - NameValueList result = new NameValueList(); - DbCommand cmd = NewCommand("SELECT DISTINCT 居住地址_縣市 FROM " + _tableName + " ORDER BY 居住地址_縣市"); - - result.Add("(請選擇)", ""); - result.Fill(Select(cmd), "居住地址_縣市", "居住地址_縣市", false); - - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 講師List 查詢作業(bool noInputReturnAll, int startRowIndex, int maximumRows, - string 姓名, string 地區, string 授課專長領域, string 學歷, int 滿意度1, int 滿意度2, - string 合作狀態, string 關鍵字, string 關鍵字欄位, string 推薦授課主題, int 講師評鑑1, int 講師評鑑2) - { - 講師List result = new 講師List(); - - if (!noInputReturnAll - && string.IsNullOrEmpty(姓名) - && string.IsNullOrEmpty(地區) - && string.IsNullOrEmpty(授課專長領域) - && string.IsNullOrEmpty(學歷) - && 滿意度1 == 0 - && 滿意度2 == 0 - && 講師評鑑1 == 0 - && 講師評鑑2 == 0 - && string.IsNullOrEmpty(合作狀態) - && string.IsNullOrEmpty(關鍵字) - && string.IsNullOrEmpty(推薦授課主題)) - return result; - - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - - var 符合度 = ""; - if (!string.IsNullOrEmpty(關鍵字) && !string.IsNullOrEmpty(關鍵字欄位)) - { - var k = 關鍵字.Split(' '); - var q = new List(); - for (int i = 0; i < k.Length; i++) - { - var w = new List(); - foreach (var f in 關鍵字欄位.Split('|')) - { - if (f == "居住地區") - { - q.Add(string.Format("isnull((select 1 from 講師 B where B.編號=A.編號 and (B.居住地址_縣市 like @關鍵字_{1} or B.居住地址_鄉鎮市區 like @關鍵字_{1}) ), 0)", f, i)); - } - else - { - q.Add(string.Format("isnull((select 1 from 講師 B where B.編號=A.編號 and B.{0} like @關鍵字_{1} ), 0)", f, i)); - } - } - } - 符合度 = string.Format(" ({0}) AS 符合度 ", string.Join(" + ", q.ToArray())); - } - if (string.IsNullOrEmpty(符合度)) - 符合度 = " 0 AS 符合度 "; - - var SQL = _select + ", 滿意度 as 平均滿意度, 講師評鑑, 學員滿意度, 最高學歷TXT, 符合度, ROW_NUMBER() over (order by [符合度] desc) AS ROWNUMBER " + - string.Format(@" FROM - ( SELECT A.*, - ISNULL(( SELECT CAST(SUM(授課方式分數) + SUM(專業知識分數) AS FLOAT) / 2 / COUNT(1) - FROM 滿意度調查講師 - WHERE 講師編號 = A.編號), 0) AS 滿意度, - ISNULL((SELECT AVG(cast(專業度 + 授課技巧 + 互動氛圍 + 內容切題 + 配合度 as float)) - FROM 講師外訓滿意度 - WHERE 講師編號 = A.編號), 0) AS 講師評鑑, - ISNULL((SELECT AVG(cast(學員滿意度 as float)) - FROM 講師外訓滿意度 - WHERE 講師編號 = A.編號), 0) AS 學員滿意度, - (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BPSNSTP' AND BSCLS=A.最高學歷) AS 最高學歷TXT, - {0} - FROM 講師 A - ) AS TMP1 ", 符合度) - + _where; - - if (姓名 != null && 姓名.Length > 0) - { - SQL += " and 姓名 like @姓名 "; - AddParam(cmdSelect, "姓名", "%" + 姓名 + "%"); - } - if (地區 != null && 地區.Length > 0) - { - SQL += " and 授課區域 like @地區 "; - AddParam(cmdSelect, "地區", "%" + 地區 + "%"); - } - if (授課專長領域 != null && 授課專長領域.Length > 0) - { - SQL += " and 授課專長領域 like @授課專長領域 "; - AddParam(cmdSelect, "授課專長領域", "%" + 授課專長領域 + "%"); - } - if (學歷 != null && 學歷.Length > 0) - { - SQL += " and 最高學歷 = @學歷 "; - AddParam(cmdSelect, "學歷", 學歷); - } - if (滿意度1 != 0 && 滿意度2 != 0) - { - SQL += " and 滿意度 between @滿意度1 and @滿意度2 "; - AddParam(cmdSelect, "滿意度1", 滿意度1); - AddParam(cmdSelect, "滿意度2", 滿意度2); - } - else if (滿意度1 != 0 && 滿意度2 == 0) - { - SQL += " and 滿意度 >= @滿意度1 "; - AddParam(cmdSelect, "滿意度1", 滿意度1); - } - else if (滿意度1 == 0 && 滿意度2 != 0) - { - SQL += " and 滿意度 <= @滿意度2 "; - AddParam(cmdSelect, "滿意度2", 滿意度2); - } - if (!string.IsNullOrEmpty(合作狀態)) - { - SQL += " and 合作狀態 = @合作狀態 "; - AddParam(cmdSelect, "合作狀態", 合作狀態); - } - if (推薦授課主題 != null && 推薦授課主題.Length > 0) - { - SQL += " and 推薦授課主題 like @推薦授課主題 "; - AddParam(cmdSelect, "推薦授課主題", "%" + 推薦授課主題 + "%"); - } - if (講師評鑑1 != 0 && 講師評鑑2 != 0) - { - SQL += " and 講師評鑑 between @講師評鑑1 and @講師評鑑2 "; - AddParam(cmdSelect, "講師評鑑1", 講師評鑑1); - AddParam(cmdSelect, "講師評鑑2", 講師評鑑2); - } - else if (講師評鑑1 != 0 && 講師評鑑2 == 0) - { - SQL += " and 講師評鑑 >= @講師評鑑1 "; - AddParam(cmdSelect, "講師評鑑1", 講師評鑑1); - } - else if (講師評鑑1 == 0 && 講師評鑑2 != 0) - { - SQL += " and 講師評鑑 <= @講師評鑑2 "; - AddParam(cmdSelect, "講師評鑑2", 講師評鑑2); - } - if (!string.IsNullOrEmpty(關鍵字) && !string.IsNullOrEmpty(關鍵字欄位)) - { - var keywords = 關鍵字.Split(' '); - var keywordWhere = new List(); - for (int i = 0; i < keywords.Length; i++) - { - var and = keywords[i].StartsWith("+"); - var keyword = keywords[i].Replace("+", ""); - - var oneWhere = new List(); - AddParam(cmdSelect, string.Format("關鍵字_{0}", i), string.Format("%{0}%", keyword)); - foreach (var f in 關鍵字欄位.Split('|')) - { - if (f == "居住地區") - { - oneWhere.Add(string.Format("(居住地址_縣市 LIKE @關鍵字_{0} OR 居住地址_鄉鎮市區 LIKE @關鍵字_{0})", i)); - } - else - { - oneWhere.Add(string.Format("{0} LIKE @關鍵字_{1}", f, i)); - } - } - keywordWhere.Add(string.Format("{0} ({1})", - (i == 0 ? "" : (and ? "AND" : "OR")), - string.Join(" OR ", oneWhere.ToArray()))); - } - SQL += string.Format(" and ({0}) ", string.Join(" ", keywordWhere.ToArray())); - } - - SQL = string.Format("select * FROM ({0}) AS TMP2 where ROWNUMBER > {1} and ROWNUMBER <= {2} order by [編號]", SQL, startRowIndex, startRowIndex + maximumRows); - - cmdSelect.CommandText = SQL; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public int 查詢作業Count(bool noInputReturnAll, - string 姓名, string 地區, string 授課專長領域, string 學歷, int 滿意度1, int 滿意度2, - string 合作狀態, string 關鍵字, string 關鍵字欄位, string 推薦授課主題, int 講師評鑑1, int 講師評鑑2) - { - if (!noInputReturnAll - && string.IsNullOrEmpty(姓名) - && string.IsNullOrEmpty(地區) - && string.IsNullOrEmpty(授課專長領域) - && string.IsNullOrEmpty(學歷) - && 滿意度1 == 0 - && 滿意度2 == 0 - && 講師評鑑1 == 0 - && 講師評鑑2 == 0 - && string.IsNullOrEmpty(合作狀態) - && string.IsNullOrEmpty(關鍵字) - && string.IsNullOrEmpty(推薦授課主題)) - return 0; - - DbCommand cmdSelect = NewCommand(); - - var 符合度 = ""; - if (!string.IsNullOrEmpty(關鍵字) && !string.IsNullOrEmpty(關鍵字欄位)) - { - var k = 關鍵字.Split(' '); - var q = new List(); - for (int i = 0; i < k.Length; i++) - { - var w = new List(); - foreach (var f in 關鍵字欄位.Split('|')) - { - if (f == "居住地區") - { - q.Add(string.Format("isnull((select 1 from 講師 B where B.編號=A.編號 and (B.居住地址_縣市 like @關鍵字_{1} or B.居住地址_鄉鎮市區 like @關鍵字_{1}) ), 0)", f, i)); - } - else - { - q.Add(string.Format("isnull((select 1 from 講師 B where B.編號=A.編號 and B.{0} like @關鍵字_{1} ), 0)", f, i)); - } - } - } - 符合度 = string.Format(" ({0}) AS 符合度 ", string.Join(" + ", q.ToArray())); - } - if (string.IsNullOrEmpty(符合度)) - 符合度 = " 0 AS 符合度 "; - - var SQL = _select + ", 滿意度 as 平均滿意度, 講師評鑑, 學員滿意度, 最高學歷TXT, 符合度 " + - string.Format(@" FROM - ( SELECT A.*, - ISNULL(( SELECT CAST(SUM(授課方式分數) + SUM(專業知識分數) AS FLOAT) / 2 / COUNT(1) - FROM 滿意度調查講師 - WHERE 講師編號 = A.編號), 0) AS 滿意度, - ISNULL((SELECT AVG(cast(專業度 + 授課技巧 + 互動氛圍 + 內容切題 + 配合度 as float)) - FROM 講師外訓滿意度 - WHERE 講師編號 = A.編號), 0) AS 講師評鑑, - ISNULL((SELECT AVG(cast(學員滿意度 as float)) - FROM 講師外訓滿意度 - WHERE 講師編號 = A.編號), 0) AS 學員滿意度, - (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BPSNSTP' AND BSCLS=A.最高學歷) AS 最高學歷TXT, - {0} - FROM 講師 A - ) AS TMP1 ", 符合度) - + _where; - - if (姓名 != null && 姓名.Length > 0) - { - SQL += " and 姓名 like @姓名 "; - AddParam(cmdSelect, "姓名", "%" + 姓名 + "%"); - } - if (地區 != null && 地區.Length > 0) - { - SQL += " and 授課區域 like @地區 "; - AddParam(cmdSelect, "地區", "%" + 地區 + "%"); - } - if (授課專長領域 != null && 授課專長領域.Length > 0) - { - SQL += " and 授課專長領域 like @授課專長領域 "; - AddParam(cmdSelect, "授課專長領域", "%" + 授課專長領域 + "%"); - } - if (學歷 != null && 學歷.Length > 0) - { - SQL += " and 最高學歷 = @學歷 "; - AddParam(cmdSelect, "學歷", 學歷); - } - if (滿意度1 != 0 && 滿意度2 != 0) - { - SQL += " and 滿意度 between @滿意度1 and @滿意度2 "; - AddParam(cmdSelect, "滿意度1", 滿意度1); - AddParam(cmdSelect, "滿意度2", 滿意度2); - } - else if (滿意度1 != 0 && 滿意度2 == 0) - { - SQL += " and 滿意度 >= @滿意度1 "; - AddParam(cmdSelect, "滿意度1", 滿意度1); - } - else if (滿意度1 == 0 && 滿意度2 != 0) - { - SQL += " and 滿意度 <= @滿意度2 "; - AddParam(cmdSelect, "滿意度2", 滿意度2); - } - if (!string.IsNullOrEmpty(合作狀態)) - { - SQL += " and 合作狀態 = @合作狀態 "; - AddParam(cmdSelect, "合作狀態", 合作狀態); - } - if (推薦授課主題 != null && 推薦授課主題.Length > 0) - { - SQL += " and 推薦授課主題 like @推薦授課主題 "; - AddParam(cmdSelect, "推薦授課主題", "%" + 推薦授課主題 + "%"); - } - if (講師評鑑1 != 0 && 講師評鑑2 != 0) - { - SQL += " and 講師評鑑 between @講師評鑑1 and @講師評鑑2 "; - AddParam(cmdSelect, "講師評鑑1", 講師評鑑1); - AddParam(cmdSelect, "講師評鑑2", 講師評鑑2); - } - else if (講師評鑑1 != 0 && 講師評鑑2 == 0) - { - SQL += " and 講師評鑑 >= @講師評鑑1 "; - AddParam(cmdSelect, "講師評鑑1", 講師評鑑1); - } - else if (講師評鑑1 == 0 && 講師評鑑2 != 0) - { - SQL += " and 講師評鑑 <= @講師評鑑2 "; - AddParam(cmdSelect, "講師評鑑2", 講師評鑑2); - } - if (!string.IsNullOrEmpty(關鍵字) && !string.IsNullOrEmpty(關鍵字欄位)) - { - var keywords = 關鍵字.Split(' '); - var keywordWhere = new List(); - for (int i = 0; i < keywords.Length; i++) - { - var and = keywords[i].StartsWith("+"); - var keyword = keywords[i].Replace("+", ""); - - var oneWhere = new List(); - AddParam(cmdSelect, string.Format("關鍵字_{0}", i), string.Format("%{0}%", keyword)); - foreach (var f in 關鍵字欄位.Split('|')) - { - if (f == "居住地區") - { - oneWhere.Add(string.Format("(居住地址_縣市 LIKE @關鍵字_{0} OR 居住地址_鄉鎮市區 LIKE @關鍵字_{0})", i)); - } - else - { - oneWhere.Add(string.Format("{0} LIKE @關鍵字_{1}", f, i)); - } - } - keywordWhere.Add(string.Format("{0} ({1})", - (i == 0 ? "" : (and ? "AND" : "OR")), - string.Join(" OR ", oneWhere.ToArray()))); - } - SQL += string.Format(" and ({0}) ", string.Join(" ", keywordWhere.ToArray())); - } - - SQL = string.Format("select COUNT(*) FROM ({0}) AS TMP2", SQL); - - cmdSelect.CommandText = SQL; - ExecuteScalar(cmdSelect, out int count); - return count; - } - - public DataTable Select滿意度統計(int 講師編號) - { - DbCommand cmdSelect = NewCommand( - @"SELECT - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 授課方式填答 = 5) AS 授課滿意度5, - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 授課方式填答 = 4) AS 授課滿意度4, - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 授課方式填答 = 3) AS 授課滿意度3, - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 授課方式填答 = 2) AS 授課滿意度2, - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 授課方式填答 = 1) AS 授課滿意度1, - (SELECT ISNULL(AVG(CAST(授課方式分數 AS FLOAT)), 0) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號) AS 授課滿意度總分, - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 專業知識填答 = 5) AS 專業滿意度5, - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 專業知識填答 = 4) AS 專業滿意度4, - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 專業知識填答 = 3) AS 專業滿意度3, - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 專業知識填答 = 2) AS 專業滿意度2, - (SELECT COUNT(1) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號 AND 專業知識填答 = 1) AS 專業滿意度1, - (SELECT ISNULL(AVG(CAST(專業知識分數 AS FLOAT)), 0) FROM 滿意度調查講師 WHERE 講師編號 = @講師編號) AS 專業滿意度總分"); - AddParam(cmdSelect, "講師編號", 講師編號); - return Select(cmdSelect); - } - - public bool IsOccipued(int 講師編號) - { - DbCommand cmd = NewCommand( - @"SELECT - (SELECT COUNT(1) FROM 講師遴選 WHERE 講師編號_A = @講師編號 OR 講師編號_B = @講師編號 OR 講師編號_C = @講師編號) - + (SELECT COUNT(1) FROM 講師異動 WHERE 講師編號 = @講師編號)"); - AddParam(cmd, "講師編號", 講師編號); - int i; - ExecuteScalar(cmd, out i); - return i > 0; - } - - public DataTable Select講師評鑑統計(int 講師編號) - { - DbCommand cmdSelect = NewCommand( - @"SELECT AVG(cast(專業度 as float)) AS 專業度, - AVG(cast(授課技巧 as float)) AS 授課技巧, - AVG(cast(互動氛圍 as float)) AS 互動氛圍, - AVG(cast(內容切題 as float)) AS 內容切題, - AVG(cast(配合度 as float)) AS 配合度, - AVG(cast(專業度 + 授課技巧 + 互動氛圍 + 內容切題 + 配合度 as float)) AS 總分, - AVG(cast(學員滿意度 as float)) AS 學員滿意度 - FROM 講師外訓滿意度 - WHERE 講師編號 = @講師編號"); - AddParam(cmdSelect, "講師編號", 講師編號); - return Select(cmdSelect); - } - - public bool Is身份證字號Dulicate(int 講師編號, string 身份證字號) - { - DbCommand cmd = NewCommand( - @"SELECT COUNT(1) FROM 講師 WHERE 編號<>@講師編號 AND 身份證字號=@身份證字號"); - AddParam(cmd, "講師編號", 講師編號); - AddParam(cmd, "身份證字號", 身份證字號); - int i; - ExecuteScalar(cmd, out i); - return i > 0; - } - - private static NameValueList _講師合作狀態 = new NameValueList - { - new NameValueItem { Value = "C", Name = "收服務費" }, - new NameValueItem { Value = "F", Name = "不收服務費" }, - new NameValueItem { Value = "X", Name = "不合作" }, - new NameValueItem { Value = "B", Name = "暫不排課" }, - }; - - public static NameValueList Select講師合作狀態ForEdit() - { - var result = new NameValueList(); - result.Add("(請選擇)", ""); - result.AddRange(_講師合作狀態); - return result; - } - - public static string Get講師合作狀態Text(string Value) - { - return _講師合作狀態.GetName(Value); - } - - public 講師List SelectByKeyword(string keyword) - { - 講師List result = new 講師List(); - keyword = !string.IsNullOrEmpty(keyword) ? keyword.Trim() : string.Empty; - if (string.IsNullOrEmpty(keyword)) - return result; - - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - // 20260317 用戶決定不要這個限制 - // + " and 合作狀態 <> 'X' " - + " and (姓名 like @keyword or 身份證字號 like @keyword) " - + _order; - AddParam(cmdSelect, "keyword", "%" + keyword + "%"); - Select(cmdSelect, ref list); - return result; - } - } - - /// - /// 講師 資料集合類別 - /// - public partial class 講師List : List<講師> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 講師 資料紀錄類別 - /// - public partial class 講師 - { - // 有另外加上去的屬性及方法,請加在這裡 - public double 平均滿意度 { get; set; } - - public string 最高學歷TXT { get; set; } - - public string 異常標註符號 - { - get - { - return string.IsNullOrEmpty(DAC.GetString(異常標註).Trim()) ? "" : "★"; - } - } - - public string 合作狀態TXT - { - get - { - return DAC_講師.Get講師合作狀態Text(合作狀態); - } - } - - public string 合作狀態RPT - { - get - { - return String.Format("{0}{1}", 合作狀態TXT, 合作狀態說明); - } - } - - public string 戶籍地址 - { - get - { - return string.Format("{0}{1}{2}{3}", 戶籍地址_郵編, 戶籍地址_縣市, 戶籍地址_鄉鎮市區, 戶籍地址_街道地址); - } - } - - public string 居住地址 - { - get - { - return string.Format("{0}{1}{2}{3}", 居住地址_郵編, 居住地址_縣市, 居住地址_鄉鎮市區, 居住地址_街道地址); - } - } - - public string 學歷 - { - get - { - return string.Format("[{0}]{1}{2}", 最高學歷TXT, 最高學歷學校, 最高學歷科系); - } - } - - private static DAC_BCLS BCLSDao = null; - - public string 授課區域TXT - { - get - { - if (BCLSDao == null) - BCLSDao = new DAC_BCLS(); - - string[] arr = DAC.GetString(授課區域).Split(','); - string result = ""; - foreach (string s in arr) - { - if (s != null && s.Length > 0) - result += BCLSDao.Get類別名稱("授課區域", s) + "/"; - } - if (result.Length > 0) - result = result.Remove(result.Length - 1); - return result; - } - } - - public double 講師評鑑 { get; set; } - - public double 學員滿意度 { get; set; } - - public int 符合度 { get; set; } - - public string 付款設定講師編號 { get { return $"T{編號:0000}"; } } - } - -} diff --git a/branches/1150807/DAC/外部紀錄/DAC_外部受訓紀錄1.cs b/branches/1150807/DAC/外部紀錄/DAC_外部受訓紀錄1.cs deleted file mode 100644 index fd36342..0000000 --- a/branches/1150807/DAC/外部紀錄/DAC_外部受訓紀錄1.cs +++ /dev/null @@ -1,527 +0,0 @@ -// -// 這個檔案是 外部受訓紀錄 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 外部受訓紀錄 資料存取類別 - /// - [DataObject] - public partial class DAC_外部受訓紀錄 : WebLib.DAC - { - private string _tableName = "外部受訓紀錄"; - private string _select = "select 員工編號, 序號, 實施單位, 課程類別, 訓練名稱, 訓練年度, 訓練時數, 訓練單位, 課程說明, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "員工編號, 序號, 實施單位, 課程類別, 訓練名稱, 訓練年度, 訓練時數, 訓練單位, 課程說明, 備註, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@員工編號, @序號, @實施單位, @課程類別, @訓練名稱, @訓練年度, @訓練時數, @訓練單位, @課程說明, @備註, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 外部受訓紀錄 "; - 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() - { - 外部受訓紀錄List result = new 外部受訓紀錄List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 外部受訓紀錄List SelectOne(string 員工編號, int 序號) - { - 外部受訓紀錄List result = new 外部受訓紀錄List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 員工編號 = @員工編號 " - + " and 序號 = @序號 " - ; - AddParam(cmdSelect, "員工編號", 員工編號); - AddParam(cmdSelect, "序號", 序號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(外部受訓紀錄 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 外部受訓紀錄" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(外部受訓紀錄 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 外部受訓紀錄List oldValues = SelectOne(value.員工編號, value.序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"外部受訓紀錄\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 序號 = @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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_員工編號", value.員工編號); - AddParam(cmdUpdate, "original_序號", value.序號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(string 員工編號, int 序號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(員工編號, 序號, DB_APPNO)) - return -1; - - 外部受訓紀錄List oldValues = SelectOne(員工編號, 序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"外部受訓紀錄\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 外部受訓紀錄 - where 1=1 - and 員工編號 = @員工編號 - and 序號 = @序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "員工編號", 員工編號); - 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(外部受訓紀錄 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 外部受訓紀錄List oldValues = SelectOne(value.員工編號, value.序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"外部受訓紀錄\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 外部受訓紀錄 - where 1=1 - and 員工編號 = @員工編號 - and 序號 = @序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "員工編號", value.員工編號); - 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(string 員工編號, int 序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 員工編號 = @員工編號 " - + " and 序號 = @序號 " - ; - AddParam(cmdSelect, "員工編號", 員工編號); - AddParam(cmdSelect, "序號", 序號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 外部受訓紀錄 資料集合類別 - /// - public partial class 外部受訓紀錄List : List<外部受訓紀錄>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 外部受訓紀錄 newItem = new 外部受訓紀錄(); - newItem.員工編號 = DAC.GetString(reader[0]); - newItem.序號 = DAC.GetInt32(reader[1]); - newItem.實施單位 = DAC.GetString(reader[2]); - newItem.課程類別 = DAC.GetString(reader[3]); - newItem.訓練名稱 = DAC.GetString(reader[4]); - newItem.訓練年度 = DAC.GetInt32(reader[5]); - newItem.訓練時數 = DAC.GetInt32(reader[6]); - newItem.訓練單位 = DAC.GetString(reader[7]); - newItem.課程說明 = DAC.GetString(reader[8]); - newItem.備註 = DAC.GetString(reader[9]); - newItem.DB_APPNO = DAC.GetInt32(reader[10]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[11]); - newItem.DB_CRUSR = DAC.GetString(reader[12]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[13]); - newItem.DB_TRUSR = DAC.GetString(reader[14]); - Add(newItem); - } - } - } - - /// - /// 外部受訓紀錄 資料紀錄類別 - /// - [Serializable] - public partial class 外部受訓紀錄 : DataItemBase - { - private string _員工編號; - private int _序號; - private string _實施單位; - private string _課程類別; - private string _訓練名稱; - private int _訓練年度; - private int _訓練時數; - private string _訓練單位; - private string _課程說明; - private string _備註; - - #region 資料欄位 - /// - /// 員工編號 - /// - [DataObjectField(true, false, false, 20)] - public string 員工編號 - { - get - { - return _員工編號; - } - set - { - if (value != _員工編號) - { - _員工編號 = value; - OnPropertyChanged("員工編號"); - } - } - } - - /// - /// 序號 - /// - [DataObjectField(true, false, false)] - public int 序號 - { - get - { - return _序號; - } - set - { - if (value != _序號) - { - _序號 = value; - OnPropertyChanged("序號"); - } - } - } - - /// - /// 實施單位 - /// - [DataObjectField(false, false, false, 50)] - public string 實施單位 - { - get - { - return _實施單位; - } - set - { - if (value != _實施單位) - { - _實施單位 = value; - OnPropertyChanged("實施單位"); - } - } - } - - /// - /// 課程類別 - /// - [DataObjectField(false, false, false, 1)] - public string 課程類別 - { - get - { - return _課程類別; - } - set - { - if (value != _課程類別) - { - _課程類別 = value; - OnPropertyChanged("課程類別"); - } - } - } - - /// - /// 訓練名稱 - /// - [DataObjectField(false, false, false, 50)] - public string 訓練名稱 - { - get - { - return _訓練名稱; - } - set - { - if (value != _訓練名稱) - { - _訓練名稱 = value; - OnPropertyChanged("訓練名稱"); - } - } - } - - /// - /// 訓練年度 - /// - [DataObjectField(false, false, false)] - public int 訓練年度 - { - get - { - return _訓練年度; - } - set - { - if (value != _訓練年度) - { - _訓練年度 = value; - OnPropertyChanged("訓練年度"); - } - } - } - - /// - /// 訓練時數 - /// - [DataObjectField(false, false, false)] - public int 訓練時數 - { - get - { - return _訓練時數; - } - set - { - if (value != _訓練時數) - { - _訓練時數 = value; - OnPropertyChanged("訓練時數"); - } - } - } - - /// - /// 訓練單位 - /// - [DataObjectField(false, false, false, 50)] - 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, 200)] - public string 備註 - { - get - { - return _備註; - } - set - { - if (value != _備註) - { - _備註 = value; - OnPropertyChanged("備註"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/外部紀錄/DAC_外部受訓紀錄2.cs b/branches/1150807/DAC/外部紀錄/DAC_外部受訓紀錄2.cs deleted file mode 100644 index 441cb7b..0000000 --- a/branches/1150807/DAC/外部紀錄/DAC_外部受訓紀錄2.cs +++ /dev/null @@ -1,210 +0,0 @@ -// -// 這個檔案是 外部受訓紀錄 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 外部受訓紀錄 資料存取類別 - /// - public partial class DAC_外部受訓紀錄 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 外部受訓紀錄List Select(bool noInputReturnAll, string 員工編號, string 實施單位, string 課程類別, string 訓練名稱, int 訓練年度, string 訓練單位) - { - 外部受訓紀錄List result = new 外部受訓紀錄List(); - bool noInput = true; - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - if (員工編號 != null && 員工編號.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 員工編號 like @員工編號 "; - AddParam(cmdSelect, "員工編號", 員工編號 + "%"); - } - - if (實施單位 != null && 實施單位.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 實施單位 like @實施單位 "; - AddParam(cmdSelect, "實施單位", 實施單位 + "%"); - } - - if (課程類別 != null && 課程類別.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 課程類別 like @課程類別 "; - AddParam(cmdSelect, "課程類別", 課程類別 + "%"); - } - - if (訓練名稱 != null && 訓練名稱.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 訓練名稱 like @訓練名稱 "; - AddParam(cmdSelect, "訓練名稱", 訓練名稱 + "%"); - } - - if (訓練年度 > 0) - { - noInput = false; - cmdSelect.CommandText += " and 訓練年度 = @訓練年度 "; - AddParam(cmdSelect, "訓練年度", 訓練年度); - } - - if (訓練單位 != null && 訓練單位.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 訓練單位 like @訓練單位 "; - AddParam(cmdSelect, "訓練單位", 訓練單位 + "%"); - } - - cmdSelect.CommandText += _order; - - if (!noInputReturnAll && noInput) - return result; - - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(外部受訓紀錄 value) - { - value.序號 = Next序號(value.員工編號); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(外部受訓紀錄 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(外部受訓紀錄 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(外部受訓紀錄 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(外部受訓紀錄 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(外部受訓紀錄 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(string 員工編號, int 序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(string 員工編號, int 序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - - private int Next序號(string 員工編號) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @"select isnull(max(序號), 0) + 1 from " + _tableName + " where 員工編號 = @員工編號"; - AddParam(cmd, "員工編號", 員工編號); - int i; - ExecuteScalar(cmd, out i); - return i; - } - } - - /// - /// 外部受訓紀錄 資料集合類別 - /// - public partial class 外部受訓紀錄List : List<外部受訓紀錄> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 外部受訓紀錄 資料紀錄類別 - /// - public partial class 外部受訓紀錄 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/外部紀錄/DAC_持有證照1.cs b/branches/1150807/DAC/外部紀錄/DAC_持有證照1.cs deleted file mode 100644 index dee656d..0000000 --- a/branches/1150807/DAC/外部紀錄/DAC_持有證照1.cs +++ /dev/null @@ -1,508 +0,0 @@ -// -// 這個檔案是 持有證照 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 持有證照 資料存取類別 - /// - [DataObject] - public partial class DAC_持有證照 : WebLib.DAC - { - private string _tableName = "[持有證照]"; - private string _select = "select [員工編號], [序號], [證照名稱], [證照字號], [發證單位], [核發日期], [附件檔案], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insert = "[員工編號], [序號], [證照名稱], [證照字號], [發證單位], [核發日期], [附件檔案], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insertValue = "@員工編號, @序號, @證照名稱, @證照字號, @發證單位, @核發日期, @附件檔案, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from [持有證照] "; - 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() - { - 持有證照List result = new 持有證照List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 持有證照List SelectOne(string 員工編號, int 序號) - { - 持有證照List result = new 持有證照List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 員工編號 = @員工編號 " - + " and 序號 = @序號 " - ; - AddParam(cmdSelect, "員工編號", 員工編號); - AddParam(cmdSelect, "序號", 序號); - Select(cmdSelect, ref list); - return result; - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 持有證照List Select(bool noInputReturnAll, string 員工編號, string 證照名稱, string 證照字號, string 發證單位, DateTime 核發日期) - { - 持有證照List result = new 持有證照List(); - bool noInput = true; - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - if (員工編號 != null && 員工編號.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 員工編號 like @員工編號 "; - AddParam(cmdSelect, "員工編號", 員工編號 + "%"); - } - - if (證照名稱 != null && 證照名稱.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 證照名稱 like @證照名稱 "; - AddParam(cmdSelect, "證照名稱", 證照名稱 + "%"); - } - - if (證照字號 != null && 證照字號.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 證照字號 like @證照字號 "; - AddParam(cmdSelect, "證照字號", 證照字號 + "%"); - } - - if (發證單位 != null && 發證單位.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 發證單位 like @發證單位 "; - AddParam(cmdSelect, "發證單位", 發證單位 + "%"); - } - - if (核發日期.Ticks > 0) - { - noInput = false; - cmdSelect.CommandText += " and 核發日期 = @核發日期 "; - AddParam(cmdSelect, "核發日期", 核發日期); - } - - cmdSelect.CommandText += _order; - - if (!noInputReturnAll && noInput) - return result; - - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(持有證照 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 持有證照" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(持有證照 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 持有證照List oldValues = SelectOne(value.員工編號, value.序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"持有證照\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 序號 = @original_序號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "證照名稱", value.證照名稱); - AddParam(cmdUpdate, "證照字號", value.證照字號); - AddParam(cmdUpdate, "發證單位", value.發證單位); - AddParam(cmdUpdate, "核發日期", value.核發日期); - AddParam(cmdUpdate, "附件檔案", value.附件檔案); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_員工編號", value.員工編號); - AddParam(cmdUpdate, "original_序號", value.序號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(string 員工編號, int 序號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(員工編號, 序號, DB_APPNO)) - return -1; - - 持有證照List oldValues = SelectOne(員工編號, 序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"持有證照\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 持有證照 - where 1=1 - and 員工編號 = @員工編號 - and 序號 = @序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "員工編號", 員工編號); - 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(持有證照 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 持有證照List oldValues = SelectOne(value.員工編號, value.序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"持有證照\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 持有證照 - where 1=1 - and 員工編號 = @員工編號 - and 序號 = @序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "員工編號", value.員工編號); - 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(string 員工編號, int 序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 員工編號 = @員工編號 " - + " and 序號 = @序號 " - ; - AddParam(cmdSelect, "員工編號", 員工編號); - AddParam(cmdSelect, "序號", 序號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 持有證照 資料集合類別 - /// - public partial class 持有證照List : List<持有證照>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 持有證照 newItem = new 持有證照(); - newItem.員工編號 = DAC.GetString(reader[0]); - newItem.序號 = DAC.GetInt32(reader[1]); - newItem.證照名稱 = DAC.GetString(reader[2]); - newItem.證照字號 = DAC.GetString(reader[3]); - newItem.發證單位 = DAC.GetString(reader[4]); - newItem.核發日期 = DAC.GetDateTime(reader[5]); - newItem.附件檔案 = DAC.GetString(reader[6]); - newItem.DB_APPNO = DAC.GetInt32(reader[7]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[8]); - newItem.DB_CRUSR = DAC.GetString(reader[9]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[10]); - newItem.DB_TRUSR = DAC.GetString(reader[11]); - Add(newItem); - } - } - } - - /// - /// 持有證照 資料紀錄類別 - /// - [Serializable] - public partial class 持有證照 : DataItemBase - { - private string _員工編號; - private int _序號; - private string _證照名稱; - private string _證照字號; - private string _發證單位; - private DateTime _核發日期; - private string _附件檔案; - - #region 資料欄位 - /// - /// 員工編號 - /// - [DataObjectField(true, false, false, 20)] - public string 員工編號 - { - get - { - return _員工編號; - } - set - { - if (value != _員工編號) - { - _員工編號 = value; - OnPropertyChanged("員工編號"); - } - } - } - - /// - /// 序號 - /// - [DataObjectField(true, false, false)] - public int 序號 - { - get - { - return _序號; - } - set - { - if (value != _序號) - { - _序號 = value; - OnPropertyChanged("序號"); - } - } - } - - /// - /// 證照名稱 - /// - [DataObjectField(false, false, false, 50)] - public string 證照名稱 - { - get - { - return _證照名稱; - } - set - { - if (value != _證照名稱) - { - _證照名稱 = value; - OnPropertyChanged("證照名稱"); - } - } - } - - /// - /// 證照字號 - /// - [DataObjectField(false, false, false, 50)] - public string 證照字號 - { - get - { - return _證照字號; - } - set - { - if (value != _證照字號) - { - _證照字號 = value; - OnPropertyChanged("證照字號"); - } - } - } - - /// - /// 發證單位 - /// - [DataObjectField(false, false, false, 50)] - 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, true, 200)] - public string 附件檔案 - { - get - { - return _附件檔案; - } - set - { - if (value != _附件檔案) - { - _附件檔案 = value; - OnPropertyChanged("附件檔案"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/外部紀錄/DAC_持有證照2.cs b/branches/1150807/DAC/外部紀錄/DAC_持有證照2.cs deleted file mode 100644 index 4b70e2a..0000000 --- a/branches/1150807/DAC/外部紀錄/DAC_持有證照2.cs +++ /dev/null @@ -1,146 +0,0 @@ -// -// 這個檔案是 持有證照 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 持有證照 資料存取類別 - /// - public partial class DAC_持有證照 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(持有證照 value) - { - value.序號 = Next序號(value.員工編號); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(持有證照 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(持有證照 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(持有證照 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(持有證照 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(持有證照 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(string 員工編號, int 序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(string 員工編號, int 序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - private int Next序號(string 員工編號) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @"select isnull(max(序號), 0) + 1 from " + _tableName + " where 員工編號 = @員工編號"; - AddParam(cmd, "員工編號", 員工編號); - int i; - ExecuteScalar(cmd, out i); - return i; - } - } - - /// - /// 持有證照 資料集合類別 - /// - public partial class 持有證照List : List<持有證照> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 持有證照 資料紀錄類別 - /// - public partial class 持有證照 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/溝通記錄/DAC_檢附資料參考.cs b/branches/1150807/DAC/溝通記錄/DAC_檢附資料參考.cs deleted file mode 100644 index 8eca158..0000000 --- a/branches/1150807/DAC/溝通記錄/DAC_檢附資料參考.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.Linq; -using System.Web; -using WebLib; -using System.ComponentModel; - -namespace Education -{ - [DataObject] - public class DAC_檢附資料參考 : DAC - { - private DAC_訓練溝通記錄歷程 items = new DAC_訓練溝通記錄歷程(); - private DAC_BCLS BCLS = new DAC_BCLS(); - public static string BSPAR = "檢附資料參考"; - - public DAC_檢附資料參考() : base() - { - } - - public DAC_檢附資料參考(DbConnection conn) : base(conn) - { - BCLS.Connection = conn; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 檢附資料參考List SelectAll() - { - var result = new 檢附資料參考List(); - foreach (var item in items) - { - result.Add(new 檢附資料參考Item() - { - BSPAR = BSPAR, - BSCLS = DAC.GetString(item.Value), - BSSCR = BCLS.Get類別名稱(BSPAR, item.Value), - TEXT = item.Name - }); - } - return result; - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public void UpdateOne(檢附資料參考Item item) - { - BCLS.UpdateOne(item.BSPAR, item.BSCLS, item.BSSCR); - } - } - - public class 檢附資料參考List : List<檢附資料參考Item> - { - } - - public class 檢附資料參考Item - { - public string BSPAR { get; set; } - public string BSCLS { get; set; } - public string BSSCR { get; set; } - public string TEXT { get; set; } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄1.cs b/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄1.cs deleted file mode 100644 index e6f13d1..0000000 --- a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄1.cs +++ /dev/null @@ -1,674 +0,0 @@ -// -// 這個檔案是 訓練溝通記錄 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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, int? 訓練課程企劃編號) - { - if (訓練課程企劃編號 != null) - { - noInput = false; - cmdSelect.CommandText += " and 訓練課程企劃編號 = @訓練課程企劃編號 "; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - } - - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練溝通記錄List Select(bool noInputReturnAll, int? 訓練課程企劃編號, 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, 訓練課程企劃編號); - 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, int? 訓練課程企劃編號, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 訓練課程企劃編號); - - 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, int? 訓練課程企劃編號, 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, 訓練課程企劃編號); - 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, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - 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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - 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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - 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, "DB_APPNO", value.DB_APPNO); - AddParam(cmdBak, "DB_CRDAT", value.DB_CRDAT); - AddParam(cmdBak, "DB_CRUSR", value.DB_CRUSR); - AddParam(cmdBak, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdBak, "DB_TRUSR", CurrentUserId); - AddParam(cmdBak, "DB_TRMOD", updateMode); - ExecuteNonQuery(cmdBak); - } - - } - - - /// - ///訓練溝通記錄 資料集合類別 - /// - 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 int _訓練課程企劃編號; - private int _溝通歷程; - private string _主題; - private DateTime _日期; - private string _對象; - private string _溝通方式; - private string _內容; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 訓練課程企劃編號 - /// - [DataObjectField(false, false, false)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - /// - /// 溝通歷程 - /// - [DataObjectField(false, false, false)] - public int 溝通歷程 - { - get - { - return _溝通歷程; - } - set - { - if (value != _溝通歷程) - { - _溝通歷程 = value; - OnPropertyChanged("溝通歷程"); - } - } - } - - /// - /// 主題 - /// - [DataObjectField(false, false, false, 100)] - 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, 50)] - public string 對象 - { - get - { - return _對象; - } - set - { - if (value != _對象) - { - _對象 = value; - OnPropertyChanged("對象"); - } - } - } - - /// - /// 溝通方式 - /// - [DataObjectField(false, false, false, 50)] - public string 溝通方式 - { - get - { - return _溝通方式; - } - set - { - if (value != _溝通方式) - { - _溝通方式 = value; - OnPropertyChanged("溝通方式"); - } - } - } - - /// - /// 內容 - /// - [DataObjectField(false, false, true, 2147483647)] - public string 內容 - { - get - { - return _內容; - } - set - { - if (value != _內容) - { - _內容 = value; - OnPropertyChanged("內容"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄2.cs b/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄2.cs deleted file mode 100644 index 1de4a82..0000000 --- a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄2.cs +++ /dev/null @@ -1,152 +0,0 @@ -// -// 這個檔案是 訓練溝通記錄 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Linq; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練溝通記錄 資料存取類別 - /// - public partial class DAC_訓練溝通記錄 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練溝通記錄Item value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練溝通記錄Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練溝通記錄Item value) - { - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練溝通記錄Item value, 訓練溝通記錄Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練溝通記錄Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練溝通記錄Item value, 訓練溝通記錄Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練溝通記錄Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練溝通記錄Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///訓練溝通記錄 資料集合類別 - /// - public partial class 訓練溝通記錄List : List<訓練溝通記錄Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///訓練溝通記錄 資料紀錄類別 - /// - public partial class 訓練溝通記錄Item - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄歷程.cs b/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄歷程.cs deleted file mode 100644 index 8880534..0000000 --- a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄歷程.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class DAC_訓練溝通記錄歷程 : NameValueList - { - public DAC_訓練溝通記錄歷程() - { - this.Add("年度計劃溝通紀錄(包含老師、學員、主管、客戶)", 1); - this.Add("課程設計溝通紀錄(包含老師、學員、主管、客戶)", 2); - this.Add("課程執行溝通紀錄(課中執行情況)", 3); - this.Add("課後查核溝通紀錄(檢討會議紀錄)", 4); - this.Add("成果溝通紀錄(老師、學員、主管回饋、意見)", 5); - this.Add("其他", 999); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄附件1.cs b/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄附件1.cs deleted file mode 100644 index 11f62f8..0000000 --- a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄附件1.cs +++ /dev/null @@ -1,620 +0,0 @@ -// -// 這個檔案是 訓練溝通記錄附件 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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 = "[編號], [訓練溝通記錄編號], [標題], [檔案名稱], [副檔名], [ContentType], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _orderBy = "[編號]"; - private string _select = "select " + _allFields; - private string _insert = "[訓練溝通記錄編號], [標題], [檔案名稱], [副檔名], [ContentType], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insertBak = "[編號], [訓練溝通記錄編號], [標題], [檔案名稱], [副檔名], [ContentType], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR], [DB_TRMOD]"; - private string _insertValue = "@訓練溝通記錄編號, @標題, @檔案名稱, @副檔名, @ContentType, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _insertBakValue = "@編號, @訓練溝通記錄編號, @標題, @檔案名稱, @副檔名, @ContentType, @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, int? 訓練溝通記錄編號) - { - if (訓練溝通記錄編號 != null) - { - noInput = false; - cmdSelect.CommandText += " and 訓練溝通記錄編號 = @訓練溝通記錄編號 "; - AddParam(cmdSelect, "訓練溝通記錄編號", 訓練溝通記錄編號); - } - - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練溝通記錄附件List Select(bool noInputReturnAll, int? 訓練溝通記錄編號, 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, 訓練溝通記錄編號); - 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, int? 訓練溝通記錄編號, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 訓練溝通記錄編號); - - 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, int? 訓練溝通記錄編號, 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, 訓練溝通記錄編號); - 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, "ContentType", value.ContentType); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - 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 - 訓練溝通記錄編號 = @訓練溝通記錄編號 , - 標題 = @標題 , - 檔案名稱 = @檔案名稱 , - 副檔名 = @副檔名 , - ContentType = @ContentType , - 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, "ContentType", value.ContentType); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - 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 - 訓練溝通記錄編號 = @訓練溝通記錄編號 , - 標題 = @標題 , - 檔案名稱 = @檔案名稱 , - 副檔名 = @副檔名 , - ContentType = @ContentType , - 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, "ContentType", value.ContentType); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - 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, "ContentType", value.ContentType); - 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.UtcNow.AddHours(8)); - AddParam(cmdBak, "DB_TRUSR", CurrentUserId); - AddParam(cmdBak, "DB_TRMOD", updateMode); - ExecuteNonQuery(cmdBak); - } - - } - - - /// - ///訓練溝通記錄附件 資料集合類別 - /// - 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 int _訓練溝通記錄編號; - private string _標題; - private string _檔案名稱; - private string _副檔名; - private string _ContentType; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 訓練溝通記錄編號 - /// - [DataObjectField(false, false, false)] - public int 訓練溝通記錄編號 - { - 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, 50)] - public string 檔案名稱 - { - get - { - return _檔案名稱; - } - set - { - if (value != _檔案名稱) - { - _檔案名稱 = value; - OnPropertyChanged("檔案名稱"); - } - } - } - - /// - /// 副檔名 - /// - [DataObjectField(false, false, true, 10)] - public string 副檔名 - { - get - { - return _副檔名; - } - set - { - if (value != _副檔名) - { - _副檔名 = value; - OnPropertyChanged("副檔名"); - } - } - } - - /// - /// ContentType - /// - [DataObjectField(false, false, true, 50)] - public string ContentType - { - get - { - return _ContentType; - } - set - { - if (value != _ContentType) - { - _ContentType = value; - OnPropertyChanged("ContentType"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄附件2.cs b/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄附件2.cs deleted file mode 100644 index d80370b..0000000 --- a/branches/1150807/DAC/溝通記錄/DAC_訓練溝通記錄附件2.cs +++ /dev/null @@ -1,167 +0,0 @@ -// -// 這個檔案是 訓練溝通記錄附件 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Linq; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練溝通記錄附件 資料存取類別 - /// - public partial class DAC_訓練溝通記錄附件 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練溝通記錄附件Item value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練溝通記錄附件Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練溝通記錄附件Item value) - { - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練溝通記錄附件Item value, 訓練溝通記錄附件Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練溝通記錄附件Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練溝通記錄附件Item value, 訓練溝通記錄附件Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練溝通記錄附件Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練溝通記錄附件Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練溝通記錄附件List SelectBy訓練溝通記錄編號(int 訓練溝通記錄編號) - { - 訓練溝通記錄附件List result = new 訓練溝通記錄附件List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + " AND 訓練溝通記錄編號=@訓練溝通記錄編號 ORDER BY 編號"; - AddParam(cmdSelect, "訓練溝通記錄編號", 訓練溝通記錄編號); - Select(cmdSelect, ref list); - return result; - } - } - - /// - ///訓練溝通記錄附件 資料集合類別 - /// - public partial class 訓練溝通記錄附件List : List<訓練溝通記錄附件Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///訓練溝通記錄附件 資料紀錄類別 - /// - public partial class 訓練溝通記錄附件Item - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/簽核/DAC_簽核設定1.cs b/branches/1150807/DAC/簽核/DAC_簽核設定1.cs deleted file mode 100644 index 371e2b5..0000000 --- a/branches/1150807/DAC/簽核/DAC_簽核設定1.cs +++ /dev/null @@ -1,427 +0,0 @@ -// -// 這個檔案是 簽核設定 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 簽核設定 資料存取類別 - /// - [DataObject] - public partial class DAC_簽核設定 : WebLib.DAC - { - //private string _tableName = "簽核設定"; - private string _select = "select 表單名稱, 關數, 直接主管, 組織類別, 組織ID, 職務ID, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "表單名稱, 關數, 直接主管, 組織類別, 組織ID, 職務ID, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@表單名稱, @關數, @直接主管, @組織類別, @組織ID, @職務ID, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 簽核設定 "; - 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() - { - 簽核設定List result = new 簽核設定List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 簽核設定List SelectOne(string 表單名稱, int 關數) - { - 簽核設定List result = new 簽核設定List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 表單名稱 = @表單名稱 " - + " and 關數 = @關數 " - ; - AddParam(cmdSelect, "表單名稱", 表單名稱); - AddParam(cmdSelect, "關數", 關數); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(簽核設定 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 簽核設定" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "表單名稱", value.表單名稱); - AddParam(cmdInsert, "關數", value.關數); - AddParam(cmdInsert, "直接主管", value.直接主管); - AddParam(cmdInsert, "組織類別", value.組織類別); - AddParam(cmdInsert, "組織ID", value.組織ID); - AddParam(cmdInsert, "職務ID", value.職務ID); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(簽核設定 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 簽核設定List oldValues = SelectOne(value.表單名稱, value.關數); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"簽核設定\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 簽核設定 - set - 直接主管 = @直接主管 , - 組織類別 = @組織類別 , - 組織ID = @組織ID , - 職務ID = @職務ID , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 表單名稱 = @original_表單名稱 - and 關數 = @original_關數 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "直接主管", value.直接主管); - AddParam(cmdUpdate, "組織類別", value.組織類別); - AddParam(cmdUpdate, "組織ID", value.組織ID); - AddParam(cmdUpdate, "職務ID", value.職務ID); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_表單名稱", value.表單名稱); - AddParam(cmdUpdate, "original_關數", value.關數); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(string 表單名稱, int 關數, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(表單名稱, 關數, DB_APPNO)) - return -1; - - 簽核設定List oldValues = SelectOne(表單名稱, 關數); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"簽核設定\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 簽核設定 - where 1=1 - and 表單名稱 = @表單名稱 - and 關數 = @關數 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "表單名稱", 表單名稱); - 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(簽核設定 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 簽核設定List oldValues = SelectOne(value.表單名稱, value.關數); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"簽核設定\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 簽核設定 - where 1=1 - and 表單名稱 = @表單名稱 - and 關數 = @關數 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "表單名稱", value.表單名稱); - 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(string 表單名稱, int 關數) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 表單名稱 = @表單名稱 " - + " and 關數 = @關數 " - ; - AddParam(cmdSelect, "表單名稱", 表單名稱); - AddParam(cmdSelect, "關數", 關數); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 簽核設定 資料集合類別 - /// - public partial class 簽核設定List : List<簽核設定>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 簽核設定 newItem = new 簽核設定(); - newItem.表單名稱 = DAC.GetString(reader[0]); - newItem.關數 = DAC.GetInt32(reader[1]); - newItem.直接主管 = DAC.GetString(reader[2]); - newItem.組織類別 = DAC.GetInt32(reader[3]); - newItem.組織ID = DAC.GetInt32(reader[4]); - newItem.職務ID = DAC.GetInt32(reader[5]); - newItem.DB_APPNO = DAC.GetInt32(reader[6]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[7]); - newItem.DB_CRUSR = DAC.GetString(reader[8]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[9]); - newItem.DB_TRUSR = DAC.GetString(reader[10]); - Add(newItem); - } - } - } - - /// - /// 簽核設定 資料紀錄類別 - /// - [Serializable] - public partial class 簽核設定 : DataItemBase - { - private string _表單名稱; - private int _關數; - private string _直接主管; - private int _組織類別; - private int _組織ID; - private int _職務ID; - - #region 資料欄位 - /// - /// 表單名稱 - /// - [DataObjectField(true, false, false, 10)] - public string 表單名稱 - { - get - { - return _表單名稱; - } - set - { - if (value != _表單名稱) - { - _表單名稱 = value; - OnPropertyChanged("表單名稱"); - } - } - } - - /// - /// 關數 - /// - [DataObjectField(true, false, false)] - public int 關數 - { - get - { - return _關數; - } - set - { - if (value != _關數) - { - _關數 = value; - OnPropertyChanged("關數"); - } - } - } - - /// - /// 直接主管 - /// - [DataObjectField(false, false, true, 1)] - public string 直接主管 - { - get - { - return _直接主管; - } - set - { - if (value != _直接主管) - { - _直接主管 = value; - OnPropertyChanged("直接主管"); - } - } - } - - /// - /// 組織類別 - /// - [DataObjectField(false, false, true)] - public int 組織類別 - { - get - { - return _組織類別; - } - set - { - if (value != _組織類別) - { - _組織類別 = value; - OnPropertyChanged("組織類別"); - } - } - } - - /// - /// 組織ID - /// - [DataObjectField(false, false, true)] - public int 組織ID - { - get - { - return _組織ID; - } - set - { - if (value != _組織ID) - { - _組織ID = value; - OnPropertyChanged("組織ID"); - } - } - } - - /// - /// 職務ID - /// - [DataObjectField(false, false, true)] - public int 職務ID - { - get - { - return _職務ID; - } - set - { - if (value != _職務ID) - { - _職務ID = value; - OnPropertyChanged("職務ID"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/簽核/DAC_簽核設定2.cs b/branches/1150807/DAC/簽核/DAC_簽核設定2.cs deleted file mode 100644 index 959c4be..0000000 --- a/branches/1150807/DAC/簽核/DAC_簽核設定2.cs +++ /dev/null @@ -1,136 +0,0 @@ -// -// 這個檔案是 簽核設定 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 簽核設定 資料存取類別 - /// - public partial class DAC_簽核設定 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(簽核設定 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(簽核設定 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(簽核設定 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(簽核設定 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(簽核設定 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(簽核設定 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(string 表單名稱, int 關數, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(string 表單名稱, int 關數, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 簽核設定 資料集合類別 - /// - public partial class 簽核設定List : List<簽核設定> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 簽核設定 資料紀錄類別 - /// - public partial class 簽核設定 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/簽核/DAC_表單簽核主檔1.cs b/branches/1150807/DAC/簽核/DAC_表單簽核主檔1.cs deleted file mode 100644 index 659c67b..0000000 --- a/branches/1150807/DAC/簽核/DAC_表單簽核主檔1.cs +++ /dev/null @@ -1,642 +0,0 @@ -// -// 這個檔案是 表單簽核主檔 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 表單簽核主檔 資料存取類別 - /// - [DataObject] - public partial class DAC_表單簽核主檔 : WebLib.DAC - { - private string _tableName = "表單簽核主檔"; - private string _select = "select 簽核ID, 表單類別ID, 表單ID, 送簽人員, 送簽日期, 應簽關數, 已簽關數, 撤簽, 最終結果, 最終簽核人員, 最終簽核日期, 最終簽核意見, 表單ID格式, 訓練課程企劃編號, 編號2, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "表單類別ID, 表單ID, 送簽人員, 送簽日期, 應簽關數, 已簽關數, 撤簽, 最終結果, 最終簽核人員, 最終簽核日期, 最終簽核意見, 表單ID格式, 訓練課程企劃編號, 編號2, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@表單類別ID, @表單ID, @送簽人員, @送簽日期, @應簽關數, @已簽關數, @撤簽, @最終結果, @最終簽核人員, @最終簽核日期, @最終簽核意見, @表單ID格式, @訓練課程企劃編號, @編號2, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 表單簽核主檔 "; - private string _where = " where 1=1 "; - private string _order = " order by 簽核ID "; - - - public DAC_表單簽核主檔() - : base() - { - } - - public DAC_表單簽核主檔(DbConnection conn) - : base(conn) - { - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核主檔List SelectAll() - { - 表單簽核主檔List result = new 表單簽核主檔List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核主檔List SelectOne(int 簽核ID) - { - 表單簽核主檔List result = new 表單簽核主檔List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 簽核ID = @簽核ID " - ; - AddParam(cmdSelect, "簽核ID", 簽核ID); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public int InsertOne(表單簽核主檔 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return -1; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 表單簽核主檔" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - + "select @@identity" - ; - AddParam(cmdInsert, "表單類別ID", value.表單類別ID); - AddParam(cmdInsert, "表單ID", value.表單ID); - 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, "表單ID格式", value.表單ID格式); - AddParam(cmdInsert, "訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdInsert, "編號2", value.編號2); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - int newId; - ExecuteScalar(cmdInsert, out newId); - AfterInsertOne(value); - ts.Complete(); - return newId; - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(表單簽核主檔 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 表單簽核主檔List oldValues = SelectOne(value.簽核ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"表單簽核主檔\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 表單簽核主檔 - set - 表單類別ID = @表單類別ID , - 表單ID = @表單ID , - 送簽人員 = @送簽人員 , - 送簽日期 = @送簽日期 , - 應簽關數 = @應簽關數 , - 已簽關數 = @已簽關數 , - 撤簽 = @撤簽 , - 最終結果 = @最終結果 , - 最終簽核人員 = @最終簽核人員 , - 最終簽核日期 = @最終簽核日期 , - 最終簽核意見 = @最終簽核意見 , - 表單ID格式 = @表單ID格式 , - 訓練課程企劃編號 = @訓練課程企劃編號, - 編號2 = @編號2, - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 簽核ID = @original_簽核ID - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "表單類別ID", value.表單類別ID); - AddParam(cmdUpdate, "表單ID", value.表單ID); - 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, "表單ID格式", value.表單ID格式); - AddParam(cmdUpdate, "訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdUpdate, "編號2", value.編號2); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_簽核ID", value.簽核ID); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 簽核ID, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(簽核ID, DB_APPNO)) - return -1; - - 表單簽核主檔List oldValues = SelectOne(簽核ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"表單簽核主檔\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 表單簽核主檔 - where 1=1 - and 簽核ID = @簽核ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "簽核ID", 簽核ID); - AddParam(cmdDelete, "DB_APPNO", DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdDelete); - AfterDeleteOne(簽核ID, 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(表單簽核主檔 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 表單簽核主檔List oldValues = SelectOne(value.簽核ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"表單簽核主檔\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 表單簽核主檔 - where 1=1 - and 簽核ID = @簽核ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "簽核ID", value.簽核ID); - 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 簽核ID) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 簽核ID = @簽核ID " - ; - AddParam(cmdSelect, "簽核ID", 簽核ID); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 表單簽核主檔 資料集合類別 - /// - public partial class 表單簽核主檔List : List<表單簽核主檔>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 表單簽核主檔 newItem = new 表單簽核主檔(); - newItem.簽核ID = DAC.GetInt32(reader[0]); - newItem.表單類別ID = DAC.GetString(reader[1]); - newItem.表單ID = DAC.GetString(reader[2]); - newItem.送簽人員 = DAC.GetString(reader[3]); - newItem.送簽日期 = DAC.GetDateTime(reader[4]); - newItem.應簽關數 = DAC.GetString(reader[5]); - newItem.已簽關數 = DAC.GetString(reader[6]); - newItem.撤簽 = DAC.GetString(reader[7]); - newItem.最終結果 = DAC.GetString(reader[8]); - newItem.最終簽核人員 = DAC.GetString(reader[9]); - newItem.最終簽核日期 = DAC.GetDateTime(reader[10]); - newItem.最終簽核意見 = DAC.GetString(reader[11]); - newItem.表單ID格式 = DAC.GetString(reader[12]); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[13]); - newItem.編號2 = DAC.GetInt32(reader[14]); - newItem.DB_APPNO = DAC.GetInt32(reader[15]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[16]); - newItem.DB_CRUSR = DAC.GetString(reader[17]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[18]); - newItem.DB_TRUSR = DAC.GetString(reader[19]); - Add(newItem); - } - } - } - - /// - /// 表單簽核主檔 資料紀錄類別 - /// - [Serializable] - public partial class 表單簽核主檔 : DataItemBase - { - private int _簽核ID; - private string _表單類別ID; - private string _表單ID; - private string _送簽人員; - private DateTime _送簽日期; - private string _應簽關數; - private string _已簽關數; - private string _撤簽; - private string _最終結果; - private string _最終簽核人員; - private DateTime _最終簽核日期; - private string _最終簽核意見; - private string _表單ID格式; - private int _訓練課程企劃編號; - private int _編號2; - - #region 資料欄位 - /// - /// 簽核ID - /// - [DataObjectField(true, false, false)] - public int 簽核ID - { - get - { - return _簽核ID; - } - set - { - if (value != _簽核ID) - { - _簽核ID = value; - OnPropertyChanged("簽核ID"); - } - } - } - - /// - /// 表單類別ID - /// - [DataObjectField(false, false, false, 20)] - public string 表單類別ID - { - get - { - return _表單類別ID; - } - set - { - if (value != _表單類別ID) - { - _表單類別ID = value; - OnPropertyChanged("表單類別ID"); - } - } - } - - /// - /// 表單ID - /// - [DataObjectField(false, false, false, 20)] - public string 表單ID - { - get - { - return _表單ID; - } - set - { - if (value != _表單ID) - { - _表單ID = value; - OnPropertyChanged("表單ID"); - } - } - } - - /// - /// 送簽人員 - /// - [DataObjectField(false, false, true, 20)] - public string 送簽人員 - { - get - { - return _送簽人員; - } - set - { - if (value != _送簽人員) - { - _送簽人員 = value; - OnPropertyChanged("送簽人員"); - } - } - } - - /// - /// 送簽日期 - /// - [DataObjectField(false, false, true)] - public DateTime 送簽日期 - { - get - { - return _送簽日期; - } - set - { - if (value != _送簽日期) - { - _送簽日期 = value; - OnPropertyChanged("送簽日期"); - } - } - } - - /// - /// 應簽關數 - /// - [DataObjectField(false, false, false, 1)] - public string 應簽關數 - { - get - { - return _應簽關數; - } - set - { - if (value != _應簽關數) - { - _應簽關數 = value; - OnPropertyChanged("應簽關數"); - } - } - } - - /// - /// 已簽關數 - /// - [DataObjectField(false, false, true, 1)] - public string 已簽關數 - { - get - { - return _已簽關數; - } - set - { - if (value != _已簽關數) - { - _已簽關數 = value; - OnPropertyChanged("已簽關數"); - } - } - } - - /// - /// 撤簽 - /// - [DataObjectField(false, false, true, 1)] - public string 撤簽 - { - get - { - return _撤簽; - } - set - { - if (value != _撤簽) - { - _撤簽 = value; - OnPropertyChanged("撤簽"); - } - } - } - - /// - /// 最終結果 - /// - [DataObjectField(false, false, true, 1)] - 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)] - public DateTime 最終簽核日期 - { - get - { - return _最終簽核日期; - } - set - { - if (value != _最終簽核日期) - { - _最終簽核日期 = value; - OnPropertyChanged("最終簽核日期"); - } - } - } - - /// - /// 最終簽核意見 - /// - [DataObjectField(false, false, true, 100)] - public string 最終簽核意見 - { - get - { - return _最終簽核意見; - } - set - { - if (value != _最終簽核意見) - { - _最終簽核意見 = value; - OnPropertyChanged("最終簽核意見"); - } - } - } - - /// - /// 表單ID格式 - /// - [DataObjectField(false, false, true, 200)] - public string 表單ID格式 - { - get - { - return _表單ID格式; - } - set - { - if (value != _表單ID格式) - { - _表單ID格式 = value; - OnPropertyChanged("表單ID格式"); - } - } - } - - [DataObjectField(false, false, true)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - [DataObjectField(false, false, true)] - public int 編號2 - { - get - { - return _編號2; - } - set - { - if (value != _編號2) - { - _編號2 = value; - OnPropertyChanged("編號2"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/簽核/DAC_表單簽核主檔2.cs b/branches/1150807/DAC/簽核/DAC_表單簽核主檔2.cs deleted file mode 100644 index b54d17b..0000000 --- a/branches/1150807/DAC/簽核/DAC_表單簽核主檔2.cs +++ /dev/null @@ -1,1060 +0,0 @@ -// -// 這個檔案是 表單簽核主檔 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 表單簽核主檔 資料存取類別 - /// - public partial class DAC_表單簽核主檔 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核主檔List Select() - { - 表單簽核主檔List result = new 表單簽核主檔List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(表單簽核主檔 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(表單簽核主檔 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(表單簽核主檔 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(表單簽核主檔 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(表單簽核主檔 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(表單簽核主檔 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 簽核ID, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 簽核ID, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - - /// - /// 取得最後簽核狀態 - /// - public 表單簽核主檔 GetLastStatus(int 簽核ID) - { - 表單簽核主檔List d = SelectOne(簽核ID); - if (d.Count > 0) - return d[0]; - else - return null; - } - - /// - /// 取得最後簽核狀態 - /// - public 表單簽核主檔 GetLastStatus(string 表單類別ID, string 表單ID) - { - DbCommand cmd = NewCommand( - "SELECT TOP 1 簽核ID FROM " + _tableName + - " WHERE 表單類別ID=@表單類別ID AND 表單ID=@表單ID " + - " ORDER BY 簽核ID DESC "); - AddParam(cmd, "表單類別ID", 表單類別ID); - AddParam(cmd, "表單ID", 表單ID); - int id; - ExecuteScalar(cmd, out id); - return GetLastStatus(id); - } - - /// - /// 取得某人的表單 - /// - /// - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核主檔List Select我的表單(string 送簽人員, DateTime 送簽日期1, DateTime 送簽日期2) - { - 表單簽核主檔List result = new 表單簽核主檔List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 送簽人員 = @送簽人員 "; - AddParam(cmdSelect, "送簽人員", 送簽人員); - - if (送簽日期1.Ticks > 0 && 送簽日期2.Ticks > 0) - { - cmdSelect.CommandText += " and 送簽日期 >= @送簽日期1 and 送簽日期 < @送簽日期2 "; - AddParam(cmdSelect, "送簽日期1", 送簽日期1); - AddParam(cmdSelect, "送簽日期2", 送簽日期2.AddDays(1)); - } - - cmdSelect.CommandText += " order by 訓練課程企劃編號, 簽核ID "; - - Select(cmdSelect, ref list); - return result; - } - - - /// - /// 判斷此表單是否可以送簽 - /// - public bool 可送簽(string 表單類別ID, string 表單ID) - { - 表單簽核主檔 status = GetLastStatus(表單類別ID, 表單ID); - if (status == null) // 沒有送簽過,可送簽 - return true; - else if (status.最終結果 == "N") // 最後結果為不同意,可重新送簽 - return true; - else if (status.撤簽 == "Y" && status.最終結果 == "Y") // 已撤簽,已撤簽簽核,可重新送簽 - return true; - else - return false; - } - - /// - /// 判斷此表單是否可以由這個使用者取消簽核 - /// - public bool 可取消(string 表單類別ID, string 表單ID, string UserId) - { - 表單簽核主檔 status = GetLastStatus(表單類別ID, 表單ID); - if (status == null) // 沒有送簽過,不可取消 - return false; - else if (status.撤簽 == "Y") // 撤簽,不可取消 - return false; - else if (status.最終簽核人員.CompareTo(UserId) != 0) // 不是這個人簽的表單,不可由這個人取消 - return false; - else if (status.最終結果.Length == 0) // 這個人還沒有簽過,不可由這個人取消 - return false; - else - return true; - } - - /// - /// 判斷此表單是否可以由這個使用者簽核 - /// - public bool 可簽核(string 表單類別ID, string 表單ID, string UserId) - { - 表單簽核主檔 status = GetLastStatus(表單類別ID, 表單ID); - if (status == null) // 沒有送簽過 - return false; - if (status.應簽關數 == status.已簽關數) // 已簽完 - return false; - //else if (status.撤簽 == "Y") - // return false; - - DAC_表單簽核明細 Dao表單簽核明細 = new DAC_表單簽核明細(conn); - 表單簽核明細List canApprove = Dao表單簽核明細.GetCanApprove(status.簽核ID); - - foreach (表單簽核明細 item in canApprove) - { - if (item.簽核人員.CompareTo(UserId) == 0) - return true; - } - return false; - } - - /// - /// 判斷此表單是否可以由這個使用者撤簽 - /// - public bool 可撤簽(string 表單類別ID, string 表單ID, string UserId) - { - 表單簽核主檔 status = GetLastStatus(表單類別ID, 表單ID); - if (status == null) // 沒有送簽過 - return false; - else if (status.撤簽 == "Y") // 撤簽 - return false; - else if (status.應簽關數 == status.已簽關數 && status.最終結果 == "Y") // 已簽完 - return false; - else if (status.送簽人員.CompareTo(UserId) != 0) // 不是這個人送簽的表單 - return false; - else - return true; - } - - /// - /// 將表單送簽 - /// - /// 表單類別 - /// 表單編號 - /// 簽核單號 - public int 送簽(string 表單類別ID, string 表單ID, string 送簽人員, string 應簽核人員, string 表單ID格式, - int 訓練課程企劃編號, int 編號2) - { - if (!可送簽(表單類別ID, 表單ID)) - return 0; - - string 應簽關數; - switch (表單類別ID) - { - case "課程企劃": - case "教學日誌暨異常狀況": - case "訓練檢討報告": - case "處理結果追蹤": - default: - 應簽關數 = "2"; // 2022-03-15 由 3 關改回 2 關 - break; - } - - bool wantClose = OpenConnection(); - tran = conn.BeginTransaction(); - try - { - // 新增簽核單 - 表單簽核主檔 newItem = new 表單簽核主檔() - { - 表單類別ID = 表單類別ID, - 表單ID = 表單ID, - 應簽關數 = 應簽關數, - 已簽關數 = "0", - 撤簽 = "", - 最終結果 = "", - 送簽人員 = 送簽人員, - 送簽日期 = DateTime.UtcNow.AddHours(8).Date, - 表單ID格式 = 表單ID格式, - 訓練課程企劃編號 = 訓練課程企劃編號, - 編號2 = 編號2 - }; - - int newId = InsertOne(newItem); - - // 新增簽核明細 - 表單簽核明細 newDetail = new 表單簽核明細() - { - 簽核ID = newId, - 關ID = "1", - 簽核人員 = 應簽核人員 - }; - DAC_表單簽核明細 Dao表單簽核明細 = new DAC_表單簽核明細(conn); - Dao表單簽核明細.Transaction = tran; - Dao表單簽核明細.InsertOne(newDetail); - - tran.Commit(); - - return newId; - } - catch (Exception error) - { - tran.Rollback(); - throw error; - } - finally - { - CloseConnection(wantClose); - } - } - - public bool 核准(int 簽核ID, string 本關人員, string 簽核意見, string 下關人員) - { - // 1. 取出目前的狀態 - 表單簽核主檔 status = GetLastStatus(簽核ID); - - DAC_表單簽核明細 Dao表單簽核明細 = new DAC_表單簽核明細(conn); - - int 本關 = DAC.GetInt32(status.已簽關數 == "" ? "0" : status.已簽關數); - - //switch (status.已簽關數) - //{ - // case "": - // case "0": - bool wantClose = OpenConnection(); - bool haveNext = false; - tran = conn.BeginTransaction(); - Dao表單簽核明細.Transaction = tran; - try - { - // 更新主檔狀態 - status.已簽關數 = (本關 + 1).ToString(); - status.最終結果 = "Y"; - status.最終簽核人員 = 本關人員; - status.最終簽核日期 = DateTime.UtcNow.AddHours(8); - status.最終簽核意見 = 簽核意見; - UpdateOne(status); - - // 更新明細檔狀態 - 表單簽核明細 lastDetail = Dao表單簽核明細.GetLast(簽核ID); - lastDetail.簽核人員 = 本關人員; - lastDetail.簽核日期 = DateTime.UtcNow.AddHours(8); - lastDetail.簽核結果 = "Y"; - lastDetail.簽核意見 = 簽核意見; - Dao表單簽核明細.UpdateOne(lastDetail); - - // 若還未簽核完,新增下關簽核明細 - if (status.已簽關數 != status.應簽關數) - { - 表單簽核明細 newDetail = new 表單簽核明細() - { - 簽核ID = 簽核ID, - 關ID = (本關 + 2).ToString(), - 簽核人員 = 下關人員 - }; - Dao表單簽核明細.InsertOne(newDetail); - haveNext = true; - } - // 已簽核完 - else - { - // 課程企劃書要把已簽核欄位改成 Y - if (status.表單類別ID == "課程企劃") - { - DAC_訓練課程企劃 Dao訓練課程企劃 = new DAC_訓練課程企劃(); - Dao訓練課程企劃.Connection = conn; - Dao訓練課程企劃.Transaction = tran; - 訓練課程企劃List d = Dao訓練課程企劃.SelectOne(Convert.ToInt32(status.表單ID)); - if (d.Count > 0) - { - d[0].已簽核 = "Y"; - Dao訓練課程企劃.UpdateOne(d[0]); - } - } - } - tran.Commit(); - - return haveNext; - } - catch (Exception error) - { - tran.Rollback(); - throw error; - } - finally - { - CloseConnection(wantClose); - } - - // case "1": - // wantClose = OpenConnection(); - // tran = conn.BeginTransaction(); - // Dao表單簽核明細.Transaction = tran; - // try - // { - // // 更新主檔狀態 - // status.已簽關數 = "2"; - // status.最終結果 = "Y"; - // status.最終簽核人員 = 本關人員; - // status.最終簽核日期 = DateTime.UtcNow.AddHours(8); - // status.最終簽核意見 = 簽核意見; - // UpdateOne(status); - - // // 更新明細檔狀態 - // 表單簽核明細 lastDetail = Dao表單簽核明細.GetLast(簽核ID); - // lastDetail.簽核人員 = 本關人員; - // lastDetail.簽核日期 = DateTime.UtcNow.AddHours(8); - // lastDetail.簽核結果 = "Y"; - // lastDetail.簽核意見 = 簽核意見; - // Dao表單簽核明細.UpdateOne(lastDetail); - - // // 課程企劃書要把已簽核欄位改成 Y - // if (status.表單類別ID == "課程企劃") - // { - // DAC_訓練課程企劃 Dao訓練課程企劃 = new DAC_訓練課程企劃(); - // Dao訓練課程企劃.Connection = conn; - // Dao訓練課程企劃.Transaction = tran; - // 訓練課程企劃List d = Dao訓練課程企劃.SelectOne(Convert.ToInt32(status.表單ID)); - // if (d.Count > 0) - // { - // d[0].已簽核 = "Y"; - // Dao訓練課程企劃.UpdateOne(d[0]); - // } - // } - - // tran.Commit(); - - // return false; - // } - // catch (Exception error) - // { - // tran.Rollback(); - // throw error; - // } - // finally - // { - // CloseConnection(wantClose); - // } - //} - - //return false; - } - - public void 不核准(int 簽核ID, string 本關人員, string 簽核意見) - { - // 1. 取出目前的狀態 - 表單簽核主檔 status = GetLastStatus(簽核ID); - - DAC_表單簽核明細 Dao表單簽核明細 = new DAC_表單簽核明細(conn); - - int 本關 = DAC.GetInt32(status.已簽關數 == "" ? "0" : status.已簽關數); - - //switch (status.已簽關數) - //{ - // case "": - // case "0": - bool wantClose = OpenConnection(); - tran = conn.BeginTransaction(); - Dao表單簽核明細.Transaction = tran; - try - { - // 更新主檔狀態 - status.已簽關數 = (本關 + 1).ToString(); - status.最終結果 = "N"; - status.最終簽核人員 = 本關人員; - status.最終簽核日期 = DateTime.UtcNow.AddHours(8); - status.最終簽核意見 = 簽核意見; - UpdateOne(status); - - // 更新明細檔狀態 - 表單簽核明細 lastDetail = Dao表單簽核明細.GetLast(簽核ID); - lastDetail.簽核人員 = 本關人員; - lastDetail.簽核日期 = DateTime.UtcNow.AddHours(8); - lastDetail.簽核結果 = "N"; - lastDetail.簽核意見 = 簽核意見; - Dao表單簽核明細.UpdateOne(lastDetail); - - tran.Commit(); - } - catch - { - tran.Rollback(); - } - finally - { - CloseConnection(wantClose); - } - // break; - - // case "1": - // wantClose = OpenConnection(); - // tran = conn.BeginTransaction(); - // Dao表單簽核明細.Transaction = tran; - // try - // { - // // 更新主檔狀態 - // status.已簽關數 = "2"; - // status.最終結果 = "N"; - // status.最終簽核人員 = 本關人員; - // status.最終簽核日期 = DateTime.UtcNow.AddHours(8); - // status.最終簽核意見 = 簽核意見; - // UpdateOne(status); - - // // 更新明細檔狀態 - // 表單簽核明細 lastDetail = Dao表單簽核明細.GetLast(簽核ID); - // lastDetail.簽核人員 = 本關人員; - // lastDetail.簽核日期 = DateTime.UtcNow.AddHours(8); - // lastDetail.簽核結果 = "N"; - // lastDetail.簽核意見 = 簽核意見; - // Dao表單簽核明細.UpdateOne(lastDetail); - - // tran.Commit(); - // } - // catch - // { - // tran.Rollback(); - // } - // finally - // { - // CloseConnection(wantClose); - // } - // break; - //} - } - - public void 取消簽核(int 簽核ID) - { - // 1. 取出目前的狀態 - 表單簽核主檔 status = GetLastStatus(簽核ID); - if (status == null) - return; - - DAC_表單簽核明細 Dao表單簽核明細 = new DAC_表單簽核明細(conn); - - switch (status.已簽關數) - { - case "": - case "0": // 還沒有簽,不動作 - break; - - #region 第一關取消 - case "1": // 取消第一關已簽核,回到第一關未簽核,刪除第二關簽核明細 - bool wantClose = OpenConnection(); - tran = conn.BeginTransaction(); - Dao表單簽核明細.Transaction = tran; - try - { - // 更新主檔狀態 - status.已簽關數 = "0"; - status.最終結果 = ""; - status.最終簽核人員 = ""; - status.最終簽核日期 = new DateTime(); - status.最終簽核意見 = ""; - UpdateOne(status); - - // 更新明細檔狀態 - 表單簽核明細List detail = Dao表單簽核明細.SelectOneId(簽核ID); - foreach (表單簽核明細 detailItem in detail) - { - if (detailItem.關ID == "1") - { - detailItem.簽核日期 = new DateTime(); - detailItem.簽核結果 = ""; - detailItem.簽核意見 = ""; - Dao表單簽核明細.UpdateOne(detailItem); - continue; - } - - if (detailItem.關ID == "2") - { - Dao表單簽核明細.DeleteOne(detailItem); - } - } - - tran.Commit(); - } - catch - { - tran.Rollback(); - } - finally - { - CloseConnection(wantClose); - } - break; - #endregion - - #region 第二關取消 - case "2": // 取消第二關已簽核,回到第二關未簽核,第一關已簽核,刪除第三關簽核明細 - wantClose = OpenConnection(); - tran = conn.BeginTransaction(); - Dao表單簽核明細.Transaction = tran; - try - { - // 更新明細檔狀態 - 表單簽核明細List detail = Dao表單簽核明細.SelectOneId(簽核ID); - foreach (表單簽核明細 detailItem in detail) - { - if (detailItem.關ID == "1") - { - // 更新主檔狀態 - status.已簽關數 = "1"; - status.最終結果 = detailItem.簽核結果; - status.最終簽核人員 = detailItem.簽核人員; - status.最終簽核日期 = detailItem.簽核日期; - status.最終簽核意見 = detailItem.簽核意見; - UpdateOne(status); - continue; - } - - if (detailItem.關ID == "2") - { - detailItem.簽核日期 = new DateTime(); - detailItem.簽核結果 = ""; - detailItem.簽核意見 = ""; - Dao表單簽核明細.UpdateOne(detailItem); - } - - if (detailItem.關ID == "3") - { - Dao表單簽核明細.DeleteOne(detailItem); - } - } - - // 課程企劃書要把已簽核欄位改成 N - if (status.表單類別ID == "課程企劃") - { - DAC_訓練課程企劃 Dao訓練課程企劃 = new DAC_訓練課程企劃(); - Dao訓練課程企劃.Connection = conn; - Dao訓練課程企劃.Transaction = tran; - 訓練課程企劃List d = Dao訓練課程企劃.SelectOne(Convert.ToInt32(status.表單ID)); - if (d.Count > 0) - { - d[0].已簽核 = "N"; - Dao訓練課程企劃.UpdateOne(d[0]); - } - } - - tran.Commit(); - } - catch - { - tran.Rollback(); - } - finally - { - CloseConnection(wantClose); - } - break; - #endregion - - #region 第三關取消 - case "3": // 取消第三關已簽核,回到第三關未簽核,第二關已簽核 - wantClose = OpenConnection(); - tran = conn.BeginTransaction(); - Dao表單簽核明細.Transaction = tran; - try - { - // 更新明細檔狀態 - 表單簽核明細List detail = Dao表單簽核明細.SelectOneId(簽核ID); - foreach (表單簽核明細 detailItem in detail) - { - if (detailItem.關ID == "2") - { - // 更新主檔狀態 - status.已簽關數 = "2"; - status.最終結果 = detailItem.簽核結果; - status.最終簽核人員 = detailItem.簽核人員; - status.最終簽核日期 = detailItem.簽核日期; - status.最終簽核意見 = detailItem.簽核意見; - UpdateOne(status); - continue; - } - - if (detailItem.關ID == "3") - { - detailItem.簽核日期 = new DateTime(); - detailItem.簽核結果 = ""; - detailItem.簽核意見 = ""; - Dao表單簽核明細.UpdateOne(detailItem); - } - } - - // 課程企劃書要把已簽核欄位改成 N - if (status.表單類別ID == "課程企劃") - { - DAC_訓練課程企劃 Dao訓練課程企劃 = new DAC_訓練課程企劃(); - Dao訓練課程企劃.Connection = conn; - Dao訓練課程企劃.Transaction = tran; - 訓練課程企劃List d = Dao訓練課程企劃.SelectOne(Convert.ToInt32(status.表單ID)); - if (d.Count > 0) - { - d[0].已簽核 = "N"; - Dao訓練課程企劃.UpdateOne(d[0]); - } - } - - tran.Commit(); - } - catch - { - tran.Rollback(); - } - finally - { - CloseConnection(wantClose); - } - break; - #endregion - - #region 撤簽取消 - case "D": // 取消 D 關已簽核,回到 D 關未簽核 - wantClose = OpenConnection(); - tran = conn.BeginTransaction(); - Dao表單簽核明細.Transaction = tran; - try - { - // 更新主檔狀態 - status.已簽關數 = "0"; - status.最終結果 = ""; - status.最終簽核人員 = ""; - status.最終簽核日期 = new DateTime(); - status.最終簽核意見 = ""; - UpdateOne(status); - - // 更新明細檔狀態 - 表單簽核明細List detail = Dao表單簽核明細.SelectOneId(簽核ID); - foreach (表單簽核明細 detailItem in detail) - { - if (detailItem.關ID == "D") - { - detailItem.簽核日期 = new DateTime(); - detailItem.簽核結果 = ""; - detailItem.簽核意見 = ""; - Dao表單簽核明細.UpdateOne(detailItem); - } - } - - tran.Commit(); - } - catch - { - tran.Rollback(); - } - finally - { - CloseConnection(wantClose); - } - break; - #endregion - } - } - - public void 撤簽(int 簽核ID, string 撤簽簽核人員) - { - // 1. 取出目前的狀態 - 表單簽核主檔 status = GetLastStatus(簽核ID); - if (status == null) - return; - - bool wantClose = OpenConnection(); - tran = conn.BeginTransaction(); - try - { - 表單簽核明細 newDetail; - - // 已送簽但尚未簽核,抽單等於直接回到未簽核狀態 - if (status.已簽關數 == "" || status.已簽關數 == "0") - { - // 更新主檔狀態 - status.應簽關數 = "D"; - status.撤簽 = "Y"; - status.已簽關數 = "D"; - status.最終結果 = "Y"; - status.最終簽核人員 = "SYSTEM"; - status.最終簽核日期 = DateTime.UtcNow.AddHours(8); - status.最終簽核意見 = "尚未簽核抽單,自動審批"; - - // 新增撤簽明細 - newDetail = new 表單簽核明細() - { - 簽核ID = status.簽核ID, - 關ID = "D", - 簽核人員 = "SYSTEM", - 簽核日期 = status.最終簽核日期, - 簽核結果 = "Y", - 簽核意見 = "尚未簽核抽單,自動審批" - }; - //DAC_表單簽核明細 Dao表單簽核明細 = new DAC_表單簽核明細(conn); - //Dao表單簽核明細.Transaction = tran; - //Dao表單簽核明細.InsertOne(newDetail); - } - else - { - // 更新主檔狀態 - status.應簽關數 = "D"; - status.撤簽 = "Y"; - status.已簽關數 = ""; - status.最終結果 = ""; - status.最終簽核人員 = ""; - status.最終簽核日期 = new DateTime(); - status.最終簽核意見 = ""; - //UpdateOne(status); - - // 新增撤簽明細 - newDetail = new 表單簽核明細() - { - 簽核ID = status.簽核ID, - 關ID = "D", - 簽核人員 = 撤簽簽核人員 - }; - //DAC_表單簽核明細 Dao表單簽核明細 = new DAC_表單簽核明細(conn); - //Dao表單簽核明細.Transaction = tran; - //Dao表單簽核明細.InsertOne(newDetail); - } - - UpdateOne(status); - DAC_表單簽核明細 Dao表單簽核明細 = new DAC_表單簽核明細(conn); - Dao表單簽核明細.Transaction = tran; - Dao表單簽核明細.InsertOne(newDetail); - - tran.Commit(); - } - catch (Exception error) - { - tran.Rollback(); - throw error; - } - finally - { - CloseConnection(wantClose); - } - } - - public void 撤簽核准(int 簽核ID, string 本關人員, string 簽核意見) - { - 撤簽批示(簽核ID, 本關人員, true, 簽核意見); - } - - public void 撤簽不核准(int 簽核ID, string 本關人員, string 簽核意見) - { - 撤簽批示(簽核ID, 本關人員, false, 簽核意見); - } - - private void 撤簽批示(int 簽核ID, string 本關人員, bool 簽核結果, string 簽核意見) - { - 表單簽核主檔 status = GetLastStatus(簽核ID); - if (status == null) - return; - DAC_表單簽核明細 Dao表單簽核明細 = new DAC_表單簽核明細(conn); - - bool wantClose = OpenConnection(); - tran = conn.BeginTransaction(); - Dao表單簽核明細.Transaction = tran; - try - { - // 更新主檔狀態 - status.已簽關數 = "D"; - status.最終結果 = 簽核結果 ? "Y" : "N"; - status.最終簽核人員 = 本關人員; - status.最終簽核日期 = DateTime.UtcNow.AddHours(8); - status.最終簽核意見 = 簽核意見; - UpdateOne(status); - - // 更新明細檔狀態 - 表單簽核明細 lastDetail = Dao表單簽核明細.GetLast(簽核ID); - lastDetail.簽核人員 = 本關人員; - lastDetail.簽核日期 = DateTime.UtcNow.AddHours(8); - lastDetail.簽核結果 = 簽核結果 ? "Y" : "N"; - lastDetail.簽核意見 = 簽核意見; - Dao表單簽核明細.UpdateOne(lastDetail); - - tran.Commit(); - } - catch (Exception error) - { - tran.Rollback(); - throw error; - } - finally - { - CloseConnection(wantClose); - } - } - - public bool 表單可異動(string 表單類別ID, string 表單ID) - { - // 1. 取出目前的狀態 - 表單簽核主檔 status = GetLastStatus(表單類別ID, 表單ID); - if (status == null) // 尚未送簽,可異動 - return true; - else if (status.應簽關數.CompareTo("D") != 0 && - status.最終結果 == "N") // 不准,可異動 - return true; - else if (status.應簽關數 == "D" && - status.最終結果 == "Y") // 抽單核准,可異動 - return true; - else if (status.應簽關數.CompareTo("D") != 0 && - status.最終結果 == "Y") // 已簽准,不可異動 - return false; - else if (status.應簽關數.CompareTo(status.已簽關數) != 0) // 簽核中,不可異動 - return false; - else - return true; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核主檔List Get可簽核的表單(string UserId) - { - 表單簽核主檔List result = new 表單簽核主檔List(); - IDataList list = result as IDataList; - DbCommand cmd = NewCommand(); - // cmd.CommandText = - // @"select 簽核ID, A.表單類別ID, A.表單ID, 送簽人員, 送簽日期, 應簽關數, 已簽關數, 撤簽, 最終結果, 最終簽核人員, 最終簽核日期, 最終簽核意見, 表單ID格式, 訓練課程企劃編號, 編號2, - // DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR - // from - // ( - // select 簽核ID, 表單類別ID, 送簽人員, 送簽日期, 應簽關數, 已簽關數, 撤簽, 最終結果, 最終簽核人員, 最終簽核日期, 最終簽核意見, 表單ID格式, - // DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR, - // case when CHARINDEX('|', 表單ID) = 0 then 表單ID else SUBSTRING(表單ID, 1, CHARINDEX('|', 表單ID) - 1) end as 表單ID, - // case when CHARINDEX('|', 表單ID) = 0 then '' else SUBSTRING(表單ID, CHARINDEX('|', 表單ID) + 1, 10) end as 表單ID2 - // from 表單簽核主檔 - // ) AS A - // join - // ( - // select 1 as 表單順序, '課程企劃' as 表單類別ID, CAST(編號 AS NVARCHAR(10)) as 表單ID, '' AS 表單ID2, 顯示編號 as 訓練課程編號 from 訓練課程企劃 - // union all - // select 2 as 表單順序, '場地遴選' as 表單類別ID, CAST(課程企劃編號 AS NVARCHAR(10)) as 表單ID, '' AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 場地遴選.課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 場地遴選 - // union all - // select 3 as 表單順序, '講師遴選' as 表單類別ID, CAST(課程企劃編號 AS NVARCHAR(10)) as 表單ID, CAST(課程序號 AS NVARCHAR(10)) AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 講師遴選.課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 講師遴選 - // union all - // select 4 as 表單順序, '訓練檢討報告' as 表單類別ID, CAST(訓練課程企劃編號 AS NVARCHAR(10)) as 表單ID, '' AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 訓練檢討報告.訓練課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 訓練檢討報告 - // union all - // select 5 as 表單順序, '教學日誌暨異常狀況' as 表單類別ID, CAST(課程企劃編號 AS NVARCHAR(10)) as 表單ID, CAST(課程序號 AS NVARCHAR(10)) AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 教學日誌.課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 教學日誌 - // union all - // select 6 as 表單順序, '教育訓練效益追蹤調查表' as 表單類別ID, CAST(訓練課程企劃編號 AS NVARCHAR(10)) as 表單ID, CAST(填表序號 AS NVARCHAR(10)) AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 訓練效益.訓練課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 訓練效益 - // ) as B on A.表單類別ID=B.表單類別ID and A.表單ID=B.表單ID and A.表單ID2=B.表單ID2 - // where 簽核ID in ( - // select 簽核ID from 表單簽核明細 A - // where 關ID = (select max(B.關ID) from 表單簽核明細 B where A.簽核ID=B.簽核ID) - // and (簽核結果 = '' or 簽核結果 is null) - // and 簽核人員 = @簽核人員 - // ) - // order by B.訓練課程編號, B.表單順序 - // "; - cmd.CommandText = _select + _from + - @" where 簽核ID in ( - select 簽核ID from 表單簽核明細 A - where 關ID = (select max(B.關ID) from 表單簽核明細 B where A.簽核ID=B.簽核ID) - and (簽核結果 = '' or 簽核結果 is null) - and 簽核人員 = @簽核人員 - ) - order by 訓練課程企劃編號, 簽核ID"; - AddParam(cmd, "簽核人員", UserId); - Select(cmd, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核主檔List Get已簽核的表單(string UserId) - { - 表單簽核主檔List result = new 表單簽核主檔List(); - IDataList list = result as IDataList; - DbCommand cmd = NewCommand(); - cmd.CommandText = - // @"select 簽核ID, A.表單類別ID, A.表單ID, 送簽人員, 送簽日期, 應簽關數, 已簽關數, 撤簽, 最終結果, 最終簽核人員, 最終簽核日期, 最終簽核意見, 表單ID格式, 訓練課程企劃編號, 編號2, - // DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR - // from - // ( - // select 簽核ID, 表單類別ID, 送簽人員, 送簽日期, 應簽關數, 已簽關數, 撤簽, 最終結果, 最終簽核人員, 最終簽核日期, 最終簽核意見, 表單ID格式, - // DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR, - // case when CHARINDEX('|', 表單ID) = 0 then 表單ID else SUBSTRING(表單ID, 1, CHARINDEX('|', 表單ID) - 1) end as 表單ID, - // case when CHARINDEX('|', 表單ID) = 0 then '' else SUBSTRING(表單ID, CHARINDEX('|', 表單ID) + 1, 10) end as 表單ID2 - // from 表單簽核主檔 - // ) AS A - // join - // ( - // select 1 as 表單順序, '課程企劃' as 表單類別ID, CAST(編號 AS NVARCHAR(10)) as 表單ID, '' AS 表單ID2, 顯示編號 as 訓練課程編號 from 訓練課程企劃 - // union all - // select 2 as 表單順序, '場地遴選' as 表單類別ID, CAST(課程企劃編號 AS NVARCHAR(10)) as 表單ID, '' AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 場地遴選.課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 場地遴選 - // union all - // select 3 as 表單順序, '講師遴選' as 表單類別ID, CAST(課程企劃編號 AS NVARCHAR(10)) as 表單ID, CAST(課程序號 AS NVARCHAR(10)) AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 講師遴選.課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 講師遴選 - // union all - // select 4 as 表單順序, '訓練檢討報告' as 表單類別ID, CAST(訓練課程企劃編號 AS NVARCHAR(10)) as 表單ID, '' AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 訓練檢討報告.訓練課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 訓練檢討報告 - // union all - // select 5 as 表單順序, '教學日誌暨異常狀況' as 表單類別ID, CAST(課程企劃編號 AS NVARCHAR(10)) as 表單ID, CAST(課程序號 AS NVARCHAR(10)) AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 教學日誌.課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 教學日誌 - // union all - // select 6 as 表單順序, '教育訓練效益追蹤調查表' as 表單類別ID, CAST(訓練課程企劃編號 AS NVARCHAR(10)) as 表單ID, CAST(填表序號 AS NVARCHAR(10)) AS 表單ID2, - // (select top 1 顯示編號 from 訓練課程企劃 where 訓練效益.訓練課程企劃編號=訓練課程企劃.編號) as 訓練課程編號 from 訓練效益 - // ) as B on A.表單類別ID=B.表單類別ID and A.表單ID=B.表單ID and A.表單ID2=B.表單ID2 - // where 簽核ID in ( - // select distinct 簽核ID from 表單簽核明細 A - // where (簽核結果 = 'Y' or 簽核結果 = 'N') - // and 簽核人員 = @簽核人員 - // ) - // order by B.訓練課程編號, B.表單順序 - // "; - cmd.CommandText = _select + _from + - @" where 簽核ID in ( - select distinct 簽核ID from 表單簽核明細 A - where (簽核結果 = 'Y' or 簽核結果 = 'N') - and 簽核人員 = @簽核人員 - ) - order by 訓練課程企劃編號, 簽核ID"; - AddParam(cmd, "簽核人員", UserId); - Select(cmd, ref list); - return result; - } - - } - - /// - /// 表單簽核主檔 資料集合類別 - /// - public partial class 表單簽核主檔List : List<表單簽核主檔> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 表單簽核主檔 資料紀錄類別 - /// - public partial class 表單簽核主檔 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/簽核/DAC_表單簽核明細1.cs b/branches/1150807/DAC/簽核/DAC_表單簽核明細1.cs deleted file mode 100644 index b4c609b..0000000 --- a/branches/1150807/DAC/簽核/DAC_表單簽核明細1.cs +++ /dev/null @@ -1,452 +0,0 @@ -// -// 這個檔案是 表單簽核明細 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 表單簽核明細 資料存取類別 - /// - [DataObject] - public partial class DAC_表單簽核明細 : WebLib.DAC - { - private string _tableName = "表單簽核明細"; - private string _select = "select 簽核ID, 關ID, 簽核結果, 簽核人員, 簽核日期, 簽核意見, 稽催狀態, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "簽核ID, 關ID, 簽核結果, 簽核人員, 簽核日期, 簽核意見, 稽催狀態, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@簽核ID, @關ID, @簽核結果, @簽核人員, @簽核日期, @簽核意見, @稽催狀態, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 表單簽核明細 "; - private string _where = " where 1=1 "; - private string _order = " order by 簽核ID, 關ID "; - - public DAC_表單簽核明細() - : base() - { - } - - public DAC_表單簽核明細(DbConnection conn) - : base(conn) - { - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核明細List SelectAll() - { - 表單簽核明細List result = new 表單簽核明細List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核明細List SelectOne(int 簽核ID, string 關ID) - { - 表單簽核明細List result = new 表單簽核明細List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 簽核ID = @簽核ID " - + " and 關ID = @關ID " - ; - AddParam(cmdSelect, "簽核ID", 簽核ID); - AddParam(cmdSelect, "關ID", 關ID); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(表單簽核明細 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 表單簽核明細" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "簽核ID", value.簽核ID); - AddParam(cmdInsert, "關ID", value.關ID); - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(表單簽核明細 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 表單簽核明細List oldValues = SelectOne(value.簽核ID, value.關ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"表單簽核明細\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 表單簽核明細 - set - 簽核結果 = @簽核結果 , - 簽核人員 = @簽核人員 , - 簽核日期 = @簽核日期 , - 簽核意見 = @簽核意見 , - 稽催狀態 = @稽催狀態 , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 簽核ID = @original_簽核ID - and 關ID = @original_關ID - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "簽核結果", value.簽核結果); - AddParam(cmdUpdate, "簽核人員", value.簽核人員); - AddParam(cmdUpdate, "簽核日期", value.簽核日期); - AddParam(cmdUpdate, "簽核意見", value.簽核意見); - AddParam(cmdUpdate, "稽催狀態", value.稽催狀態); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_簽核ID", value.簽核ID); - AddParam(cmdUpdate, "original_關ID", value.關ID); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 簽核ID, string 關ID, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(簽核ID, 關ID, DB_APPNO)) - return -1; - - 表單簽核明細List oldValues = SelectOne(簽核ID, 關ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"表單簽核明細\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 表單簽核明細 - where 1=1 - and 簽核ID = @簽核ID - and 關ID = @關ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "簽核ID", 簽核ID); - AddParam(cmdDelete, "關ID", 關ID); - AddParam(cmdDelete, "DB_APPNO", DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdDelete); - AfterDeleteOne(簽核ID, 關ID, 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(表單簽核明細 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 表單簽核明細List oldValues = SelectOne(value.簽核ID, value.關ID); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"表單簽核明細\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 表單簽核明細 - where 1=1 - and 簽核ID = @簽核ID - and 關ID = @關ID - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "簽核ID", value.簽核ID); - AddParam(cmdDelete, "關ID", value.關ID); - 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 簽核ID, string 關ID) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 簽核ID = @簽核ID " - + " and 關ID = @關ID " - ; - AddParam(cmdSelect, "簽核ID", 簽核ID); - AddParam(cmdSelect, "關ID", 關ID); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 表單簽核明細 資料集合類別 - /// - public partial class 表單簽核明細List : List<表單簽核明細>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 表單簽核明細 newItem = new 表單簽核明細(); - newItem.簽核ID = DAC.GetInt32(reader[0]); - newItem.關ID = DAC.GetString(reader[1]); - newItem.簽核結果 = DAC.GetString(reader[2]); - newItem.簽核人員 = DAC.GetString(reader[3]); - newItem.簽核日期 = DAC.GetDateTime(reader[4]); - newItem.簽核意見 = DAC.GetString(reader[5]); - newItem.稽催狀態 = DAC.GetInt32(reader[6]); - newItem.DB_APPNO = DAC.GetInt32(reader[7]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[8]); - newItem.DB_CRUSR = DAC.GetString(reader[9]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[10]); - newItem.DB_TRUSR = DAC.GetString(reader[11]); - Add(newItem); - } - } - } - - /// - /// 表單簽核明細 資料紀錄類別 - /// - [Serializable] - public partial class 表單簽核明細 : DataItemBase - { - private int _簽核ID; - private string _關ID; - private string _簽核結果; - private string _簽核人員; - private DateTime _簽核日期; - private string _簽核意見; - private int _稽催狀態; - - #region 資料欄位 - /// - /// 簽核ID - /// - [DataObjectField(true, false, false)] - public int 簽核ID - { - get - { - return _簽核ID; - } - set - { - if (value != _簽核ID) - { - _簽核ID = value; - OnPropertyChanged("簽核ID"); - } - } - } - - /// - /// 關ID - /// - [DataObjectField(true, false, false, 1)] - public string 關ID - { - get - { - return _關ID; - } - set - { - if (value != _關ID) - { - _關ID = value; - OnPropertyChanged("關ID"); - } - } - } - - /// - /// 簽核結果 - /// - [DataObjectField(false, false, true, 1)] - 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)] - public DateTime 簽核日期 - { - 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)] - public int 稽催狀態 - { - get - { - return _稽催狀態; - } - set - { - if (value != _稽催狀態) - { - _稽催狀態 = value; - OnPropertyChanged("稽催狀態"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/簽核/DAC_表單簽核明細2.cs b/branches/1150807/DAC/簽核/DAC_表單簽核明細2.cs deleted file mode 100644 index d85afe1..0000000 --- a/branches/1150807/DAC/簽核/DAC_表單簽核明細2.cs +++ /dev/null @@ -1,257 +0,0 @@ -// -// 這個檔案是 表單簽核明細 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 表單簽核明細 資料存取類別 - /// - public partial class DAC_表單簽核明細 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核明細List Select() - { - 表單簽核明細List result = new 表單簽核明細List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(表單簽核明細 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(表單簽核明細 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(表單簽核明細 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(表單簽核明細 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(表單簽核明細 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(表單簽核明細 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 簽核ID, string 關ID, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 簽核ID, string 關ID, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - - /// - /// 取得這張表單目前可以簽核的人員 - /// - /// - /// - public 表單簽核明細List GetCanApprove(int 簽核ID) - { - 表單簽核明細List result = new 表單簽核明細List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select top 1 " + _insert + _from; - cmdSelect.CommandText += " where 簽核ID = @簽核ID "; - cmdSelect.CommandText += " order by 關ID desc "; - AddParam(cmdSelect, "簽核ID", 簽核ID); - Select(cmdSelect, ref list); - - for (int i = result.Count - 1; i >= 0; i--) - { - if (result[i].簽核結果.Length > 0) - result.RemoveAt(i); - } - return result; - } - - /// - /// 取得一張簽核單的最後一筆簽核明細 - /// - public 表單簽核明細 GetLast(int 簽核ID) - { - 表單簽核明細List result = new 表單簽核明細List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - cmdSelect.CommandText += " and 簽核ID = @簽核ID "; - cmdSelect.CommandText += " order by 關ID desc"; - AddParam(cmdSelect, "簽核ID", 簽核ID); - Select(cmdSelect, ref list); - if (result.Count > 0) - return result[0]; - else - return null; - } - - /// - /// 取得一張簽核單的所有明細 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核明細List SelectOneId(int 簽核ID) - { - 表單簽核明細List result = new 表單簽核明細List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - cmdSelect.CommandText += " and 簽核ID = @簽核ID "; - cmdSelect.CommandText += " order by 關ID desc"; - AddParam(cmdSelect, "簽核ID", 簽核ID); - Select(cmdSelect, ref list); - return result; - } - - private 表單簽核明細List Select稽催(int 稽催狀態) - { - 表單簽核明細List result = new 表單簽核明細List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - cmdSelect.CommandText += " and (簽核結果 <> 'Y' and 簽核結果 <> 'N') "; - cmdSelect.CommandText += " and (簽核人員 is not null and 簽核人員 <> '') "; - cmdSelect.CommandText += " and exists (select 1 from 表單簽核主檔 where 表單簽核主檔.簽核ID = 表單簽核明細.簽核ID and 表單簽核主檔.應簽關數 <> 'D' and 表單簽核主檔.已簽關數 <> 'D') "; - - int daysBefore = 0; - switch (稽催狀態) - { - case 0: - cmdSelect.CommandText += " and (稽催狀態 is null or 稽催狀態 = 0) "; - daysBefore = -3; - break; - case 1: - cmdSelect.CommandText += " and (稽催狀態 = 1) "; - daysBefore = -7; - break; - case 2: - cmdSelect.CommandText += " and (稽催狀態 = 2) "; - daysBefore = -14; - break; - } - cmdSelect.CommandText += " and DB_CRDAT < @DATE "; - AddParam(cmdSelect, "DATE", DateTime.UtcNow.AddHours(8).Date.AddDays(daysBefore)); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核明細List Select第一次稽催() - { - return Select稽催(0); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核明細List Select第二次稽催() - { - return Select稽催(1); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 表單簽核明細List Select第三次稽催() - { - return Select稽催(2); - } - } - - /// - /// 表單簽核明細 資料集合類別 - /// - public partial class 表單簽核明細List : List<表單簽核明細> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 表單簽核明細 資料紀錄類別 - /// - public partial class 表單簽核明細 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_場地異動1.cs b/branches/1150807/DAC/課程企劃/DAC_場地異動1.cs deleted file mode 100644 index 5311e2d..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_場地異動1.cs +++ /dev/null @@ -1,400 +0,0 @@ -// -// 這個檔案是 場地異動 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 場地異動 資料存取類別 - /// - [DataObject] - public partial class DAC_場地異動 : WebLib.DAC - { - private string _tableName = "場地異動"; - private string _select = "select 課程企劃編號, 異動次數, 異動日期, 場地編號, 場地名稱, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "課程企劃編號, 異動次數, 異動日期, 場地編號, 場地名稱, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@課程企劃編號, @異動次數, @異動日期, @場地編號, @場地名稱, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 場地異動 "; - 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() - { - 場地異動List result = new 場地異動List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 場地異動List SelectOne(int 課程企劃編號, int 異動次數) - { - 場地異動List result = new 場地異動List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 異動次數 = @異動次數 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "異動次數", 異動次數); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(場地異動 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 場地異動" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(場地異動 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 場地異動List oldValues = SelectOne(value.課程企劃編號, value.異動次數); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"場地異動\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 異動次數 = @original_異動次數 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "異動日期", value.異動日期); - AddParam(cmdUpdate, "場地編號", value.場地編號); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_課程企劃編號", value.課程企劃編號); - AddParam(cmdUpdate, "original_異動次數", value.異動次數); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 課程企劃編號, int 異動次數, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(課程企劃編號, 異動次數, DB_APPNO)) - return -1; - - 場地異動List oldValues = SelectOne(課程企劃編號, 異動次數); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"場地異動\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 場地異動 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 異動次數 = @異動次數 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", 課程企劃編號); - 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(場地異動 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 場地異動List oldValues = SelectOne(value.課程企劃編號, value.異動次數); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"場地異動\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 場地異動 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 異動次數 = @異動次數 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", value.課程企劃編號); - 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 課程企劃編號, int 異動次數) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 異動次數 = @異動次數 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "異動次數", 異動次數); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 場地異動 資料集合類別 - /// - public partial class 場地異動List : List<場地異動>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 場地異動 newItem = new 場地異動(); - newItem.課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.異動次數 = DAC.GetInt32(reader[1]); - newItem.異動日期 = DAC.GetDateTime(reader[2]); - newItem.場地編號 = DAC.GetInt32(reader[3]); - newItem.場地名稱 = DAC.GetString(reader[4]); - newItem.DB_APPNO = DAC.GetInt32(reader[5]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[6]); - newItem.DB_CRUSR = DAC.GetString(reader[7]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[8]); - newItem.DB_TRUSR = DAC.GetString(reader[9]); - Add(newItem); - } - } - } - - /// - /// 場地異動 資料紀錄類別 - /// - [Serializable] - public partial class 場地異動 : DataItemBase - { - private int _課程企劃編號; - private int _異動次數; - private DateTime _異動日期; - private int _場地編號; - private string _場地名稱; - - #region 資料欄位 - /// - /// 課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 課程企劃編號 - { - get - { - return _課程企劃編號; - } - set - { - if (value != _課程企劃編號) - { - _課程企劃編號 = value; - OnPropertyChanged("課程企劃編號"); - } - } - } - - /// - /// 異動次數 - /// - [DataObjectField(true, false, false)] - public int 異動次數 - { - get - { - return _異動次數; - } - set - { - if (value != _異動次數) - { - _異動次數 = value; - OnPropertyChanged("異動次數"); - } - } - } - - /// - /// 異動日期 - /// - [DataObjectField(false, false, true)] - public DateTime 異動日期 - { - get - { - return _異動日期; - } - set - { - if (value != _異動日期) - { - _異動日期 = value; - OnPropertyChanged("異動日期"); - } - } - } - - /// - /// 場地編號 - /// - [DataObjectField(false, false, true)] - public int 場地編號 - { - get - { - return _場地編號; - } - set - { - if (value != _場地編號) - { - _場地編號 = value; - OnPropertyChanged("場地編號"); - } - } - } - - /// - /// 場地名稱 - /// - [DataObjectField(false, false, true, 100)] - public string 場地名稱 - { - get - { - return _場地名稱; - } - set - { - if (value != _場地名稱) - { - _場地名稱 = value; - OnPropertyChanged("場地名稱"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_場地異動2.cs b/branches/1150807/DAC/課程企劃/DAC_場地異動2.cs deleted file mode 100644 index 62fd36c..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_場地異動2.cs +++ /dev/null @@ -1,179 +0,0 @@ -// -// 這個檔案是 場地異動 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 場地異動 資料存取類別 - /// - public partial class DAC_場地異動 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(場地異動 value) - { - value.異動日期 = DateTime.UtcNow.AddHours(8); - value.異動次數 = Next異動次數(value.課程企劃編號); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(場地異動 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(場地異動 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(場地異動 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(場地異動 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(場地異動 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 課程企劃編號, int 異動次數, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 課程企劃編號, int 異動次數, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - private int Next異動次數(int 課程企劃編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select isnull(max(異動次數), 0) + 1 from " + _tableName - + " where 課程企劃編號 = @課程企劃編號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 場地異動List Select異動(int 課程企劃編號) - { - 場地異動List result = new 場地異動List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " order by 異動次數 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 場地異動List Select最後異動(int 課程企劃編號) - { - 場地異動List result = new 場地異動List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select top 1 " + _insert + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " order by 異動次數 desc" - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - Select(cmdSelect, ref list); - return result; - } - } - - /// - /// 場地異動 資料集合類別 - /// - public partial class 場地異動List : List<場地異動> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 場地異動 資料紀錄類別 - /// - public partial class 場地異動 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_場地遴選1.cs b/branches/1150807/DAC/課程企劃/DAC_場地遴選1.cs deleted file mode 100644 index 58e3cf0..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_場地遴選1.cs +++ /dev/null @@ -1,969 +0,0 @@ -// -// 這個檔案是 場地遴選 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 場地遴選 資料存取類別 - /// - [DataObject] - public partial class DAC_場地遴選 : WebLib.DAC - { - private string _tableName = "場地遴選"; - private string _select = "select 課程企劃編號, 場地編號_A, 場地名稱_A, 安全舒適_A, 空間大小_A, 價格合理_A, 交通便利_A, 設備完善_A, 合計_A, 場地編號_B, 場地名稱_B, 安全舒適_B, 空間大小_B, 價格合理_B, 交通便利_B, 設備完善_B, 合計_B, 場地編號_C, 場地名稱_C, 安全舒適_C, 空間大小_C, 價格合理_C, 交通便利_C, 設備完善_C, 合計_C, 總評, 備註, 選定場地, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "課程企劃編號, 場地編號_A, 場地名稱_A, 安全舒適_A, 空間大小_A, 價格合理_A, 交通便利_A, 設備完善_A, 合計_A, 場地編號_B, 場地名稱_B, 安全舒適_B, 空間大小_B, 價格合理_B, 交通便利_B, 設備完善_B, 合計_B, 場地編號_C, 場地名稱_C, 安全舒適_C, 空間大小_C, 價格合理_C, 交通便利_C, 設備完善_C, 合計_C, 總評, 備註, 選定場地, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@課程企劃編號, @場地編號_A, @場地名稱_A, @安全舒適_A, @空間大小_A, @價格合理_A, @交通便利_A, @設備完善_A, @合計_A, @場地編號_B, @場地名稱_B, @安全舒適_B, @空間大小_B, @價格合理_B, @交通便利_B, @設備完善_B, @合計_B, @場地編號_C, @場地名稱_C, @安全舒適_C, @空間大小_C, @價格合理_C, @交通便利_C, @設備完善_C, @合計_C, @總評, @備註, @選定場地, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 場地遴選 "; - 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() - { - 場地遴選List result = new 場地遴選List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - 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; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(場地遴選 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 場地遴選" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "課程企劃編號", value.課程企劃編號); - AddParam(cmdInsert, "場地編號_A", value.場地編號_A); - AddParam(cmdInsert, "場地名稱_A", value.場地名稱_A); - AddParam(cmdInsert, "安全舒適_A", value.安全舒適_A); - AddParam(cmdInsert, "空間大小_A", value.空間大小_A); - AddParam(cmdInsert, "價格合理_A", value.價格合理_A); - AddParam(cmdInsert, "交通便利_A", value.交通便利_A); - AddParam(cmdInsert, "設備完善_A", value.設備完善_A); - AddParam(cmdInsert, "合計_A", value.合計_A); - AddParam(cmdInsert, "場地編號_B", value.場地編號_B); - AddParam(cmdInsert, "場地名稱_B", value.場地名稱_B); - AddParam(cmdInsert, "安全舒適_B", value.安全舒適_B); - AddParam(cmdInsert, "空間大小_B", value.空間大小_B); - AddParam(cmdInsert, "價格合理_B", value.價格合理_B); - AddParam(cmdInsert, "交通便利_B", value.交通便利_B); - AddParam(cmdInsert, "設備完善_B", value.設備完善_B); - AddParam(cmdInsert, "合計_B", value.合計_B); - AddParam(cmdInsert, "場地編號_C", value.場地編號_C); - AddParam(cmdInsert, "場地名稱_C", value.場地名稱_C); - AddParam(cmdInsert, "安全舒適_C", value.安全舒適_C); - AddParam(cmdInsert, "空間大小_C", value.空間大小_C); - AddParam(cmdInsert, "價格合理_C", value.價格合理_C); - AddParam(cmdInsert, "交通便利_C", value.交通便利_C); - AddParam(cmdInsert, "設備完善_C", value.設備完善_C); - AddParam(cmdInsert, "合計_C", value.合計_C); - AddParam(cmdInsert, "總評", value.總評); - AddParam(cmdInsert, "備註", value.備註); - AddParam(cmdInsert, "選定場地", value.選定場地); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(場地遴選 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 場地遴選List oldValues = SelectOne(value.課程企劃編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"場地遴選\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 場地遴選 - set - 場地編號_A = @場地編號_A , - 場地名稱_A = @場地名稱_A , - 安全舒適_A = @安全舒適_A , - 空間大小_A = @空間大小_A , - 價格合理_A = @價格合理_A , - 交通便利_A = @交通便利_A , - 設備完善_A = @設備完善_A , - 合計_A = @合計_A , - 場地編號_B = @場地編號_B , - 場地名稱_B = @場地名稱_B , - 安全舒適_B = @安全舒適_B , - 空間大小_B = @空間大小_B , - 價格合理_B = @價格合理_B , - 交通便利_B = @交通便利_B , - 設備完善_B = @設備完善_B , - 合計_B = @合計_B , - 場地編號_C = @場地編號_C , - 場地名稱_C = @場地名稱_C , - 安全舒適_C = @安全舒適_C , - 空間大小_C = @空間大小_C , - 價格合理_C = @價格合理_C , - 交通便利_C = @交通便利_C , - 設備完善_C = @設備完善_C , - 合計_C = @合計_C , - 總評 = @總評 , - 備註 = @備註 , - 選定場地 = @選定場地 , - 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, "場地編號_A", value.場地編號_A); - AddParam(cmdUpdate, "場地名稱_A", value.場地名稱_A); - AddParam(cmdUpdate, "安全舒適_A", value.安全舒適_A); - AddParam(cmdUpdate, "空間大小_A", value.空間大小_A); - AddParam(cmdUpdate, "價格合理_A", value.價格合理_A); - AddParam(cmdUpdate, "交通便利_A", value.交通便利_A); - AddParam(cmdUpdate, "設備完善_A", value.設備完善_A); - AddParam(cmdUpdate, "合計_A", value.合計_A); - AddParam(cmdUpdate, "場地編號_B", value.場地編號_B); - AddParam(cmdUpdate, "場地名稱_B", value.場地名稱_B); - AddParam(cmdUpdate, "安全舒適_B", value.安全舒適_B); - AddParam(cmdUpdate, "空間大小_B", value.空間大小_B); - AddParam(cmdUpdate, "價格合理_B", value.價格合理_B); - AddParam(cmdUpdate, "交通便利_B", value.交通便利_B); - AddParam(cmdUpdate, "設備完善_B", value.設備完善_B); - AddParam(cmdUpdate, "合計_B", value.合計_B); - AddParam(cmdUpdate, "場地編號_C", value.場地編號_C); - AddParam(cmdUpdate, "場地名稱_C", value.場地名稱_C); - AddParam(cmdUpdate, "安全舒適_C", value.安全舒適_C); - AddParam(cmdUpdate, "空間大小_C", value.空間大小_C); - AddParam(cmdUpdate, "價格合理_C", value.價格合理_C); - AddParam(cmdUpdate, "交通便利_C", value.交通便利_C); - AddParam(cmdUpdate, "設備完善_C", value.設備完善_C); - AddParam(cmdUpdate, "合計_C", value.合計_C); - AddParam(cmdUpdate, "總評", value.總評); - AddParam(cmdUpdate, "備註", value.備註); - AddParam(cmdUpdate, "選定場地", value.選定場地); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_課程企劃編號", value.課程企劃編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 課程企劃編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(課程企劃編號, DB_APPNO)) - return -1; - - 場地遴選List oldValues = SelectOne(課程企劃編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"場地遴選\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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(場地遴選 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 場地遴選List oldValues = SelectOne(value.課程企劃編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"場地遴選\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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 partial class 場地遴選List : List<場地遴選>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 場地遴選 newItem = new 場地遴選(); - newItem.課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.場地編號_A = DAC.GetInt32(reader[1]); - newItem.場地名稱_A = DAC.GetString(reader[2]); - newItem.安全舒適_A = DAC.GetInt32(reader[3]); - newItem.空間大小_A = DAC.GetInt32(reader[4]); - newItem.價格合理_A = DAC.GetInt32(reader[5]); - newItem.交通便利_A = DAC.GetInt32(reader[6]); - newItem.設備完善_A = DAC.GetInt32(reader[7]); - newItem.合計_A = DAC.GetInt32(reader[8]); - newItem.場地編號_B = DAC.GetInt32(reader[9]); - newItem.場地名稱_B = DAC.GetString(reader[10]); - newItem.安全舒適_B = DAC.GetInt32(reader[11]); - newItem.空間大小_B = DAC.GetInt32(reader[12]); - newItem.價格合理_B = DAC.GetInt32(reader[13]); - newItem.交通便利_B = DAC.GetInt32(reader[14]); - newItem.設備完善_B = DAC.GetInt32(reader[15]); - newItem.合計_B = DAC.GetInt32(reader[16]); - newItem.場地編號_C = DAC.GetInt32(reader[17]); - newItem.場地名稱_C = DAC.GetString(reader[18]); - newItem.安全舒適_C = DAC.GetInt32(reader[19]); - newItem.空間大小_C = DAC.GetInt32(reader[20]); - newItem.價格合理_C = DAC.GetInt32(reader[21]); - newItem.交通便利_C = DAC.GetInt32(reader[22]); - newItem.設備完善_C = DAC.GetInt32(reader[23]); - newItem.合計_C = DAC.GetInt32(reader[24]); - newItem.總評 = DAC.GetString(reader[25]); - newItem.備註 = DAC.GetString(reader[26]); - newItem.選定場地 = DAC.GetInt32(reader[27]); - newItem.DB_APPNO = DAC.GetInt32(reader[28]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[29]); - newItem.DB_CRUSR = DAC.GetString(reader[30]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[31]); - newItem.DB_TRUSR = DAC.GetString(reader[32]); - Add(newItem); - } - } - } - - /// - /// 場地遴選 資料紀錄類別 - /// - [Serializable] - public partial class 場地遴選 : DataItemBase - { - private int _課程企劃編號; - private int _場地編號_A; - private string _場地名稱_A; - private int _安全舒適_A; - private int _空間大小_A; - private int _價格合理_A; - private int _交通便利_A; - private int _設備完善_A; - private int _合計_A; - private int _場地編號_B; - private string _場地名稱_B; - private int _安全舒適_B; - private int _空間大小_B; - private int _價格合理_B; - private int _交通便利_B; - private int _設備完善_B; - private int _合計_B; - private int _場地編號_C; - private string _場地名稱_C; - private int _安全舒適_C; - private int _空間大小_C; - private int _價格合理_C; - private int _交通便利_C; - private int _設備完善_C; - private int _合計_C; - private string _總評; - private string _備註; - private int _選定場地; - - #region 資料欄位 - /// - /// 課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 課程企劃編號 - { - get - { - return _課程企劃編號; - } - set - { - if (value != _課程企劃編號) - { - _課程企劃編號 = value; - OnPropertyChanged("課程企劃編號"); - } - } - } - - /// - /// 場地編號_A - /// - [DataObjectField(false, false, true)] - public int 場地編號_A - { - get - { - return _場地編號_A; - } - set - { - if (value != _場地編號_A) - { - _場地編號_A = value; - OnPropertyChanged("場地編號_A"); - } - } - } - - /// - /// 場地名稱_A - /// - [DataObjectField(false, false, true, 200)] - public string 場地名稱_A - { - get - { - return _場地名稱_A; - } - set - { - if (value != _場地名稱_A) - { - _場地名稱_A = value; - OnPropertyChanged("場地名稱_A"); - } - } - } - - /// - /// 安全舒適_A - /// - [DataObjectField(false, false, true)] - public int 安全舒適_A - { - get - { - return _安全舒適_A; - } - set - { - if (value != _安全舒適_A) - { - _安全舒適_A = value; - OnPropertyChanged("安全舒適_A"); - } - } - } - - /// - /// 空間大小_A - /// - [DataObjectField(false, false, true)] - public int 空間大小_A - { - get - { - return _空間大小_A; - } - set - { - if (value != _空間大小_A) - { - _空間大小_A = value; - OnPropertyChanged("空間大小_A"); - } - } - } - - /// - /// 價格合理_A - /// - [DataObjectField(false, false, true)] - public int 價格合理_A - { - get - { - return _價格合理_A; - } - set - { - if (value != _價格合理_A) - { - _價格合理_A = value; - OnPropertyChanged("價格合理_A"); - } - } - } - - /// - /// 交通便利_A - /// - [DataObjectField(false, false, true)] - public int 交通便利_A - { - get - { - return _交通便利_A; - } - set - { - if (value != _交通便利_A) - { - _交通便利_A = value; - OnPropertyChanged("交通便利_A"); - } - } - } - - /// - /// 設備完善_A - /// - [DataObjectField(false, false, true)] - public int 設備完善_A - { - get - { - return _設備完善_A; - } - set - { - if (value != _設備完善_A) - { - _設備完善_A = value; - OnPropertyChanged("設備完善_A"); - } - } - } - - /// - /// 合計_A - /// - [DataObjectField(false, false, true)] - public int 合計_A - { - get - { - return _合計_A; - } - set - { - if (value != _合計_A) - { - _合計_A = value; - OnPropertyChanged("合計_A"); - } - } - } - - /// - /// 場地編號_B - /// - [DataObjectField(false, false, true)] - public int 場地編號_B - { - get - { - return _場地編號_B; - } - set - { - if (value != _場地編號_B) - { - _場地編號_B = value; - OnPropertyChanged("場地編號_B"); - } - } - } - - /// - /// 場地名稱_B - /// - [DataObjectField(false, false, true, 200)] - public string 場地名稱_B - { - get - { - return _場地名稱_B; - } - set - { - if (value != _場地名稱_B) - { - _場地名稱_B = value; - OnPropertyChanged("場地名稱_B"); - } - } - } - - /// - /// 安全舒適_B - /// - [DataObjectField(false, false, true)] - public int 安全舒適_B - { - get - { - return _安全舒適_B; - } - set - { - if (value != _安全舒適_B) - { - _安全舒適_B = value; - OnPropertyChanged("安全舒適_B"); - } - } - } - - /// - /// 空間大小_B - /// - [DataObjectField(false, false, true)] - public int 空間大小_B - { - get - { - return _空間大小_B; - } - set - { - if (value != _空間大小_B) - { - _空間大小_B = value; - OnPropertyChanged("空間大小_B"); - } - } - } - - /// - /// 價格合理_B - /// - [DataObjectField(false, false, true)] - public int 價格合理_B - { - get - { - return _價格合理_B; - } - set - { - if (value != _價格合理_B) - { - _價格合理_B = value; - OnPropertyChanged("價格合理_B"); - } - } - } - - /// - /// 交通便利_B - /// - [DataObjectField(false, false, true)] - public int 交通便利_B - { - get - { - return _交通便利_B; - } - set - { - if (value != _交通便利_B) - { - _交通便利_B = value; - OnPropertyChanged("交通便利_B"); - } - } - } - - /// - /// 設備完善_B - /// - [DataObjectField(false, false, true)] - public int 設備完善_B - { - get - { - return _設備完善_B; - } - set - { - if (value != _設備完善_B) - { - _設備完善_B = value; - OnPropertyChanged("設備完善_B"); - } - } - } - - /// - /// 合計_B - /// - [DataObjectField(false, false, true)] - public int 合計_B - { - get - { - return _合計_B; - } - set - { - if (value != _合計_B) - { - _合計_B = value; - OnPropertyChanged("合計_B"); - } - } - } - - /// - /// 場地編號_C - /// - [DataObjectField(false, false, true)] - public int 場地編號_C - { - get - { - return _場地編號_C; - } - set - { - if (value != _場地編號_C) - { - _場地編號_C = value; - OnPropertyChanged("場地編號_C"); - } - } - } - - /// - /// 場地名稱_C - /// - [DataObjectField(false, false, true, 200)] - public string 場地名稱_C - { - get - { - return _場地名稱_C; - } - set - { - if (value != _場地名稱_C) - { - _場地名稱_C = value; - OnPropertyChanged("場地名稱_C"); - } - } - } - - /// - /// 安全舒適_C - /// - [DataObjectField(false, false, true)] - public int 安全舒適_C - { - get - { - return _安全舒適_C; - } - set - { - if (value != _安全舒適_C) - { - _安全舒適_C = value; - OnPropertyChanged("安全舒適_C"); - } - } - } - - /// - /// 空間大小_C - /// - [DataObjectField(false, false, true)] - public int 空間大小_C - { - get - { - return _空間大小_C; - } - set - { - if (value != _空間大小_C) - { - _空間大小_C = value; - OnPropertyChanged("空間大小_C"); - } - } - } - - /// - /// 價格合理_C - /// - [DataObjectField(false, false, true)] - public int 價格合理_C - { - get - { - return _價格合理_C; - } - set - { - if (value != _價格合理_C) - { - _價格合理_C = value; - OnPropertyChanged("價格合理_C"); - } - } - } - - /// - /// 交通便利_C - /// - [DataObjectField(false, false, true)] - public int 交通便利_C - { - get - { - return _交通便利_C; - } - set - { - if (value != _交通便利_C) - { - _交通便利_C = value; - OnPropertyChanged("交通便利_C"); - } - } - } - - /// - /// 設備完善_C - /// - [DataObjectField(false, false, true)] - public int 設備完善_C - { - get - { - return _設備完善_C; - } - set - { - if (value != _設備完善_C) - { - _設備完善_C = value; - OnPropertyChanged("設備完善_C"); - } - } - } - - /// - /// 合計_C - /// - [DataObjectField(false, false, true)] - public int 合計_C - { - get - { - return _合計_C; - } - set - { - if (value != _合計_C) - { - _合計_C = value; - OnPropertyChanged("合計_C"); - } - } - } - - /// - /// 總評 - /// - [DataObjectField(false, false, true, 2000)] - public string 總評 - { - get - { - return _總評; - } - set - { - if (value != _總評) - { - _總評 = value; - OnPropertyChanged("總評"); - } - } - } - - /// - /// 備註 - /// - [DataObjectField(false, false, true, 2000)] - public string 備註 - { - get - { - return _備註; - } - set - { - if (value != _備註) - { - _備註 = value; - OnPropertyChanged("備註"); - } - } - } - - /// - /// 選定場地 - /// - [DataObjectField(false, false, true)] - public int 選定場地 - { - get - { - return _選定場地; - } - set - { - if (value != _選定場地) - { - _選定場地 = value; - OnPropertyChanged("選定場地"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_場地遴選2.cs b/branches/1150807/DAC/課程企劃/DAC_場地遴選2.cs deleted file mode 100644 index 79ece2d..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_場地遴選2.cs +++ /dev/null @@ -1,325 +0,0 @@ -// -// 這個檔案是 場地遴選 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 場地遴選 資料存取類別 - /// - public partial class DAC_場地遴選 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 場地遴選List Select() - { - 場地遴選List result = new 場地遴選List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(場地遴選 value) - { - value.合計_A = value.安全舒適_A + value.空間大小_A + value.價格合理_A + value.交通便利_A + value.設備完善_A; - value.合計_B = value.安全舒適_B + value.空間大小_B + value.價格合理_B + value.交通便利_B + value.設備完善_B; - value.合計_C = value.安全舒適_C + value.空間大小_C + value.價格合理_C + value.交通便利_C + value.設備完善_C; - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(場地遴選 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(場地遴選 value) - { - value.合計_A = value.安全舒適_A + value.空間大小_A + value.價格合理_A + value.交通便利_A + value.設備完善_A; - value.合計_B = value.安全舒適_B + value.空間大小_B + value.價格合理_B + value.交通便利_B + value.設備完善_B; - value.合計_C = value.安全舒適_C + value.空間大小_C + value.價格合理_C + value.交通便利_C + value.設備完善_C; - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(場地遴選 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(場地遴選 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(場地遴選 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 課程企劃編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 課程企劃編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - public void UpdatePlace(int 課程企劃編號, string 場地別, int 場地編號, - int 安全舒適, int 空間大小, int 價格合理, int 交通便利, int 設備完善) - { - if (SelectOne(課程企劃編號).Count == 0) - { - 場地遴選 newValue = new 場地遴選(); - newValue.課程企劃編號 = 課程企劃編號; - newValue.DB_CRDAT = DateTime.UtcNow.AddHours(8); - newValue.DB_CRUSR = CurrentUserId; - InsertOne(newValue); - } - - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = String.Format( - "UPDATE " + _tableName - + " SET 場地編號_{0} = @場地編號, " - + " 安全舒適_{0} = @安全舒適, " - + " 空間大小_{0} = @空間大小, " - + " 價格合理_{0} = @價格合理, " - + " 交通便利_{0} = @交通便利, " - + " 設備完善_{0} = @設備完善, " - + " 合計_{0} = @合計, " - + " DB_APPNO = DB_APPNO + 1 , " - + " DB_TRDAT = GetDate() , " - + " DB_TRUSR = @DB_TRUSR " - + " WHERE 課程企劃編號 = @課程企劃編號", 場地別); - AddParam(cmdUpdate, "場地編號", 場地編號); - AddParam(cmdUpdate, "安全舒適", 安全舒適); - AddParam(cmdUpdate, "空間大小", 空間大小); - AddParam(cmdUpdate, "價格合理", 價格合理); - AddParam(cmdUpdate, "交通便利", 交通便利); - AddParam(cmdUpdate, "設備完善", 設備完善); - AddParam(cmdUpdate, "合計", 安全舒適 + 空間大小 + 價格合理 + 交通便利 + 設備完善); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "課程企劃編號", 課程企劃編號); - ExecuteNonQuery(cmdUpdate); - } - - public void UpdateComment(int 課程企劃編號, string 總評, string 備註) - { - if (SelectOne(課程企劃編號).Count == 0) - { - 場地遴選 newValue = new 場地遴選(); - newValue.課程企劃編號 = 課程企劃編號; - newValue.DB_CRDAT = DateTime.UtcNow.AddHours(8); - newValue.DB_CRUSR = CurrentUserId; - InsertOne(newValue); - } - - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - "UPDATE " + _tableName - + " SET 總評 = @總評 , " - + " 備註 = @備註 , " - + " DB_APPNO = DB_APPNO + 1 , " - + " DB_TRDAT = GetDate() , " - + " DB_TRUSR = @DB_TRUSR " - + " WHERE 課程企劃編號 = @課程企劃編號"; - AddParam(cmdUpdate, "總評", 總評); - AddParam(cmdUpdate, "備註", 備註); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "課程企劃編號", 課程企劃編號); - ExecuteNonQuery(cmdUpdate); - } - - public void ClearPlace(int 課程企劃編號, string 場地別) - { - if (SelectOne(課程企劃編號).Count == 0) - return; - - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = String.Format( - "UPDATE " + _tableName - + " SET 場地編號_{0} = null, " - + " 安全舒適_{0} = null, " - + " 空間大小_{0} = null, " - + " 價格合理_{0} = null, " - + " 交通便利_{0} = null, " - + " 設備完善_{0} = null, " - + " 合計_{0} = null, " - + " DB_APPNO = DB_APPNO + 1 , " - + " DB_TRDAT = GetDate() , " - + " DB_TRUSR = @DB_TRUSR " - + " WHERE 課程企劃編號 = @課程企劃編號", 場地別); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "課程企劃編號", 課程企劃編號); - ExecuteNonQuery(cmdUpdate); - } - - public int DeleteBy課程企劃(int 課程企劃編號) - { - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 場地遴選 - where 1=1 - and 課程企劃編號 = @課程企劃編號"; - AddParam(cmdDelete, "課程企劃編號", 課程企劃編號); - int rowsAffected = ExecuteNonQuery(cmdDelete); - return rowsAffected; - } - - public int Select選定場地(int 課程企劃編號) - { - 場地遴選List d = SelectOne(課程企劃編號); - - if (d.Count == 0) - return 0; - switch (d[0].選定場地) - { - case 1: - return d[0].場地編號_A; - case 2: - return d[0].場地編號_B; - case 3: - return d[0].場地編號_C; - default: - if (d[0].合計_A >= d[0].合計_B && d[0].合計_A >= d[0].合計_C) - return d[0].場地編號_A; - if (d[0].合計_B >= d[0].合計_A && d[0].合計_B >= d[0].合計_C) - return d[0].場地編號_B; - else - return d[0].場地編號_C; - } - } - - public string Select選定場地名稱(int 課程企劃編號) - { - 場地遴選List d = SelectOne(課程企劃編號); - - if (d.Count == 0) - return ""; - - int 編號; - string 名稱; - switch (d[0].選定場地) - { - case 1: - 編號 = d[0].場地編號_A; - 名稱 = d[0].場地名稱_A; - break; - case 2: - 編號 = d[0].場地編號_B; - 名稱 = d[0].場地名稱_B; - break; - case 3: - 編號 = d[0].場地編號_C; - 名稱 = d[0].場地名稱_C; - break; - default: - if (d[0].合計_A >= d[0].合計_B && d[0].合計_A >= d[0].合計_C) - { - 編號 = d[0].場地編號_A; - 名稱 = d[0].場地名稱_A; - } - else if (d[0].合計_B >= d[0].合計_A && d[0].合計_B >= d[0].合計_C) - { - 編號 = d[0].場地編號_B; - 名稱 = d[0].場地名稱_B; - } - else - { - 編號 = d[0].場地編號_C; - 名稱 = d[0].場地名稱_C; - } - break; - } - - if (編號 > 0) - return new DAC_場地(conn).Get場地名稱(編號); - - return 名稱 ?? ""; - } - } - - /// - /// 場地遴選 資料集合類別 - /// - public partial class 場地遴選List : List<場地遴選> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 場地遴選 資料紀錄類別 - /// - public partial class 場地遴選 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_教材評選綜合評估.cs b/branches/1150807/DAC/課程企劃/DAC_教材評選綜合評估.cs deleted file mode 100644 index dbed6e3..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_教材評選綜合評估.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.ComponentModel; -using WebLib; - -namespace Education -{ - [DataObject] - public class DAC_教材評選綜合評估 - { - public DAC_教材評選綜合評估() - { - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList SelectForList() - { - NameValueList result = new NameValueList(); - result.Add("不符合目標", "1"); - result.Add("符合目標", "2"); - result.Add("符合目標且能引起學習興趣", "3"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList SelectForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("不符合目標", "1"); - result.Add("符合目標", "2"); - result.Add("符合目標且能引起學習興趣", "3"); - return result; - } - - public static string Get名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": - return "不符合目標"; - case "2": - return "符合目標"; - case "3": - return "符合目標且能引起學習興趣"; - default: - return ""; - } - } - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_教材遴選1.cs b/branches/1150807/DAC/課程企劃/DAC_教材遴選1.cs deleted file mode 100644 index cf8943b..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_教材遴選1.cs +++ /dev/null @@ -1,1198 +0,0 @@ -// -// 這個檔案是 教材遴選 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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 = "[課程企劃編號], [課程序號], [教材名稱_A], [符合訓練目標_A], [架構規劃完整性_A], [符合課程時數_A], [引起學習興趣_A], [未來工作參考運用_A], [合計_A], [教材評選綜合評估_A], [教材名稱_B], [符合訓練目標_B], [架構規劃完整性_B], [符合課程時數_B], [引起學習興趣_B], [未來工作參考運用_B], [合計_B], [教材評選綜合評估_B], [教材名稱_C], [符合訓練目標_C], [架構規劃完整性_C], [符合課程時數_C], [引起學習興趣_C], [未來工作參考運用_C], [合計_C], [教材評選綜合評估_C], [訓練單位回饋與建議], [總評], [備註], [選定教材], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _orderBy = "[課程企劃編號], [課程序號]"; - private string _select = "select " + _allFields; - private string _insert = "[課程企劃編號], [課程序號], [教材名稱_A], [符合訓練目標_A], [架構規劃完整性_A], [符合課程時數_A], [引起學習興趣_A], [未來工作參考運用_A], [合計_A], [教材評選綜合評估_A], [教材名稱_B], [符合訓練目標_B], [架構規劃完整性_B], [符合課程時數_B], [引起學習興趣_B], [未來工作參考運用_B], [合計_B], [教材評選綜合評估_B], [教材名稱_C], [符合訓練目標_C], [架構規劃完整性_C], [符合課程時數_C], [引起學習興趣_C], [未來工作參考運用_C], [合計_C], [教材評選綜合評估_C], [訓練單位回饋與建議], [總評], [備註], [選定教材], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insertBak = "[課程企劃編號], [課程序號], [教材名稱_A], [符合訓練目標_A], [架構規劃完整性_A], [符合課程時數_A], [引起學習興趣_A], [未來工作參考運用_A], [合計_A], [教材評選綜合評估_A], [教材名稱_B], [符合訓練目標_B], [架構規劃完整性_B], [符合課程時數_B], [引起學習興趣_B], [未來工作參考運用_B], [合計_B], [教材評選綜合評估_B], [教材名稱_C], [符合訓練目標_C], [架構規劃完整性_C], [符合課程時數_C], [引起學習興趣_C], [未來工作參考運用_C], [合計_C], [教材評選綜合評估_C], [訓練單位回饋與建議], [總評], [備註], [選定教材], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR], [DB_TRMOD]"; - private string _insertValue = "@課程企劃編號, @課程序號, @教材名稱_A, @符合訓練目標_A, @架構規劃完整性_A, @符合課程時數_A, @引起學習興趣_A, @未來工作參考運用_A, @合計_A, @教材評選綜合評估_A, @教材名稱_B, @符合訓練目標_B, @架構規劃完整性_B, @符合課程時數_B, @引起學習興趣_B, @未來工作參考運用_B, @合計_B, @教材評選綜合評估_B, @教材名稱_C, @符合訓練目標_C, @架構規劃完整性_C, @符合課程時數_C, @引起學習興趣_C, @未來工作參考運用_C, @合計_C, @教材評選綜合評估_C, @訓練單位回饋與建議, @總評, @備註, @選定教材, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _insertBakValue = "@課程企劃編號, @課程序號, @教材名稱_A, @符合訓練目標_A, @架構規劃完整性_A, @符合課程時數_A, @引起學習興趣_A, @未來工作參考運用_A, @合計_A, @教材評選綜合評估_A, @教材名稱_B, @符合訓練目標_B, @架構規劃完整性_B, @符合課程時數_B, @引起學習興趣_B, @未來工作參考運用_B, @合計_B, @教材評選綜合評估_B, @教材名稱_C, @符合訓練目標_C, @架構規劃完整性_C, @符合課程時數_C, @引起學習興趣_C, @未來工作參考運用_C, @合計_C, @教材評選綜合評估_C, @訓練單位回饋與建議, @總評, @備註, @選定教材, @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 課程企劃編號, int 課程序號) - { - 教材遴選List result = new 教材遴選List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - 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 + ");" ; - AddParam(cmdInsert, "課程企劃編號", value.課程企劃編號); - AddParam(cmdInsert, "課程序號", value.課程序號); - AddParam(cmdInsert, "教材名稱_A", value.教材名稱_A); - AddParam(cmdInsert, "符合訓練目標_A", value.符合訓練目標_A); - AddParam(cmdInsert, "架構規劃完整性_A", value.架構規劃完整性_A); - AddParam(cmdInsert, "符合課程時數_A", value.符合課程時數_A); - AddParam(cmdInsert, "引起學習興趣_A", value.引起學習興趣_A); - AddParam(cmdInsert, "未來工作參考運用_A", value.未來工作參考運用_A); - AddParam(cmdInsert, "合計_A", value.合計_A); - AddParam(cmdInsert, "教材評選綜合評估_A", value.教材評選綜合評估_A); - AddParam(cmdInsert, "教材名稱_B", value.教材名稱_B); - AddParam(cmdInsert, "符合訓練目標_B", value.符合訓練目標_B); - AddParam(cmdInsert, "架構規劃完整性_B", value.架構規劃完整性_B); - AddParam(cmdInsert, "符合課程時數_B", value.符合課程時數_B); - AddParam(cmdInsert, "引起學習興趣_B", value.引起學習興趣_B); - AddParam(cmdInsert, "未來工作參考運用_B", value.未來工作參考運用_B); - AddParam(cmdInsert, "合計_B", value.合計_B); - AddParam(cmdInsert, "教材評選綜合評估_B", value.教材評選綜合評估_B); - AddParam(cmdInsert, "教材名稱_C", value.教材名稱_C); - AddParam(cmdInsert, "符合訓練目標_C", value.符合訓練目標_C); - AddParam(cmdInsert, "架構規劃完整性_C", value.架構規劃完整性_C); - AddParam(cmdInsert, "符合課程時數_C", value.符合課程時數_C); - AddParam(cmdInsert, "引起學習興趣_C", value.引起學習興趣_C); - AddParam(cmdInsert, "未來工作參考運用_C", value.未來工作參考運用_C); - AddParam(cmdInsert, "合計_C", value.合計_C); - AddParam(cmdInsert, "教材評選綜合評估_C", value.教材評選綜合評估_C); - 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); - ExecuteNonQuery(cmdInsert); - 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.課程企劃編號, 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 - [教材名稱_A] = @教材名稱_A , - [符合訓練目標_A] = @符合訓練目標_A , - [架構規劃完整性_A] = @架構規劃完整性_A , - [符合課程時數_A] = @符合課程時數_A , - [引起學習興趣_A] = @引起學習興趣_A , - [未來工作參考運用_A] = @未來工作參考運用_A , - [合計_A] = @合計_A , - [教材評選綜合評估_A] = @教材評選綜合評估_A , - [教材名稱_B] = @教材名稱_B , - [符合訓練目標_B] = @符合訓練目標_B , - [架構規劃完整性_B] = @架構規劃完整性_B , - [符合課程時數_B] = @符合課程時數_B , - [引起學習興趣_B] = @引起學習興趣_B , - [未來工作參考運用_B] = @未來工作參考運用_B , - [合計_B] = @合計_B , - [教材評選綜合評估_B] = @教材評選綜合評估_B , - [教材名稱_C] = @教材名稱_C , - [符合訓練目標_C] = @符合訓練目標_C , - [架構規劃完整性_C] = @架構規劃完整性_C , - [符合課程時數_C] = @符合課程時數_C , - [引起學習興趣_C] = @引起學習興趣_C , - [未來工作參考運用_C] = @未來工作參考運用_C , - [合計_C] = @合計_C , - [教材評選綜合評估_C] = @教材評選綜合評估_C , - [訓練單位回饋與建議] = @訓練單位回饋與建議 , - [總評] = @總評 , - [備註] = @備註 , - [選定教材] = @選定教材 , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and [課程企劃編號] = @original_課程企劃編號 - and [課程序號] = @original_課程序號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "教材名稱_A", value.教材名稱_A); - AddParam(cmdUpdate, "符合訓練目標_A", value.符合訓練目標_A); - AddParam(cmdUpdate, "架構規劃完整性_A", value.架構規劃完整性_A); - AddParam(cmdUpdate, "符合課程時數_A", value.符合課程時數_A); - AddParam(cmdUpdate, "引起學習興趣_A", value.引起學習興趣_A); - AddParam(cmdUpdate, "未來工作參考運用_A", value.未來工作參考運用_A); - AddParam(cmdUpdate, "合計_A", value.合計_A); - AddParam(cmdUpdate, "教材評選綜合評估_A", value.教材評選綜合評估_A); - AddParam(cmdUpdate, "教材名稱_B", value.教材名稱_B); - AddParam(cmdUpdate, "符合訓練目標_B", value.符合訓練目標_B); - AddParam(cmdUpdate, "架構規劃完整性_B", value.架構規劃完整性_B); - AddParam(cmdUpdate, "符合課程時數_B", value.符合課程時數_B); - AddParam(cmdUpdate, "引起學習興趣_B", value.引起學習興趣_B); - AddParam(cmdUpdate, "未來工作參考運用_B", value.未來工作參考運用_B); - AddParam(cmdUpdate, "合計_B", value.合計_B); - AddParam(cmdUpdate, "教材評選綜合評估_B", value.教材評選綜合評估_B); - AddParam(cmdUpdate, "教材名稱_C", value.教材名稱_C); - AddParam(cmdUpdate, "符合訓練目標_C", value.符合訓練目標_C); - AddParam(cmdUpdate, "架構規劃完整性_C", value.架構規劃完整性_C); - AddParam(cmdUpdate, "符合課程時數_C", value.符合課程時數_C); - AddParam(cmdUpdate, "引起學習興趣_C", value.引起學習興趣_C); - AddParam(cmdUpdate, "未來工作參考運用_C", value.未來工作參考運用_C); - AddParam(cmdUpdate, "合計_C", value.合計_C); - AddParam(cmdUpdate, "教材評選綜合評估_C", value.教材評選綜合評估_C); - 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_課程序號", 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.課程企劃編號, 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 - [課程企劃編號] = @課程企劃編號 , - [課程序號] = @課程序號 , - [教材名稱_A] = @教材名稱_A , - [符合訓練目標_A] = @符合訓練目標_A , - [架構規劃完整性_A] = @架構規劃完整性_A , - [符合課程時數_A] = @符合課程時數_A , - [引起學習興趣_A] = @引起學習興趣_A , - [未來工作參考運用_A] = @未來工作參考運用_A , - [合計_A] = @合計_A , - [教材評選綜合評估_A] = @教材評選綜合評估_A , - [教材名稱_B] = @教材名稱_B , - [符合訓練目標_B] = @符合訓練目標_B , - [架構規劃完整性_B] = @架構規劃完整性_B , - [符合課程時數_B] = @符合課程時數_B , - [引起學習興趣_B] = @引起學習興趣_B , - [未來工作參考運用_B] = @未來工作參考運用_B , - [合計_B] = @合計_B , - [教材評選綜合評估_B] = @教材評選綜合評估_B , - [教材名稱_C] = @教材名稱_C , - [符合訓練目標_C] = @符合訓練目標_C , - [架構規劃完整性_C] = @架構規劃完整性_C , - [符合課程時數_C] = @符合課程時數_C , - [引起學習興趣_C] = @引起學習興趣_C , - [未來工作參考運用_C] = @未來工作參考運用_C , - [合計_C] = @合計_C , - [教材評選綜合評估_C] = @教材評選綜合評估_C , - [訓練單位回饋與建議] = @訓練單位回饋與建議 , - [總評] = @總評 , - [備註] = @備註 , - [選定教材] = @選定教材 , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and [課程企劃編號] = @original_課程企劃編號 - and [課程序號] = @original_課程序號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "課程企劃編號", value.課程企劃編號); - AddParam(cmdUpdate, "課程序號", value.課程序號); - AddParam(cmdUpdate, "教材名稱_A", value.教材名稱_A); - AddParam(cmdUpdate, "符合訓練目標_A", value.符合訓練目標_A); - AddParam(cmdUpdate, "架構規劃完整性_A", value.架構規劃完整性_A); - AddParam(cmdUpdate, "符合課程時數_A", value.符合課程時數_A); - AddParam(cmdUpdate, "引起學習興趣_A", value.引起學習興趣_A); - AddParam(cmdUpdate, "未來工作參考運用_A", value.未來工作參考運用_A); - AddParam(cmdUpdate, "合計_A", value.合計_A); - AddParam(cmdUpdate, "教材評選綜合評估_A", value.教材評選綜合評估_A); - AddParam(cmdUpdate, "教材名稱_B", value.教材名稱_B); - AddParam(cmdUpdate, "符合訓練目標_B", value.符合訓練目標_B); - AddParam(cmdUpdate, "架構規劃完整性_B", value.架構規劃完整性_B); - AddParam(cmdUpdate, "符合課程時數_B", value.符合課程時數_B); - AddParam(cmdUpdate, "引起學習興趣_B", value.引起學習興趣_B); - AddParam(cmdUpdate, "未來工作參考運用_B", value.未來工作參考運用_B); - AddParam(cmdUpdate, "合計_B", value.合計_B); - AddParam(cmdUpdate, "教材評選綜合評估_B", value.教材評選綜合評估_B); - AddParam(cmdUpdate, "教材名稱_C", value.教材名稱_C); - AddParam(cmdUpdate, "符合訓練目標_C", value.符合訓練目標_C); - AddParam(cmdUpdate, "架構規劃完整性_C", value.架構規劃完整性_C); - AddParam(cmdUpdate, "符合課程時數_C", value.符合課程時數_C); - AddParam(cmdUpdate, "引起學習興趣_C", value.引起學習興趣_C); - AddParam(cmdUpdate, "未來工作參考運用_C", value.未來工作參考運用_C); - AddParam(cmdUpdate, "合計_C", value.合計_C); - AddParam(cmdUpdate, "教材評選綜合評估_C", value.教材評選綜合評估_C); - 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_課程序號", 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 課程序號, 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 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", 課程企劃編號); - 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.課程企劃編號, 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 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", value.課程企劃編號); - 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 課程企劃編號, int 課程序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - 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, "教材名稱_A", value.教材名稱_A); - AddParam(cmdBak, "符合訓練目標_A", value.符合訓練目標_A); - AddParam(cmdBak, "架構規劃完整性_A", value.架構規劃完整性_A); - AddParam(cmdBak, "符合課程時數_A", value.符合課程時數_A); - AddParam(cmdBak, "引起學習興趣_A", value.引起學習興趣_A); - AddParam(cmdBak, "未來工作參考運用_A", value.未來工作參考運用_A); - AddParam(cmdBak, "合計_A", value.合計_A); - AddParam(cmdBak, "教材評選綜合評估_A", value.教材評選綜合評估_A); - AddParam(cmdBak, "教材名稱_B", value.教材名稱_B); - AddParam(cmdBak, "符合訓練目標_B", value.符合訓練目標_B); - AddParam(cmdBak, "架構規劃完整性_B", value.架構規劃完整性_B); - AddParam(cmdBak, "符合課程時數_B", value.符合課程時數_B); - AddParam(cmdBak, "引起學習興趣_B", value.引起學習興趣_B); - AddParam(cmdBak, "未來工作參考運用_B", value.未來工作參考運用_B); - AddParam(cmdBak, "合計_B", value.合計_B); - AddParam(cmdBak, "教材評選綜合評估_B", value.教材評選綜合評估_B); - AddParam(cmdBak, "教材名稱_C", value.教材名稱_C); - AddParam(cmdBak, "符合訓練目標_C", value.符合訓練目標_C); - AddParam(cmdBak, "架構規劃完整性_C", value.架構規劃完整性_C); - AddParam(cmdBak, "符合課程時數_C", value.符合課程時數_C); - AddParam(cmdBak, "引起學習興趣_C", value.引起學習興趣_C); - AddParam(cmdBak, "未來工作參考運用_C", value.未來工作參考運用_C); - AddParam(cmdBak, "合計_C", value.合計_C); - AddParam(cmdBak, "教材評選綜合評估_C", value.教材評選綜合評估_C); - 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 int _課程序號; - private string _教材名稱_A; - private int? _符合訓練目標_A; - private int? _架構規劃完整性_A; - private int? _符合課程時數_A; - private int? _引起學習興趣_A; - private int? _未來工作參考運用_A; - private int? _合計_A; - private string _教材評選綜合評估_A; - private string _教材名稱_B; - private int? _符合訓練目標_B; - private int? _架構規劃完整性_B; - private int? _符合課程時數_B; - private int? _引起學習興趣_B; - private int? _未來工作參考運用_B; - private int? _合計_B; - private string _教材評選綜合評估_B; - private string _教材名稱_C; - private int? _符合訓練目標_C; - private int? _架構規劃完整性_C; - private int? _符合課程時數_C; - private int? _引起學習興趣_C; - private int? _未來工作參考運用_C; - private int? _合計_C; - private string _教材評選綜合評估_C; - private string _訓練單位回饋與建議; - private string _總評; - private string _備註; - private int? _選定教材; - - #region 資料欄位 - /// - /// 課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 課程企劃編號 - { - get - { - return _課程企劃編號; - } - set - { - if (value != _課程企劃編號) - { - _課程企劃編號 = value; - OnPropertyChanged("課程企劃編號"); - } - } - } - - /// - /// 課程序號 - /// - [DataObjectField(true, false, false)] - public int 課程序號 - { - get - { - return _課程序號; - } - set - { - if (value != _課程序號) - { - _課程序號 = value; - OnPropertyChanged("課程序號"); - } - } - } - - /// - /// 教材一名稱 - /// - [DataObjectField(false, false, true, 100)] - public string 教材名稱_A - { - get - { - return _教材名稱_A; - } - set - { - if (value != _教材名稱_A) - { - _教材名稱_A = value; - OnPropertyChanged("教材名稱_A"); - } - } - } - - /// - /// 教材設計符合訓練目標_A (1-10) - /// - [DataObjectField(false, false, true)] - public int? 符合訓練目標_A - { - get - { - return _符合訓練目標_A; - } - set - { - if (value != _符合訓練目標_A) - { - _符合訓練目標_A = value; - OnPropertyChanged("符合訓練目標_A"); - } - } - } - - /// - /// 教材設計整體架構規劃完整性_A (1-10) - /// - [DataObjectField(false, false, true)] - public int? 架構規劃完整性_A - { - get - { - return _架構規劃完整性_A; - } - set - { - if (value != _架構規劃完整性_A) - { - _架構規劃完整性_A = value; - OnPropertyChanged("架構規劃完整性_A"); - } - } - } - - /// - /// 教材設計符合課程規劃時數_A (1-10) - /// - [DataObjectField(false, false, true)] - public int? 符合課程時數_A - { - get - { - return _符合課程時數_A; - } - set - { - if (value != _符合課程時數_A) - { - _符合課程時數_A = value; - OnPropertyChanged("符合課程時數_A"); - } - } - } - - /// - /// 教學方法能引起學員的學習興趣_A (1-10) - /// - [DataObjectField(false, false, true)] - public int? 引起學習興趣_A - { - get - { - return _引起學習興趣_A; - } - set - { - if (value != _引起學習興趣_A) - { - _引起學習興趣_A = value; - OnPropertyChanged("引起學習興趣_A"); - } - } - } - - /// - /// 教材設計可做為學員未來工作參考/運用_A (1-10) - /// - [DataObjectField(false, false, true)] - public int? 未來工作參考運用_A - { - get - { - return _未來工作參考運用_A; - } - set - { - if (value != _未來工作參考運用_A) - { - _未來工作參考運用_A = value; - OnPropertyChanged("未來工作參考運用_A"); - } - } - } - - /// - /// 合計_A (公式:符合訓練目標+架構規劃完整性+符合課程時數+引起學習興趣+未來工作參考運用) - /// - [DataObjectField(false, false, true)] - public int? 合計_A - { - get - { - return _合計_A; - } - set - { - if (value != _合計_A) - { - _合計_A = value; - OnPropertyChanged("合計_A"); - } - } - } - - /// - /// 1=不符合目標;2=符合目標;3=符合目標且能引起學習興趣 - /// - [DataObjectField(false, false, true, 1)] - public string 教材評選綜合評估_A - { - get - { - return _教材評選綜合評估_A; - } - set - { - if (value != _教材評選綜合評估_A) - { - _教材評選綜合評估_A = value; - OnPropertyChanged("教材評選綜合評估_A"); - } - } - } - - /// - /// 教材二名稱 - /// - [DataObjectField(false, false, true, 100)] - public string 教材名稱_B - { - get - { - return _教材名稱_B; - } - set - { - if (value != _教材名稱_B) - { - _教材名稱_B = value; - OnPropertyChanged("教材名稱_B"); - } - } - } - - /// - /// 教材設計符合訓練目標_B (1-10) - /// - [DataObjectField(false, false, true)] - public int? 符合訓練目標_B - { - get - { - return _符合訓練目標_B; - } - set - { - if (value != _符合訓練目標_B) - { - _符合訓練目標_B = value; - OnPropertyChanged("符合訓練目標_B"); - } - } - } - - /// - /// 教材設計整體架構規劃完整性_B (1-10) - /// - [DataObjectField(false, false, true)] - public int? 架構規劃完整性_B - { - get - { - return _架構規劃完整性_B; - } - set - { - if (value != _架構規劃完整性_B) - { - _架構規劃完整性_B = value; - OnPropertyChanged("架構規劃完整性_B"); - } - } - } - - /// - /// 教材設計符合課程規劃時數_B (1-10) - /// - [DataObjectField(false, false, true)] - public int? 符合課程時數_B - { - get - { - return _符合課程時數_B; - } - set - { - if (value != _符合課程時數_B) - { - _符合課程時數_B = value; - OnPropertyChanged("符合課程時數_B"); - } - } - } - - /// - /// 教學方法能引起學員的學習興趣_B (1-10) - /// - [DataObjectField(false, false, true)] - public int? 引起學習興趣_B - { - get - { - return _引起學習興趣_B; - } - set - { - if (value != _引起學習興趣_B) - { - _引起學習興趣_B = value; - OnPropertyChanged("引起學習興趣_B"); - } - } - } - - /// - /// 教材設計可做為學員未來工作參考/運用_B (1-10) - /// - [DataObjectField(false, false, true)] - public int? 未來工作參考運用_B - { - get - { - return _未來工作參考運用_B; - } - set - { - if (value != _未來工作參考運用_B) - { - _未來工作參考運用_B = value; - OnPropertyChanged("未來工作參考運用_B"); - } - } - } - - /// - /// 合計_B (公式:符合訓練目標+架構規劃完整性+符合課程時數+引起學習興趣+未來工作參考運用) - /// - [DataObjectField(false, false, true)] - public int? 合計_B - { - get - { - return _合計_B; - } - set - { - if (value != _合計_B) - { - _合計_B = value; - OnPropertyChanged("合計_B"); - } - } - } - - /// - /// 1=不符合目標;2=符合目標;3=符合目標且能引起學習興趣 - /// - [DataObjectField(false, false, true, 1)] - public string 教材評選綜合評估_B - { - get - { - return _教材評選綜合評估_B; - } - set - { - if (value != _教材評選綜合評估_B) - { - _教材評選綜合評估_B = value; - OnPropertyChanged("教材評選綜合評估_B"); - } - } - } - - /// - /// 教材三名稱 - /// - [DataObjectField(false, false, true, 100)] - public string 教材名稱_C - { - get - { - return _教材名稱_C; - } - set - { - if (value != _教材名稱_C) - { - _教材名稱_C = value; - OnPropertyChanged("教材名稱_C"); - } - } - } - - /// - /// 教材設計符合訓練目標_C (1-10) - /// - [DataObjectField(false, false, true)] - public int? 符合訓練目標_C - { - get - { - return _符合訓練目標_C; - } - set - { - if (value != _符合訓練目標_C) - { - _符合訓練目標_C = value; - OnPropertyChanged("符合訓練目標_C"); - } - } - } - - /// - /// 教材設計整體架構規劃完整性_C (1-10) - /// - [DataObjectField(false, false, true)] - public int? 架構規劃完整性_C - { - get - { - return _架構規劃完整性_C; - } - set - { - if (value != _架構規劃完整性_C) - { - _架構規劃完整性_C = value; - OnPropertyChanged("架構規劃完整性_C"); - } - } - } - - /// - /// 教材設計符合課程規劃時數_C (1-10) - /// - [DataObjectField(false, false, true)] - public int? 符合課程時數_C - { - get - { - return _符合課程時數_C; - } - set - { - if (value != _符合課程時數_C) - { - _符合課程時數_C = value; - OnPropertyChanged("符合課程時數_C"); - } - } - } - - /// - /// 教學方法能引起學員的學習興趣_C (1-10) - /// - [DataObjectField(false, false, true)] - public int? 引起學習興趣_C - { - get - { - return _引起學習興趣_C; - } - set - { - if (value != _引起學習興趣_C) - { - _引起學習興趣_C = value; - OnPropertyChanged("引起學習興趣_C"); - } - } - } - - /// - /// 教材設計可做為學員未來工作參考/運用_C (1-10) - /// - [DataObjectField(false, false, true)] - public int? 未來工作參考運用_C - { - get - { - return _未來工作參考運用_C; - } - set - { - if (value != _未來工作參考運用_C) - { - _未來工作參考運用_C = value; - OnPropertyChanged("未來工作參考運用_C"); - } - } - } - - /// - /// 合計_C (公式:符合訓練目標+架構規劃完整性+符合課程時數+引起學習興趣+未來工作參考運用) - /// - [DataObjectField(false, false, true)] - public int? 合計_C - { - get - { - return _合計_C; - } - set - { - if (value != _合計_C) - { - _合計_C = value; - OnPropertyChanged("合計_C"); - } - } - } - - /// - /// 1=不符合目標;2=符合目標;3=符合目標且能引起學習興趣 - /// - [DataObjectField(false, false, true, 1)] - public string 教材評選綜合評估_C - { - get - { - return _教材評選綜合評估_C; - } - set - { - if (value != _教材評選綜合評估_C) - { - _教材評選綜合評估_C = value; - OnPropertyChanged("教材評選綜合評估_C"); - } - } - } - - /// - /// 訓練單位回饋與建議 - /// - [DataObjectField(false, false, true, 2000)] - public string 訓練單位回饋與建議 - { - get - { - return _訓練單位回饋與建議; - } - set - { - if (value != _訓練單位回饋與建議) - { - _訓練單位回饋與建議 = value; - OnPropertyChanged("訓練單位回饋與建議"); - } - } - } - - /// - /// 總評 - /// - [DataObjectField(false, false, true, 2000)] - public string 總評 - { - get - { - return _總評; - } - set - { - if (value != _總評) - { - _總評 = value; - OnPropertyChanged("總評"); - } - } - } - - /// - /// 備註 - /// - [DataObjectField(false, false, true, 2000)] - public string 備註 - { - get - { - return _備註; - } - set - { - if (value != _備註) - { - _備註 = value; - OnPropertyChanged("備註"); - } - } - } - - /// - /// 選定教材 - /// - [DataObjectField(false, false, true)] - public int? 選定教材 - { - get - { - return _選定教材; - } - set - { - if (value != _選定教材) - { - _選定教材 = value; - OnPropertyChanged("選定教材"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_教材遴選2.cs b/branches/1150807/DAC/課程企劃/DAC_教材遴選2.cs deleted file mode 100644 index 9df06ba..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_教材遴選2.cs +++ /dev/null @@ -1,161 +0,0 @@ -// -// 這個檔案是 教材遴選 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Linq; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 教材遴選 資料存取類別 - /// - public partial class DAC_教材遴選 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(教材遴選Item value) - { - value.合計_A = DAC.GetInt32(value.符合訓練目標_A) + DAC.GetInt32(value.架構規劃完整性_A) + DAC.GetInt32(value.符合課程時數_A) + DAC.GetInt32(value.引起學習興趣_A) + DAC.GetInt32(value.未來工作參考運用_A); - value.合計_B = DAC.GetInt32(value.符合訓練目標_B) + DAC.GetInt32(value.架構規劃完整性_B) + DAC.GetInt32(value.符合課程時數_B) + DAC.GetInt32(value.引起學習興趣_B) + DAC.GetInt32(value.未來工作參考運用_B); - value.合計_C = DAC.GetInt32(value.符合訓練目標_C) + DAC.GetInt32(value.架構規劃完整性_C) + DAC.GetInt32(value.符合課程時數_C) + DAC.GetInt32(value.引起學習興趣_C) + DAC.GetInt32(value.未來工作參考運用_C); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(教材遴選Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(教材遴選Item value) - { - value.合計_A = DAC.GetInt32(value.符合訓練目標_A) + DAC.GetInt32(value.架構規劃完整性_A) + DAC.GetInt32(value.符合課程時數_A) + DAC.GetInt32(value.引起學習興趣_A) + DAC.GetInt32(value.未來工作參考運用_A); - value.合計_B = DAC.GetInt32(value.符合訓練目標_B) + DAC.GetInt32(value.架構規劃完整性_B) + DAC.GetInt32(value.符合課程時數_B) + DAC.GetInt32(value.引起學習興趣_B) + DAC.GetInt32(value.未來工作參考運用_B); - value.合計_C = DAC.GetInt32(value.符合訓練目標_C) + DAC.GetInt32(value.架構規劃完整性_C) + DAC.GetInt32(value.符合課程時數_C) + DAC.GetInt32(value.引起學習興趣_C) + DAC.GetInt32(value.未來工作參考運用_C); - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(教材遴選Item value, 教材遴選Item original_value) - { - value.合計_A = DAC.GetInt32(value.符合訓練目標_A) + DAC.GetInt32(value.架構規劃完整性_A) + DAC.GetInt32(value.符合課程時數_A) + DAC.GetInt32(value.引起學習興趣_A) + DAC.GetInt32(value.未來工作參考運用_A); - value.合計_B = DAC.GetInt32(value.符合訓練目標_B) + DAC.GetInt32(value.架構規劃完整性_B) + DAC.GetInt32(value.符合課程時數_B) + DAC.GetInt32(value.引起學習興趣_B) + DAC.GetInt32(value.未來工作參考運用_B); - value.合計_C = DAC.GetInt32(value.符合訓練目標_C) + DAC.GetInt32(value.架構規劃完整性_C) + DAC.GetInt32(value.符合課程時數_C) + DAC.GetInt32(value.引起學習興趣_C) + DAC.GetInt32(value.未來工作參考運用_C); - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(教材遴選Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(教材遴選Item value, 教材遴選Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(教材遴選Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(教材遴選Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 課程企劃編號, int 課程序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 課程企劃編號, int 課程序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///教材遴選 資料集合類別 - /// - public partial class 教材遴選List : List<教材遴選Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///教材遴選 資料紀錄類別 - /// - public partial class 教材遴選Item - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_數位課程1.cs b/branches/1150807/DAC/課程企劃/DAC_數位課程1.cs deleted file mode 100644 index c9389b0..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_數位課程1.cs +++ /dev/null @@ -1,522 +0,0 @@ -// -// 這個檔案是 數位課程 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 數位課程 資料存取類別 - /// - [DataObject] - public partial class DAC_數位課程 : WebLib.DAC - { - //private string _tableName = "數位課程"; - private string _select = "select 課程編號, 課程名稱, 課程類別, 講師, 課程簡介, 長度, 課程網址, 開放觀看, 課程文件, 評量文件, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "課程名稱, 課程類別, 講師, 課程簡介, 長度, 課程網址, 開放觀看, 課程文件, 評量文件, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@課程名稱, @課程類別, @講師, @課程簡介, @長度, @課程網址, @開放觀看, @課程文件, @評量文件, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 數位課程 "; - 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() - { - 數位課程List result = new 數位課程List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - 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; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public int InsertOne(數位課程 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return -1; - - 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, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - int newId; - ExecuteScalar(cmdInsert, out newId); - AfterInsertOne(value); - ts.Complete(); - return newId; - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(數位課程 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 數位課程List oldValues = SelectOne(value.課程編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"數位課程\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_課程編號", value.課程編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 課程編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(課程編號, DB_APPNO)) - return -1; - - 數位課程List oldValues = SelectOne(課程編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"數位課程\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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(數位課程 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 數位課程List oldValues = SelectOne(value.課程編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"數位課程\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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 partial class 數位課程List : List<數位課程>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 數位課程 newItem = new 數位課程(); - newItem.課程編號 = DAC.GetInt32(reader[0]); - newItem.課程名稱 = DAC.GetString(reader[1]); - newItem.課程類別 = DAC.GetString(reader[2]); - newItem.講師 = DAC.GetString(reader[3]); - newItem.課程簡介 = DAC.GetString(reader[4]); - newItem.長度 = DAC.GetInt32(reader[5]); - newItem.課程網址 = DAC.GetString(reader[6]); - newItem.開放觀看 = DAC.GetString(reader[7]); - newItem.課程文件 = DAC.GetString(reader[8]); - newItem.評量文件 = DAC.GetString(reader[9]); - newItem.DB_APPNO = DAC.GetInt32(reader[10]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[11]); - newItem.DB_CRUSR = DAC.GetString(reader[12]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[13]); - newItem.DB_TRUSR = DAC.GetString(reader[14]); - Add(newItem); - } - } - } - - /// - /// 數位課程 資料紀錄類別 - /// - [Serializable] - public partial class 數位課程 : DataItemBase - { - private int _課程編號; - private string _課程名稱; - private string _課程類別; - private string _講師; - private string _課程簡介; - private int _長度; - private string _課程網址; - private string _開放觀看; - private string _課程文件; - private string _評量文件; - - #region 資料欄位 - /// - /// 課程編號 - /// - [DataObjectField(true, false, false)] - public int 課程編號 - { - 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, 10)] - 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, 1000)] - 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, 100)] - public string 課程網址 - { - get - { - return _課程網址; - } - set - { - if (value != _課程網址) - { - _課程網址 = value; - OnPropertyChanged("課程網址"); - } - } - } - - /// - /// 開放觀看 - /// - [DataObjectField(false, false, true, 1)] - 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("評量文件"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_數位課程2.cs b/branches/1150807/DAC/課程企劃/DAC_數位課程2.cs deleted file mode 100644 index f4427f4..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_數位課程2.cs +++ /dev/null @@ -1,212 +0,0 @@ -// -// 這個檔案是 數位課程 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 數位課程 資料存取類別 - /// - public partial class DAC_數位課程 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 數位課程List Select(bool noInputReturnAll, string 課程名稱, string 課程類別, string 講師, string 課程簡介) - { - 數位課程List result = new 數位課程List(); - bool noInput = true; - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - if (課程名稱 != null && 課程名稱.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 課程名稱 like @課程名稱 "; - AddParam(cmdSelect, "課程名稱", 課程名稱 + "%"); - } - - if (課程類別 != null && 課程類別.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 課程類別 like @課程類別 "; - AddParam(cmdSelect, "課程類別", 課程類別 + "%"); - } - - if (講師 != null && 講師.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 講師 like @講師 "; - AddParam(cmdSelect, "講師", 講師 + "%"); - } - - if (課程簡介 != null && 課程簡介.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 課程簡介 like @課程簡介 "; - AddParam(cmdSelect, "課程簡介", 課程簡介 + "%"); - } - - cmdSelect.CommandText += _order; - - if (!noInputReturnAll && noInput) - return result; - - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(數位課程 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(數位課程 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(數位課程 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(數位課程 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(數位課程 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(數位課程 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 課程編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 課程編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - [DataObjectMethod(DataObjectMethodType.Select)] - public 數位課程List Select可看課程(string 學員編號) - { - 數位課程List result = new 數位課程List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + @" and 開放觀看 = 'Y' - or exists (select 1 from 數位課程觀看紀錄 where 數位課程.課程編號 = 數位課程觀看紀錄.課程編號 and 數位課程觀看紀錄.學員編號 = @學員編號) - order by 課程編號"; - AddParam(cmdSelect, "學員編號", 學員編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 數位課程List Select非開放課程() - { - 數位課程List result = new 數位課程List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + @" and 開放觀看 <> 'Y' - order by 課程編號"; - Select(cmdSelect, ref list); - return result; - } - } - - /// - /// 數位課程 資料集合類別 - /// - public partial class 數位課程List : List<數位課程> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 數位課程 資料紀錄類別 - /// - public partial class 數位課程 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_數位課程計畫別1.cs b/branches/1150807/DAC/課程企劃/DAC_數位課程計畫別1.cs deleted file mode 100644 index c47277d..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_數位課程計畫別1.cs +++ /dev/null @@ -1,327 +0,0 @@ -// -// 這個檔案是 數位課程計畫別 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 數位課程計畫別 資料存取類別 - /// - [DataObject] - public partial class DAC_數位課程計畫別 : WebLib.DAC - { - //private string _tableName = "數位課程計畫別"; - private string _select = "select 編號, 計畫編號, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "編號, 計畫編號, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@編號, @計畫編號, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 數位課程計畫別 "; - 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() - { - 數位課程計畫別List result = new 數位課程計畫別List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 數位課程計畫別List SelectOne(int 編號, string 計畫編號) - { - 數位課程計畫別List result = new 數位課程計畫別List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 編號 = @編號 " - + " and 計畫編號 = @計畫編號 " - ; - AddParam(cmdSelect, "編號", 編號); - AddParam(cmdSelect, "計畫編號", 計畫編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(數位課程計畫別 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 數位課程計畫別" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "編號", value.編號); - AddParam(cmdInsert, "計畫編號", value.計畫編號); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(數位課程計畫別 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 數位課程計畫別List oldValues = SelectOne(value.編號, value.計畫編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"數位課程計畫別\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 計畫編號 = @original_計畫編號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_編號", value.編號); - AddParam(cmdUpdate, "original_計畫編號", value.計畫編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 編號, string 計畫編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(編號, 計畫編號, DB_APPNO)) - return -1; - - 數位課程計畫別List oldValues = SelectOne(編號, 計畫編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"數位課程計畫別\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 數位課程計畫別 - where 1=1 - and 編號 = @編號 - and 計畫編號 = @計畫編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "編號", 編號); - 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(數位課程計畫別 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 數位課程計畫別List oldValues = SelectOne(value.編號, value.計畫編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"數位課程計畫別\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 數位課程計畫別 - where 1=1 - and 編號 = @編號 - and 計畫編號 = @計畫編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "編號", value.編號); - 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 編號, string 計畫編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 編號 = @編號 " - + " and 計畫編號 = @計畫編號 " - ; - AddParam(cmdSelect, "編號", 編號); - AddParam(cmdSelect, "計畫編號", 計畫編號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 數位課程計畫別 資料集合類別 - /// - public partial class 數位課程計畫別List : List<數位課程計畫別>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 數位課程計畫別 newItem = new 數位課程計畫別(); - newItem.編號 = DAC.GetInt32(reader[0]); - newItem.計畫編號 = DAC.GetString(reader[1]); - newItem.DB_APPNO = DAC.GetInt32(reader[2]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[3]); - newItem.DB_CRUSR = DAC.GetString(reader[4]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[5]); - newItem.DB_TRUSR = DAC.GetString(reader[6]); - Add(newItem); - } - } - } - - /// - /// 數位課程計畫別 資料紀錄類別 - /// - [Serializable] - public partial class 數位課程計畫別 : DataItemBase - { - private int _編號; - private string _計畫編號; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 計畫編號 - /// - [DataObjectField(true, false, false, 20)] - public string 計畫編號 - { - get - { - return _計畫編號; - } - set - { - if (value != _計畫編號) - { - _計畫編號 = value; - OnPropertyChanged("計畫編號"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_數位課程計畫別2.cs b/branches/1150807/DAC/課程企劃/DAC_數位課程計畫別2.cs deleted file mode 100644 index 33c4f31..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_數位課程計畫別2.cs +++ /dev/null @@ -1,174 +0,0 @@ -// -// 這個檔案是 數位課程計畫別 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 數位課程計畫別 資料存取類別 - /// - public partial class DAC_數位課程計畫別 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select(int 編號) - { - 數位課程計畫別List result = new 數位課程計畫別List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"SELECT A.計畫編號 AS BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(B.BPPYN,LEN(B.BPPYN)-5,1)) + '】', '') + B.BPPYM BPPYM - FROM 數位課程計畫別 A - LEFT JOIN BPAA B ON A.計畫編號=B.BPPYN - WHERE A.編號=@編號"; - - if (編號 > 0) - { - cmdSelect.CommandText += " and 編號 = @編號 "; - AddParam(cmdSelect, "編號", 編號); - } - - cmdSelect.CommandText += _order; - DataTable data = Select(cmdSelect); - - foreach (DataRow r in data.Rows) - { - if (DAC.GetString(r["BPPYN"]) == "000000001") - { - r.BeginEdit(); - r["BPPYM"] = "【非專案人員】"; - r.EndEdit(); - break; - } - } - - return data; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(數位課程計畫別 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(數位課程計畫別 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(數位課程計畫別 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(數位課程計畫別 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(數位課程計畫別 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(數位課程計畫別 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, string 計畫編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, string 計畫編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 數位課程計畫別 資料集合類別 - /// - public partial class 數位課程計畫別List : List<數位課程計畫別> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 數位課程計畫別 資料紀錄類別 - /// - public partial class 數位課程計畫別 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程企劃1.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程企劃1.cs deleted file mode 100644 index 7105190..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程企劃1.cs +++ /dev/null @@ -1,1132 +0,0 @@ -// -// 這個檔案是 訓練課程企劃 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程企劃 資料存取類別 - /// - [DataObject] - public partial class DAC_訓練課程企劃 : WebLib.DAC - { - private string _tableName = "[訓練課程企劃]"; - private string _select = "select [編號], [顯示編號], [訓練名稱], [訓練日期], [訓練日期迄], [訓練時數], [訓練地點編號], [預估經費], [訓練目標], [教學方法], [滿意度調查及分析], [課堂測驗], [課堂分享], [演練], [效益追蹤], [心得報告], [學習應用], [客戶滿意度], [民眾滿意度], [績效表揚], [傑出事蹟], [預期效益], [承辦], [人數], [開放報名日期], [報名截止期限], [取消報名截止期限], [已簽核], [已取消], [已結案], [公司別], [計畫別], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insert = "[顯示編號], [訓練名稱], [訓練日期], [訓練日期迄], [訓練時數], [訓練地點編號], [預估經費], [訓練目標], [教學方法], [滿意度調查及分析], [課堂測驗], [課堂分享], [演練], [效益追蹤], [心得報告], [學習應用], [客戶滿意度], [民眾滿意度], [績效表揚], [傑出事蹟], [預期效益], [承辦], [人數], [開放報名日期], [報名截止期限], [取消報名截止期限], [已簽核], [已取消], [已結案], [公司別], [計畫別], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insertValue = "@顯示編號, @訓練名稱, @訓練日期, @訓練日期迄, @訓練時數, @訓練地點編號, @預估經費, @訓練目標, @教學方法, @滿意度調查及分析, @課堂測驗, @課堂分享, @演練, @效益追蹤, @心得報告, @學習應用, @客戶滿意度, @民眾滿意度, @績效表揚, @傑出事蹟, @預期效益, @承辦, @人數, @開放報名日期, @報名截止期限, @取消報名截止期限, @已簽核, @已取消, @已結案, @公司別, @計畫別, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from [訓練課程企劃] "; - private string _where = " where 1=1 "; - private string _order = " order by [編號] desc "; - - public DAC_訓練課程企劃() - : base() - { - } - - public DAC_訓練課程企劃(DbConnection conn) - : base(conn) - { - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程企劃List SelectAll() - { - 訓練課程企劃List result = new 訓練課程企劃List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - 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; - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程企劃List Select(bool noInputReturnAll, - string 顯示編號, string 公司別, string 訓練名稱, string 訓練目標, string 教學方法, string 承辦) - { - 訓練課程企劃List result = new 訓練課程企劃List(); - bool noInput = true; - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - 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 訓練名稱 like @訓練名稱 "; - AddParam(cmdSelect, "訓練名稱", 訓練名稱 + "%"); - } - - if (訓練目標 != null && 訓練目標.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 訓練目標 like @訓練目標 "; - AddParam(cmdSelect, "訓練目標", 訓練目標 + "%"); - } - - if (教學方法 != null && 教學方法.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 教學方法 like @教學方法 "; - AddParam(cmdSelect, "教學方法", 教學方法 + "%"); - } - - if (承辦 != null && 承辦.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 承辦 like @承辦 "; - AddParam(cmdSelect, "承辦", 承辦 + "%"); - } - - cmdSelect.CommandText += _order; - - if (!noInputReturnAll && noInput) - return result; - - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public int InsertOne(訓練課程企劃 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return -1; - - 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, "民眾滿意度", 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - int newId; - ExecuteScalar(cmdInsert, out newId); - AfterInsertOne(value); - ts.Complete(); - return newId; - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(訓練課程企劃 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 訓練課程企劃List oldValues = SelectOne(value.編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"訓練課程企劃\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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, "績效表揚", 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.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_編號", value.編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(編號, DB_APPNO)) - return -1; - - 訓練課程企劃List oldValues = SelectOne(編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程企劃\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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(訓練課程企劃 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 訓練課程企劃List oldValues = SelectOne(value.編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程企劃\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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 partial class 訓練課程企劃List : List<訓練課程企劃>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 訓練課程企劃 newItem = new 訓練課程企劃(); - newItem.編號 = DAC.GetInt32(reader[0]); - newItem.顯示編號 = DAC.GetString(reader[1]); - newItem.訓練名稱 = DAC.GetString(reader[2]); - newItem.訓練日期 = DAC.GetDateTime(reader[3]); - newItem.訓練日期迄 = DAC.GetDateTime(reader[4]); - newItem.訓練時數 = DAC.GetInt32(reader[5]); - newItem.訓練地點編號 = DAC.GetInt32(reader[6]); - newItem.預估經費 = DAC.GetInt32(reader[7]); - newItem.訓練目標 = DAC.GetString(reader[8]); - newItem.教學方法 = DAC.GetString(reader[9]); - newItem.滿意度調查及分析 = DAC.GetString(reader[10]); - newItem.課堂測驗 = DAC.GetString(reader[11]); - newItem.課堂分享 = DAC.GetString(reader[12]); - newItem.演練 = DAC.GetString(reader[13]); - newItem.效益追蹤 = DAC.GetString(reader[14]); - newItem.心得報告 = DAC.GetString(reader[15]); - newItem.學習應用 = DAC.GetString(reader[16]); - newItem.客戶滿意度 = DAC.GetString(reader[17]); - newItem.民眾滿意度 = DAC.GetString(reader[18]); - newItem.績效表揚 = DAC.GetString(reader[19]); - newItem.傑出事蹟 = DAC.GetString(reader[20]); - newItem.預期效益 = DAC.GetString(reader[21]); - newItem.承辦 = DAC.GetString(reader[22]); - newItem.人數 = DAC.GetInt32(reader[23]); - newItem.開放報名日期 = DAC.GetDateTime(reader[24]); - newItem.報名截止期限 = DAC.GetInt32(reader[25]); - newItem.取消報名截止期限 = DAC.GetInt32(reader[26]); - newItem.已簽核 = DAC.GetString(reader[27]); - newItem.已取消 = DAC.GetString(reader[28]); - newItem.已結案 = DAC.GetString(reader[29]); - newItem.公司別 = DAC.GetString(reader[30]); - newItem.計畫別 = DAC.GetString(reader[31]); - newItem.DB_APPNO = DAC.GetInt32(reader[32]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[33]); - newItem.DB_CRUSR = DAC.GetString(reader[34]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[35]); - newItem.DB_TRUSR = DAC.GetString(reader[36]); - Add(newItem); - } - } - } - - /// - /// 訓練課程企劃 資料紀錄類別 - /// - [Serializable] - public partial class 訓練課程企劃 : DataItemBase - { - private int _編號; - private string _顯示編號; - private string _公司別; - private string _計畫別; - private string _訓練名稱; - private DateTime _訓練日期; - private DateTime _訓練日期迄; - private int _訓練時數; - private int _訓練地點編號; - private int _預估經費; - 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 string _傑出事蹟; - private string _預期效益; - private string _承辦; - private int _人數; - private DateTime _開放報名日期; - private int _報名截止期限; - private int _取消報名截止期限; - private string _已簽核; - private string _已取消; - private string _已結案; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 顯示編號 - /// - [DataObjectField(false, false, false, 20)] - public string 顯示編號 - { - get - { - return _顯示編號; - } - set - { - if (value != _顯示編號) - { - _顯示編號 = value; - OnPropertyChanged("顯示編號"); - } - } - } - - /// - /// 公司別 - /// - [DataObjectField(false, false, true, 2)] - 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)] - public DateTime 訓練日期 - { - get - { - return _訓練日期; - } - set - { - if (value != _訓練日期) - { - _訓練日期 = value; - OnPropertyChanged("訓練日期"); - } - } - } - - /// - /// 訓練日期迄 - /// - [DataObjectField(false, false, true)] - public DateTime 訓練日期迄 - { - 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)] - public int 預估經費 - { - get - { - return _預估經費; - } - set - { - if (value != _預估經費) - { - _預估經費 = value; - OnPropertyChanged("預估經費"); - } - } - } - - /// - /// 訓練目標 - /// - [DataObjectField(false, false, true, 500)] - public string 訓練目標 - { - get - { - return _訓練目標; - } - set - { - if (value != _訓練目標) - { - _訓練目標 = value; - OnPropertyChanged("訓練目標"); - } - } - } - - /// - /// 教學方法 - /// - [DataObjectField(false, false, true, 500)] - public string 教學方法 - { - get - { - return _教學方法; - } - set - { - if (value != _教學方法) - { - _教學方法 = value; - OnPropertyChanged("教學方法"); - } - } - } - - /// - /// 滿意度調查及分析 - /// - [DataObjectField(false, false, true, 1)] - public string 滿意度調查及分析 - { - get - { - return _滿意度調查及分析; - } - set - { - if (value != _滿意度調查及分析) - { - _滿意度調查及分析 = value; - OnPropertyChanged("滿意度調查及分析"); - } - } - } - - /// - /// 課堂測驗 - /// - [DataObjectField(false, false, true, 1)] - public string 課堂測驗 - { - get - { - return _課堂測驗; - } - set - { - if (value != _課堂測驗) - { - _課堂測驗 = value; - OnPropertyChanged("課堂測驗"); - } - } - } - - /// - /// 課堂分享 - /// - [DataObjectField(false, false, true, 1)] - public string 課堂分享 - { - get - { - return _課堂分享; - } - set - { - if (value != _課堂分享) - { - _課堂分享 = value; - OnPropertyChanged("課堂分享"); - } - } - } - - /// - /// 演練 - /// - [DataObjectField(false, false, true, 1)] - public string 演練 - { - get - { - return _演練; - } - set - { - if (value != _演練) - { - _演練 = value; - OnPropertyChanged("演練"); - } - } - } - - /// - /// 效益追蹤 - /// - [DataObjectField(false, false, true, 1)] - public string 效益追蹤 - { - get - { - return _效益追蹤; - } - set - { - if (value != _效益追蹤) - { - _效益追蹤 = value; - OnPropertyChanged("效益追蹤"); - } - } - } - - /// - /// 心得報告 - /// - [DataObjectField(false, false, true, 1)] - public string 心得報告 - { - get - { - return _心得報告; - } - set - { - if (value != _心得報告) - { - _心得報告 = value; - OnPropertyChanged("心得報告"); - } - } - } - - /// - /// 學習應用 - /// - [DataObjectField(false, false, true, 1)] - public string 學習應用 - { - get - { - return _學習應用; - } - set - { - if (value != _學習應用) - { - _學習應用 = value; - OnPropertyChanged("學習應用"); - } - } - } - - /// - /// 客戶滿意度 - /// - [DataObjectField(false, false, true, 1)] - public string 客戶滿意度 - { - get - { - return _客戶滿意度; - } - set - { - if (value != _客戶滿意度) - { - _客戶滿意度 = value; - OnPropertyChanged("客戶滿意度"); - } - } - } - - /// - /// 民眾滿意度 - /// - [DataObjectField(false, false, true, 1)] - public string 民眾滿意度 - { - get - { - return _民眾滿意度; - } - set - { - if (value != _民眾滿意度) - { - _民眾滿意度 = value; - OnPropertyChanged("民眾滿意度"); - } - } - } - - /// - /// 績效表揚 - /// - [DataObjectField(false, false, true, 1)] - public string 績效表揚 - { - get - { - return _績效表揚; - } - set - { - if (value != _績效表揚) - { - _績效表揚 = value; - OnPropertyChanged("績效表揚"); - } - } - } - - /// - /// 傑出事蹟 - /// - [DataObjectField(false, false, true, 1)] - public string 傑出事蹟 - { - get - { - return _傑出事蹟; - } - set - { - if (value != _傑出事蹟) - { - _傑出事蹟 = value; - OnPropertyChanged("傑出事蹟"); - } - } - } - - /// - /// 預期效益 - /// - [DataObjectField(false, false, true, 500)] - 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)] - public int 人數 - { - get - { - return _人數; - } - set - { - if (value != _人數) - { - _人數 = value; - OnPropertyChanged("人數"); - } - } - } - - /// - /// 開放報名日期 - /// - [DataObjectField(false, false, true)] - public DateTime 開放報名日期 - { - 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("已簽核"); - } - } - } - - /// - /// 已取消 - /// - [DataObjectField(false, false, true, 1)] - public string 已取消 - { - get - { - return _已取消; - } - set - { - if (value != _已取消) - { - _已取消 = value; - OnPropertyChanged("已取消"); - } - } - } - - /// - /// 已結案 - /// - [DataObjectField(false, false, true, 1)] - public string 已結案 - { - get - { - return _已結案; - } - set - { - if (value != _已結案) - { - _已結案 = value; - OnPropertyChanged("已結案"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程企劃2.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程企劃2.cs deleted file mode 100644 index 0a10091..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程企劃2.cs +++ /dev/null @@ -1,691 +0,0 @@ -// -// 這個檔案是 訓練課程企劃 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程企劃 資料存取類別 - /// - public partial class DAC_訓練課程企劃 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程企劃List Select(int 訓練年度, string 顯示編號, string 公司別, string 計畫別, string 訓練名稱, string 訓練目標, string 教學方法, string 承辦) - { - 訓練課程企劃List result = new 訓練課程企劃List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - if (訓練年度 > 0) - { - cmdSelect.CommandText += " and 訓練日期 >= @訓練日期1 and 訓練日期 < @訓練日期2 "; - AddParam(cmdSelect, "訓練日期1", new DateTime(訓練年度, 1, 1)); - AddParam(cmdSelect, "訓練日期2", new DateTime(訓練年度 + 1, 1, 1)); - } - - if (顯示編號 != null && 顯示編號.Length > 0) - { - cmdSelect.CommandText += " and 顯示編號 like @顯示編號 "; - AddParam(cmdSelect, "顯示編號", "%" + 顯示編號 + "%"); - } - - if (公司別 != null && 公司別.Length > 0) - { - cmdSelect.CommandText += " and 公司別 = @公司別 "; - AddParam(cmdSelect, "公司別", 公司別); - } - - if (計畫別 != null && 計畫別.Length > 0) - { - cmdSelect.CommandText += " and 計畫別 like @計畫別 "; - AddParam(cmdSelect, "計畫別", "%" + 計畫別 + "%"); - } - - if (訓練名稱 != null && 訓練名稱.Length > 0) - { - cmdSelect.CommandText += " and 訓練名稱 like @訓練名稱 "; - AddParam(cmdSelect, "訓練名稱", "%" + 訓練名稱 + "%"); - } - - if (訓練目標 != null && 訓練目標.Length > 0) - { - cmdSelect.CommandText += " and 訓練目標 like @訓練目標 "; - AddParam(cmdSelect, "訓練目標", "%" + 訓練目標 + "%"); - } - - if (教學方法 != null && 教學方法.Length > 0) - { - cmdSelect.CommandText += " and 教學方法 like @教學方法 "; - AddParam(cmdSelect, "教學方法", "%" + 教學方法 + "%"); - } - - if (承辦 != null && 承辦.Length > 0) - { - cmdSelect.CommandText += " and 承辦 like @承辦 "; - AddParam(cmdSelect, "承辦", "%" + 承辦 + "%"); - } - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練課程企劃 value) - { - value.顯示編號 = Next單號(DateTime.UtcNow.AddHours(8).Date, _tableName, "顯示編號", String.Format("\"{0}\"<999999>", value.公司別), ""); - value.已取消 = "N"; - value.已簽核 = "N"; - value.已結案 = "N"; - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練課程企劃 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練課程企劃 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練課程企劃 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練課程企劃 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練課程企劃 value) - { - DAC_訓練課程內容 dao1 = new DAC_訓練課程內容(conn); - DAC_訓練課程計畫別 dao2 = new DAC_訓練課程計畫別(conn); - DAC_場地遴選 dao3 = new DAC_場地遴選(conn); - DAC_講師遴選 dao4 = new DAC_講師遴選(conn); - - dao1.DeleteBy課程企劃(value.編號); - dao2.DeleteBy課程企劃(value.編號); - dao3.DeleteBy課程企劃(value.編號); - dao4.DeleteBy課程企劃(value.編號); - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - - /// - /// 取出日期範圍之內可報名的課程 - /// - /// - /// - /// - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程企劃List SelectBy訓練日期(DateTime 訓練日期1, DateTime 訓練日期2) - { - 訓練課程企劃List result = new 訓練課程企劃List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練日期 >= @訓練日期1 and 訓練日期 <= @訓練日期2 and 訓練日期 >= @今天 " - + @" and exists ( select 1 from 表單簽核主檔 - where 表單類別ID = N'課程企劃' and 表單ID = 訓練課程企劃.編號 - and 應簽關數 = 已簽關數 - and 應簽關數 <> 'D' - and 最終結果 = 'Y' ) " - + " order by 訓練日期 desc"; - AddParam(cmdSelect, "訓練日期1", 訓練日期1); - AddParam(cmdSelect, "訓練日期2", 訓練日期2); - AddParam(cmdSelect, "今天", DateTime.UtcNow.AddHours(8).Date); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程企劃List Select可報名課程(string 學員編號) - { - 訓練課程企劃List result = new 訓練課程企劃List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + @" and 訓練日期 >= @今天 - and exists ( select 1 from dbo.課程報名 - where 訓練課程編號 = 訓練課程企劃.編號 - and 學員編號 = @學員編號 - and 報名狀態 in ('R', 'S', 'Y') ) - and exists ( select 1 from 表單簽核主檔 - where 表單類別ID = N'課程企劃' and 表單ID = 訓練課程企劃.編號 - and 應簽關數 = 已簽關數 - and 應簽關數 <> 'D' - and 最終結果 = 'Y' ) - order by 訓練日期 desc"; - AddParam(cmdSelect, "今天", DateTime.UtcNow.AddHours(8).Date); - AddParam(cmdSelect, "學員編號", 學員編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - private NameValueList DoSelectForDropDown(string 公司別, int 年, bool? 已報名截止, bool? 已上課, bool? 已結案, bool? 已簽核完畢) - { - NameValueList result = new NameValueList(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select null as 編號, '(請選擇)' as 訓練名稱 " - + " union all " - + "select 編號, '[' + 顯示編號 + '] [' + CONVERT(NVARCHAR(10), 訓練日期, 120) + '] ' + 訓練名稱 " - + _from + _where + " and (已取消 <> 'Y' or 已取消 is null) "; - - if (公司別 != null && 公司別.Length > 0) - { - cmdSelect.CommandText += " and 公司別 = @公司別 "; - } - - if (年 > 0) - { - cmdSelect.CommandText += " and 訓練日期 >= @訓練日期1 and 訓練日期 < @訓練日期2 "; - AddParam(cmdSelect, "訓練日期1", new DateTime(年, 1, 1)); - AddParam(cmdSelect, "訓練日期2", new DateTime(年 + 1, 1, 1)); - } - - if (已報名截止.HasValue) - { - if (已報名截止.Value) - cmdSelect.CommandText += " and dateadd(day, -報名截止期限, 訓練日期) <= @現在時間 "; - else - cmdSelect.CommandText += " and dateadd(day, -報名截止期限, 訓練日期) > @現在時間 "; - } - - if (已上課.HasValue) - { - if (已上課.Value) - cmdSelect.CommandText += " and 訓練日期 <= @現在時間 "; - else - cmdSelect.CommandText += " and ( (訓練日期迄 is null and 訓練日期 > @現在時間) or " - + " (訓練日期迄 is not null and 訓練日期迄 > @現在時間) ) "; - } - - if (已結案.HasValue) - { - if (已結案.Value) - cmdSelect.CommandText += " and 已結案 = 'Y' "; - else - cmdSelect.CommandText += " and (已結案 <> 'Y' or 已結案 is null) "; - } - - if (已簽核完畢.HasValue) - { - if (已簽核完畢.Value) - cmdSelect.CommandText += @" and exists ( select 1 from 表單簽核主檔 - where 表單類別ID = N'課程企劃' and 表單ID = 訓練課程企劃.編號 - and 應簽關數 = 已簽關數 - and 應簽關數 <> 'D' - and 最終結果 = 'Y' )"; - else - cmdSelect.CommandText += @" and not exists ( select 1 from 表單簽核主檔 - where 表單類別ID = N'課程企劃' and 表單ID = 訓練課程企劃.編號 - and 應簽關數 = 已簽關數 - and 應簽關數 <> 'D' - and 最終結果 = 'Y' )"; - } - - cmdSelect.CommandText += " order by 編號"; - - AddParam(cmdSelect, "公司別", 公司別); - AddParam(cmdSelect, "現在時間", DateTime.UtcNow.AddHours(8)); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已截止未上課(string 公司別) - { - return DoSelectForDropDown(公司別, 0, true, false, null, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已截止未上課(string 公司別, int 年) - { - return DoSelectForDropDown(公司別, 年, true, false, null, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select未上課(string 公司別) - { - return DoSelectForDropDown(公司別, 0, null, false, null, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select未上課(string 公司別, int 年) - { - return DoSelectForDropDown(公司別, 年, true, false, null, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已上課未結案(string 公司別) - { - return DoSelectForDropDown(公司別, 0, null, true, false, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已上課未結案(string 公司別, int 年) - { - return DoSelectForDropDown(公司別, 年, null, true, false, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已上課(string 公司別) - { - return DoSelectForDropDown(公司別, 0, null, true, null, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已上課(string 公司別, int 年) - { - return DoSelectForDropDown(公司別, 年, null, true, null, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已結案(string 公司別) - { - return DoSelectForDropDown(公司別, 0, null, null, true, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已結案(string 公司別, int 年) - { - return DoSelectForDropDown(公司別, 年, null, null, true, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已簽核未結案(string 公司別) - { - return DoSelectForDropDown(公司別, 0, null, null, false, true); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select已簽核未結案(string 公司別, int 年) - { - return DoSelectForDropDown(公司別, 年, null, null, false, true); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select全部(string 公司別) - { - return DoSelectForDropDown(公司別, 0, null, null, null, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select全部(string 公司別, int 年) - { - return DoSelectForDropDown(公司別, 年, null, null, null, null); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程企劃List Select年度企劃(string 公司別, int Year) - { - 訓練課程企劃List result = new 訓練課程企劃List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - _select + _from + _where - + " and 公司別 = @公司別 " - + " and 訓練日期 >= @年初 and 訓練日期 < @明年初 " - + " and 已取消 <> 'Y' " - + " order by 編號"; - AddParam(cmdSelect, "年初", new DateTime(Year, 1, 1)); - AddParam(cmdSelect, "明年初", new DateTime(Year + 1, 1, 1)); - AddParam(cmdSelect, "公司別", 公司別); - Select(cmdSelect, ref list); - return result; - } - - public int Select選定場地(int 課程企劃編號) - { - 訓練課程企劃List d1 = SelectOne(課程企劃編號); - if (d1.Count == 0) - return 0; - - 場地異動List d2 = new DAC_場地異動(conn).Select最後異動(課程企劃編號); - if (d2.Count == 0) - return new DAC_場地遴選(conn).Select選定場地(課程企劃編號); - else - return d2[0].場地編號; - } - - public string Select選定場地名稱(int 課程企劃編號) - { - 訓練課程企劃List d1 = SelectOne(課程企劃編號); - if (d1.Count == 0) - return ""; - - 場地異動List d2 = new DAC_場地異動(conn).Select最後異動(課程企劃編號); - if (d2.Count > 0) - { - if (d2[0].場地編號 > 0) - return new DAC_場地(conn).Get場地名稱(d2[0].場地編號); - return d2[0].場地名稱 ?? ""; - } - - return new DAC_場地遴選(conn).Select選定場地名稱(課程企劃編號); - } - - public int Select選定講師(int 課程企劃編號, int 課程序號) - { - 訓練課程內容List d1 = new DAC_訓練課程內容().SelectOne(課程企劃編號, 課程序號); - if (d1.Count == 0) - return 0; - - 講師異動List d2 = new DAC_講師異動(conn).Select最後異動(課程企劃編號, 課程序號); - if (d2.Count == 0) - return new DAC_講師遴選(conn).Select選定講師(課程企劃編號, 課程序號); - else - return d2[0].講師編號; - } - - public string Select選定講師名稱(int 課程企劃編號, int 課程序號) - { - 訓練課程內容List d1 = new DAC_訓練課程內容().SelectOne(課程企劃編號, 課程序號); - if (d1.Count == 0) - return ""; - - 講師異動List d2 = new DAC_講師異動(conn).Select最後異動(課程企劃編號, 課程序號); - if (d2.Count > 0) - { - if (d2[0].講師編號 > 0) - return new DAC_講師(conn).Get姓名(d2[0].講師編號); - return d2[0].講師姓名 ?? ""; - } - - return new DAC_講師遴選(conn).Select選定講師名稱(課程企劃編號, 課程序號); - } - - public DataTable Select年度課程執行狀況報表(string 公司別, int 年度, bool 包括未開課) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @" - SELECT A.編號, A.訓練名稱, '' AS 訓練計畫別, A.訓練日期, A.訓練日期迄, A.訓練時數, '' AS 訓練場地, - 0 AS 訓練人數, A.預估經費, 0 AS 實際經費, 0.0 AS 學員出席率, 0.0 AS 整體滿意度 - FROM 訓練課程企劃 A - WHERE A.訓練日期 >= @訓練日期1 - AND A.訓練日期 < @訓練日期2 - AND A.公司別 = @公司別 "; - - if (!包括未開課) - cmd.CommandText += " AND (A.已取消 IS NULL OR A.已取消 = 'N')"; - - cmd.CommandText += " ORDER BY A.訓練日期"; - - AddParam(cmd, "訓練日期1", new DateTime(年度, 1, 1)); - AddParam(cmd, "訓練日期2", new DateTime(年度 + 1, 1, 1)); - AddParam(cmd, "公司別", 公司別); - - DataTable result = Select(cmd); - - DAC_課程報名 Dao課程報名 = new DAC_課程報名(conn); - DAC_課程經費 Dao課程經費 = new DAC_課程經費(conn); - DAC_滿意度調查課程企劃 Dao滿意度調查課程企劃 = new DAC_滿意度調查課程企劃(conn); - - // 填入統計欄位 - foreach (DataRow r in result.Rows) - { - int 編號 = DAC.GetInt32(r["編號"]); - string 訓練計畫別 = ""; - - // 取得訓練計畫別 - DataTable 計畫Table = Dao課程報名.Select確定報名學員計畫(編號); - foreach (DataRow r1 in 計畫Table.Rows) - { - 訓練計畫別 += DAC.GetString(r1["計畫年度名稱"]) + "\r\n"; - } - if (訓練計畫別.Length > 0) - 訓練計畫別 = 訓練計畫別.Trim(); - - // 取得場地及滿意度 - DataTable 滿意度Table = Dao滿意度調查課程企劃.Select滿意度統計(編號); - r["訓練場地"] = Select選定場地名稱(編號); - r["訓練人數"] = Dao課程報名.Get出席人數(編號); - r["實際經費"] = Dao課程經費.Get經費合計(編號); - r["學員出席率"] = Dao課程報名.Get出席率(編號); - r["整體滿意度"] = 滿意度Table.Rows.Count > 0 ? DAC.GetDecimal(滿意度Table.Rows[0]["整體滿意度"]) : 0; - r.EndEdit(); - } - result.AcceptChanges(); - - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select可選課程日期(int 編號) - { - NameValueList result = new NameValueList(); - 訓練課程企劃List d = SelectOne(編號); - if (d.Count > 0) - { - if (d[0].訓練日期迄.Ticks == 0) - { - result.Add(d[0].訓練日期.ToString("yyyy-MM-dd"), d[0].訓練日期.ToString("yyyy-MM-dd")); - } - else - { - DateTime day = d[0].訓練日期; - while (day.CompareTo(d[0].訓練日期迄) <= 0) - { - result.Add(day.ToString("yyyy-MM-dd"), day.ToString("yyyy-MM-dd")); - day = day.AddDays(1); - } - } - } - return result; - } - - - public bool Get場地講師已簽准(int 編號) - { - DAC_場地遴選 Dao場地遴選 = new DAC_場地遴選(conn); - DAC_表單簽核主檔 Dao表單簽核主檔 = new DAC_表單簽核主檔(conn); - 場地遴選List 場地List = Dao場地遴選.SelectOne(編號); - - bool 場地已簽准 = 場地List.Count > 0; - - if (場地List.Count > 0) - { - 表單簽核主檔 場地簽核status = Dao表單簽核主檔.GetLastStatus("場地遴選", String.Format("{0}", 編號)); - 場地已簽准 &= 場地簽核status != null && - 場地簽核status.應簽關數.CompareTo("D") != 0 && - 場地簽核status.應簽關數.CompareTo(場地簽核status.已簽關數) == 0 && - 場地簽核status.最終結果 == "Y"; - } - - DAC_訓練課程內容 Dao訓練課程內容 = new DAC_訓練課程內容(conn); - 訓練課程內容List 課程內容List = Dao訓練課程內容.SelectBy課程企劃(編號); - - bool 講師已簽准 = 課程內容List.Count > 0; - - foreach (訓練課程內容 item in 課程內容List) - { - 表單簽核主檔 講師簽核status = Dao表單簽核主檔.GetLastStatus("講師遴選", String.Format("{0}|{1}", 編號, item.課程序號)); - 講師已簽准 &= 講師簽核status != null && - 講師簽核status.應簽關數.CompareTo("D") != 0 && - 講師簽核status.應簽關數.CompareTo(講師簽核status.已簽關數) == 0 && - 講師簽核status.最終結果 == "Y"; - } - - return 場地已簽准 && 講師已簽准; - } - - public bool Get場地講師已輸入(int 編號) - { - DAC_場地遴選 Dao場地遴選 = new DAC_場地遴選(conn); - 場地遴選List 場地List = Dao場地遴選.SelectOne(編號); - - bool 場地已輸入 = true; - - foreach (場地遴選 item in 場地List) - { - 場地已輸入 &= (item.場地編號_A > 0 || !String.IsNullOrEmpty(item.場地名稱_A)) && - item.交通便利_A > 0 && - item.安全舒適_A > 0 && - item.空間大小_A > 0 && - item.設備完善_A > 0 && - item.價格合理_A > 0; - } - - DAC_訓練課程內容 Dao訓練課程內容 = new DAC_訓練課程內容(conn); - DAC_講師遴選 Dao講師遴選 = new DAC_講師遴選(conn); - 訓練課程內容List 課程內容List = Dao訓練課程內容.SelectBy課程企劃(編號); - - bool 講師已輸入 = true; - - foreach (訓練課程內容 item in 課程內容List) - { - 講師遴選List 講師List = Dao講師遴選.SelectOne(編號, item.課程序號); - foreach (講師遴選 item2 in 講師List) - { - 講師已輸入 &= (item2.講師編號_A > 0 || !String.IsNullOrEmpty(item2.講師姓名_A)) && - item2.專業背景_A > 0 && - item2.講授經驗_A > 0 && - item2.口碑與評價_A > 0 && - item2.費用_A > 0 && - item2.配合度_A > 0 && - (item2.講師編號_B > 0 || !String.IsNullOrEmpty(item2.講師姓名_B)) && - item2.專業背景_B > 0 && - item2.講授經驗_B > 0 && - item2.口碑與評價_B > 0 && - item2.費用_B > 0 && - item2.配合度_B > 0; - } - } - - DAC_教材遴選 Dao教材遴選 = new DAC_教材遴選(conn); - - bool 教材已輸入 = true; - - foreach (訓練課程內容 item in 課程內容List) - { - 教材遴選List 教材List = Dao教材遴選.SelectOne(編號, item.課程序號); - foreach (教材遴選Item item2 in 教材List) - { - 教材已輸入 &= !String.IsNullOrEmpty(item2.教材名稱_A) && - item2.符合訓練目標_A > 0 && - item2.架構規劃完整性_A > 0 && - item2.符合課程時數_A > 0 && - item2.引起學習興趣_A > 0 && - item2.未來工作參考運用_A > 0 && - !String.IsNullOrEmpty(item2.教材名稱_B) && - item2.符合訓練目標_B > 0 && - item2.架構規劃完整性_B > 0 && - item2.符合課程時數_B > 0 && - item2.引起學習興趣_B > 0 && - item2.未來工作參考運用_B > 0; - } - } - - return 場地已輸入 && 講師已輸入 && 教材已輸入; - } - } - - /// - /// 訓練課程企劃 資料集合類別 - /// - public partial class 訓練課程企劃List : List<訓練課程企劃> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 訓練課程企劃 資料紀錄類別 - /// - public partial class 訓練課程企劃 - { - // 有另外加上去的屬性及方法,請加在這裡 - - public static string Get訓練日期Str(DateTime 訓練日期, DateTime 訓練日期迄, string Format = "yyyy年MM月dd日(dddd)") - { - if (訓練日期迄.Ticks == 0) - return (訓練日期.Ticks > 0 ? 訓練日期.ToString(Format) : ""); - else if (訓練日期迄.Ticks >= 0 && 訓練日期.CompareTo(訓練日期迄) == 0) - return (訓練日期.Ticks > 0 ? 訓練日期.ToString(Format) : ""); - else - return (訓練日期.Ticks > 0 ? 訓練日期.ToString(Format) : "") - + (訓練日期迄.Ticks > 0 ? " 至 " + 訓練日期迄.ToString(Format) : ""); - } - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程內容1.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程內容1.cs deleted file mode 100644 index 2b19444..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程內容1.cs +++ /dev/null @@ -1,628 +0,0 @@ -// -// 這個檔案是 訓練課程內容 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程內容 資料存取類別 - /// - [DataObject] - public partial class DAC_訓練課程內容 : WebLib.DAC - { - private string _tableName = "[訓練課程內容]"; - private string _select = "select [訓練課程企劃編號], [課程序號], [訓練日期], [時間起], [時間迄], [課程類別], [課程編號], [課程名稱], [課程大綱], [時數], [講師編號], [節次], [通知發送狀態], [講師滿意度], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insert = "[訓練課程企劃編號], [課程序號], [訓練日期], [時間起], [時間迄], [課程類別], [課程編號], [課程名稱], [課程大綱], [時數], [講師編號], [節次], [通知發送狀態], [講師滿意度], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insertValue = "@訓練課程企劃編號, @課程序號, @訓練日期, @時間起, @時間迄, @課程類別, @課程編號, @課程名稱, @課程大綱, @時數, @講師編號, @節次, @通知發送狀態, @講師滿意度, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from [訓練課程內容] "; - 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() - { - 訓練課程內容List result = new 訓練課程內容List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程內容List SelectOne(int 訓練課程企劃編號, int 課程序號) - { - 訓練課程內容List result = new 訓練課程內容List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(訓練課程內容 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 訓練課程內容" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(訓練課程內容 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 訓練課程內容List oldValues = SelectOne(value.訓練課程企劃編號, value.課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"訓練課程內容\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 課程序號 = @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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdUpdate, "original_課程序號", value.課程序號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 訓練課程企劃編號, int 課程序號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(訓練課程企劃編號, 課程序號, DB_APPNO)) - return -1; - - 訓練課程內容List oldValues = SelectOne(訓練課程企劃編號, 課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程內容\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程內容 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", 訓練課程企劃編號); - 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(訓練課程內容 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 訓練課程內容List oldValues = SelectOne(value.訓練課程企劃編號, value.課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程內容\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程內容 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", value.訓練課程企劃編號); - 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 訓練課程企劃編號, int 課程序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 訓練課程內容 資料集合類別 - /// - public partial class 訓練課程內容List : List<訓練課程內容>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 訓練課程內容 newItem = new 訓練課程內容(); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.課程序號 = DAC.GetInt32(reader[1]); - newItem.訓練日期 = DAC.GetDateTime(reader[2]); - newItem.時間起 = DAC.GetString(reader[3]); - newItem.時間迄 = DAC.GetString(reader[4]); - newItem.課程類別 = DAC.GetString(reader[5]); - newItem.課程編號 = DAC.GetString(reader[6]); - newItem.課程名稱 = DAC.GetString(reader[7]); - newItem.課程大綱 = DAC.GetString(reader[8]); - newItem.時數 = DAC.GetInt32(reader[9]); - newItem.講師編號 = DAC.GetInt32(reader[10]); - newItem.節次 = DAC.GetInt32(reader[11]); - newItem.通知發送狀態 = DAC.GetString(reader[12]); - newItem.講師滿意度 = DAC.GetInt32(reader[13]); - newItem.DB_APPNO = DAC.GetInt32(reader[14]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[15]); - newItem.DB_CRUSR = DAC.GetString(reader[16]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[17]); - newItem.DB_TRUSR = DAC.GetString(reader[18]); - Add(newItem); - } - } - } - - /// - /// 訓練課程內容 資料紀錄類別 - /// - [Serializable] - public partial class 訓練課程內容 : DataItemBase - { - private int _訓練課程企劃編號; - private int _課程序號; - private DateTime _訓練日期; - private string _時間起; - private string _時間迄; - private string _課程類別; - private string _課程編號; - private string _課程名稱; - private string _課程大綱; - private int _時數; - private int _講師編號; - private int _節次; - private string _通知發送狀態; - private int _講師滿意度; - - #region 資料欄位 - /// - /// 訓練課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - /// - /// 課程序號 - /// - [DataObjectField(true, false, false)] - public int 課程序號 - { - get - { - return _課程序號; - } - set - { - if (value != _課程序號) - { - _課程序號 = value; - OnPropertyChanged("課程序號"); - } - } - } - - /// - /// 訓練日期 - /// - [DataObjectField(false, false, true)] - public DateTime 訓練日期 - { - 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, 5)] - public string 時間迄 - { - get - { - return _時間迄; - } - set - { - if (value != _時間迄) - { - _時間迄 = value; - OnPropertyChanged("時間迄"); - } - } - } - - /// - /// 課程類別 - /// - [DataObjectField(false, false, false, 50)] - 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, 2000)] - 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)] - public int 節次 - { - get - { - return _節次; - } - set - { - if (value != _節次) - { - _節次 = value; - OnPropertyChanged("節次"); - } - } - } - - /// - /// 通知發送狀態 - /// Y=已發送 - /// - [DataObjectField(false, false, true, 1)] - public string 通知發送狀態 - { - get - { - return _通知發送狀態; - } - set - { - if (value != _通知發送狀態) - { - _通知發送狀態 = value; - OnPropertyChanged("通知發送狀態"); - } - } - } - - /// - /// 講師滿意度 - /// - [DataObjectField(false, false, true)] - public int 講師滿意度 - { - get - { - return _講師滿意度; - } - set - { - if (value != _講師滿意度) - { - _講師滿意度 = value; - OnPropertyChanged("講師滿意度"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程內容2.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程內容2.cs deleted file mode 100644 index 103c8b4..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程內容2.cs +++ /dev/null @@ -1,402 +0,0 @@ -// -// 這個檔案是 訓練課程內容 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程內容 資料存取類別 - /// - public partial class DAC_訓練課程內容 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程內容List Select() - { - 訓練課程內容List result = new 訓練課程內容List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練課程內容 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練課程內容 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練課程內容 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練課程內容 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練課程內容 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練課程內容 value) - { - // 刪除訓練課程,同時要刪除講師遴選資料 - DAC_講師遴選 Dao講師遴選 = new DAC_講師遴選(conn); - 講師遴選List d = Dao講師遴選.SelectOne(value.訓練課程企劃編號, value.課程序號); - if (d.Count > 0) - Dao講師遴選.DeleteOne(value.訓練課程企劃編號, value.課程序號, d[0].DB_APPNO); - - // 刪除訓練課程,同時要刪除教材遴選資料 - DAC_教材遴選 Dao教材遴選 = new DAC_教材遴選(conn); - 教材遴選List d2 = Dao教材遴選.SelectOne(value.訓練課程企劃編號, value.課程序號); - if (d2.Count > 0) - Dao教材遴選.DeleteOne(value.訓練課程企劃編號, value.課程序號, d2[0].DB_APPNO); - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 訓練課程企劃編號, int 課程序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 訓練課程企劃編號, int 課程序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程內容List SelectBy課程企劃(int 訓練課程企劃編號) - { - 訓練課程內容List result = new 訓練課程內容List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " order by 節次 "; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select上課講師(int 訓練課程企劃編號) - { - DataTable result = new DataTable(); - result.Columns.Add("課程序號", typeof(int)); - result.Columns.Add("講師編號", typeof(int)); - result.Columns.Add("講師姓名", typeof(string)); - result.Columns.Add("電子郵件", typeof(string)); - result.Columns.Add("通知發送狀態", typeof(string)); - result.Columns.Add("訓練日期", typeof(DateTime)); - result.Columns.Add("時間起", typeof(string)); - result.Columns.Add("時間迄", typeof(string)); - - 訓練課程內容List d = new 訓練課程內容List(); - IDataList list = d as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " order by 節次 "; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - Select(cmdSelect, ref list); - - DAC_講師 Dao講師 = new DAC_講師(conn); - DAC_講師遴選 Dao講師遴選 = new DAC_講師遴選(conn); - - // 把每一節課的講師查出來 - foreach (訓練課程內容 item in d) - { - 講師 d1 = new DAC_GetData(conn).取得選定講師(item.訓練課程企劃編號, item.課程序號); - - if (result.Select(String.Format("講師編號={0}", d1.編號)).Length == 0) - { - DataRow newRow = result.NewRow(); - newRow["課程序號"] = d[0].課程序號; - newRow["講師編號"] = d1.編號; - newRow["講師姓名"] = d1.姓名; - newRow["電子郵件"] = d1.電子郵件; - newRow["通知發送狀態"] = d[0].通知發送狀態; - newRow["訓練日期"] = item.訓練日期; - newRow["時間起"] = item.時間起; - newRow["時間迄"] = item.時間迄; - result.Rows.Add(newRow); - } - } - - return result; - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteBy課程企劃(int 訓練課程企劃編號) - { - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程內容 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號"; - AddParam(cmdDelete, "訓練課程企劃編號", 訓練課程企劃編號); - int rowsAffected = ExecuteNonQuery(cmdDelete); - return rowsAffected; - } - - public int Next課程序號(int 訓練課程企劃編號) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT ISNULL(MAX(課程序號), 0) + 1 FROM " + _tableName + " WHERE 訓練課程企劃編號=@訓練課程企劃編號"; - AddParam(cmd, "訓練課程企劃編號", 訓練課程企劃編號); - int result; - ExecuteScalar(cmd, out result); - return result; - } - - public int Next節次(int 訓練課程企劃編號) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT ISNULL(MAX(節次), 0) + 1 FROM " + _tableName + " WHERE 訓練課程企劃編號=@訓練課程企劃編號"; - AddParam(cmd, "訓練課程企劃編號", 訓練課程企劃編號); - int result; - ExecuteScalar(cmd, out result); - return result; - } - - public void 節次Up(int 訓練課程企劃編號, int 節次) - { - // 取出這一筆的資料,與節次是上一筆的資料 - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT 節次 FROM " + _tableName + " WHERE 訓練課程企劃編號=@訓練課程企劃編號 AND 節次=@節次"; - AddParam(cmd, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmd, "節次", 節次); - int 節次1; - ExecuteScalar(cmd, out 節次1); - cmd.CommandText = @"SELECT TOP 1 節次 FROM " + _tableName + " WHERE 訓練課程企劃編號=@訓練課程企劃編號 AND 節次 < @節次 ORDER BY 節次 DESC"; - AddParam(cmd, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmd, "節次", 節次); - int 節次2; - ExecuteScalar(cmd, out 節次2); - - if (節次2 == 0) - return; - else - { - 交換節次(訓練課程企劃編號, 節次1, 節次2); - } - } - - public void 節次Down(int 訓練課程企劃編號, int 節次) - { - // 取出這一筆的資料,與節次是上一筆的資料 - DbCommand cmd = NewCommand(); - cmd.CommandText = @"SELECT 節次 FROM " + _tableName + " WHERE 訓練課程企劃編號=@訓練課程企劃編號 AND 節次=@節次"; - AddParam(cmd, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmd, "節次", 節次); - int 節次1; - ExecuteScalar(cmd, out 節次1); - cmd.CommandText = @"SELECT TOP 1 節次 FROM " + _tableName + " WHERE 訓練課程企劃編號=@訓練課程企劃編號 AND 節次 > @節次 ORDER BY 節次"; - AddParam(cmd, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmd, "節次", 節次); - int 節次2; - ExecuteScalar(cmd, out 節次2); - - if (節次2 == 0) - return; - else - { - 交換節次(訓練課程企劃編號, 節次1, 節次2); - } - } - - private void 交換節次(int 訓練課程企劃編號, int 節次1, int 節次2) - { - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = @"UPDATE " + _tableName + " SET 節次=@新節次 WHERE 訓練課程企劃編號=@訓練課程企劃編號 AND 節次=@節次"; - AddParam(cmdUpdate, "新節次", 9999); - AddParam(cmdUpdate, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdUpdate, "節次", 節次1); - ExecuteNonQuery(cmdUpdate); - - AddParam(cmdUpdate, "新節次", 節次1); - AddParam(cmdUpdate, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdUpdate, "節次", 節次2); - ExecuteNonQuery(cmdUpdate); - - AddParam(cmdUpdate, "新節次", 節次2); - AddParam(cmdUpdate, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdUpdate, "節次", 9999); - ExecuteNonQuery(cmdUpdate); - } - - public void 重排節次(int 訓練課程企劃編號) - { - // 1. 所有節次 +10000 - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = @"UPDATE " + _tableName + " SET 節次=節次+10000 WHERE 訓練課程企劃編號=@訓練課程企劃編號 "; - AddParam(cmdUpdate, "訓練課程企劃編號", 訓練課程企劃編號); - ExecuteNonQuery(cmdUpdate); - - // 2. 取出節次 - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = @"SELECT 節次 FROM " + _tableName + " WHERE 訓練課程企劃編號=@訓練課程企劃編號 ORDER BY 節次"; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - DataTable dt = Select(cmdSelect); - - // 3. 一一更新為新節次 - int 節次 = 1; - cmdUpdate.CommandText = @"UPDATE " + _tableName + " SET 節次=@新節次 WHERE 訓練課程企劃編號=@訓練課程企劃編號 AND 節次=@節次"; - foreach (DataRow r in dt.Rows) - { - AddParam(cmdUpdate, "新節次", 節次); - AddParam(cmdUpdate, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdUpdate, "節次", r[0]); - ExecuteNonQuery(cmdUpdate); - 節次++; - } - } - - public void 標記已發送講師通知(int 訓練課程編號, int 課程序號, string UserId) - { - 訓練課程內容List values = SelectOne(訓練課程編號, 課程序號); - if (values.Count > 0) - { - values[0].通知發送狀態 = "Y"; - values[0].DB_TRUSR = UserId; - UpdateOne(values[0]); - } - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public List Select訓練日期List(int 訓練課程編號) - { - List result = new List(); - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = @"select distinct [訓練日期] " + _from - + @" where [訓練課程企劃編號]=@訓練課程企劃編號 " - + @" order by [訓練日期] "; - AddParam(cmdSelect, "@訓練課程企劃編號", 訓練課程編號); - - bool wantClose = false; - IDataReader reader = ExecuteReader(cmdSelect, out wantClose); - try - { - while (reader.Read()) - { - if (!reader.IsDBNull(0)) - result.Add(reader.GetDateTime(0)); - } - } - finally - { - cmdSelect.Cancel(); - reader.Close(); - CloseConnection(wantClose); - } - - return result; - } - } - - /// - /// 訓練課程內容 資料集合類別 - /// - public partial class 訓練課程內容List : List<訓練課程內容> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 訓練課程內容 資料紀錄類別 - /// - public partial class 訓練課程內容 - { - // 有另外加上去的屬性及方法,請加在這裡 - - public static string Get起訖時間Str(object 時間起, object 時間迄) - { - string s時間起 = DAC.GetString(時間起); - string s時間迄 = DAC.GetString(時間迄); - - if (s時間起.Length > 0 && s時間迄.Length > 0) - return s時間起 + " 至 " + s時間迄; - else if (s時間起.Length > 0) - return s時間起; - else if (s時間迄.Length > 0) - return s時間迄; - else - return ""; - } - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知1.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知1.cs deleted file mode 100644 index 18bae54..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知1.cs +++ /dev/null @@ -1,377 +0,0 @@ -// -// 這個檔案是 訓練課程異動通知 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程異動通知 資料存取類別 - /// - [DataObject] - public partial class DAC_訓練課程異動通知 : WebLib.DAC - { - private string _tableName = "訓練課程異動通知"; - private string _select = "select 編號, 異動通知項次, 異動通知日期, 異動通知內容, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "編號, 異動通知項次, 異動通知日期, 異動通知內容, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@編號, @異動通知項次, @異動通知日期, @異動通知內容, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 訓練課程異動通知 "; - 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() - { - 訓練課程異動通知List result = new 訓練課程異動通知List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程異動通知List SelectOne(int 編號, int 異動通知項次) - { - 訓練課程異動通知List result = new 訓練課程異動通知List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 編號 = @編號 " - + " and 異動通知項次 = @異動通知項次 " - ; - AddParam(cmdSelect, "編號", 編號); - AddParam(cmdSelect, "異動通知項次", 異動通知項次); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(訓練課程異動通知 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 訓練課程異動通知" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "編號", value.編號); - AddParam(cmdInsert, "異動通知項次", value.異動通知項次); - AddParam(cmdInsert, "異動通知日期", value.異動通知日期); - AddParam(cmdInsert, "異動通知內容", value.異動通知內容); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(訓練課程異動通知 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 訓練課程異動通知List oldValues = SelectOne(value.編號, value.異動通知項次); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"訓練課程異動通知\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 異動通知項次 = @original_異動通知項次 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "異動通知日期", value.異動通知日期); - AddParam(cmdUpdate, "異動通知內容", value.異動通知內容); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_編號", value.編號); - AddParam(cmdUpdate, "original_異動通知項次", value.異動通知項次); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 編號, int 異動通知項次, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(編號, 異動通知項次, DB_APPNO)) - return -1; - - 訓練課程異動通知List oldValues = SelectOne(編號, 異動通知項次); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程異動通知\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程異動通知 - where 1=1 - and 編號 = @編號 - and 異動通知項次 = @異動通知項次 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "編號", 編號); - 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(訓練課程異動通知 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 訓練課程異動通知List oldValues = SelectOne(value.編號, value.異動通知項次); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程異動通知\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程異動通知 - where 1=1 - and 編號 = @編號 - and 異動通知項次 = @異動通知項次 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "編號", value.編號); - 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 編號, int 異動通知項次) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 編號 = @編號 " - + " and 異動通知項次 = @異動通知項次 " - ; - AddParam(cmdSelect, "編號", 編號); - AddParam(cmdSelect, "異動通知項次", 異動通知項次); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 訓練課程異動通知 資料集合類別 - /// - public partial class 訓練課程異動通知List : List<訓練課程異動通知>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 訓練課程異動通知 newItem = new 訓練課程異動通知(); - newItem.編號 = DAC.GetInt32(reader[0]); - newItem.異動通知項次 = DAC.GetInt32(reader[1]); - newItem.異動通知日期 = DAC.GetDateTime(reader[2]); - newItem.異動通知內容 = DAC.GetString(reader[3]); - newItem.DB_APPNO = DAC.GetInt32(reader[4]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[5]); - newItem.DB_CRUSR = DAC.GetString(reader[6]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[7]); - newItem.DB_TRUSR = DAC.GetString(reader[8]); - Add(newItem); - } - } - } - - /// - /// 訓練課程異動通知 資料紀錄類別 - /// - [Serializable] - public partial class 訓練課程異動通知 : DataItemBase - { - private int _編號; - private int _異動通知項次; - private DateTime _異動通知日期; - private string _異動通知內容; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 異動項次 - /// - [DataObjectField(true, false, false)] - public int 異動通知項次 - { - get - { - return _異動通知項次; - } - set - { - if (value != _異動通知項次) - { - _異動通知項次 = value; - OnPropertyChanged("異動通知項次"); - } - } - } - - /// - /// 異動日期 - /// - [DataObjectField(false, false, true)] - public DateTime 異動通知日期 - { - get - { - return _異動通知日期; - } - set - { - if (value != _異動通知日期) - { - _異動通知日期 = value; - OnPropertyChanged("異動通知日期"); - } - } - } - - /// - /// 異動說明 - /// - [DataObjectField(false, false, true, 2000)] - public string 異動通知內容 - { - get - { - return _異動通知內容; - } - set - { - if (value != _異動通知內容) - { - _異動通知內容 = value; - OnPropertyChanged("異動通知內容"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知2.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知2.cs deleted file mode 100644 index 1326c9a..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知2.cs +++ /dev/null @@ -1,163 +0,0 @@ -// -// 這個檔案是 訓練課程異動通知 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程異動通知 資料存取類別 - /// - public partial class DAC_訓練課程異動通知 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練課程異動通知 value) - { - value.異動通知項次 = Next項次(value.編號); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練課程異動通知 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練課程異動通知 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練課程異動通知 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練課程異動通知 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練課程異動通知 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int 異動通知項次, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int 異動通知項次, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - - private int Next項次(int 編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select isnull(max(異動通知項次), 0) + 1 from " + _tableName - + " where 編號 = @編號"; - AddParam(cmdSelect, "編號", 編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程異動通知List Select訓練課程企劃(int 編號) - { - 訓練課程異動通知List result = new 訓練課程異動通知List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 編號 = @編號 " - + " order by 異動通知項次"; - AddParam(cmdSelect, "編號", 編號); - Select(cmdSelect, ref list); - return result; - } - } - - /// - /// 訓練課程異動通知 資料集合類別 - /// - public partial class 訓練課程異動通知List : List<訓練課程異動通知> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 訓練課程異動通知 資料紀錄類別 - /// - public partial class 訓練課程異動通知 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知發送紀錄1.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知發送紀錄1.cs deleted file mode 100644 index 6d3c2e0..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知發送紀錄1.cs +++ /dev/null @@ -1,360 +0,0 @@ -// -// 這個檔案是 訓練課程異動通知發送紀錄 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程異動通知發送紀錄 資料存取類別 - /// - [DataObject] - public partial class DAC_訓練課程異動通知發送紀錄 : WebLib.DAC - { - //private string _tableName = "訓練課程異動通知發送紀錄"; - private string _select = "select 編號, 異動通知項次, 學員編號, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "編號, 異動通知項次, 學員編號, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@編號, @異動通知項次, @學員編號, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 訓練課程異動通知發送紀錄 "; - 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() - { - 訓練課程異動通知發送紀錄List result = new 訓練課程異動通知發送紀錄List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程異動通知發送紀錄List SelectOne(int 編號, int 異動通知項次, string 學員編號) - { - 訓練課程異動通知發送紀錄List result = new 訓練課程異動通知發送紀錄List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 編號 = @編號 " - + " and 異動通知項次 = @異動通知項次 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdSelect, "編號", 編號); - AddParam(cmdSelect, "異動通知項次", 異動通知項次); - AddParam(cmdSelect, "學員編號", 學員編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(訓練課程異動通知發送紀錄 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 訓練課程異動通知發送紀錄" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "編號", value.編號); - AddParam(cmdInsert, "異動通知項次", value.異動通知項次); - AddParam(cmdInsert, "學員編號", value.學員編號); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(訓練課程異動通知發送紀錄 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 訓練課程異動通知發送紀錄List oldValues = SelectOne(value.編號, value.異動通知項次, value.學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"訓練課程異動通知發送紀錄\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 異動通知項次 = @original_異動通知項次 - and 學員編號 = @original_學員編號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_編號", value.編號); - AddParam(cmdUpdate, "original_異動通知項次", value.異動通知項次); - AddParam(cmdUpdate, "original_學員編號", value.學員編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 編號, int 異動通知項次, string 學員編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(編號, 異動通知項次, 學員編號, DB_APPNO)) - return -1; - - 訓練課程異動通知發送紀錄List oldValues = SelectOne(編號, 異動通知項次, 學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程異動通知發送紀錄\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程異動通知發送紀錄 - where 1=1 - and 編號 = @編號 - and 異動通知項次 = @異動通知項次 - and 學員編號 = @學員編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "編號", 編號); - AddParam(cmdDelete, "異動通知項次", 異動通知項次); - 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(訓練課程異動通知發送紀錄 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 訓練課程異動通知發送紀錄List oldValues = SelectOne(value.編號, value.異動通知項次, value.學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程異動通知發送紀錄\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程異動通知發送紀錄 - where 1=1 - and 編號 = @編號 - and 異動通知項次 = @異動通知項次 - and 學員編號 = @學員編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "編號", value.編號); - AddParam(cmdDelete, "異動通知項次", value.異動通知項次); - 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 編號, int 異動通知項次, string 學員編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 編號 = @編號 " - + " and 異動通知項次 = @異動通知項次 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdSelect, "編號", 編號); - AddParam(cmdSelect, "異動通知項次", 異動通知項次); - AddParam(cmdSelect, "學員編號", 學員編號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 訓練課程異動通知發送紀錄 資料集合類別 - /// - public partial class 訓練課程異動通知發送紀錄List : List<訓練課程異動通知發送紀錄>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 訓練課程異動通知發送紀錄 newItem = new 訓練課程異動通知發送紀錄(); - newItem.編號 = DAC.GetInt32(reader[0]); - newItem.異動通知項次 = DAC.GetInt32(reader[1]); - newItem.學員編號 = DAC.GetString(reader[2]); - newItem.DB_APPNO = DAC.GetInt32(reader[3]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[4]); - newItem.DB_CRUSR = DAC.GetString(reader[5]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[6]); - newItem.DB_TRUSR = DAC.GetString(reader[7]); - Add(newItem); - } - } - } - - /// - /// 訓練課程異動通知發送紀錄 資料紀錄類別 - /// - [Serializable] - public partial class 訓練課程異動通知發送紀錄 : DataItemBase - { - private int _編號; - private int _異動通知項次; - private string _學員編號; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 異動項次 - /// - [DataObjectField(true, false, false)] - public int 異動通知項次 - { - get - { - return _異動通知項次; - } - set - { - if (value != _異動通知項次) - { - _異動通知項次 = value; - OnPropertyChanged("異動通知項次"); - } - } - } - - /// - /// 學員編號 - /// - [DataObjectField(true, false, false, 10)] - public string 學員編號 - { - get - { - return _學員編號; - } - set - { - if (value != _學員編號) - { - _學員編號 = value; - OnPropertyChanged("學員編號"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知發送紀錄2.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知發送紀錄2.cs deleted file mode 100644 index 50e5137..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程異動通知發送紀錄2.cs +++ /dev/null @@ -1,154 +0,0 @@ -// -// 這個檔案是 訓練課程異動通知發送紀錄 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程異動通知發送紀錄 資料存取類別 - /// - public partial class DAC_訓練課程異動通知發送紀錄 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練課程異動通知發送紀錄 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練課程異動通知發送紀錄 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練課程異動通知發送紀錄 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練課程異動通知發送紀錄 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練課程異動通知發送紀錄 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練課程異動通知發送紀錄 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int 異動通知項次, string 學員編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int 異動通知項次, string 學員編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - public void 標記已發送(int 編號, int 異動通知項次, string 學員編號, string UserId) - { - if (SelectOne(編號, 異動通知項次, 學員編號).Count == 0) - { - 訓練課程異動通知發送紀錄 newValue = new 訓練課程異動通知發送紀錄(); - newValue.編號 = 編號; - newValue.異動通知項次 = 異動通知項次; - newValue.學員編號 = 學員編號; - newValue.DB_CRUSR = UserId; - - InsertOne(newValue); - } - } - - public bool 是否已發送(int 編號, int 異動通知項次, string 學員編號) - { - return SelectOne(編號, 異動通知項次, 學員編號).Count > 0; - } - } - - /// - /// 訓練課程異動通知發送紀錄 資料集合類別 - /// - public partial class 訓練課程異動通知發送紀錄List : List<訓練課程異動通知發送紀錄> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 訓練課程異動通知發送紀錄 資料紀錄類別 - /// - public partial class 訓練課程異動通知發送紀錄 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程計畫別1.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程計畫別1.cs deleted file mode 100644 index 34e2eeb..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程計畫別1.cs +++ /dev/null @@ -1,327 +0,0 @@ -// -// 這個檔案是 訓練課程計畫別 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程計畫別 資料存取類別 - /// - [DataObject] - public partial class DAC_訓練課程計畫別 : WebLib.DAC - { - //private string _tableName = "訓練課程計畫別"; - private string _select = "select 編號, 計畫編號, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "編號, 計畫編號, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@編號, @計畫編號, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 訓練課程計畫別 "; - 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() - { - 訓練課程計畫別List result = new 訓練課程計畫別List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練課程計畫別List SelectOne(int 編號, string 計畫編號) - { - 訓練課程計畫別List result = new 訓練課程計畫別List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 編號 = @編號 " - + " and 計畫編號 = @計畫編號 " - ; - AddParam(cmdSelect, "編號", 編號); - AddParam(cmdSelect, "計畫編號", 計畫編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(訓練課程計畫別 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 訓練課程計畫別" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "編號", value.編號); - AddParam(cmdInsert, "計畫編號", value.計畫編號); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(訓練課程計畫別 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 訓練課程計畫別List oldValues = SelectOne(value.編號, value.計畫編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"訓練課程計畫別\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 計畫編號 = @original_計畫編號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_編號", value.編號); - AddParam(cmdUpdate, "original_計畫編號", value.計畫編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 編號, string 計畫編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(編號, 計畫編號, DB_APPNO)) - return -1; - - 訓練課程計畫別List oldValues = SelectOne(編號, 計畫編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程計畫別\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程計畫別 - where 1=1 - and 編號 = @編號 - and 計畫編號 = @計畫編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "編號", 編號); - 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(訓練課程計畫別 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 訓練課程計畫別List oldValues = SelectOne(value.編號, value.計畫編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練課程計畫別\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程計畫別 - where 1=1 - and 編號 = @編號 - and 計畫編號 = @計畫編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "編號", value.編號); - 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 編號, string 計畫編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 編號 = @編號 " - + " and 計畫編號 = @計畫編號 " - ; - AddParam(cmdSelect, "編號", 編號); - AddParam(cmdSelect, "計畫編號", 計畫編號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 訓練課程計畫別 資料集合類別 - /// - public partial class 訓練課程計畫別List : List<訓練課程計畫別>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 訓練課程計畫別 newItem = new 訓練課程計畫別(); - newItem.編號 = DAC.GetInt32(reader[0]); - newItem.計畫編號 = DAC.GetString(reader[1]); - newItem.DB_APPNO = DAC.GetInt32(reader[2]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[3]); - newItem.DB_CRUSR = DAC.GetString(reader[4]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[5]); - newItem.DB_TRUSR = DAC.GetString(reader[6]); - Add(newItem); - } - } - } - - /// - /// 訓練課程計畫別 資料紀錄類別 - /// - [Serializable] - public partial class 訓練課程計畫別 : DataItemBase - { - private int _編號; - private string _計畫編號; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 計畫編號 - /// - [DataObjectField(true, false, false, 20)] - public string 計畫編號 - { - get - { - return _計畫編號; - } - set - { - if (value != _計畫編號) - { - _計畫編號 = value; - OnPropertyChanged("計畫編號"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_訓練課程計畫別2.cs b/branches/1150807/DAC/課程企劃/DAC_訓練課程計畫別2.cs deleted file mode 100644 index f652bbf..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_訓練課程計畫別2.cs +++ /dev/null @@ -1,181 +0,0 @@ -// -// 這個檔案是 訓練課程計畫別 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練課程計畫別 資料存取類別 - /// - public partial class DAC_訓練課程計畫別 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select(int 編號) - { - 訓練課程計畫別List result = new 訓練課程計畫別List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"SELECT A.計畫編號 AS BPPYN, ISNULL('【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(B.BPPYN,LEN(B.BPPYN)-5,1)) + '】', '') + B.BPPYM BPPYM - FROM 訓練課程計畫別 A - LEFT JOIN BPAA B ON A.計畫編號=B.BPPYN - WHERE A.編號=@編號"; - - if (編號 > 0) - { - cmdSelect.CommandText += " and 編號 = @編號 "; - AddParam(cmdSelect, "編號", 編號); - } - - cmdSelect.CommandText += _order; - DataTable data = Select(cmdSelect); - - foreach (DataRow r in data.Rows) - { - if (DAC.GetString(r["BPPYN"]) == "000000001") - { - r.BeginEdit(); - r["BPPYM"] = "【非專案人員】"; - r.EndEdit(); - break; - } - } - - return data; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練課程計畫別 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練課程計畫別 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練課程計畫別 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練課程計畫別 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練課程計畫別 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練課程計畫別 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, string 計畫編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, string 計畫編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteBy課程企劃(int 編號) - { - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練課程計畫別 - where 1=1 - and 編號 = @編號"; - AddParam(cmdDelete, "編號", 編號); - int rowsAffected = ExecuteNonQuery(cmdDelete); - return rowsAffected; - } - } - - /// - /// 訓練課程計畫別 資料集合類別 - /// - public partial class 訓練課程計畫別List : List<訓練課程計畫別> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 訓練課程計畫別 資料紀錄類別 - /// - public partial class 訓練課程計畫別 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_講師異動1.cs b/branches/1150807/DAC/課程企劃/DAC_講師異動1.cs deleted file mode 100644 index fc8ca4c..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_講師異動1.cs +++ /dev/null @@ -1,479 +0,0 @@ -// -// 這個檔案是 講師異動 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 講師異動 資料存取類別 - /// - [DataObject] - public partial class DAC_講師異動 : WebLib.DAC - { - private string _tableName = "講師異動"; - private string _select = "select 課程企劃編號, 課程序號, 異動次數, 異動日期, 講師編號, 講師姓名, 學歷, 現職, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "課程企劃編號, 課程序號, 異動次數, 異動日期, 講師編號, 講師姓名, 學歷, 現職, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@課程企劃編號, @課程序號, @異動次數, @異動日期, @講師編號, @講師姓名, @學歷, @現職, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 講師異動 "; - 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() - { - 講師異動List result = new 講師異動List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 講師異動List SelectOne(int 課程企劃編號, int 課程序號, int 異動次數) - { - 講師異動List result = new 講師異動List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - + " and 異動次數 = @異動次數 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - AddParam(cmdSelect, "異動次數", 異動次數); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(講師異動 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 講師異動" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(講師異動 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 講師異動List oldValues = SelectOne(value.課程企劃編號, value.課程序號, value.異動次數); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"講師異動\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 課程序號 = @original_課程序號 - and 異動次數 = @original_異動次數 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "異動日期", value.異動日期); - AddParam(cmdUpdate, "講師編號", value.講師編號); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_課程企劃編號", value.課程企劃編號); - AddParam(cmdUpdate, "original_課程序號", value.課程序號); - AddParam(cmdUpdate, "original_異動次數", value.異動次數); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 課程企劃編號, int 課程序號, int 異動次數, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(課程企劃編號, 課程序號, 異動次數, DB_APPNO)) - return -1; - - 講師異動List oldValues = SelectOne(課程企劃編號, 課程序號, 異動次數); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"講師異動\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 講師異動 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 課程序號 = @課程序號 - and 異動次數 = @異動次數 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", 課程企劃編號); - AddParam(cmdDelete, "課程序號", 課程序號); - 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(講師異動 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 講師異動List oldValues = SelectOne(value.課程企劃編號, value.課程序號, value.異動次數); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"講師異動\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 講師異動 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 課程序號 = @課程序號 - and 異動次數 = @異動次數 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", value.課程企劃編號); - AddParam(cmdDelete, "課程序號", value.課程序號); - 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 課程企劃編號, int 課程序號, int 異動次數) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - + " and 異動次數 = @異動次數 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - AddParam(cmdSelect, "異動次數", 異動次數); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 講師異動 資料集合類別 - /// - public partial class 講師異動List : List<講師異動>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 講師異動 newItem = new 講師異動(); - newItem.課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.課程序號 = DAC.GetInt32(reader[1]); - newItem.異動次數 = DAC.GetInt32(reader[2]); - newItem.異動日期 = DAC.GetDateTime(reader[3]); - newItem.講師編號 = DAC.GetInt32(reader[4]); - newItem.講師姓名 = DAC.GetString(reader[5]); - newItem.學歷 = DAC.GetString(reader[6]); - newItem.現職 = DAC.GetString(reader[7]); - newItem.DB_APPNO = DAC.GetInt32(reader[8]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[9]); - newItem.DB_CRUSR = DAC.GetString(reader[10]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[11]); - newItem.DB_TRUSR = DAC.GetString(reader[12]); - Add(newItem); - } - } - } - - /// - /// 講師異動 資料紀錄類別 - /// - [Serializable] - public partial class 講師異動 : DataItemBase - { - private int _課程企劃編號; - private int _課程序號; - private int _異動次數; - private DateTime _異動日期; - private int _講師編號; - private string _講師姓名; - private string _學歷; - private string _現職; - - #region 資料欄位 - /// - /// 課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 課程企劃編號 - { - get - { - return _課程企劃編號; - } - set - { - if (value != _課程企劃編號) - { - _課程企劃編號 = value; - OnPropertyChanged("課程企劃編號"); - } - } - } - - /// - /// 課程序號 - /// - [DataObjectField(true, false, false)] - public int 課程序號 - { - get - { - return _課程序號; - } - set - { - if (value != _課程序號) - { - _課程序號 = value; - OnPropertyChanged("課程序號"); - } - } - } - - /// - /// 異動次數 - /// - [DataObjectField(true, false, false)] - public int 異動次數 - { - get - { - return _異動次數; - } - set - { - if (value != _異動次數) - { - _異動次數 = value; - OnPropertyChanged("異動次數"); - } - } - } - - /// - /// 異動日期 - /// - [DataObjectField(false, false, true)] - public DateTime 異動日期 - { - get - { - return _異動日期; - } - set - { - if (value != _異動日期) - { - _異動日期 = value; - OnPropertyChanged("異動日期"); - } - } - } - - /// - /// 講師編號 - /// - [DataObjectField(false, false, true)] - public int 講師編號 - { - 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, 50)] - public string 學歷 - { - get - { - return _學歷; - } - set - { - if (value != _學歷) - { - _學歷 = value; - OnPropertyChanged("學歷"); - } - } - } - - /// - /// 現職 - /// - [DataObjectField(false, false, true, 50)] - public string 現職 - { - get - { - return _現職; - } - set - { - if (value != _現職) - { - _現職 = value; - OnPropertyChanged("現職"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_講師異動2.cs b/branches/1150807/DAC/課程企劃/DAC_講師異動2.cs deleted file mode 100644 index 6c417f1..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_講師異動2.cs +++ /dev/null @@ -1,184 +0,0 @@ -// -// 這個檔案是 講師異動 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 講師異動 資料存取類別 - /// - public partial class DAC_講師異動 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(講師異動 value) - { - value.異動日期 = DateTime.UtcNow.AddHours(8); - value.異動次數 = Next異動次數(value.課程企劃編號, value.課程序號); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(講師異動 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(講師異動 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(講師異動 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(講師異動 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(講師異動 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 課程企劃編號, int 課程序號, int 異動次數, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 課程企劃編號, int 課程序號, int 異動次數, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - private int Next異動次數(int 課程企劃編號, int 課程序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select isnull(max(異動次數), 0) + 1 from " + _tableName - + " where 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 講師異動List Select異動(int 課程企劃編號, int 課程序號) - { - 講師異動List result = new 講師異動List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - + " order by 異動次數 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - Select(cmdSelect, ref list); - return result; - } - - public 講師異動List Select最後異動(int 課程企劃編號, int 課程序號) - { - 講師異動List result = new 講師異動List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select top 1 " + _insert + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - + " order by 異動次數 desc " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - Select(cmdSelect, ref list); - return result; - } - } - - /// - /// 講師異動 資料集合類別 - /// - public partial class 講師異動List : List<講師異動> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 講師異動 資料紀錄類別 - /// - public partial class 講師異動 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_講師遴選1.cs b/branches/1150807/DAC/課程企劃/DAC_講師遴選1.cs deleted file mode 100644 index 87d6f2c..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_講師遴選1.cs +++ /dev/null @@ -1,1227 +0,0 @@ -// -// 這個檔案是 講師遴選 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 講師遴選 資料存取類別 - /// - [DataObject] - public partial class DAC_講師遴選 : WebLib.DAC - { - private string _tableName = "講師遴選"; - private string _select = "select 課程企劃編號, 課程序號, 講師編號_A, 講師姓名_A, 學歷_A, 現職_A, 師資來源_A, 專業背景_A, 講授經驗_A, 口碑與評價_A, 費用_A, 配合度_A, 合計_A, 講師編號_B, 講師姓名_B, 學歷_B, 現職_B, 師資來源_B, 專業背景_B, 講授經驗_B, 口碑與評價_B, 費用_B, 配合度_B, 合計_B, 講師編號_C, 講師姓名_C, 學歷_C, 現職_C, 師資來源_C, 專業背景_C, 講授經驗_C, 口碑與評價_C, 費用_C, 配合度_C, 合計_C, 總評, 備註, 選定講師, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "課程企劃編號, 課程序號, 講師編號_A, 講師姓名_A, 學歷_A, 現職_A, 師資來源_A, 專業背景_A, 講授經驗_A, 口碑與評價_A, 費用_A, 配合度_A, 合計_A, 講師編號_B, 講師姓名_B, 學歷_B, 現職_B, 師資來源_B, 專業背景_B, 講授經驗_B, 口碑與評價_B, 費用_B, 配合度_B, 合計_B, 講師編號_C, 講師姓名_C, 學歷_C, 現職_C, 師資來源_C, 專業背景_C, 講授經驗_C, 口碑與評價_C, 費用_C, 配合度_C, 合計_C, 總評, 備註, 選定講師, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@課程企劃編號, @課程序號, @講師編號_A, @講師姓名_A, @學歷_A, @現職_A, @師資來源_A, @專業背景_A, @講授經驗_A, @口碑與評價_A, @費用_A, @配合度_A, @合計_A, @講師編號_B, @講師姓名_B, @學歷_B, @現職_B, @師資來源_B, @專業背景_B, @講授經驗_B, @口碑與評價_B, @費用_B, @配合度_B, @合計_B, @講師編號_C, @講師姓名_C, @學歷_C, @現職_C, @師資來源_C, @專業背景_C, @講授經驗_C, @口碑與評價_C, @費用_C, @配合度_C, @合計_C, @總評, @備註, @選定講師, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 講師遴選 "; - 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() - { - 講師遴選List result = new 講師遴選List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 講師遴選List SelectOne(int 課程企劃編號, int 課程序號) - { - 講師遴選List result = new 講師遴選List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(講師遴選 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 講師遴選" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "課程企劃編號", value.課程企劃編號); - AddParam(cmdInsert, "課程序號", value.課程序號); - AddParam(cmdInsert, "講師編號_A", value.講師編號_A); - AddParam(cmdInsert, "講師姓名_A", value.講師姓名_A); - AddParam(cmdInsert, "學歷_A", value.學歷_A); - AddParam(cmdInsert, "現職_A", value.現職_A); - AddParam(cmdInsert, "師資來源_A", value.師資來源_A); - AddParam(cmdInsert, "專業背景_A", value.專業背景_A); - AddParam(cmdInsert, "講授經驗_A", value.講授經驗_A); - AddParam(cmdInsert, "口碑與評價_A", value.口碑與評價_A); - AddParam(cmdInsert, "費用_A", value.費用_A); - AddParam(cmdInsert, "配合度_A", value.配合度_A); - AddParam(cmdInsert, "合計_A", value.合計_A); - AddParam(cmdInsert, "講師編號_B", value.講師編號_B); - AddParam(cmdInsert, "講師姓名_B", value.講師姓名_B); - AddParam(cmdInsert, "學歷_B", value.學歷_B); - AddParam(cmdInsert, "現職_B", value.現職_B); - AddParam(cmdInsert, "師資來源_B", value.師資來源_B); - AddParam(cmdInsert, "專業背景_B", value.專業背景_B); - AddParam(cmdInsert, "講授經驗_B", value.講授經驗_B); - AddParam(cmdInsert, "口碑與評價_B", value.口碑與評價_B); - AddParam(cmdInsert, "費用_B", value.費用_B); - AddParam(cmdInsert, "配合度_B", value.配合度_B); - AddParam(cmdInsert, "合計_B", value.合計_B); - AddParam(cmdInsert, "講師編號_C", value.講師編號_C); - AddParam(cmdInsert, "講師姓名_C", value.講師姓名_C); - AddParam(cmdInsert, "學歷_C", value.學歷_C); - AddParam(cmdInsert, "現職_C", value.現職_C); - AddParam(cmdInsert, "師資來源_C", value.師資來源_C); - AddParam(cmdInsert, "專業背景_C", value.專業背景_C); - AddParam(cmdInsert, "講授經驗_C", value.講授經驗_C); - AddParam(cmdInsert, "口碑與評價_C", value.口碑與評價_C); - AddParam(cmdInsert, "費用_C", value.費用_C); - AddParam(cmdInsert, "配合度_C", value.配合度_C); - AddParam(cmdInsert, "合計_C", value.合計_C); - AddParam(cmdInsert, "總評", value.總評); - AddParam(cmdInsert, "備註", value.備註); - AddParam(cmdInsert, "選定講師", value.選定講師); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(講師遴選 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 講師遴選List oldValues = SelectOne(value.課程企劃編號, value.課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"講師遴選\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 講師遴選 - set - 講師編號_A = @講師編號_A , - 講師姓名_A = @講師姓名_A , - 學歷_A = @學歷_A , - 現職_A = @現職_A , - 師資來源_A = @師資來源_A , - 專業背景_A = @專業背景_A , - 講授經驗_A = @講授經驗_A , - 口碑與評價_A = @口碑與評價_A , - 費用_A = @費用_A , - 配合度_A = @配合度_A , - 合計_A = @合計_A , - 講師編號_B = @講師編號_B , - 講師姓名_B = @講師姓名_B , - 學歷_B = @學歷_B , - 現職_B = @現職_B , - 師資來源_B = @師資來源_B , - 專業背景_B = @專業背景_B , - 講授經驗_B = @講授經驗_B , - 口碑與評價_B = @口碑與評價_B , - 費用_B = @費用_B , - 配合度_B = @配合度_B , - 合計_B = @合計_B , - 講師編號_C = @講師編號_C , - 講師姓名_C = @講師姓名_C , - 學歷_C = @學歷_C , - 現職_C = @現職_C , - 師資來源_C = @師資來源_C , - 專業背景_C = @專業背景_C , - 講授經驗_C = @講授經驗_C , - 口碑與評價_C = @口碑與評價_C , - 費用_C = @費用_C , - 配合度_C = @配合度_C , - 合計_C = @合計_C , - 總評 = @總評 , - 備註 = @備註 , - 選定講師 = @選定講師 , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 課程企劃編號 = @original_課程企劃編號 - and 課程序號 = @original_課程序號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "講師編號_A", value.講師編號_A); - AddParam(cmdUpdate, "講師姓名_A", value.講師姓名_A); - AddParam(cmdUpdate, "學歷_A", value.學歷_A); - AddParam(cmdUpdate, "現職_A", value.現職_A); - AddParam(cmdUpdate, "師資來源_A", value.師資來源_A); - AddParam(cmdUpdate, "專業背景_A", value.專業背景_A); - AddParam(cmdUpdate, "講授經驗_A", value.講授經驗_A); - AddParam(cmdUpdate, "口碑與評價_A", value.口碑與評價_A); - AddParam(cmdUpdate, "費用_A", value.費用_A); - AddParam(cmdUpdate, "配合度_A", value.配合度_A); - AddParam(cmdUpdate, "合計_A", value.合計_A); - AddParam(cmdUpdate, "講師編號_B", value.講師編號_B); - AddParam(cmdUpdate, "講師姓名_B", value.講師姓名_B); - AddParam(cmdUpdate, "學歷_B", value.學歷_B); - AddParam(cmdUpdate, "現職_B", value.現職_B); - AddParam(cmdUpdate, "師資來源_B", value.師資來源_B); - AddParam(cmdUpdate, "專業背景_B", value.專業背景_B); - AddParam(cmdUpdate, "講授經驗_B", value.講授經驗_B); - AddParam(cmdUpdate, "口碑與評價_B", value.口碑與評價_B); - AddParam(cmdUpdate, "費用_B", value.費用_B); - AddParam(cmdUpdate, "配合度_B", value.配合度_B); - AddParam(cmdUpdate, "合計_B", value.合計_B); - AddParam(cmdUpdate, "講師編號_C", value.講師編號_C); - AddParam(cmdUpdate, "講師姓名_C", value.講師姓名_C); - AddParam(cmdUpdate, "學歷_C", value.學歷_C); - AddParam(cmdUpdate, "現職_C", value.現職_C); - AddParam(cmdUpdate, "師資來源_C", value.師資來源_C); - AddParam(cmdUpdate, "專業背景_C", value.專業背景_C); - AddParam(cmdUpdate, "講授經驗_C", value.講授經驗_C); - AddParam(cmdUpdate, "口碑與評價_C", value.口碑與評價_C); - AddParam(cmdUpdate, "費用_C", value.費用_C); - AddParam(cmdUpdate, "配合度_C", value.配合度_C); - AddParam(cmdUpdate, "合計_C", value.合計_C); - AddParam(cmdUpdate, "總評", value.總評); - AddParam(cmdUpdate, "備註", value.備註); - AddParam(cmdUpdate, "選定講師", value.選定講師); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_課程企劃編號", value.課程企劃編號); - AddParam(cmdUpdate, "original_課程序號", value.課程序號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 課程企劃編號, int 課程序號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(課程企劃編號, 課程序號, DB_APPNO)) - return -1; - - 講師遴選List oldValues = SelectOne(課程企劃編號, 課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"講師遴選\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 講師遴選 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", 課程企劃編號); - 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(講師遴選 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 講師遴選List oldValues = SelectOne(value.課程企劃編號, value.課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"講師遴選\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 講師遴選 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", value.課程企劃編號); - 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 課程企劃編號, int 課程序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 講師遴選 資料集合類別 - /// - public partial class 講師遴選List : List<講師遴選>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 講師遴選 newItem = new 講師遴選(); - newItem.課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.課程序號 = DAC.GetInt32(reader[1]); - newItem.講師編號_A = DAC.GetInt32(reader[2]); - newItem.講師姓名_A = DAC.GetString(reader[3]); - newItem.學歷_A = DAC.GetString(reader[4]); - newItem.現職_A = DAC.GetString(reader[5]); - newItem.師資來源_A = DAC.GetString(reader[6]); - newItem.專業背景_A = DAC.GetInt32(reader[7]); - newItem.講授經驗_A = DAC.GetInt32(reader[8]); - newItem.口碑與評價_A = DAC.GetInt32(reader[9]); - newItem.費用_A = DAC.GetInt32(reader[10]); - newItem.配合度_A = DAC.GetInt32(reader[11]); - newItem.合計_A = DAC.GetInt32(reader[12]); - newItem.講師編號_B = DAC.GetInt32(reader[13]); - newItem.講師姓名_B = DAC.GetString(reader[14]); - newItem.學歷_B = DAC.GetString(reader[15]); - newItem.現職_B = DAC.GetString(reader[16]); - newItem.師資來源_B = DAC.GetString(reader[17]); - newItem.專業背景_B = DAC.GetInt32(reader[18]); - newItem.講授經驗_B = DAC.GetInt32(reader[19]); - newItem.口碑與評價_B = DAC.GetInt32(reader[20]); - newItem.費用_B = DAC.GetInt32(reader[21]); - newItem.配合度_B = DAC.GetInt32(reader[22]); - newItem.合計_B = DAC.GetInt32(reader[23]); - newItem.講師編號_C = DAC.GetInt32(reader[24]); - newItem.講師姓名_C = DAC.GetString(reader[25]); - newItem.學歷_C = DAC.GetString(reader[26]); - newItem.現職_C = DAC.GetString(reader[27]); - newItem.師資來源_C = DAC.GetString(reader[28]); - newItem.專業背景_C = DAC.GetInt32(reader[29]); - newItem.講授經驗_C = DAC.GetInt32(reader[30]); - newItem.口碑與評價_C = DAC.GetInt32(reader[31]); - newItem.費用_C = DAC.GetInt32(reader[32]); - newItem.配合度_C = DAC.GetInt32(reader[33]); - newItem.合計_C = DAC.GetInt32(reader[34]); - newItem.總評 = DAC.GetString(reader[35]); - newItem.備註 = DAC.GetString(reader[36]); - newItem.選定講師 = DAC.GetInt32(reader[37]); - newItem.DB_APPNO = DAC.GetInt32(reader[38]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[39]); - newItem.DB_CRUSR = DAC.GetString(reader[40]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[41]); - newItem.DB_TRUSR = DAC.GetString(reader[42]); - Add(newItem); - } - } - } - - /// - /// 講師遴選 資料紀錄類別 - /// - [Serializable] - public partial class 講師遴選 : DataItemBase - { - private int _課程企劃編號; - private int _課程序號; - private int _講師編號_A; - private string _講師姓名_A; - private string _學歷_A; - private string _現職_A; - private string _師資來源_A; - private int _專業背景_A; - private int _講授經驗_A; - private int _口碑與評價_A; - private int _費用_A; - private int _配合度_A; - private int _合計_A; - private int _講師編號_B; - private string _講師姓名_B; - private string _學歷_B; - private string _現職_B; - private string _師資來源_B; - private int _專業背景_B; - private int _講授經驗_B; - private int _口碑與評價_B; - private int _費用_B; - private int _配合度_B; - private int _合計_B; - private int _講師編號_C; - private string _講師姓名_C; - private string _學歷_C; - private string _現職_C; - private string _師資來源_C; - private int _專業背景_C; - private int _講授經驗_C; - private int _口碑與評價_C; - private int _費用_C; - private int _配合度_C; - private int _合計_C; - private string _總評; - private string _備註; - private int _選定講師; - - #region 資料欄位 - /// - /// 課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 課程企劃編號 - { - get - { - return _課程企劃編號; - } - set - { - if (value != _課程企劃編號) - { - _課程企劃編號 = value; - OnPropertyChanged("課程企劃編號"); - } - } - } - - /// - /// 課程序號 - /// - [DataObjectField(true, false, false)] - public int 課程序號 - { - get - { - return _課程序號; - } - set - { - if (value != _課程序號) - { - _課程序號 = value; - OnPropertyChanged("課程序號"); - } - } - } - - /// - /// 講師編號_A - /// - [DataObjectField(false, false, true)] - public int 講師編號_A - { - get - { - return _講師編號_A; - } - set - { - if (value != _講師編號_A) - { - _講師編號_A = value; - OnPropertyChanged("講師編號_A"); - } - } - } - - /// - /// 講師姓名_A - /// - [DataObjectField(false, false, true, 50)] - public string 講師姓名_A - { - get - { - return _講師姓名_A; - } - set - { - if (value != _講師姓名_A) - { - _講師姓名_A = value; - OnPropertyChanged("講師姓名_A"); - } - } - } - - /// - /// 學歷_A - /// - [DataObjectField(false, false, true, 50)] - public string 學歷_A - { - get - { - return _學歷_A; - } - set - { - if (value != _學歷_A) - { - _學歷_A = value; - OnPropertyChanged("學歷_A"); - } - } - } - - /// - /// 現職_A - /// - [DataObjectField(false, false, true, 50)] - public string 現職_A - { - get - { - return _現職_A; - } - set - { - if (value != _現職_A) - { - _現職_A = value; - OnPropertyChanged("現職_A"); - } - } - } - - /// - /// 師資來源_A - /// - [DataObjectField(false, false, true, 1)] - public string 師資來源_A - { - get - { - return _師資來源_A; - } - set - { - if (value != _師資來源_A) - { - _師資來源_A = value; - OnPropertyChanged("師資來源_A"); - } - } - } - - /// - /// 專業背景_A - /// - [DataObjectField(false, false, true)] - public int 專業背景_A - { - get - { - return _專業背景_A; - } - set - { - if (value != _專業背景_A) - { - _專業背景_A = value; - OnPropertyChanged("專業背景_A"); - } - } - } - - /// - /// 講授經驗_A - /// - [DataObjectField(false, false, true)] - public int 講授經驗_A - { - get - { - return _講授經驗_A; - } - set - { - if (value != _講授經驗_A) - { - _講授經驗_A = value; - OnPropertyChanged("講授經驗_A"); - } - } - } - - /// - /// 口碑與評價_A - /// - [DataObjectField(false, false, true)] - public int 口碑與評價_A - { - get - { - return _口碑與評價_A; - } - set - { - if (value != _口碑與評價_A) - { - _口碑與評價_A = value; - OnPropertyChanged("口碑與評價_A"); - } - } - } - - /// - /// 費用_A - /// - [DataObjectField(false, false, true)] - public int 費用_A - { - get - { - return _費用_A; - } - set - { - if (value != _費用_A) - { - _費用_A = value; - OnPropertyChanged("費用_A"); - } - } - } - - /// - /// 配合度_A - /// - [DataObjectField(false, false, true)] - public int 配合度_A - { - get - { - return _配合度_A; - } - set - { - if (value != _配合度_A) - { - _配合度_A = value; - OnPropertyChanged("配合度_A"); - } - } - } - - /// - /// 合計_A - /// - [DataObjectField(false, false, true)] - public int 合計_A - { - get - { - return _合計_A; - } - set - { - if (value != _合計_A) - { - _合計_A = value; - OnPropertyChanged("合計_A"); - } - } - } - - /// - /// 講師編號_B - /// - [DataObjectField(false, false, true)] - public int 講師編號_B - { - get - { - return _講師編號_B; - } - set - { - if (value != _講師編號_B) - { - _講師編號_B = value; - OnPropertyChanged("講師編號_B"); - } - } - } - - /// - /// 講師姓名_B - /// - [DataObjectField(false, false, true, 50)] - public string 講師姓名_B - { - get - { - return _講師姓名_B; - } - set - { - if (value != _講師姓名_B) - { - _講師姓名_B = value; - OnPropertyChanged("講師姓名_B"); - } - } - } - - /// - /// 學歷_B - /// - [DataObjectField(false, false, true, 50)] - public string 學歷_B - { - get - { - return _學歷_B; - } - set - { - if (value != _學歷_B) - { - _學歷_B = value; - OnPropertyChanged("學歷_B"); - } - } - } - - /// - /// 現職_B - /// - [DataObjectField(false, false, true, 50)] - public string 現職_B - { - get - { - return _現職_B; - } - set - { - if (value != _現職_B) - { - _現職_B = value; - OnPropertyChanged("現職_B"); - } - } - } - - /// - /// 師資來源_B - /// - [DataObjectField(false, false, true, 1)] - public string 師資來源_B - { - get - { - return _師資來源_B; - } - set - { - if (value != _師資來源_B) - { - _師資來源_B = value; - OnPropertyChanged("師資來源_B"); - } - } - } - - /// - /// 專業背景_B - /// - [DataObjectField(false, false, true)] - public int 專業背景_B - { - get - { - return _專業背景_B; - } - set - { - if (value != _專業背景_B) - { - _專業背景_B = value; - OnPropertyChanged("專業背景_B"); - } - } - } - - /// - /// 講授經驗_B - /// - [DataObjectField(false, false, true)] - public int 講授經驗_B - { - get - { - return _講授經驗_B; - } - set - { - if (value != _講授經驗_B) - { - _講授經驗_B = value; - OnPropertyChanged("講授經驗_B"); - } - } - } - - /// - /// 口碑與評價_B - /// - [DataObjectField(false, false, true)] - public int 口碑與評價_B - { - get - { - return _口碑與評價_B; - } - set - { - if (value != _口碑與評價_B) - { - _口碑與評價_B = value; - OnPropertyChanged("口碑與評價_B"); - } - } - } - - /// - /// 費用_B - /// - [DataObjectField(false, false, true)] - public int 費用_B - { - get - { - return _費用_B; - } - set - { - if (value != _費用_B) - { - _費用_B = value; - OnPropertyChanged("費用_B"); - } - } - } - - /// - /// 配合度_B - /// - [DataObjectField(false, false, true)] - public int 配合度_B - { - get - { - return _配合度_B; - } - set - { - if (value != _配合度_B) - { - _配合度_B = value; - OnPropertyChanged("配合度_B"); - } - } - } - - /// - /// 合計_B - /// - [DataObjectField(false, false, true)] - public int 合計_B - { - get - { - return _合計_B; - } - set - { - if (value != _合計_B) - { - _合計_B = value; - OnPropertyChanged("合計_B"); - } - } - } - - /// - /// 講師編號_C - /// - [DataObjectField(false, false, true)] - public int 講師編號_C - { - get - { - return _講師編號_C; - } - set - { - if (value != _講師編號_C) - { - _講師編號_C = value; - OnPropertyChanged("講師編號_C"); - } - } - } - - /// - /// 講師姓名_C - /// - [DataObjectField(false, false, true, 50)] - public string 講師姓名_C - { - get - { - return _講師姓名_C; - } - set - { - if (value != _講師姓名_C) - { - _講師姓名_C = value; - OnPropertyChanged("講師姓名_C"); - } - } - } - - /// - /// 學歷_C - /// - [DataObjectField(false, false, true, 50)] - public string 學歷_C - { - get - { - return _學歷_C; - } - set - { - if (value != _學歷_C) - { - _學歷_C = value; - OnPropertyChanged("學歷_C"); - } - } - } - - /// - /// 現職_C - /// - [DataObjectField(false, false, true, 50)] - public string 現職_C - { - get - { - return _現職_C; - } - set - { - if (value != _現職_C) - { - _現職_C = value; - OnPropertyChanged("現職_C"); - } - } - } - - /// - /// 師資來源_C - /// - [DataObjectField(false, false, true, 1)] - public string 師資來源_C - { - get - { - return _師資來源_C; - } - set - { - if (value != _師資來源_C) - { - _師資來源_C = value; - OnPropertyChanged("師資來源_C"); - } - } - } - - /// - /// 專業背景_C - /// - [DataObjectField(false, false, true)] - public int 專業背景_C - { - get - { - return _專業背景_C; - } - set - { - if (value != _專業背景_C) - { - _專業背景_C = value; - OnPropertyChanged("專業背景_C"); - } - } - } - - /// - /// 講授經驗_C - /// - [DataObjectField(false, false, true)] - public int 講授經驗_C - { - get - { - return _講授經驗_C; - } - set - { - if (value != _講授經驗_C) - { - _講授經驗_C = value; - OnPropertyChanged("講授經驗_C"); - } - } - } - - /// - /// 口碑與評價_C - /// - [DataObjectField(false, false, true)] - public int 口碑與評價_C - { - get - { - return _口碑與評價_C; - } - set - { - if (value != _口碑與評價_C) - { - _口碑與評價_C = value; - OnPropertyChanged("口碑與評價_C"); - } - } - } - - /// - /// 費用_C - /// - [DataObjectField(false, false, true)] - public int 費用_C - { - get - { - return _費用_C; - } - set - { - if (value != _費用_C) - { - _費用_C = value; - OnPropertyChanged("費用_C"); - } - } - } - - /// - /// 配合度_C - /// - [DataObjectField(false, false, true)] - public int 配合度_C - { - get - { - return _配合度_C; - } - set - { - if (value != _配合度_C) - { - _配合度_C = value; - OnPropertyChanged("配合度_C"); - } - } - } - - /// - /// 合計_C - /// - [DataObjectField(false, false, true)] - public int 合計_C - { - get - { - return _合計_C; - } - set - { - if (value != _合計_C) - { - _合計_C = value; - OnPropertyChanged("合計_C"); - } - } - } - - /// - /// 總評 - /// - [DataObjectField(false, false, true, 2000)] - public string 總評 - { - get - { - return _總評; - } - set - { - if (value != _總評) - { - _總評 = value; - OnPropertyChanged("總評"); - } - } - } - - /// - /// 備註 - /// - [DataObjectField(false, false, true, 2000)] - public string 備註 - { - get - { - return _備註; - } - set - { - if (value != _備註) - { - _備註 = value; - OnPropertyChanged("備註"); - } - } - } - - /// - /// 選定講師 - /// - [DataObjectField(false, false, true)] - public int 選定講師 - { - get - { - return _選定講師; - } - set - { - if (value != _選定講師) - { - _選定講師 = value; - OnPropertyChanged("選定講師"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/課程企劃/DAC_講師遴選2.cs b/branches/1150807/DAC/課程企劃/DAC_講師遴選2.cs deleted file mode 100644 index fd9a3ab..0000000 --- a/branches/1150807/DAC/課程企劃/DAC_講師遴選2.cs +++ /dev/null @@ -1,342 +0,0 @@ -// -// 這個檔案是 講師遴選 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 講師遴選 資料存取類別 - /// - public partial class DAC_講師遴選 : WebLib.DAC - { - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 講師遴選List Select() - { - 講師遴選List result = new 講師遴選List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - cmdSelect.CommandText += _order; - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(講師遴選 value) - { - value.合計_A = value.專業背景_A + value.講授經驗_A + value.口碑與評價_A + value.費用_A + value.配合度_A; - value.合計_B = value.專業背景_B + value.講授經驗_B + value.口碑與評價_B + value.費用_B + value.配合度_B; - value.合計_C = value.專業背景_C + value.講授經驗_C + value.口碑與評價_C + value.費用_C + value.配合度_C; - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(講師遴選 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(講師遴選 value) - { - value.合計_A = value.專業背景_A + value.講授經驗_A + value.口碑與評價_A + value.費用_A + value.配合度_A; - value.合計_B = value.專業背景_B + value.講授經驗_B + value.口碑與評價_B + value.費用_B + value.配合度_B; - value.合計_C = value.專業背景_C + value.講授經驗_C + value.口碑與評價_C + value.費用_C + value.配合度_C; - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(講師遴選 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(講師遴選 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(講師遴選 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 課程企劃編號, int 課程序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 課程企劃編號, int 課程序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - // 有另外加上去的屬性及方法,請加在這裡 - public void UpdateTeacher(int 課程企劃編號, int 課程序號, string 講師別, - int 講師編號, string 學歷, string 現職, string 師資來源, int 專業背景, - int 講授經驗, int 口碑與評價, int 費用, int 配合度) - { - if (SelectOne(課程企劃編號, 課程序號).Count == 0) - { - 講師遴選 newValue = new 講師遴選(); - newValue.課程企劃編號 = 課程企劃編號; - newValue.課程序號 = 課程序號; - newValue.DB_CRDAT = DateTime.UtcNow.AddHours(8); - newValue.DB_CRUSR = CurrentUserId; - InsertOne(newValue); - } - - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = String.Format( - "UPDATE " + _tableName - + " SET 講師編號_{0} = @講師編號 , " - + " 學歷_{0} = @學歷 , " - + " 現職_{0} = @現職 , " - + " 師資來源_{0} = @師資來源 , " - + " 專業背景_{0} = @專業背景 , " - + " 講授經驗_{0} = @講授經驗 , " - + " 口碑與評價_{0} = @口碑與評價 , " - + " 費用_{0} = @費用 , " - + " 配合度_{0} = @配合度 , " - + " 合計_{0} = @合計 , " - + " DB_APPNO = DB_APPNO + 1 , " - + " DB_TRDAT = GetDate() , " - + " DB_TRUSR = @DB_TRUSR " - + " WHERE 課程企劃編號 = @課程企劃編號" - + " AND 課程序號 = @課程序號", 講師別); - AddParam(cmdUpdate, "講師編號", 講師編號); - AddParam(cmdUpdate, "學歷", 學歷); - AddParam(cmdUpdate, "現職", 現職); - AddParam(cmdUpdate, "師資來源", 師資來源); - AddParam(cmdUpdate, "專業背景", 專業背景); - AddParam(cmdUpdate, "講授經驗", 講授經驗); - AddParam(cmdUpdate, "口碑與評價", 口碑與評價); - AddParam(cmdUpdate, "費用", 費用); - AddParam(cmdUpdate, "配合度", 配合度); - AddParam(cmdUpdate, "合計", 專業背景 + 講授經驗 + 口碑與評價 + 費用 + 配合度); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "課程企劃編號", 課程企劃編號); - AddParam(cmdUpdate, "課程序號", 課程序號); - ExecuteNonQuery(cmdUpdate); - } - - public void UpdateComment(int 課程企劃編號, int 課程序號, string 總評, string 備註) - { - if (SelectOne(課程企劃編號, 課程序號).Count == 0) - { - 講師遴選 newValue = new 講師遴選(); - newValue.課程企劃編號 = 課程企劃編號; - newValue.課程序號 = 課程序號; - newValue.DB_CRDAT = DateTime.UtcNow.AddHours(8); - newValue.DB_CRUSR = CurrentUserId; - InsertOne(newValue); - } - - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - "UPDATE " + _tableName - + " SET 總評 = @總評 , " - + " 備註 = @備註 , " - + " DB_APPNO = DB_APPNO + 1 , " - + " DB_TRDAT = GetDate() , " - + " DB_TRUSR = @DB_TRUSR " - + " WHERE 課程企劃編號 = @課程企劃編號" - + " AND 課程序號 = @課程序號"; - AddParam(cmdUpdate, "總評", 總評); - AddParam(cmdUpdate, "備註", 備註); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "課程企劃編號", 課程企劃編號); - AddParam(cmdUpdate, "課程序號", 課程序號); - ExecuteNonQuery(cmdUpdate); - } - - public void ClearTeacher(int 課程企劃編號, int 課程序號, string 講師別) - { - if (SelectOne(課程企劃編號, 課程序號).Count == 0) - return; - - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - "UPDATE " + _tableName - + " SET 講師編號_" + 講師別 + " = null, " - + " 師資來源_" + 講師別 + " = null, " - + " 專業背景_" + 講師別 + " = null, " - + " 講授經驗_" + 講師別 + " = null, " - + " 口碑與評價_" + 講師別 + " = null, " - + " 費用_" + 講師別 + " = null, " - + " 配合度_" + 講師別 + " = null, " - + " 合計_" + 講師別 + " = null, " - + " DB_APPNO = DB_APPNO + 1 , " - + " DB_TRDAT = GetDate() , " - + " DB_TRUSR = @DB_TRUSR " - + " WHERE 課程企劃編號 = @課程企劃編號" - + " AND 課程序號 = @課程序號"; - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "課程企劃編號", 課程企劃編號); - AddParam(cmdUpdate, "課程序號", 課程序號); - ExecuteNonQuery(cmdUpdate); - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteBy課程企劃(int 課程企劃編號) - { - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 講師遴選 - where 1=1 - and 課程企劃編號 = @課程企劃編號"; - AddParam(cmdDelete, "課程企劃編號", 課程企劃編號); - int rowsAffected = ExecuteNonQuery(cmdDelete); - return rowsAffected; - } - - public int Select選定講師(int 課程企劃編號, int 課程序號) - { - 講師遴選List d = SelectOne(課程企劃編號, 課程序號); - - if (d.Count == 0) - return 0; - switch (d[0].選定講師) - { - case 1: - return d[0].講師編號_A; - case 2: - return d[0].講師編號_B; - case 3: - return d[0].講師編號_C; - default: - if (d[0].合計_A >= d[0].合計_B && d[0].合計_A >= d[0].合計_C) - return d[0].講師編號_A; - if (d[0].合計_B >= d[0].合計_A && d[0].合計_B >= d[0].合計_C) - return d[0].講師編號_B; - else - return d[0].講師編號_C; - } - } - - public string Select選定講師名稱(int 課程企劃編號, int 課程序號) - { - 講師遴選List d = SelectOne(課程企劃編號, 課程序號); - - if (d.Count == 0) - return ""; - - int 編號; - string 姓名; - switch (d[0].選定講師) - { - case 1: - 編號 = d[0].講師編號_A; - 姓名 = d[0].講師姓名_A; - break; - case 2: - 編號 = d[0].講師編號_B; - 姓名 = d[0].講師姓名_B; - break; - case 3: - 編號 = d[0].講師編號_C; - 姓名 = d[0].講師姓名_C; - break; - default: - if (d[0].合計_A >= d[0].合計_B && d[0].合計_A >= d[0].合計_C) - { - 編號 = d[0].講師編號_A; - 姓名 = d[0].講師姓名_A; - } - else if (d[0].合計_B >= d[0].合計_A && d[0].合計_B >= d[0].合計_C) - { - 編號 = d[0].講師編號_B; - 姓名 = d[0].講師姓名_B; - } - else - { - 編號 = d[0].講師編號_C; - 姓名 = d[0].講師姓名_C; - } - break; - } - - if (編號 > 0) - return new DAC_講師(conn).Get姓名(編號); - - return 姓名 ?? ""; - } - } - - /// - /// 講師遴選 資料集合類別 - /// - public partial class 講師遴選List : List<講師遴選> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 講師遴選 資料紀錄類別 - /// - public partial class 講師遴選 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_心得報告1.cs b/branches/1150807/DAC/辦訓狀況/DAC_心得報告1.cs deleted file mode 100644 index b6e54e1..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_心得報告1.cs +++ /dev/null @@ -1,422 +0,0 @@ -// -// 這個檔案是 心得報告 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 心得報告 資料存取類別 - /// - [DataObject] - public partial class DAC_心得報告 : WebLib.DAC - { - //private string _tableName = "心得報告"; - private string _select = "select 心得報告編號, 訓練課程企劃編號, 學員編號, 建議, 心得, 上架, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "訓練課程企劃編號, 學員編號, 建議, 心得, 上架, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@訓練課程企劃編號, @學員編號, @建議, @心得, @上架, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 心得報告 "; - 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() - { - 心得報告List result = new 心得報告List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - 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; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public int InsertOne(心得報告 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return -1; - - 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, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - int newId; - ExecuteScalar(cmdInsert, out newId); - AfterInsertOne(value); - ts.Complete(); - return newId; - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(心得報告 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 心得報告List oldValues = SelectOne(value.心得報告編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"心得報告\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_心得報告編號", value.心得報告編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 心得報告編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(心得報告編號, DB_APPNO)) - return -1; - - 心得報告List oldValues = SelectOne(心得報告編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"心得報告\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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(心得報告 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 心得報告List oldValues = SelectOne(value.心得報告編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"心得報告\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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 partial class 心得報告List : List<心得報告>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 心得報告 newItem = new 心得報告(); - newItem.心得報告編號 = DAC.GetInt32(reader[0]); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[1]); - newItem.學員編號 = DAC.GetString(reader[2]); - newItem.建議 = DAC.GetString(reader[3]); - newItem.心得 = DAC.GetString(reader[4]); - newItem.上架 = DAC.GetString(reader[5]); - newItem.DB_APPNO = DAC.GetInt32(reader[6]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[7]); - newItem.DB_CRUSR = DAC.GetString(reader[8]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[9]); - newItem.DB_TRUSR = DAC.GetString(reader[10]); - Add(newItem); - } - } - } - - /// - /// 心得報告 資料紀錄類別 - /// - [Serializable] - public partial class 心得報告 : DataItemBase - { - private int _心得報告編號; - private int _訓練課程企劃編號; - private string _學員編號; - private string _建議; - private string _心得; - private string _上架; - - #region 資料欄位 - /// - /// 心得報告編號 - /// - [DataObjectField(true, false, false)] - 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, 20)] - public string 學員編號 - { - get - { - return _學員編號; - } - set - { - if (value != _學員編號) - { - _學員編號 = value; - OnPropertyChanged("學員編號"); - } - } - } - - /// - /// 建議 - /// - [DataObjectField(false, false, true, 2000)] - public string 建議 - { - get - { - return _建議; - } - set - { - if (value != _建議) - { - _建議 = value; - OnPropertyChanged("建議"); - } - } - } - - /// - /// 心得 - /// - [DataObjectField(false, false, true, 2000)] - public string 心得 - { - get - { - return _心得; - } - set - { - if (value != _心得) - { - _心得 = value; - OnPropertyChanged("心得"); - } - } - } - - /// - /// 上架 - /// - [DataObjectField(false, false, true, 1)] - public string 上架 - { - get - { - return _上架; - } - set - { - if (value != _上架) - { - _上架 = value; - OnPropertyChanged("上架"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_心得報告2.cs b/branches/1150807/DAC/辦訓狀況/DAC_心得報告2.cs deleted file mode 100644 index c1c4d1f..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_心得報告2.cs +++ /dev/null @@ -1,250 +0,0 @@ -// -// 這個檔案是 心得報告 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 心得報告 資料存取類別 - /// - public partial class DAC_心得報告 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 心得報告List Select(bool noInputReturnAll, int 訓練課程企劃編號, string 學員編號) - { - 心得報告List result = new 心得報告List(); - bool noInput = true; - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where; - - if (訓練課程企劃編號 > 0) - { - noInput = false; - cmdSelect.CommandText += " and 訓練課程企劃編號 = @訓練課程企劃編號 "; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - } - - if (學員編號 != null && 學員編號.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 學員編號 like @學員編號 "; - AddParam(cmdSelect, "學員編號", 學員編號 + "%"); - } - - cmdSelect.CommandText += _order; - - if (!noInputReturnAll && noInput) - return result; - - Select(cmdSelect, ref list); - return result; - } - - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(心得報告 value) - { - value.上架 = "N"; - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(心得報告 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(心得報告 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(心得報告 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(心得報告 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(心得報告 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 心得報告編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 心得報告編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - public void Update(int 訓練課程企劃編號, string 學員編號, string 建議, string 心得, string UserId) - { - 心得報告List d = Select(false, 訓練課程企劃編號, 學員編號); - if (d.Count == 0) - { - 心得報告 newValue = new 心得報告(); - newValue.訓練課程企劃編號 = 訓練課程企劃編號; - newValue.學員編號 = 學員編號; - newValue.建議 = 建議; - newValue.心得 = 心得; - newValue.DB_CRUSR = UserId; - InsertOne(newValue); - } - else - { - d[0].建議 = 建議; - d[0].心得 = 心得; - d[0].DB_TRUSR = UserId; - UpdateOne(d[0]); - } - } - - public void 上架(int 心得報告編號, string UserId) - { - 心得報告List d = SelectOne(心得報告編號); - if (d.Count > 0) - { - d[0].上架 = "Y"; - d[0].DB_TRUSR = UserId; - UpdateOne(d[0]); - } - } - - public void 下架(int 心得報告編號, string UserId) - { - 心得報告List d = SelectOne(心得報告編號); - if (d.Count > 0) - { - d[0].上架 = "N"; - d[0].DB_TRUSR = UserId; - UpdateOne(d[0]); - } - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select上架() - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"SELECT A.心得報告編號, A.訓練課程企劃編號, A.學員編號, A.心得, - B.訓練名稱, B.訓練日期, B.訓練日期迄, C.BPNME AS 學員姓名, - ( SELECT COUNT(1) - FROM 心得報告討論 D - WHERE A.心得報告編號=D.心得報告編號 - AND (D.下架 IS NULL OR D.下架 = '' OR D.下架 = 'N') ) AS 討論人數 - FROM 心得報告 A - INNER JOIN 訓練課程企劃 B ON A.訓練課程企劃編號 = B.編號 - INNER JOIN BPSNView C ON A.學員編號 = C.BPENO - WHERE A.上架='Y' - ORDER BY A.心得報告編號 DESC"; - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 心得報告List Select建議(int 訓練課程企劃編號) - { - 心得報告List result = new 心得報告List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 建議 is not null " - + " and 建議 <> '' " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - Select(cmdSelect, ref list); - return result; - } - } - - /// - /// 心得報告 資料集合類別 - /// - public partial class 心得報告List : List<心得報告> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 心得報告 資料紀錄類別 - /// - public partial class 心得報告 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_心得報告討論1.cs b/branches/1150807/DAC/辦訓狀況/DAC_心得報告討論1.cs deleted file mode 100644 index 57ddafa..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_心得報告討論1.cs +++ /dev/null @@ -1,427 +0,0 @@ -// -// 這個檔案是 心得報告討論 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 心得報告討論 資料存取類別 - /// - [DataObject] - public partial class DAC_心得報告討論 : WebLib.DAC - { - private string _tableName = "心得報告討論"; - private string _select = "select 心得報告編號, 樓, 發表人, 發表日期, 內容, 下架, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "心得報告編號, 樓, 發表人, 發表日期, 內容, 下架, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@心得報告編號, @樓, @發表人, @發表日期, @內容, @下架, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 心得報告討論 "; - 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() - { - 心得報告討論List result = new 心得報告討論List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 心得報告討論List SelectOne(int 心得報告編號, int 樓) - { - 心得報告討論List result = new 心得報告討論List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 心得報告編號 = @心得報告編號 " - + " and 樓 = @樓 " - ; - AddParam(cmdSelect, "心得報告編號", 心得報告編號); - AddParam(cmdSelect, "樓", 樓); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(心得報告討論 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 心得報告討論" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(心得報告討論 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 心得報告討論List oldValues = SelectOne(value.心得報告編號, value.樓); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"心得報告討論\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 樓 = @original_樓 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "發表人", value.發表人); - AddParam(cmdUpdate, "發表日期", value.發表日期); - AddParam(cmdUpdate, "內容", value.內容); - AddParam(cmdUpdate, "下架", value.下架); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_心得報告編號", value.心得報告編號); - AddParam(cmdUpdate, "original_樓", value.樓); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 心得報告編號, int 樓, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(心得報告編號, 樓, DB_APPNO)) - return -1; - - 心得報告討論List oldValues = SelectOne(心得報告編號, 樓); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"心得報告討論\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 心得報告討論 - where 1=1 - and 心得報告編號 = @心得報告編號 - and 樓 = @樓 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "心得報告編號", 心得報告編號); - 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(心得報告討論 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 心得報告討論List oldValues = SelectOne(value.心得報告編號, value.樓); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"心得報告討論\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 心得報告討論 - where 1=1 - and 心得報告編號 = @心得報告編號 - and 樓 = @樓 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "心得報告編號", value.心得報告編號); - 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 心得報告編號, int 樓) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 心得報告編號 = @心得報告編號 " - + " and 樓 = @樓 " - ; - AddParam(cmdSelect, "心得報告編號", 心得報告編號); - AddParam(cmdSelect, "樓", 樓); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 心得報告討論 資料集合類別 - /// - public partial class 心得報告討論List : List<心得報告討論>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 心得報告討論 newItem = new 心得報告討論(); - newItem.心得報告編號 = DAC.GetInt32(reader[0]); - newItem.樓 = DAC.GetInt32(reader[1]); - newItem.發表人 = DAC.GetString(reader[2]); - newItem.發表日期 = DAC.GetDateTime(reader[3]); - newItem.內容 = DAC.GetString(reader[4]); - newItem.下架 = DAC.GetString(reader[5]); - newItem.DB_APPNO = DAC.GetInt32(reader[6]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[7]); - newItem.DB_CRUSR = DAC.GetString(reader[8]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[9]); - newItem.DB_TRUSR = DAC.GetString(reader[10]); - Add(newItem); - } - } - } - - /// - /// 心得報告討論 資料紀錄類別 - /// - [Serializable] - public partial class 心得報告討論 : DataItemBase - { - private int _心得報告編號; - private int _樓; - private string _發表人; - private DateTime _發表日期; - private string _內容; - private string _下架; - - #region 資料欄位 - /// - /// 心得報告編號 - /// - [DataObjectField(true, false, false)] - public int 心得報告編號 - { - get - { - return _心得報告編號; - } - set - { - if (value != _心得報告編號) - { - _心得報告編號 = value; - OnPropertyChanged("心得報告編號"); - } - } - } - - /// - /// 樓 - /// - [DataObjectField(true, false, false)] - public int 樓 - { - 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)] - public DateTime 發表日期 - { - get - { - return _發表日期; - } - set - { - if (value != _發表日期) - { - _發表日期 = value; - OnPropertyChanged("發表日期"); - } - } - } - - /// - /// 內容 - /// - [DataObjectField(false, false, true, 2000)] - public string 內容 - { - get - { - return _內容; - } - set - { - if (value != _內容) - { - _內容 = value; - OnPropertyChanged("內容"); - } - } - } - - /// - /// 下架 - /// - [DataObjectField(false, false, true, 1)] - public string 下架 - { - get - { - return _下架; - } - set - { - if (value != _下架) - { - _下架 = value; - OnPropertyChanged("下架"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_心得報告討論2.cs b/branches/1150807/DAC/辦訓狀況/DAC_心得報告討論2.cs deleted file mode 100644 index c4366d9..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_心得報告討論2.cs +++ /dev/null @@ -1,197 +0,0 @@ -// -// 這個檔案是 心得報告討論 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 心得報告討論 資料存取類別 - /// - public partial class DAC_心得報告討論 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(心得報告討論 value) - { - value.樓 = Next樓(value.心得報告編號); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(心得報告討論 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(心得報告討論 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(心得報告討論 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(心得報告討論 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(心得報告討論 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 心得報告編號, int 樓, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 心得報告編號, int 樓, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - public int Next樓(int 心得報告編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select isnull(max(樓), 0) + 1 from " + _tableName + " where 心得報告編號 = @心得報告編號 "; - AddParam(cmdSelect, "心得報告編號", 心得報告編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 心得報告討論List Select整棟(int 心得報告編號, bool 只包含上架) - { - 心得報告討論List result = new 心得報告討論List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 心得報告編號 = @心得報告編號 "; - - if (只包含上架) - cmdSelect.CommandText += " and (下架 is null or 下架 = '' or 下架 = 'N') "; - - cmdSelect.CommandText += " order by 樓 "; - - AddParam(cmdSelect, "心得報告編號", 心得報告編號); - Select(cmdSelect, ref list); - return result; - } - - public int Select討論數(int 心得報告編號, bool 只包含上架) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) from " + _tableName - + " where 心得報告編號 = @心得報告編號 "; - if (只包含上架) - cmdSelect.CommandText += " and (下架 is null or 下架 = '' or 下架 = 'N') "; - AddParam(cmdSelect, "心得報告編號", 心得報告編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - public void 下架(int 心得報告編號, int 樓) - { - 心得報告討論List d = SelectOne(心得報告編號, 樓); - if (d.Count == 0) - return; - d[0].下架 = "Y"; - UpdateOne(d[0]); - } - - public void 上架(int 心得報告編號, int 樓) - { - 心得報告討論List d = SelectOne(心得報告編號, 樓); - if (d.Count == 0) - return; - d[0].下架 = ""; - UpdateOne(d[0]); - } - } - - /// - /// 心得報告討論 資料集合類別 - /// - public partial class 心得報告討論List : List<心得報告討論> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 心得報告討論 資料紀錄類別 - /// - public partial class 心得報告討論 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_教學日誌1.cs b/branches/1150807/DAC/辦訓狀況/DAC_教學日誌1.cs deleted file mode 100644 index 7eb658a..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_教學日誌1.cs +++ /dev/null @@ -1,927 +0,0 @@ -// -// 這個檔案是 教學日誌 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 教學日誌 資料存取類別 - /// - [DataObject] - public partial class DAC_教學日誌 : WebLib.DAC - { - //private string _tableName = "教學日誌"; - private string _select = "select 課程企劃編號, 課程序號, 填表日期, 填表人員, 應到人數, 實到人數, 缺席人數, 教學概要, 學員反應, 異常情形, 處理經過與結果, 課程執行觀察_01, 課程執行觀察_02, 課程執行觀察_03, 課程執行觀察_04, 課程執行觀察_05, 課程執行觀察_06, 課程執行觀察_07, 課程執行觀察_08, 課程執行觀察說明_01, 課程觀察紀錄_1, 課程觀察紀錄_2, 有無異常事項, 是否需後續追蹤, 追蹤事項, 處理結果追蹤, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "課程企劃編號, 課程序號, 填表日期, 填表人員, 應到人數, 實到人數, 缺席人數, 教學概要, 學員反應, 異常情形, 處理經過與結果, 課程執行觀察_01, 課程執行觀察_02, 課程執行觀察_03, 課程執行觀察_04, 課程執行觀察_05, 課程執行觀察_06, 課程執行觀察_07, 課程執行觀察_08, 課程執行觀察說明_01, 課程觀察紀錄_1, 課程觀察紀錄_2, 有無異常事項, 是否需後續追蹤, 追蹤事項, 處理結果追蹤, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@課程企劃編號, @課程序號, @填表日期, @填表人員, @應到人數, @實到人數, @缺席人數, @教學概要, @學員反應, @異常情形, @處理經過與結果, @課程執行觀察_01, @課程執行觀察_02, @課程執行觀察_03, @課程執行觀察_04, @課程執行觀察_05, @課程執行觀察_06, @課程執行觀察_07, @課程執行觀察_08, @課程執行觀察說明_01, @課程觀察紀錄_1, @課程觀察紀錄_2, @有無異常事項, @是否需後續追蹤, @追蹤事項, @處理結果追蹤, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 教學日誌 "; - 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() - { - 教學日誌List result = new 教學日誌List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 教學日誌List SelectOne(int 課程企劃編號, int 課程序號) - { - 教學日誌List result = new 教學日誌List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(教學日誌 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 教學日誌" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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, "課程執行觀察_01", value.課程執行觀察_01); - AddParam(cmdInsert, "課程執行觀察_02", value.課程執行觀察_02); - AddParam(cmdInsert, "課程執行觀察_03", value.課程執行觀察_03); - AddParam(cmdInsert, "課程執行觀察_04", value.課程執行觀察_04); - AddParam(cmdInsert, "課程執行觀察_05", value.課程執行觀察_05); - AddParam(cmdInsert, "課程執行觀察_06", value.課程執行觀察_06); - AddParam(cmdInsert, "課程執行觀察_07", value.課程執行觀察_07); - AddParam(cmdInsert, "課程執行觀察_08", value.課程執行觀察_08); - AddParam(cmdInsert, "課程執行觀察說明_01", value.課程執行觀察說明_01); - AddParam(cmdInsert, "課程觀察紀錄_1", value.課程觀察紀錄_1); - AddParam(cmdInsert, "課程觀察紀錄_2", value.課程觀察紀錄_2); - AddParam(cmdInsert, "有無異常事項", value.有無異常事項); - AddParam(cmdInsert, "是否需後續追蹤", value.是否需後續追蹤); - AddParam(cmdInsert, "追蹤事項", value.追蹤事項); - AddParam(cmdInsert, "處理結果追蹤", value.處理結果追蹤); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if (!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(教學日誌 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 教學日誌List oldValues = SelectOne(value.課程企劃編號, value.課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"教學日誌\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 教學日誌 - set - 填表日期 = @填表日期 , - 填表人員 = @填表人員 , - 應到人數 = @應到人數 , - 實到人數 = @實到人數 , - 缺席人數 = @缺席人數 , - 教學概要 = @教學概要 , - 學員反應 = @學員反應 , - 異常情形 = @異常情形 , - 處理經過與結果 = @處理經過與結果 , - 課程執行觀察_01 = @課程執行觀察_01 , - 課程執行觀察_02 = @課程執行觀察_02 , - 課程執行觀察_03 = @課程執行觀察_03 , - 課程執行觀察_04 = @課程執行觀察_04 , - 課程執行觀察_05 = @課程執行觀察_05 , - 課程執行觀察_06 = @課程執行觀察_06 , - 課程執行觀察_07 = @課程執行觀察_07 , - 課程執行觀察_08 = @課程執行觀察_08 , - 課程執行觀察說明_01 = @課程執行觀察說明_01 , - 課程觀察紀錄_1 = @課程觀察紀錄_1 , - 課程觀察紀錄_2 = @課程觀察紀錄_2 , - 有無異常事項 = @有無異常事項 , - 是否需後續追蹤 = @是否需後續追蹤 , - 追蹤事項 = @追蹤事項 , - 處理結果追蹤 = @處理結果追蹤 , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 課程企劃編號 = @original_課程企劃編號 - 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, "課程執行觀察_01", value.課程執行觀察_01); - AddParam(cmdUpdate, "課程執行觀察_02", value.課程執行觀察_02); - AddParam(cmdUpdate, "課程執行觀察_03", value.課程執行觀察_03); - AddParam(cmdUpdate, "課程執行觀察_04", value.課程執行觀察_04); - AddParam(cmdUpdate, "課程執行觀察_05", value.課程執行觀察_05); - AddParam(cmdUpdate, "課程執行觀察_06", value.課程執行觀察_06); - AddParam(cmdUpdate, "課程執行觀察_07", value.課程執行觀察_07); - AddParam(cmdUpdate, "課程執行觀察_08", value.課程執行觀察_08); - AddParam(cmdUpdate, "課程執行觀察說明_01", value.課程執行觀察說明_01); - AddParam(cmdUpdate, "課程觀察紀錄_1", value.課程觀察紀錄_1); - AddParam(cmdUpdate, "課程觀察紀錄_2", value.課程觀察紀錄_2); - AddParam(cmdUpdate, "有無異常事項", value.有無異常事項); - AddParam(cmdUpdate, "是否需後續追蹤", value.是否需後續追蹤); - AddParam(cmdUpdate, "追蹤事項", value.追蹤事項); - AddParam(cmdUpdate, "處理結果追蹤", value.處理結果追蹤); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_課程企劃編號", value.課程企劃編號); - AddParam(cmdUpdate, "original_課程序號", value.課程序號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if (!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 課程企劃編號, int 課程序號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(課程企劃編號, 課程序號, DB_APPNO)) - return -1; - - 教學日誌List oldValues = SelectOne(課程企劃編號, 課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"教學日誌\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 教學日誌 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", 課程企劃編號); - 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(教學日誌 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 教學日誌List oldValues = SelectOne(value.課程企劃編號, value.課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"教學日誌\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 教學日誌 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", value.課程企劃編號); - 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 課程企劃編號, int 課程序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 教學日誌 資料集合類別 - /// - public partial class 教學日誌List : List<教學日誌>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 教學日誌 newItem = new 教學日誌(); - newItem.課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.課程序號 = DAC.GetInt32(reader[1]); - newItem.填表日期 = DAC.GetDateTime(reader[2]); - newItem.填表人員 = DAC.GetString(reader[3]); - newItem.應到人數 = DAC.GetInt32(reader[4]); - newItem.實到人數 = DAC.GetInt32(reader[5]); - newItem.缺席人數 = DAC.GetInt32(reader[6]); - newItem.教學概要 = DAC.GetString(reader[7]); - newItem.學員反應 = DAC.GetString(reader[8]); - newItem.異常情形 = DAC.GetString(reader[9]); - newItem.處理經過與結果 = DAC.GetString(reader[10]); - newItem.課程執行觀察_01 = DAC.GetString(reader[11]); - newItem.課程執行觀察_02 = DAC.GetString(reader[12]); - newItem.課程執行觀察_03 = DAC.GetString(reader[13]); - newItem.課程執行觀察_04 = DAC.GetString(reader[14]); - newItem.課程執行觀察_05 = DAC.GetString(reader[15]); - newItem.課程執行觀察_06 = DAC.GetString(reader[16]); - newItem.課程執行觀察_07 = DAC.GetString(reader[17]); - newItem.課程執行觀察_08 = DAC.GetString(reader[18]); - newItem.課程執行觀察說明_01 = DAC.GetString(reader[19]); - newItem.課程觀察紀錄_1 = DAC.GetString(reader[20]); - newItem.課程觀察紀錄_2 = DAC.GetString(reader[21]); - newItem.有無異常事項 = DAC.GetString(reader[22]); - newItem.是否需後續追蹤 = DAC.GetString(reader[23]); - newItem.追蹤事項 = DAC.GetString(reader[24]); - newItem.處理結果追蹤 = DAC.GetString(reader[25]); - newItem.DB_APPNO = DAC.GetInt32(reader[26]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[27]); - newItem.DB_CRUSR = DAC.GetString(reader[28]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[29]); - newItem.DB_TRUSR = DAC.GetString(reader[30]); - Add(newItem); - } - } - } - - /// - /// 教學日誌 資料紀錄類別 - /// - [Serializable] - public partial class 教學日誌 : DataItemBase - { - private int _課程企劃編號; - private int _課程序號; - private DateTime _填表日期; - private string _填表人員; - private int _應到人數; - private int _實到人數; - private int _缺席人數; - private string _教學概要; - private string _學員反應; - private string _異常情形; - private string _處理經過與結果; - private string _課程執行觀察_01; - private string _課程執行觀察_02; - private string _課程執行觀察_03; - private string _課程執行觀察_04; - private string _課程執行觀察_05; - private string _課程執行觀察_06; - private string _課程執行觀察_07; - private string _課程執行觀察_08; - private string _課程執行觀察說明_01; - private string _課程觀察紀錄_1; - private string _課程觀察紀錄_2; - private string _有無異常事項; - private string _是否需後續追蹤; - private string _追蹤事項; - private string _處理結果追蹤; - - #region 資料欄位 - /// - /// 課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 課程企劃編號 - { - get - { - return _課程企劃編號; - } - set - { - if (value != _課程企劃編號) - { - _課程企劃編號 = value; - OnPropertyChanged("課程企劃編號"); - } - } - } - - /// - /// 課程序號 - /// - [DataObjectField(true, false, false)] - public int 課程序號 - { - get - { - return _課程序號; - } - set - { - if (value != _課程序號) - { - _課程序號 = value; - OnPropertyChanged("課程序號"); - } - } - } - - /// - /// 填表日期 - /// - [DataObjectField(false, false, true)] - public DateTime 填表日期 - { - 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)] - 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)] - public int 缺席人數 - { - get - { - return _缺席人數; - } - set - { - if (value != _缺席人數) - { - _缺席人數 = value; - OnPropertyChanged("缺席人數"); - } - } - } - - /// - /// 教學概要 - /// - [DataObjectField(false, false, true, 2000)] - public string 教學概要 - { - get - { - return _教學概要; - } - set - { - if (value != _教學概要) - { - _教學概要 = value; - OnPropertyChanged("教學概要"); - } - } - } - - /// - /// 學員反應 - /// - [DataObjectField(false, false, true, 2000)] - public string 學員反應 - { - get - { - return _學員反應; - } - set - { - if (value != _學員反應) - { - _學員反應 = value; - OnPropertyChanged("學員反應"); - } - } - } - - /// - /// 異常情形 - /// - [DataObjectField(false, false, true, 2000)] - public string 異常情形 - { - get - { - return _異常情形; - } - set - { - if (value != _異常情形) - { - _異常情形 = value; - OnPropertyChanged("異常情形"); - } - } - } - - /// - /// 處理經過與結果 - /// - [DataObjectField(false, false, true, 2000)] - public string 處理經過與結果 - { - get - { - return _處理經過與結果; - } - set - { - if (value != _處理經過與結果) - { - _處理經過與結果 = value; - OnPropertyChanged("處理經過與結果"); - } - } - } - - /// - /// 課程執行觀察_01 - /// - [DataObjectField(false, false, true, 1)] - public string 課程執行觀察_01 - { - get - { - return _課程執行觀察_01; - } - set - { - if (value != _課程執行觀察_01) - { - _課程執行觀察_01 = value; - OnPropertyChanged("課程執行觀察_01"); - } - } - } - - /// - /// 課程執行觀察_02 - /// - [DataObjectField(false, false, true, 1)] - public string 課程執行觀察_02 - { - get - { - return _課程執行觀察_02; - } - set - { - if (value != _課程執行觀察_02) - { - _課程執行觀察_02 = value; - OnPropertyChanged("課程執行觀察_02"); - } - } - } - - /// - /// 課程執行觀察_03 - /// - [DataObjectField(false, false, true, 1)] - public string 課程執行觀察_03 - { - get - { - return _課程執行觀察_03; - } - set - { - if (value != _課程執行觀察_03) - { - _課程執行觀察_03 = value; - OnPropertyChanged("課程執行觀察_03"); - } - } - } - - /// - /// 課程執行觀察_04 - /// - [DataObjectField(false, false, true, 1)] - public string 課程執行觀察_04 - { - get - { - return _課程執行觀察_04; - } - set - { - if (value != _課程執行觀察_04) - { - _課程執行觀察_04 = value; - OnPropertyChanged("課程執行觀察_04"); - } - } - } - - /// - /// 課程執行觀察_05 - /// - [DataObjectField(false, false, true, 1)] - public string 課程執行觀察_05 - { - get - { - return _課程執行觀察_05; - } - set - { - if (value != _課程執行觀察_05) - { - _課程執行觀察_05 = value; - OnPropertyChanged("課程執行觀察_05"); - } - } - } - - /// - /// 課程執行觀察_06 - /// - [DataObjectField(false, false, true, 1)] - public string 課程執行觀察_06 - { - get - { - return _課程執行觀察_06; - } - set - { - if (value != _課程執行觀察_06) - { - _課程執行觀察_06 = value; - OnPropertyChanged("課程執行觀察_06"); - } - } - } - - /// - /// 課程執行觀察_07 - /// - [DataObjectField(false, false, true, 1)] - public string 課程執行觀察_07 - { - get - { - return _課程執行觀察_07; - } - set - { - if (value != _課程執行觀察_07) - { - _課程執行觀察_07 = value; - OnPropertyChanged("課程執行觀察_07"); - } - } - } - - /// - /// 課程執行觀察_08 - /// - [DataObjectField(false, false, true, 1)] - public string 課程執行觀察_08 - { - get - { - return _課程執行觀察_08; - } - set - { - if (value != _課程執行觀察_08) - { - _課程執行觀察_08 = value; - OnPropertyChanged("課程執行觀察_08"); - } - } - } - - /// - /// 課程執行觀察說明_01 - /// - [DataObjectField(false, false, true, 200)] - public string 課程執行觀察說明_01 - { - get - { - return _課程執行觀察說明_01; - } - set - { - if (value != _課程執行觀察說明_01) - { - _課程執行觀察說明_01 = value; - OnPropertyChanged("課程執行觀察說明_01"); - } - } - } - - /// - /// 課程觀察紀錄_1 - /// - [DataObjectField(false, false, true, 200)] - public string 課程觀察紀錄_1 - { - get - { - return _課程觀察紀錄_1; - } - set - { - if (value != _課程觀察紀錄_1) - { - _課程觀察紀錄_1 = value; - OnPropertyChanged("課程觀察紀錄_1"); - } - } - } - - /// - /// 課程觀察紀錄_2 - /// - [DataObjectField(false, false, true, 200)] - public string 課程觀察紀錄_2 - { - get - { - return _課程觀察紀錄_2; - } - set - { - if (value != _課程觀察紀錄_2) - { - _課程觀察紀錄_2 = value; - OnPropertyChanged("課程觀察紀錄_2"); - } - } - } - - /// - /// 有無異常事項 - /// - [DataObjectField(false, false, true, 1)] - public string 有無異常事項 - { - get - { - return _有無異常事項; - } - set - { - if (value != _有無異常事項) - { - _有無異常事項 = value; - OnPropertyChanged("有無異常事項"); - } - } - } - - /// - /// 是否需後續追蹤 - /// - [DataObjectField(false, false, true, 1)] - 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, 200)] - public string 處理結果追蹤 - { - get - { - return _處理結果追蹤; - } - set - { - if (value != _處理結果追蹤) - { - _處理結果追蹤 = value; - OnPropertyChanged("處理結果追蹤"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_教學日誌2.cs b/branches/1150807/DAC/辦訓狀況/DAC_教學日誌2.cs deleted file mode 100644 index 22029a6..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_教學日誌2.cs +++ /dev/null @@ -1,180 +0,0 @@ -// -// 這個檔案是 教學日誌 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 教學日誌 資料存取類別 - /// - public partial class DAC_教學日誌 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(教學日誌 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(教學日誌 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(教學日誌 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(教學日誌 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(教學日誌 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(教學日誌 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 課程企劃編號, int 課程序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 課程企劃編號, int 課程序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - - /// - /// 只更新處理結果追蹤欄位 - /// - public void Update處理結果追蹤(int 課程企劃編號, int 課程序號, string 處理結果追蹤) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @"UPDATE 教學日誌 - SET 處理結果追蹤 = @處理結果追蹤, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - WHERE 課程企劃編號 = @課程企劃編號 - AND 課程序號 = @課程序號"; - AddParam(cmd, "處理結果追蹤", 處理結果追蹤); - AddParam(cmd, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmd, "DB_TRUSR", CurrentUserId); - AddParam(cmd, "課程企劃編號", 課程企劃編號); - AddParam(cmd, "課程序號", 課程序號); - ExecuteNonQuery(cmd); - } - - /// - /// 依課程企劃編號查詢所有教學日誌(含課程序號的節次、日期) - /// - public DataTable SelectBy課程企劃(int 課程企劃編號) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = @" - SELECT A.課程企劃編號, A.課程序號, B.節次, B.訓練日期, - A.填表日期, A.填表人員, A.應到人數, A.實到人數, A.缺席人數, - A.教學概要, A.學員反應, - A.課程執行觀察_01, A.課程執行觀察_02, A.課程執行觀察_03, - A.課程執行觀察_04, A.課程執行觀察_05, A.課程執行觀察_06, - A.課程執行觀察_07, A.課程執行觀察_08, A.課程執行觀察說明_01, - A.課程觀察紀錄_1, A.課程觀察紀錄_2, - A.有無異常事項, A.異常情形, A.處理經過與結果, - A.是否需後續追蹤, A.追蹤事項, A.處理結果追蹤 - FROM 教學日誌 A - LEFT JOIN 訓練課程內容 B ON B.訓練課程企劃編號 = A.課程企劃編號 AND B.課程序號 = A.課程序號 - WHERE A.課程企劃編號 = @課程企劃編號 - ORDER BY A.課程序號"; - AddParam(cmd, "課程企劃編號", 課程企劃編號); - return Select(cmd); - } - } - - /// - /// 教學日誌 資料集合類別 - /// - public partial class 教學日誌List : List<教學日誌> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 教學日誌 資料紀錄類別 - /// - public partial class 教學日誌 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_教學日誌選項.cs b/branches/1150807/DAC/辦訓狀況/DAC_教學日誌選項.cs deleted file mode 100644 index 461e6e0..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_教學日誌選項.cs +++ /dev/null @@ -1,408 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.ComponentModel; -using WebLib; - -namespace Education -{ - [DataObject] - public class DAC_教學日誌選項 - { - public DAC_教學日誌選項() - { - } - - #region 課程執行觀察_01 (課程是否依原訂計畫執行) - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察01ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("符合原訂計畫", "1"); - result.Add("部分調整", "2"); - result.Add("未依原訂計畫執行", "3"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察01ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("符合原訂計畫", "1"); - result.Add("部分調整", "2"); - result.Add("未依原訂計畫執行", "3"); - return result; - } - - public static string Get觀察01名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "符合原訂計畫"; - case "2": return "部分調整"; - case "3": return "未依原訂計畫執行"; - default: return ""; - } - } - - #endregion - - #region 課程執行觀察_02 (課程進度) - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察02ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("超前", "1"); - result.Add("符合規劃", "2"); - result.Add("略有落後", "3"); - result.Add("未完成", "4"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察02ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("超前", "1"); - result.Add("符合規劃", "2"); - result.Add("略有落後", "3"); - result.Add("未完成", "4"); - return result; - } - - public static string Get觀察02名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "超前"; - case "2": return "符合規劃"; - case "3": return "略有落後"; - case "4": return "未完成"; - default: return ""; - } - } - - #endregion - - #region 課程執行觀察_03 (講師授課情形) - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察03ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("優良", "1"); - result.Add("良好", "2"); - result.Add("普通", "3"); - result.Add("待改善", "4"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察03ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("優良", "1"); - result.Add("良好", "2"); - result.Add("普通", "3"); - result.Add("待改善", "4"); - return result; - } - - public static string Get觀察03名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "優良"; - case "2": return "良好"; - case "3": return "普通"; - case "4": return "待改善"; - default: return ""; - } - } - - #endregion - - #region 課程執行觀察_04 (學員參與互動) - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察04ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("非常踴躍", "1"); - result.Add("踴躍", "2"); - result.Add("普通", "3"); - result.Add("不佳", "4"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察04ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("非常踴躍", "1"); - result.Add("踴躍", "2"); - result.Add("普通", "3"); - result.Add("不佳", "4"); - return result; - } - - public static string Get觀察04名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "非常踴躍"; - case "2": return "踴躍"; - case "3": return "普通"; - case "4": return "不佳"; - default: return ""; - } - } - - #endregion - - #region 課程執行觀察_05 (學員學習投入) - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察05ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("積極投入", "1"); - result.Add("大多投入", "2"); - result.Add("部分投入", "3"); - result.Add("投入度不足", "4"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察05ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("積極投入", "1"); - result.Add("大多投入", "2"); - result.Add("部分投入", "3"); - result.Add("投入度不足", "4"); - return result; - } - - public static string Get觀察05名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "積極投入"; - case "2": return "大多投入"; - case "3": return "部分投入"; - case "4": return "投入度不足"; - default: return ""; - } - } - - #endregion - - #region 課程執行觀察_06 (學員課堂回應情形) - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察06ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("能主動分享工作經驗或案例", "1"); - result.Add("能回應提問並連結工作情境", "2"); - result.Add("經引導後能連結工作情境", "3"); - result.Add("未觀察到相關回應", "4"); - result.Add("不適用", "5"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察06ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("能主動分享工作經驗或案例", "1"); - result.Add("能回應提問並連結工作情境", "2"); - result.Add("經引導後能連結工作情境", "3"); - result.Add("未觀察到相關回應", "4"); - result.Add("不適用", "5"); - return result; - } - - public static string Get觀察06名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "能主動分享工作經驗或案例"; - case "2": return "能回應提問並連結工作情境"; - case "3": return "經引導後能連結工作情境"; - case "4": return "未觀察到相關回應"; - case "5": return "不適用"; - default: return ""; - } - } - - #endregion - - #region 課程執行觀察_07 (實作/活動完成情形) - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察07ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("全數完成", "1"); - result.Add("大部分完成", "2"); - result.Add("部分完成", "3"); - result.Add("未完成", "4"); - result.Add("不適用", "5"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察07ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("全數完成", "1"); - result.Add("大部分完成", "2"); - result.Add("部分完成", "3"); - result.Add("未完成", "4"); - result.Add("不適用", "5"); - return result; - } - - public static string Get觀察07名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "全數完成"; - case "2": return "大部分完成"; - case "3": return "部分完成"; - case "4": return "未完成"; - case "5": return "不適用"; - default: return ""; - } - } - - #endregion - - #region 課程執行觀察_08 (教學設備及場地) - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察08ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("正常", "1"); - result.Add("輕微異常", "2"); - result.Add("影響授課", "3"); - result.Add("無法使用", "4"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select觀察08ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("正常", "1"); - result.Add("輕微異常", "2"); - result.Add("影響授課", "3"); - result.Add("無法使用", "4"); - return result; - } - - public static string Get觀察08名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "正常"; - case "2": return "輕微異常"; - case "3": return "影響授課"; - case "4": return "無法使用"; - default: return ""; - } - } - - #endregion - - #region 有無異常事項 - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select有無異常事項ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("有", "1"); - result.Add("無", "0"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select有無異常事項ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("有", "1"); - result.Add("無", "0"); - return result; - } - - public static string Get有無異常事項名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "有"; - case "0": return "無"; - default: return ""; - } - } - - #endregion - - #region 是否需後續追蹤 - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select是否需後續追蹤ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("否,異常狀況順利解決,本案已結案", "0"); - result.Add("是,未順利解決,建議於課後舉行檢討會議進行討論", "1"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select是否需後續追蹤ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("否,異常狀況順利解決,本案已結案", "0"); - result.Add("是,未順利解決,建議於課後舉行檢討會議進行討論", "1"); - return result; - } - - public static string Get是否需後續追蹤名稱(object id) - { - switch (DAC.GetString(id)) - { - case "0": return "否,異常狀況順利解決,本案已結案"; - case "1": return "是,未順利解決,建議於課後舉行檢討會議進行討論"; - default: return ""; - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_檢討報告改善措施選項.cs b/branches/1150807/DAC/辦訓狀況/DAC_檢討報告改善措施選項.cs deleted file mode 100644 index a4d4409..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_檢討報告改善措施選項.cs +++ /dev/null @@ -1,250 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.ComponentModel; -using WebLib; - -namespace Education -{ - [DataObject] - public class DAC_檢討報告改善措施選項 - { - public DAC_檢討報告改善措施選項() - { - } - - #region 改善作法 (所有類別共用) - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select改善作法ForDropDown() - { - NameValueList result = new NameValueList(); - result.Add("(請選擇)", ""); - result.Add("納入下次課程", "1"); - result.Add("修訂教材", "2"); - result.Add("修訂表單", "3"); - result.Add("修訂SOP", "4"); - result.Add("修訂訓練品質手冊", "5"); - result.Add("其他", "9"); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select改善作法ForList() - { - NameValueList result = new NameValueList(); - result.Add("", ""); - result.Add("納入下次課程", "1"); - result.Add("修訂教材", "2"); - result.Add("修訂表單", "3"); - result.Add("修訂SOP", "4"); - result.Add("修訂訓練品質手冊", "5"); - result.Add("其他", "9"); - return result; - } - - public static string Get改善作法名稱(object id) - { - switch (DAC.GetString(id)) - { - case "1": return "納入下次課程"; - case "2": return "修訂教材"; - case "3": return "修訂表單"; - case "4": return "修訂SOP"; - case "5": return "修訂訓練品質手冊"; - case "9": return "其他"; - default: return ""; - } - } - - #endregion - - #region 改善內容_學員 - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select改善內容_學員ForCheckBox() - { - NameValueList result = new NameValueList(); - result.Add("加強課前提醒", "1"); - result.Add("增加案例分享", "2"); - result.Add("增加實作練習", "3"); - result.Add("提供課後學習資源", "4"); - result.Add("其他", "9"); - return result; - } - - public static string Get改善內容_學員名稱(object id) - { - return Get改善內容名稱(id, new Dictionary - { - { "1", "加強課前提醒" }, - { "2", "增加案例分享" }, - { "3", "增加實作練習" }, - { "4", "提供課後學習資源" }, - { "9", "其他" } - }); - } - - #endregion - - #region 改善內容_講師 - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select改善內容_講師ForCheckBox() - { - NameValueList result = new NameValueList(); - result.Add("調整授課節奏", "1"); - result.Add("加強重點說明", "2"); - result.Add("增加課堂互動", "3"); - result.Add("課前確認授課需求", "4"); - result.Add("其他", "9"); - return result; - } - - public static string Get改善內容_講師名稱(object id) - { - return Get改善內容名稱(id, new Dictionary - { - { "1", "調整授課節奏" }, - { "2", "加強重點說明" }, - { "3", "增加課堂互動" }, - { "4", "課前確認授課需求" }, - { "9", "其他" } - }); - } - - #endregion - - #region 改善內容_教材及教具 - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select改善內容_教材及教具ForCheckBox() - { - NameValueList result = new NameValueList(); - result.Add("修正教材內容", "1"); - result.Add("更新教材資料", "2"); - result.Add("增加教具輔助", "3"); - result.Add("提供電子教材", "4"); - result.Add("其他", "9"); - return result; - } - - public static string Get改善內容_教材及教具名稱(object id) - { - return Get改善內容名稱(id, new Dictionary - { - { "1", "修正教材內容" }, - { "2", "更新教材資料" }, - { "3", "增加教具輔助" }, - { "4", "提供電子教材" }, - { "9", "其他" } - }); - } - - #endregion - - #region 改善內容_教學方法 - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select改善內容_教學方法ForCheckBox() - { - NameValueList result = new NameValueList(); - result.Add("增加案例討論", "1"); - result.Add("增加分組互動", "2"); - result.Add("增加實作演練", "3"); - result.Add("調整教學方式", "4"); - result.Add("其他", "9"); - return result; - } - - public static string Get改善內容_教學方法名稱(object id) - { - return Get改善內容名稱(id, new Dictionary - { - { "1", "增加案例討論" }, - { "2", "增加分組互動" }, - { "3", "增加實作演練" }, - { "4", "調整教學方式" }, - { "9", "其他" } - }); - } - - #endregion - - #region 改善內容_場地及設備 - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select改善內容_場地及設備ForCheckBox() - { - NameValueList result = new NameValueList(); - result.Add("調整教室配置", "1"); - result.Add("增加設備數量", "2"); - result.Add("提前測試設備", "3"); - result.Add("改善上課環境", "4"); - result.Add("其他", "9"); - return result; - } - - public static string Get改善內容_場地及設備名稱(object id) - { - return Get改善內容名稱(id, new Dictionary - { - { "1", "調整教室配置" }, - { "2", "增加設備數量" }, - { "3", "提前測試設備" }, - { "4", "改善上課環境" }, - { "9", "其他" } - }); - } - - #endregion - - #region 改善內容_行政流程 - - [DataObjectMethod(DataObjectMethodType.Select)] - public NameValueList Select改善內容_行政流程ForCheckBox() - { - NameValueList result = new NameValueList(); - result.Add("提前通知資訊", "1"); - result.Add("調整報到流程", "2"); - result.Add("強化行政協助", "3"); - result.Add("加強課後追蹤", "4"); - result.Add("其他", "9"); - return result; - } - - public static string Get改善內容_行政流程名稱(object id) - { - return Get改善內容名稱(id, new Dictionary - { - { "1", "提前通知資訊" }, - { "2", "調整報到流程" }, - { "3", "強化行政協助" }, - { "4", "加強課後追蹤" }, - { "9", "其他" } - }); - } - - #endregion - - #region 輔助方法 - - private static string Get改善內容名稱(object id, Dictionary map) - { - string s = DAC.GetString(id); - if (string.IsNullOrEmpty(s)) return ""; - string[] values = s.Split(','); - List labels = new List(); - foreach (string v in values) - { - string trimmed = v.Trim(); - if (map.ContainsKey(trimmed)) - labels.Add(map[trimmed]); - } - return string.Join(", ", labels.ToArray()); - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查1.cs b/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查1.cs deleted file mode 100644 index bc6e402..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查1.cs +++ /dev/null @@ -1,418 +0,0 @@ -// -// 這個檔案是 滿意度調查 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 滿意度調查 資料存取類別 - /// - [DataObject] - public partial class DAC_滿意度調查 : WebLib.DAC - { - private string _tableName = "滿意度調查"; - private string _select = "select 訓練課程企劃編號, 學員編號, 課程序號, 題目編號, 分數, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "訓練課程企劃編號, 學員編號, 課程序號, 題目編號, 分數, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@訓練課程企劃編號, @學員編號, @課程序號, @題目編號, @分數, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 滿意度調查 "; - 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() - { - 滿意度調查List result = new 滿意度調查List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 滿意度調查List SelectOne(int 訓練課程企劃編號, string 學員編號, int 課程序號, int 題目編號) - { - 滿意度調查List result = new 滿意度調查List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - + " and 課程序號 = @課程序號 " - + " and 題目編號 = @題目編號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "課程序號", 課程序號); - AddParam(cmdSelect, "題目編號", 題目編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(滿意度調查 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 滿意度調查" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(滿意度調查 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 滿意度調查List oldValues = SelectOne(value.訓練課程企劃編號, value.學員編號, value.課程序號, value.題目編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"滿意度調查\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 學員編號 = @original_學員編號 - and 課程序號 = @original_課程序號 - and 題目編號 = @original_題目編號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "分數", value.分數); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdUpdate, "original_學員編號", value.學員編號); - AddParam(cmdUpdate, "original_課程序號", value.課程序號); - AddParam(cmdUpdate, "original_題目編號", value.題目編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 訓練課程企劃編號, string 學員編號, int 課程序號, int 題目編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(訓練課程企劃編號, 學員編號, 課程序號, 題目編號, DB_APPNO)) - return -1; - - 滿意度調查List oldValues = SelectOne(訓練課程企劃編號, 學員編號, 課程序號, 題目編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"滿意度調查\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 滿意度調查 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 學員編號 = @學員編號 - and 課程序號 = @課程序號 - and 題目編號 = @題目編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdDelete, "學員編號", 學員編號); - AddParam(cmdDelete, "課程序號", 課程序號); - 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(滿意度調查 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 滿意度調查List oldValues = SelectOne(value.訓練課程企劃編號, value.學員編號, value.課程序號, value.題目編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"滿意度調查\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 滿意度調查 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 學員編號 = @學員編號 - and 課程序號 = @課程序號 - and 題目編號 = @題目編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdDelete, "學員編號", value.學員編號); - AddParam(cmdDelete, "課程序號", value.課程序號); - 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 訓練課程企劃編號, string 學員編號, int 課程序號, int 題目編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - + " and 課程序號 = @課程序號 " - + " and 題目編號 = @題目編號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "課程序號", 課程序號); - AddParam(cmdSelect, "題目編號", 題目編號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 滿意度調查 資料集合類別 - /// - public partial class 滿意度調查List : List<滿意度調查>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 滿意度調查 newItem = new 滿意度調查(); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.學員編號 = DAC.GetString(reader[1]); - newItem.課程序號 = DAC.GetInt32(reader[2]); - newItem.題目編號 = DAC.GetInt32(reader[3]); - newItem.分數 = DAC.GetInt32(reader[4]); - newItem.DB_APPNO = DAC.GetInt32(reader[5]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[6]); - newItem.DB_CRUSR = DAC.GetString(reader[7]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[8]); - newItem.DB_TRUSR = DAC.GetString(reader[9]); - Add(newItem); - } - } - } - - /// - /// 滿意度調查 資料紀錄類別 - /// - [Serializable] - public partial class 滿意度調查 : DataItemBase - { - private int _訓練課程企劃編號; - private string _學員編號; - private int _課程序號; - private int _題目編號; - private int _分數; - - #region 資料欄位 - /// - /// 訓練課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - /// - /// 學員編號 - /// - [DataObjectField(true, false, false, 20)] - public string 學員編號 - { - get - { - return _學員編號; - } - set - { - if (value != _學員編號) - { - _學員編號 = value; - OnPropertyChanged("學員編號"); - } - } - } - - /// - /// 課程序號(0 代表其他評價) - /// - [DataObjectField(true, false, false)] - public int 課程序號 - { - get - { - return _課程序號; - } - set - { - if (value != _課程序號) - { - _課程序號 = value; - OnPropertyChanged("課程序號"); - } - } - } - - /// - /// 題目編號 - /// - [DataObjectField(true, false, false)] - public int 題目編號 - { - get - { - return _題目編號; - } - set - { - if (value != _題目編號) - { - _題目編號 = value; - OnPropertyChanged("題目編號"); - } - } - } - - /// - /// 分數 - /// - [DataObjectField(false, false, true)] - public int 分數 - { - get - { - return _分數; - } - set - { - if (value != _分數) - { - _分數 = value; - OnPropertyChanged("分數"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查2.cs b/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查2.cs deleted file mode 100644 index b3af246..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查2.cs +++ /dev/null @@ -1,214 +0,0 @@ -// -// 這個檔案是 滿意度調查 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 滿意度調查 資料存取類別 - /// - public partial class DAC_滿意度調查 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(滿意度調查 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(滿意度調查 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(滿意度調查 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(滿意度調查 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(滿意度調查 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(滿意度調查 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 訓練課程企劃編號, string 學員編號, int 課程序號, int 題目編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 訓練課程企劃編號, string 學員編號, int 課程序號, int 題目編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - public void Update(int 訓練課程企劃編號, string 學員編號, int 課程序號, int 題目編號, int 分數, string UserId) - { - 滿意度調查List d = SelectOne(訓練課程企劃編號, 學員編號, 課程序號, 題目編號); - if (d.Count == 0) - { - 滿意度調查 newValue = new 滿意度調查(); - newValue.訓練課程企劃編號 = 訓練課程企劃編號; - newValue.學員編號 = 學員編號; - newValue.課程序號 = 課程序號; - newValue.題目編號 = 題目編號; - newValue.分數 = 分數; - newValue.DB_CRUSR = UserId; - InsertOne(newValue); - } - else - { - d[0].分數 = 分數; - d[0].DB_TRUSR = UserId; - UpdateOne(d[0]); - } - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 滿意度調查List Select(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; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 滿意度調查List Select(int 訓練課程企劃編號, string 學員編號) - { - 滿意度調查List result = new 滿意度調查List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "學員編號", 學員編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public void Delete(int 訓練課程企劃編號, string 學員編號) - { - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = "delete from " + _tableName - + " where 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdDelete, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdDelete, "學員編號", 學員編號); - ExecuteNonQuery(cmdDelete); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select滿意度分析(int 訓練課程企劃編號, int 課程序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select * from 滿意度分析View " - + " where 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "課程序號", 課程序號); - return Select(cmdSelect); - } - - } - - /// - /// 滿意度調查 資料集合類別 - /// - public partial class 滿意度調查List : List<滿意度調查> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 滿意度調查 資料紀錄類別 - /// - public partial class 滿意度調查 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查課程企劃1.cs b/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查課程企劃1.cs deleted file mode 100644 index 5046525..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查課程企劃1.cs +++ /dev/null @@ -1,552 +0,0 @@ -// -// 這個檔案是 滿意度調查課程企劃 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 滿意度調查課程企劃 資料存取類別 - /// - [DataObject] - public partial class DAC_滿意度調查課程企劃 : WebLib.DAC - { - //private string _tableName = "滿意度調查課程企劃"; - private string _select = "select 訓練課程企劃編號, 學員編號, 場地編號, 場地滿意度填答, 場地滿意度分數, 行政滿意度填答, 行政滿意度分數, 餐點滿意度填答, 餐點滿意度分數, 整體滿意度填答, 整體滿意度分數, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "訓練課程企劃編號, 學員編號, 場地編號, 場地滿意度填答, 場地滿意度分數, 行政滿意度填答, 行政滿意度分數, 餐點滿意度填答, 餐點滿意度分數, 整體滿意度填答, 整體滿意度分數, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@訓練課程企劃編號, @學員編號, @場地編號, @場地滿意度填答, @場地滿意度分數, @行政滿意度填答, @行政滿意度分數, @餐點滿意度填答, @餐點滿意度分數, @整體滿意度填答, @整體滿意度分數, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 滿意度調查課程企劃 "; - 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() - { - 滿意度調查課程企劃List result = new 滿意度調查課程企劃List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 滿意度調查課程企劃List SelectOne(int 訓練課程企劃編號, string 學員編號) - { - 滿意度調查課程企劃List result = new 滿意度調查課程企劃List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "學員編號", 學員編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(滿意度調查課程企劃 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 滿意度調查課程企劃" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(滿意度調查課程企劃 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 滿意度調查課程企劃List oldValues = SelectOne(value.訓練課程企劃編號, value.學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"滿意度調查課程企劃\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 學員編號 = @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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdUpdate, "original_學員編號", value.學員編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 訓練課程企劃編號, string 學員編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(訓練課程企劃編號, 學員編號, DB_APPNO)) - return -1; - - 滿意度調查課程企劃List oldValues = SelectOne(訓練課程企劃編號, 學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"滿意度調查課程企劃\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 滿意度調查課程企劃 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 學員編號 = @學員編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", 訓練課程企劃編號); - 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(滿意度調查課程企劃 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 滿意度調查課程企劃List oldValues = SelectOne(value.訓練課程企劃編號, value.學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"滿意度調查課程企劃\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 滿意度調查課程企劃 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 學員編號 = @學員編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", value.訓練課程企劃編號); - 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 訓練課程企劃編號, string 學員編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "學員編號", 學員編號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 滿意度調查課程企劃 資料集合類別 - /// - public partial class 滿意度調查課程企劃List : List<滿意度調查課程企劃>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 滿意度調查課程企劃 newItem = new 滿意度調查課程企劃(); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.學員編號 = DAC.GetString(reader[1]); - newItem.場地編號 = DAC.GetInt32(reader[2]); - newItem.場地滿意度填答 = DAC.GetInt32(reader[3]); - newItem.場地滿意度分數 = DAC.GetInt32(reader[4]); - newItem.行政滿意度填答 = DAC.GetInt32(reader[5]); - newItem.行政滿意度分數 = DAC.GetInt32(reader[6]); - newItem.餐點滿意度填答 = DAC.GetInt32(reader[7]); - newItem.餐點滿意度分數 = DAC.GetInt32(reader[8]); - newItem.整體滿意度填答 = DAC.GetInt32(reader[9]); - newItem.整體滿意度分數 = DAC.GetInt32(reader[10]); - newItem.DB_APPNO = DAC.GetInt32(reader[11]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[12]); - newItem.DB_CRUSR = DAC.GetString(reader[13]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[14]); - newItem.DB_TRUSR = DAC.GetString(reader[15]); - Add(newItem); - } - } - } - - /// - /// 滿意度調查課程企劃 資料紀錄類別 - /// - [Serializable] - public partial class 滿意度調查課程企劃 : DataItemBase - { - private int _訓練課程企劃編號; - private string _學員編號; - private int _場地編號; - private int _場地滿意度填答; - private int _場地滿意度分數; - private int _行政滿意度填答; - private int _行政滿意度分數; - private int _餐點滿意度填答; - private int _餐點滿意度分數; - private int _整體滿意度填答; - private int _整體滿意度分數; - - #region 資料欄位 - /// - /// 訓練課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - /// - /// 學員編號 - /// - [DataObjectField(true, false, false, 20)] - 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)] - 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)] - 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)] - 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)] - public int 整體滿意度分數 - { - get - { - return _整體滿意度分數; - } - set - { - if (value != _整體滿意度分數) - { - _整體滿意度分數 = value; - OnPropertyChanged("整體滿意度分數"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查課程企劃2.cs b/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查課程企劃2.cs deleted file mode 100644 index c05aea9..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查課程企劃2.cs +++ /dev/null @@ -1,204 +0,0 @@ -// -// 這個檔案是 滿意度調查課程企劃 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 滿意度調查課程企劃 資料存取類別 - /// - public partial class DAC_滿意度調查課程企劃 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(滿意度調查課程企劃 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(滿意度調查課程企劃 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(滿意度調查課程企劃 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(滿意度調查課程企劃 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(滿意度調查課程企劃 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(滿意度調查課程企劃 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 訓練課程企劃編號, string 學員編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 訓練課程企劃編號, string 學員編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - public void Update(int 訓練課程企劃編號, string 學員編號, string UserId) - { - DAC_滿意度調查 Dao滿意度調查 = new DAC_滿意度調查(); - - 滿意度調查List d1 = Dao滿意度調查.SelectOne(訓練課程企劃編號, 學員編號, 0, 1); - 滿意度調查List d2 = Dao滿意度調查.SelectOne(訓練課程企劃編號, 學員編號, 0, 2); - 滿意度調查List d3 = Dao滿意度調查.SelectOne(訓練課程企劃編號, 學員編號, 0, 3); - 滿意度調查List d4 = Dao滿意度調查.SelectOne(訓練課程企劃編號, 學員編號, 0, 4); - - int 場地滿意度填答 = 0; - int 行政滿意度填答 = 0; - int 餐點滿意度填答 = 0; - int 整體滿意度填答 = 0; - - if (d1.Count > 0) - 行政滿意度填答 = d1[0].分數; - if (d2.Count > 0) - 餐點滿意度填答 = d2[0].分數; - if (d3.Count > 0) - 場地滿意度填答 = d3[0].分數; - if (d4.Count > 0) - 整體滿意度填答 = d4[0].分數; - - 滿意度調查課程企劃List d = SelectOne(訓練課程企劃編號, 學員編號); - if (d.Count == 0) - { - 滿意度調查課程企劃 newValue = new 滿意度調查課程企劃(); - newValue.訓練課程企劃編號 = 訓練課程企劃編號; - newValue.學員編號 = 學員編號; - newValue.場地編號 = new DAC_訓練課程企劃(conn).Select選定場地(訓練課程企劃編號); - newValue.場地滿意度填答 = 場地滿意度填答; - newValue.場地滿意度分數 = 場地滿意度填答 * 20; - newValue.行政滿意度填答 = 行政滿意度填答; - newValue.行政滿意度分數 = 行政滿意度填答 * 20; - newValue.餐點滿意度填答 = 餐點滿意度填答; - newValue.餐點滿意度分數 = 餐點滿意度填答 * 20; - newValue.整體滿意度填答 = 整體滿意度填答; - newValue.整體滿意度分數 = 整體滿意度填答 * 20; - newValue.DB_CRUSR = UserId; - InsertOne(newValue); - } - else - { - d[0].場地滿意度填答 = 場地滿意度填答; - d[0].場地滿意度分數 = 場地滿意度填答 * 20; - d[0].行政滿意度填答 = 行政滿意度填答; - d[0].行政滿意度分數 = 行政滿意度填答 * 20; - d[0].餐點滿意度填答 = 餐點滿意度填答; - d[0].餐點滿意度分數 = 餐點滿意度填答 * 20; - d[0].整體滿意度填答 = 整體滿意度填答; - d[0].整體滿意度分數 = 整體滿意度填答 * 20; - d[0].DB_TRUSR = UserId; - UpdateOne(d[0]); - } - } - - public DataTable Select滿意度統計(int 訓練課程企劃編號) - { - DbCommand cmdSelect = NewCommand( - @"SELECT - (SELECT ISNULL(AVG(CAST(行政滿意度分數 AS FLOAT)), 0) FROM 滿意度調查課程企劃 WHERE 訓練課程企劃編號 = @訓練課程企劃編號) AS 行政滿意度, - (SELECT ISNULL(AVG(CAST(餐點滿意度分數 AS FLOAT)), 0) FROM 滿意度調查課程企劃 WHERE 訓練課程企劃編號 = @訓練課程企劃編號) AS 餐點滿意度, - (SELECT ISNULL(AVG(CAST(場地滿意度分數 AS FLOAT)), 0) FROM 滿意度調查課程企劃 WHERE 訓練課程企劃編號 = @訓練課程企劃編號) AS 場地滿意度, - (SELECT ISNULL(AVG(CAST(整體滿意度分數 AS FLOAT)), 0) FROM 滿意度調查課程企劃 WHERE 訓練課程企劃編號 = @訓練課程企劃編號) AS 整體滿意度, - (SELECT COUNT(1) FROM 滿意度調查課程企劃 WHERE 訓練課程企劃編號 = @訓練課程企劃編號) AS 回收數 "); - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - return Select(cmdSelect); - } - } - - /// - /// 滿意度調查課程企劃 資料集合類別 - /// - public partial class 滿意度調查課程企劃List : List<滿意度調查課程企劃> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 滿意度調查課程企劃 資料紀錄類別 - /// - public partial class 滿意度調查課程企劃 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查講師1.cs b/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查講師1.cs deleted file mode 100644 index 3dffc36..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查講師1.cs +++ /dev/null @@ -1,485 +0,0 @@ -// -// 這個檔案是 滿意度調查講師 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 滿意度調查講師 資料存取類別 - /// - [DataObject] - public partial class DAC_滿意度調查講師 : WebLib.DAC - { - //private string _tableName = "滿意度調查講師"; - private string _select = "select 訓練課程企劃編號, 學員編號, 課程序號, 講師編號, 授課方式填答, 授課方式分數, 專業知識填答, 專業知識分數, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "訓練課程企劃編號, 學員編號, 課程序號, 講師編號, 授課方式填答, 授課方式分數, 專業知識填答, 專業知識分數, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@訓練課程企劃編號, @學員編號, @課程序號, @講師編號, @授課方式填答, @授課方式分數, @專業知識填答, @專業知識分數, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 滿意度調查講師 "; - 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() - { - 滿意度調查講師List result = new 滿意度調查講師List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 滿意度調查講師List SelectOne(int 訓練課程企劃編號, string 學員編號, int 課程序號) - { - 滿意度調查講師List result = new 滿意度調查講師List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "課程序號", 課程序號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(滿意度調查講師 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 滿意度調查講師" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(滿意度調查講師 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 滿意度調查講師List oldValues = SelectOne(value.訓練課程企劃編號, value.學員編號, value.課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"滿意度調查講師\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 學員編號 = @original_學員編號 - 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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdUpdate, "original_學員編號", value.學員編號); - AddParam(cmdUpdate, "original_課程序號", value.課程序號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 訓練課程企劃編號, string 學員編號, int 課程序號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(訓練課程企劃編號, 學員編號, 課程序號, DB_APPNO)) - return -1; - - 滿意度調查講師List oldValues = SelectOne(訓練課程企劃編號, 學員編號, 課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"滿意度調查講師\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 滿意度調查講師 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 學員編號 = @學員編號 - and 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdDelete, "學員編號", 學員編號); - 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(滿意度調查講師 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 滿意度調查講師List oldValues = SelectOne(value.訓練課程企劃編號, value.學員編號, value.課程序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"滿意度調查講師\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 滿意度調查講師 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 學員編號 = @學員編號 - and 課程序號 = @課程序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdDelete, "學員編號", value.學員編號); - 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 訓練課程企劃編號, string 學員編號, int 課程序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - + " and 課程序號 = @課程序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "課程序號", 課程序號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 滿意度調查講師 資料集合類別 - /// - public partial class 滿意度調查講師List : List<滿意度調查講師>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 滿意度調查講師 newItem = new 滿意度調查講師(); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.學員編號 = DAC.GetString(reader[1]); - newItem.課程序號 = DAC.GetInt32(reader[2]); - newItem.講師編號 = DAC.GetInt32(reader[3]); - newItem.授課方式填答 = DAC.GetInt32(reader[4]); - newItem.授課方式分數 = DAC.GetInt32(reader[5]); - newItem.專業知識填答 = DAC.GetInt32(reader[6]); - newItem.專業知識分數 = DAC.GetInt32(reader[7]); - newItem.DB_APPNO = DAC.GetInt32(reader[8]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[9]); - newItem.DB_CRUSR = DAC.GetString(reader[10]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[11]); - newItem.DB_TRUSR = DAC.GetString(reader[12]); - Add(newItem); - } - } - } - - /// - /// 滿意度調查講師 資料紀錄類別 - /// - [Serializable] - public partial class 滿意度調查講師 : DataItemBase - { - private int _訓練課程企劃編號; - private string _學員編號; - private int _課程序號; - private int _講師編號; - private int _授課方式填答; - private int _授課方式分數; - private int _專業知識填答; - private int _專業知識分數; - - #region 資料欄位 - /// - /// 訓練課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - /// - /// 學員編號 - /// - [DataObjectField(true, false, false, 20)] - public string 學員編號 - { - get - { - return _學員編號; - } - set - { - if (value != _學員編號) - { - _學員編號 = value; - OnPropertyChanged("學員編號"); - } - } - } - - /// - /// 課程序號 - /// - [DataObjectField(true, false, false)] - 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)] - 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)] - public int 專業知識填答 - { - get - { - return _專業知識填答; - } - set - { - if (value != _專業知識填答) - { - _專業知識填答 = value; - OnPropertyChanged("專業知識填答"); - } - } - } - - /// - /// 專業知識分數 - /// - [DataObjectField(false, false, true)] - public int 專業知識分數 - { - get - { - return _專業知識分數; - } - set - { - if (value != _專業知識分數) - { - _專業知識分數 = value; - OnPropertyChanged("專業知識分數"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查講師2.cs b/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查講師2.cs deleted file mode 100644 index 9b6288a..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_滿意度調查講師2.cs +++ /dev/null @@ -1,204 +0,0 @@ -// -// 這個檔案是 滿意度調查講師 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 滿意度調查講師 資料存取類別 - /// - public partial class DAC_滿意度調查講師 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(滿意度調查講師 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(滿意度調查講師 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(滿意度調查講師 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(滿意度調查講師 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(滿意度調查講師 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(滿意度調查講師 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 訓練課程企劃編號, string 學員編號, int 課程序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 訓練課程企劃編號, string 學員編號, int 課程序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - public void Update(int 訓練課程企劃編號, string 學員編號, int 課程序號, string UserId) - { - DAC_滿意度調查 Dao滿意度調查 = new DAC_滿意度調查(); - - 滿意度調查List d1 = Dao滿意度調查.SelectOne(訓練課程企劃編號, 學員編號, 課程序號, 2); - 滿意度調查List d2 = Dao滿意度調查.SelectOne(訓練課程企劃編號, 學員編號, 課程序號, 3); - - int 授課方式填答 = 0; - int 專業知識填答 = 0; - - if (d1.Count > 0) - 授課方式填答 = d1[0].分數; - if (d2.Count > 0) - 專業知識填答 = d2[0].分數; - - int 講師編號 = new DAC_訓練課程企劃(conn).Select選定講師(訓練課程企劃編號, 課程序號); - - 滿意度調查講師List d = SelectOne(訓練課程企劃編號, 學員編號, 課程序號); - if (d.Count == 0) - { - 滿意度調查講師 newValue = new 滿意度調查講師(); - newValue.訓練課程企劃編號 = 訓練課程企劃編號; - newValue.學員編號 = 學員編號; - newValue.課程序號 = 課程序號; - newValue.講師編號 = 講師編號; - newValue.授課方式填答 = 授課方式填答; - newValue.授課方式分數 = 授課方式填答 * 20; - newValue.專業知識填答 = 專業知識填答; - newValue.專業知識分數 = 專業知識填答 * 20; - newValue.DB_CRUSR = UserId; - InsertOne(newValue); - } - else - { - d[0].講師編號 = 講師編號; - d[0].授課方式填答 = 授課方式填答; - d[0].授課方式分數 = 授課方式填答 * 20; - d[0].專業知識填答 = 專業知識填答; - d[0].專業知識分數 = 專業知識填答 * 20; - d[0].DB_TRUSR = UserId; - UpdateOne(d[0]); - } - } - - public DataTable Select滿意度統計(int 訓練課程企劃編號) - { - DbCommand cmdSelect = NewCommand( - @"SELECT A.訓練課程企劃編號, A.節次, A.講師編號, A.講師姓名, - (AVG(CAST(C.授課方式分數 AS FLOAT)) + AVG(CAST(C.專業知識分數 AS FLOAT))) / 2 AS 滿意度 - FROM ( - SELECT A.訓練課程企劃編號, A.節次, A.課程序號, - dbo.FN取得選定講師編號(A.訓練課程企劃編號, A.課程序號) AS 講師編號, - dbo.FN取得選定講師名稱(A.訓練課程企劃編號, A.課程序號) AS 講師姓名 - FROM 訓練課程內容 A - WHERE A.訓練課程企劃編號 = @訓練課程企劃編號 - ) AS A - LEFT OUTER JOIN 滿意度調查講師 C ON A.訓練課程企劃編號 = C.訓練課程企劃編號 AND A.課程序號=C.課程序號 - GROUP BY A.訓練課程企劃編號, A.節次, A.講師編號, A.講師姓名"); - - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - return Select(cmdSelect); - } - } - - /// - /// 滿意度調查講師 資料集合類別 - /// - public partial class 滿意度調查講師List : List<滿意度調查講師> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 滿意度調查講師 資料紀錄類別 - /// - public partial class 滿意度調查講師 - { - private string _講師姓名; - - public string 講師姓名 - { - get { return _講師姓名; } - set { _講師姓名 = value; } - } - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_訓練效益1.cs b/branches/1150807/DAC/辦訓狀況/DAC_訓練效益1.cs deleted file mode 100644 index 6677658..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_訓練效益1.cs +++ /dev/null @@ -1,652 +0,0 @@ -// -// 這個檔案是 訓練效益 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練效益 資料存取類別 - /// - [DataObject] - public partial class DAC_訓練效益 : WebLib.DAC - { - private string _tableName = "訓練效益"; - private string _select = "select 訓練課程企劃編號, 填表序號, 填表人, 填表日期, 填表人站別, 填表人職稱, 問題1_1, 問題1_2, 問題2_1_1, 問題2_1_2, 問題2_1_3, 問題2_2_1, 問題2_2_2, 問題2_2_3, 問題3_1, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "訓練課程企劃編號, 填表序號, 填表人, 填表日期, 填表人站別, 填表人職稱, 問題1_1, 問題1_2, 問題2_1_1, 問題2_1_2, 問題2_1_3, 問題2_2_1, 問題2_2_2, 問題2_2_3, 問題3_1, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@訓練課程企劃編號, @填表序號, @填表人, @填表日期, @填表人站別, @填表人職稱, @問題1_1, @問題1_2, @問題2_1_1, @問題2_1_2, @問題2_1_3, @問題2_2_1, @問題2_2_2, @問題2_2_3, @問題3_1, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 訓練效益 "; - 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() - { - 訓練效益List result = new 訓練效益List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練效益List SelectOne(int 訓練課程企劃編號, int 填表序號) - { - 訓練效益List result = new 訓練效益List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 填表序號 = @填表序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "填表序號", 填表序號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(訓練效益 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 訓練效益" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdInsert, "填表序號", value.填表序號); - AddParam(cmdInsert, "填表人", value.填表人); - AddParam(cmdInsert, "填表日期", value.填表日期); - AddParam(cmdInsert, "填表人站別", value.填表人站別); - AddParam(cmdInsert, "填表人職稱", value.填表人職稱); - AddParam(cmdInsert, "問題1_1", value.問題1_1); - AddParam(cmdInsert, "問題1_2", value.問題1_2); - AddParam(cmdInsert, "問題2_1_1", value.問題2_1_1); - AddParam(cmdInsert, "問題2_1_2", value.問題2_1_2); - AddParam(cmdInsert, "問題2_1_3", value.問題2_1_3); - AddParam(cmdInsert, "問題2_2_1", value.問題2_2_1); - AddParam(cmdInsert, "問題2_2_2", value.問題2_2_2); - AddParam(cmdInsert, "問題2_2_3", value.問題2_2_3); - AddParam(cmdInsert, "問題3_1", value.問題3_1); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(訓練效益 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 訓練效益List oldValues = SelectOne(value.訓練課程企劃編號, value.填表序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"訓練效益\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 訓練效益 - set - 填表人 = @填表人 , - 填表日期 = @填表日期 , - 填表人站別 = @填表人站別 , - 填表人職稱 = @填表人職稱 , - 問題1_1 = @問題1_1 , - 問題1_2 = @問題1_2 , - 問題2_1_1 = @問題2_1_1 , - 問題2_1_2 = @問題2_1_2 , - 問題2_1_3 = @問題2_1_3 , - 問題2_2_1 = @問題2_2_1 , - 問題2_2_2 = @問題2_2_2 , - 問題2_2_3 = @問題2_2_3 , - 問題3_1 = @問題3_1 , - DB_APPNO = DB_APPNO + 1, - DB_TRDAT = @DB_TRDAT, - DB_TRUSR = @DB_TRUSR - where 1=1 - and 訓練課程企劃編號 = @original_訓練課程企劃編號 - and 填表序號 = @original_填表序號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "填表人", value.填表人); - AddParam(cmdUpdate, "填表日期", value.填表日期); - AddParam(cmdUpdate, "填表人站別", value.填表人站別); - AddParam(cmdUpdate, "填表人職稱", value.填表人職稱); - AddParam(cmdUpdate, "問題1_1", value.問題1_1); - AddParam(cmdUpdate, "問題1_2", value.問題1_2); - AddParam(cmdUpdate, "問題2_1_1", value.問題2_1_1); - AddParam(cmdUpdate, "問題2_1_2", value.問題2_1_2); - AddParam(cmdUpdate, "問題2_1_3", value.問題2_1_3); - AddParam(cmdUpdate, "問題2_2_1", value.問題2_2_1); - AddParam(cmdUpdate, "問題2_2_2", value.問題2_2_2); - AddParam(cmdUpdate, "問題2_2_3", value.問題2_2_3); - AddParam(cmdUpdate, "問題3_1", value.問題3_1); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdUpdate, "original_填表序號", value.填表序號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 訓練課程企劃編號, int 填表序號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(訓練課程企劃編號, 填表序號, DB_APPNO)) - return -1; - - 訓練效益List oldValues = SelectOne(訓練課程企劃編號, 填表序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練效益\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練效益 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 填表序號 = @填表序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", 訓練課程企劃編號); - 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(訓練效益 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 訓練效益List oldValues = SelectOne(value.訓練課程企劃編號, value.填表序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練效益\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練效益 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 填表序號 = @填表序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", value.訓練課程企劃編號); - 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 訓練課程企劃編號, int 填表序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 填表序號 = @填表序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "填表序號", 填表序號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 訓練效益 資料集合類別 - /// - public partial class 訓練效益List : List<訓練效益>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 訓練效益 newItem = new 訓練效益(); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.填表序號 = DAC.GetInt32(reader[1]); - newItem.填表人 = DAC.GetString(reader[2]); - newItem.填表日期 = DAC.GetDateTime(reader[3]); - newItem.填表人站別 = DAC.GetString(reader[4]); - newItem.填表人職稱 = DAC.GetString(reader[5]); - newItem.問題1_1 = DAC.GetString(reader[6]); - newItem.問題1_2 = DAC.GetString(reader[7]); - newItem.問題2_1_1 = DAC.GetString(reader[8]); - newItem.問題2_1_2 = DAC.GetString(reader[9]); - newItem.問題2_1_3 = DAC.GetString(reader[10]); - newItem.問題2_2_1 = DAC.GetString(reader[11]); - newItem.問題2_2_2 = DAC.GetString(reader[12]); - newItem.問題2_2_3 = DAC.GetString(reader[13]); - newItem.問題3_1 = DAC.GetString(reader[14]); - newItem.DB_APPNO = DAC.GetInt32(reader[15]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[16]); - newItem.DB_CRUSR = DAC.GetString(reader[17]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[18]); - newItem.DB_TRUSR = DAC.GetString(reader[19]); - Add(newItem); - } - } - } - - /// - /// 訓練效益 資料紀錄類別 - /// - [Serializable] - public partial class 訓練效益 : DataItemBase - { - private int _訓練課程企劃編號; - private int _填表序號; - private string _填表人; - private DateTime _填表日期; - private string _填表人站別; - private string _填表人職稱; - private string _問題1_1; - private string _問題1_2; - private string _問題2_1_1; - private string _問題2_1_2; - private string _問題2_1_3; - private string _問題2_2_1; - private string _問題2_2_2; - private string _問題2_2_3; - private string _問題3_1; - - #region 資料欄位 - /// - /// 訓練課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - /// - /// 填表序號 - /// - [DataObjectField(true, false, false)] - public int 填表序號 - { - 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)] - public DateTime 填表日期 - { - 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, 50)] - public string 填表人職稱 - { - get - { - return _填表人職稱; - } - set - { - if (value != _填表人職稱) - { - _填表人職稱 = value; - OnPropertyChanged("填表人職稱"); - } - } - } - - /// - /// 問題1_1 - /// - [DataObjectField(false, false, true, 200)] - public string 問題1_1 - { - get - { - return _問題1_1; - } - set - { - if (value != _問題1_1) - { - _問題1_1 = value; - OnPropertyChanged("問題1_1"); - } - } - } - - /// - /// 問題1_2 - /// - [DataObjectField(false, false, true, 200)] - public string 問題1_2 - { - get - { - return _問題1_2; - } - set - { - if (value != _問題1_2) - { - _問題1_2 = value; - OnPropertyChanged("問題1_2"); - } - } - } - - /// - /// 問題2_1_1 - /// - [DataObjectField(false, false, true, 200)] - public string 問題2_1_1 - { - get - { - return _問題2_1_1; - } - set - { - if (value != _問題2_1_1) - { - _問題2_1_1 = value; - OnPropertyChanged("問題2_1_1"); - } - } - } - - /// - /// 問題2_1_2 - /// - [DataObjectField(false, false, true, 200)] - public string 問題2_1_2 - { - get - { - return _問題2_1_2; - } - set - { - if (value != _問題2_1_2) - { - _問題2_1_2 = value; - OnPropertyChanged("問題2_1_2"); - } - } - } - - /// - /// 問題2_1_3 - /// - [DataObjectField(false, false, true, 200)] - public string 問題2_1_3 - { - get - { - return _問題2_1_3; - } - set - { - if (value != _問題2_1_3) - { - _問題2_1_3 = value; - OnPropertyChanged("問題2_1_3"); - } - } - } - - /// - /// 問題2_2_1 - /// - [DataObjectField(false, false, true, 200)] - public string 問題2_2_1 - { - get - { - return _問題2_2_1; - } - set - { - if (value != _問題2_2_1) - { - _問題2_2_1 = value; - OnPropertyChanged("問題2_2_1"); - } - } - } - - /// - /// 問題2_2_2 - /// - [DataObjectField(false, false, true, 200)] - public string 問題2_2_2 - { - get - { - return _問題2_2_2; - } - set - { - if (value != _問題2_2_2) - { - _問題2_2_2 = value; - OnPropertyChanged("問題2_2_2"); - } - } - } - - /// - /// 問題2_2_3 - /// - [DataObjectField(false, false, true, 200)] - public string 問題2_2_3 - { - get - { - return _問題2_2_3; - } - set - { - if (value != _問題2_2_3) - { - _問題2_2_3 = value; - OnPropertyChanged("問題2_2_3"); - } - } - } - - /// - /// 問題3_1 - /// - [DataObjectField(false, false, true, 200)] - public string 問題3_1 - { - get - { - return _問題3_1; - } - set - { - if (value != _問題3_1) - { - _問題3_1 = value; - OnPropertyChanged("問題3_1"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_訓練效益2.cs b/branches/1150807/DAC/辦訓狀況/DAC_訓練效益2.cs deleted file mode 100644 index d3fd8f0..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_訓練效益2.cs +++ /dev/null @@ -1,161 +0,0 @@ -// -// 這個檔案是 訓練效益 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練效益 資料存取類別 - /// - public partial class DAC_訓練效益 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練效益 value) - { - value.填表序號 = Next填表序號(value.訓練課程企劃編號); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練效益 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練效益 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練效益 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練效益 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練效益 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 訓練課程企劃編號, int 填表序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 訓練課程企劃編號, int 填表序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - public int Next填表序號(int 訓練課程企劃編號) - { - DbCommand cmd = NewCommand("select isnull(max(填表序號), 0) + 1 from " - + _tableName + " where 訓練課程企劃編號 = @訓練課程企劃編號 "); - AddParam(cmd, "訓練課程企劃編號", 訓練課程企劃編號); - int i; - ExecuteScalar(cmd, out i); - return i; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練效益List Select(int 訓練課程企劃編號) - { - 訓練效益List result = new 訓練效益List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " order by 填表序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - Select(cmdSelect, ref list); - return result; - } - } - - /// - /// 訓練效益 資料集合類別 - /// - public partial class 訓練效益List : List<訓練效益> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 訓練效益 資料紀錄類別 - /// - public partial class 訓練效益 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_訓練效益個人1.cs b/branches/1150807/DAC/辦訓狀況/DAC_訓練效益個人1.cs deleted file mode 100644 index c460951..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_訓練效益個人1.cs +++ /dev/null @@ -1,402 +0,0 @@ -// -// 這個檔案是 訓練效益個人 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練效益個人 資料存取類別 - /// - [DataObject] - public partial class DAC_訓練效益個人 : WebLib.DAC - { - //private string _tableName = "訓練效益個人"; - private string _select = "select 訓練課程企劃編號, 填表序號, 學員編號, 是否有成效, 成效說明, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "訓練課程企劃編號, 填表序號, 學員編號, 是否有成效, 成效說明, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@訓練課程企劃編號, @填表序號, @學員編號, @是否有成效, @成效說明, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 訓練效益個人 "; - 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() - { - 訓練效益個人List result = new 訓練效益個人List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練效益個人List SelectOne(int 訓練課程企劃編號, string 學員編號) - { - 訓練效益個人List result = new 訓練效益個人List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "學員編號", 學員編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(訓練效益個人 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 訓練效益個人" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(訓練效益個人 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 訓練效益個人List oldValues = SelectOne(value.訓練課程企劃編號, value.學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"訓練效益個人\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 填表序號 = @original_填表序號 - and 學員編號 = @original_學員編號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "是否有成效", value.是否有成效); - AddParam(cmdUpdate, "成效說明", value.成效說明); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdUpdate, "original_填表序號", value.填表序號); - AddParam(cmdUpdate, "original_學員編號", value.學員編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 訓練課程企劃編號, string 學員編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(訓練課程企劃編號, 學員編號, DB_APPNO)) - return -1; - - 訓練效益個人List oldValues = SelectOne(訓練課程企劃編號, 學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練效益個人\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練效益個人 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 學員編號 = @學員編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", 訓練課程企劃編號); - 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(訓練效益個人 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 訓練效益個人List oldValues = SelectOne(value.訓練課程企劃編號, value.學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練效益個人\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 訓練效益個人 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 學員編號 = @學員編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", value.訓練課程企劃編號); - 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 訓練課程企劃編號, string 學員編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "學員編號", 學員編號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 訓練效益個人 資料集合類別 - /// - public partial class 訓練效益個人List : List<訓練效益個人>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 訓練效益個人 newItem = new 訓練效益個人(); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.填表序號 = DAC.GetInt32(reader[1]); - newItem.學員編號 = DAC.GetString(reader[2]); - newItem.是否有成效 = DAC.GetString(reader[3]); - newItem.成效說明 = DAC.GetString(reader[4]); - newItem.DB_APPNO = DAC.GetInt32(reader[5]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[6]); - newItem.DB_CRUSR = DAC.GetString(reader[7]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[8]); - newItem.DB_TRUSR = DAC.GetString(reader[9]); - Add(newItem); - } - } - } - - /// - /// 訓練效益個人 資料紀錄類別 - /// - [Serializable] - public partial class 訓練效益個人 : DataItemBase - { - private int _訓練課程企劃編號; - private int _填表序號; - private string _學員編號; - private string _是否有成效; - private string _成效說明; - - #region 資料欄位 - /// - /// 訓練課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - /// - /// 填表序號 - /// - [DataObjectField(true, false, false)] - public int 填表序號 - { - get - { - return _填表序號; - } - set - { - if (value != _填表序號) - { - _填表序號 = value; - OnPropertyChanged("填表序號"); - } - } - } - - /// - /// 學員編號 - /// - [DataObjectField(true, false, false, 20)] - public string 學員編號 - { - get - { - return _學員編號; - } - set - { - if (value != _學員編號) - { - _學員編號 = value; - OnPropertyChanged("學員編號"); - } - } - } - - /// - /// 是否有成效 - /// - [DataObjectField(false, false, true, 1)] - public string 是否有成效 - { - get - { - return _是否有成效; - } - set - { - if (value != _是否有成效) - { - _是否有成效 = value; - OnPropertyChanged("是否有成效"); - } - } - } - - /// - /// 成效說明 - /// - [DataObjectField(false, false, true, 100)] - public string 成效說明 - { - get - { - return _成效說明; - } - set - { - if (value != _成效說明) - { - _成效說明 = value; - OnPropertyChanged("成效說明"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_訓練效益個人2.cs b/branches/1150807/DAC/辦訓狀況/DAC_訓練效益個人2.cs deleted file mode 100644 index 7099481..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_訓練效益個人2.cs +++ /dev/null @@ -1,196 +0,0 @@ -// -// 這個檔案是 訓練效益個人 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練效益個人 資料存取類別 - /// - public partial class DAC_訓練效益個人 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練效益個人 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練效益個人 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練效益個人 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練效益個人 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練效益個人 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練效益個人 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 訓練課程企劃編號, string 學員編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 訓練課程企劃編號, string 學員編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - [DataObjectMethod(DataObjectMethodType.Select)] - public 訓練效益個人List Select(int 訓練課程企劃編號, int 填表序號) - { - 訓練效益個人List result = new 訓練效益個人List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 填表序號 = @填表序號 " - + " order by 學員編號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "填表序號", 填表序號); - Select(cmdSelect, ref list); - return result; - } - - public void Update(int 訓練課程企劃編號, int 填表序號, string 學員編號, string 是否有成效, string 成效說明) - { - 訓練效益個人List d = SelectOne(訓練課程企劃編號, 學員編號); - if (d.Count == 0) - { - 訓練效益個人 newValue = new 訓練效益個人(); - newValue.訓練課程企劃編號 = 訓練課程企劃編號; - newValue.填表序號 = 填表序號; - newValue.學員編號 = 學員編號; - newValue.是否有成效 = 是否有成效; - newValue.成效說明 = 成效說明; - InsertOne(newValue); - } - else - { - d[0].是否有成效 = 是否有成效; - d[0].成效說明 = 成效說明; - UpdateOne(d[0]); - } - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable SelectFor簽核(int 訓練課程企劃編號, int 填表序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"SELECT A.學員編號, B.BPNME AS 學員姓名, - C.RAJNO AS 職務編號, G.BPJME AS 職務名稱, - C.RACNO AS 等級編號, H.BPCME AS 等級名稱, - A.是否有成效, A.成效說明 - FROM 訓練效益個人 A - INNER JOIN BPSNView B ON A.學員編號 = B.BPENO - LEFT OUTER JOIN RASN C on A.學員編號 = C.RANUM and C.RAEDT is NULL - left outer join BPJA G on G.BPPYN = C.RAPYN and G.BPJNO = C.RAJNO - left outer join BPJB H on H.BPPYN = C.RAPYN and H.BPJNO = C.RAJNO and H.BPCNO = C.RACNO - - WHERE A.訓練課程企劃編號 = @訓練課程企劃編號 AND A.填表序號 = @填表序號 - ORDER BY A.學員編號"; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "填表序號", 填表序號); - return Select(cmdSelect); - } - - } - - /// - /// 訓練效益個人 資料集合類別 - /// - public partial class 訓練效益個人List : List<訓練效益個人> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 訓練效益個人 資料紀錄類別 - /// - public partial class 訓練效益個人 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_訓練檢討報告1.cs b/branches/1150807/DAC/辦訓狀況/DAC_訓練檢討報告1.cs deleted file mode 100644 index 6be604f..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_訓練檢討報告1.cs +++ /dev/null @@ -1,1195 +0,0 @@ -// -// 這個檔案是 訓練檢討報告 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練檢討報告 資料存取類別 - /// - [DataObject] - public partial class DAC_訓練檢討報告 : WebLib.DAC - { - private string _tableName = "[訓練檢討報告]"; - private string _select = "select [訓練課程企劃編號], [填表日期], [填表人員], [學員建議], [講師建議], [檢討與改善], [檢討與改善1], [改善措施_學員_改善內容], [改善措施_學員_改善內容_其他], [改善措施_學員_改善作法], [改善措施_學員_改善作法_其他], [改善措施_學員_補充說明], [改善措施_講師_改善內容], [改善措施_講師_改善內容_其他], [改善措施_講師_改善作法], [改善措施_講師_改善作法_其他], [改善措施_講師_補充說明], [改善措施_教材及教具_改善內容], [改善措施_教材及教具_改善內容_其他], [改善措施_教材及教具_改善作法], [改善措施_教材及教具_改善作法_其他], [改善措施_教材及教具_補充說明], [改善措施_教學方法_改善內容], [改善措施_教學方法_改善內容_其他], [改善措施_教學方法_改善作法], [改善措施_教學方法_改善作法_其他], [改善措施_教學方法_補充說明], [改善措施_場地及設備_改善內容], [改善措施_場地及設備_改善內容_其他], [改善措施_場地及設備_改善作法], [改善措施_場地及設備_改善作法_其他], [改善措施_場地及設備_補充說明], [改善措施_行政流程_改善內容], [改善措施_行政流程_改善內容_其他], [改善措施_行政流程_改善作法], [改善措施_行政流程_改善作法_其他], [改善措施_行政流程_補充說明], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insert = "[訓練課程企劃編號], [填表日期], [填表人員], [學員建議], [講師建議], [檢討與改善], [檢討與改善1], [改善措施_學員_改善內容], [改善措施_學員_改善內容_其他], [改善措施_學員_改善作法], [改善措施_學員_改善作法_其他], [改善措施_學員_補充說明], [改善措施_講師_改善內容], [改善措施_講師_改善內容_其他], [改善措施_講師_改善作法], [改善措施_講師_改善作法_其他], [改善措施_講師_補充說明], [改善措施_教材及教具_改善內容], [改善措施_教材及教具_改善內容_其他], [改善措施_教材及教具_改善作法], [改善措施_教材及教具_改善作法_其他], [改善措施_教材及教具_補充說明], [改善措施_教學方法_改善內容], [改善措施_教學方法_改善內容_其他], [改善措施_教學方法_改善作法], [改善措施_教學方法_改善作法_其他], [改善措施_教學方法_補充說明], [改善措施_場地及設備_改善內容], [改善措施_場地及設備_改善內容_其他], [改善措施_場地及設備_改善作法], [改善措施_場地及設備_改善作法_其他], [改善措施_場地及設備_補充說明], [改善措施_行政流程_改善內容], [改善措施_行政流程_改善內容_其他], [改善措施_行政流程_改善作法], [改善措施_行政流程_改善作法_其他], [改善措施_行政流程_補充說明], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insertValue = "@訓練課程企劃編號, @填表日期, @填表人員, @學員建議, @講師建議, @檢討與改善, @檢討與改善1, @改善措施_學員_改善內容, @改善措施_學員_改善內容_其他, @改善措施_學員_改善作法, @改善措施_學員_改善作法_其他, @改善措施_學員_補充說明, @改善措施_講師_改善內容, @改善措施_講師_改善內容_其他, @改善措施_講師_改善作法, @改善措施_講師_改善作法_其他, @改善措施_講師_補充說明, @改善措施_教材及教具_改善內容, @改善措施_教材及教具_改善內容_其他, @改善措施_教材及教具_改善作法, @改善措施_教材及教具_改善作法_其他, @改善措施_教材及教具_補充說明, @改善措施_教學方法_改善內容, @改善措施_教學方法_改善內容_其他, @改善措施_教學方法_改善作法, @改善措施_教學方法_改善作法_其他, @改善措施_教學方法_補充說明, @改善措施_場地及設備_改善內容, @改善措施_場地及設備_改善內容_其他, @改善措施_場地及設備_改善作法, @改善措施_場地及設備_改善作法_其他, @改善措施_場地及設備_補充說明, @改善措施_行政流程_改善內容, @改善措施_行政流程_改善內容_其他, @改善措施_行政流程_改善作法, @改善措施_行政流程_改善作法_其他, @改善措施_行政流程_補充說明, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from [訓練檢討報告] "; - 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() - { - 訓練檢討報告List result = new 訓練檢討報告List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - 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; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(訓練檢討報告 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 訓練檢討報告" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdInsert, "填表日期", value.填表日期); - AddParam(cmdInsert, "填表人員", value.填表人員); - AddParam(cmdInsert, "學員建議", value.學員建議); - AddParam(cmdInsert, "講師建議", value.講師建議); - AddParam(cmdInsert, "檢討與改善", value.檢討與改善); - AddParam(cmdInsert, "檢討與改善1", value.檢討與改善1); - 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, "改善措施_教學方法_改善作法", 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(訓練檢討報告 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 訓練檢討報告List oldValues = SelectOne(value.訓練課程企劃編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"訓練檢討報告\" 資料表時發生並行例外:找不到要更新的資料列"); - } - DbCommand cmdUpdate = NewCommand(); - cmdUpdate.CommandText = - @"update 訓練檢討報告 - set - 填表日期 = @填表日期 , - 填表人員 = @填表人員 , - 學員建議 = @學員建議 , - 講師建議 = @講師建議 , - 檢討與改善 = @檢討與改善 , - 檢討與改善1 = @檢討與改善1 , - 改善措施_學員_改善內容 = @改善措施_學員_改善內容 , - 改善措施_學員_改善內容_其他 = @改善措施_學員_改善內容_其他 , - 改善措施_學員_改善作法 = @改善措施_學員_改善作法 , - 改善措施_學員_改善作法_其他 = @改善措施_學員_改善作法_其他 , - 改善措施_學員_補充說明 = @改善措施_學員_補充說明 , - 改善措施_講師_改善內容 = @改善措施_講師_改善內容 , - 改善措施_講師_改善內容_其他 = @改善措施_講師_改善內容_其他 , - 改善措施_講師_改善作法 = @改善措施_講師_改善作法 , - 改善措施_講師_改善作法_其他 = @改善措施_講師_改善作法_其他 , - 改善措施_講師_補充說明 = @改善措施_講師_補充說明 , - 改善措施_教材及教具_改善內容 = @改善措施_教材及教具_改善內容 , - 改善措施_教材及教具_改善內容_其他 = @改善措施_教材及教具_改善內容_其他 , - 改善措施_教材及教具_改善作法 = @改善措施_教材及教具_改善作法 , - 改善措施_教材及教具_改善作法_其他 = @改善措施_教材及教具_改善作法_其他 , - 改善措施_教材及教具_補充說明 = @改善措施_教材及教具_補充說明 , - 改善措施_教學方法_改善內容 = @改善措施_教學方法_改善內容 , - 改善措施_教學方法_改善內容_其他 = @改善措施_教學方法_改善內容_其他 , - 改善措施_教學方法_改善作法 = @改善措施_教學方法_改善作法 , - 改善措施_教學方法_改善作法_其他 = @改善措施_教學方法_改善作法_其他 , - 改善措施_教學方法_補充說明 = @改善措施_教學方法_補充說明 , - 改善措施_場地及設備_改善內容 = @改善措施_場地及設備_改善內容 , - 改善措施_場地及設備_改善內容_其他 = @改善措施_場地及設備_改善內容_其他 , - 改善措施_場地及設備_改善作法 = @改善措施_場地及設備_改善作法 , - 改善措施_場地及設備_改善作法_其他 = @改善措施_場地及設備_改善作法_其他 , - 改善措施_場地及設備_補充說明 = @改善措施_場地及設備_補充說明 , - 改善措施_行政流程_改善內容 = @改善措施_行政流程_改善內容 , - 改善措施_行政流程_改善內容_其他 = @改善措施_行政流程_改善內容_其他 , - 改善措施_行政流程_改善作法 = @改善措施_行政流程_改善作法 , - 改善措施_行政流程_改善作法_其他 = @改善措施_行政流程_改善作法_其他 , - 改善措施_行政流程_補充說明 = @改善措施_行政流程_補充說明 , - 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, "檢討與改善1", value.檢討與改善1); - 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, "改善措施_教學方法_改善作法", 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.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 訓練課程企劃編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(訓練課程企劃編號, DB_APPNO)) - return -1; - - 訓練檢討報告List oldValues = SelectOne(訓練課程企劃編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練檢討報告\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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(訓練檢討報告 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 訓練檢討報告List oldValues = SelectOne(value.訓練課程企劃編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"訓練檢討報告\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - 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 partial class 訓練檢討報告List : List<訓練檢討報告>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 訓練檢討報告 newItem = new 訓練檢討報告(); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.填表日期 = DAC.GetDateTime(reader[1]); - newItem.填表人員 = DAC.GetString(reader[2]); - newItem.學員建議 = DAC.GetString(reader[3]); - newItem.講師建議 = DAC.GetString(reader[4]); - newItem.檢討與改善 = DAC.GetString(reader[5]); - newItem.檢討與改善1 = DAC.GetString(reader[6]); - newItem.改善措施_學員_改善內容 = DAC.GetString(reader[7]); - newItem.改善措施_學員_改善內容_其他 = DAC.GetString(reader[8]); - newItem.改善措施_學員_改善作法 = DAC.GetString(reader[9]); - newItem.改善措施_學員_改善作法_其他 = DAC.GetString(reader[10]); - newItem.改善措施_學員_補充說明 = DAC.GetString(reader[11]); - newItem.改善措施_講師_改善內容 = DAC.GetString(reader[12]); - newItem.改善措施_講師_改善內容_其他 = DAC.GetString(reader[13]); - newItem.改善措施_講師_改善作法 = DAC.GetString(reader[14]); - newItem.改善措施_講師_改善作法_其他 = DAC.GetString(reader[15]); - newItem.改善措施_講師_補充說明 = DAC.GetString(reader[16]); - newItem.改善措施_教材及教具_改善內容 = DAC.GetString(reader[17]); - newItem.改善措施_教材及教具_改善內容_其他 = DAC.GetString(reader[18]); - newItem.改善措施_教材及教具_改善作法 = DAC.GetString(reader[19]); - newItem.改善措施_教材及教具_改善作法_其他 = DAC.GetString(reader[20]); - newItem.改善措施_教材及教具_補充說明 = DAC.GetString(reader[21]); - newItem.改善措施_教學方法_改善內容 = DAC.GetString(reader[22]); - newItem.改善措施_教學方法_改善內容_其他 = DAC.GetString(reader[23]); - newItem.改善措施_教學方法_改善作法 = DAC.GetString(reader[24]); - newItem.改善措施_教學方法_改善作法_其他 = DAC.GetString(reader[25]); - newItem.改善措施_教學方法_補充說明 = DAC.GetString(reader[26]); - newItem.改善措施_場地及設備_改善內容 = DAC.GetString(reader[27]); - newItem.改善措施_場地及設備_改善內容_其他 = DAC.GetString(reader[28]); - newItem.改善措施_場地及設備_改善作法 = DAC.GetString(reader[29]); - newItem.改善措施_場地及設備_改善作法_其他 = DAC.GetString(reader[30]); - newItem.改善措施_場地及設備_補充說明 = DAC.GetString(reader[31]); - newItem.改善措施_行政流程_改善內容 = DAC.GetString(reader[32]); - newItem.改善措施_行政流程_改善內容_其他 = DAC.GetString(reader[33]); - newItem.改善措施_行政流程_改善作法 = DAC.GetString(reader[34]); - newItem.改善措施_行政流程_改善作法_其他 = DAC.GetString(reader[35]); - newItem.改善措施_行政流程_補充說明 = DAC.GetString(reader[36]); - newItem.DB_APPNO = DAC.GetInt32(reader[37]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[38]); - newItem.DB_CRUSR = DAC.GetString(reader[39]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[40]); - newItem.DB_TRUSR = DAC.GetString(reader[41]); - Add(newItem); - } - } - } - - /// - /// 訓練檢討報告 資料紀錄類別 - /// - [Serializable] - public partial class 訓練檢討報告 : DataItemBase - { - private int _訓練課程企劃編號; - private DateTime _填表日期; - private string _填表人員; - private string _學員建議; - private string _講師建議; - private string _檢討與改善; - private string _檢討與改善1; - - 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 string _改善措施_教材及教具_改善作法; - 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 string _改善措施_行政流程_改善內容; - private string _改善措施_行政流程_改善內容_其他; - private string _改善措施_行政流程_改善作法; - private string _改善措施_行政流程_改善作法_其他; - private string _改善措施_行政流程_補充說明; - - #region 資料欄位 - /// - /// 訓練課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - /// - /// 填表日期 - /// - [DataObjectField(false, false, true)] - public DateTime 填表日期 - { - 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, 2000)] - public string 學員建議 - { - get - { - return _學員建議; - } - set - { - if (value != _學員建議) - { - _學員建議 = value; - OnPropertyChanged("學員建議"); - } - } - } - - /// - /// 講師建議 - /// - [DataObjectField(false, false, true, 2000)] - public string 講師建議 - { - get - { - return _講師建議; - } - set - { - if (value != _講師建議) - { - _講師建議 = value; - OnPropertyChanged("講師建議"); - } - } - } - - /// - /// 檢討與改善 - /// - [DataObjectField(false, false, true, 2000)] - public string 檢討與改善 - { - get - { - return _檢討與改善; - } - set - { - if (value != _檢討與改善) - { - _檢討與改善 = value; - OnPropertyChanged("檢討與改善"); - } - } - } - - /// - /// 檢討與改善1 - /// - [DataObjectField(false, false, true, 2000)] - public string 檢討與改善1 - { - get - { - return _檢討與改善1; - } - set - { - if (value != _檢討與改善1) - { - _檢討與改善1 = value; - OnPropertyChanged("檢討與改善1"); - } - } - } - - /// - /// 改善措施_學員_改善內容 - /// - [DataObjectField(false, false, true, 50)] - 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, 50)] - 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, 200)] - 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, 200)] - 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, 200)] - 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, 50)] - 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, 50)] - 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, 200)] - 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, 200)] - 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, 200)] - 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, 50)] - 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, 50)] - 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, 200)] - 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, 200)] - 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, 200)] - public string 改善措施_行政流程_改善作法_其他 - { - get - { - return _改善措施_行政流程_改善作法_其他; - } - set - { - if (value != _改善措施_行政流程_改善作法_其他) - { - _改善措施_行政流程_改善作法_其他 = value; - OnPropertyChanged("改善措施_行政流程_改善作法_其他"); - } - } - } - - /// - /// 改善措施_行政流程_補充說明 - /// - [DataObjectField(false, false, true, 200)] - public string 改善措施_行政流程_補充說明 - { - get - { - return _改善措施_行政流程_補充說明; - } - set - { - if (value != _改善措施_行政流程_補充說明) - { - _改善措施_行政流程_補充說明 = value; - OnPropertyChanged("改善措施_行政流程_補充說明"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_訓練檢討報告2.cs b/branches/1150807/DAC/辦訓狀況/DAC_訓練檢討報告2.cs deleted file mode 100644 index c16ab20..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_訓練檢討報告2.cs +++ /dev/null @@ -1,136 +0,0 @@ -// -// 這個檔案是 訓練檢討報告 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 訓練檢討報告 資料存取類別 - /// - public partial class DAC_訓練檢討報告 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(訓練檢討報告 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(訓練檢討報告 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(訓練檢討報告 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(訓練檢討報告 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(訓練檢討報告 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(訓練檢討報告 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 訓練課程企劃編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 訓練課程企劃編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 訓練檢討報告 資料集合類別 - /// - public partial class 訓練檢討報告List : List<訓練檢討報告> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 訓練檢討報告 資料紀錄類別 - /// - public partial class 訓練檢討報告 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_課程剪影1.cs b/branches/1150807/DAC/辦訓狀況/DAC_課程剪影1.cs deleted file mode 100644 index d9ebcf7..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_課程剪影1.cs +++ /dev/null @@ -1,352 +0,0 @@ -// -// 這個檔案是 課程剪影 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 課程剪影 資料存取類別 - /// - [DataObject] - public partial class DAC_課程剪影 : WebLib.DAC - { - private string _tableName = "課程剪影"; - private string _select = "select 課程企劃編號, 照片序號, 照片說明, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "課程企劃編號, 照片序號, 照片說明, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@課程企劃編號, @照片序號, @照片說明, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 課程剪影 "; - 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() - { - 課程剪影List result = new 課程剪影List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 課程剪影List SelectOne(int 課程企劃編號, int 照片序號) - { - 課程剪影List result = new 課程剪影List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 照片序號 = @照片序號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "照片序號", 照片序號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(課程剪影 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 課程剪影" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "課程企劃編號", value.課程企劃編號); - AddParam(cmdInsert, "照片序號", value.照片序號); - AddParam(cmdInsert, "照片說明", value.照片說明); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(課程剪影 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 課程剪影List oldValues = SelectOne(value.課程企劃編號, value.照片序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"課程剪影\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 照片序號 = @original_照片序號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "照片說明", value.照片說明); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_課程企劃編號", value.課程企劃編號); - AddParam(cmdUpdate, "original_照片序號", value.照片序號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 課程企劃編號, int 照片序號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(課程企劃編號, 照片序號, DB_APPNO)) - return -1; - - 課程剪影List oldValues = SelectOne(課程企劃編號, 照片序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"課程剪影\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 課程剪影 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 照片序號 = @照片序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", 課程企劃編號); - 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(課程剪影 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 課程剪影List oldValues = SelectOne(value.課程企劃編號, value.照片序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"課程剪影\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 課程剪影 - where 1=1 - and 課程企劃編號 = @課程企劃編號 - and 照片序號 = @照片序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程企劃編號", value.課程企劃編號); - 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 課程企劃編號, int 照片序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " and 照片序號 = @照片序號 " - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - AddParam(cmdSelect, "照片序號", 照片序號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 課程剪影 資料集合類別 - /// - public partial class 課程剪影List : List<課程剪影>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 課程剪影 newItem = new 課程剪影(); - newItem.課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.照片序號 = DAC.GetInt32(reader[1]); - newItem.照片說明 = DAC.GetString(reader[2]); - newItem.DB_APPNO = DAC.GetInt32(reader[3]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[4]); - newItem.DB_CRUSR = DAC.GetString(reader[5]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[6]); - newItem.DB_TRUSR = DAC.GetString(reader[7]); - Add(newItem); - } - } - } - - /// - /// 課程剪影 資料紀錄類別 - /// - [Serializable] - public partial class 課程剪影 : DataItemBase - { - private int _課程企劃編號; - private int _照片序號; - private string _照片說明; - - #region 資料欄位 - /// - /// 課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 課程企劃編號 - { - get - { - return _課程企劃編號; - } - set - { - if (value != _課程企劃編號) - { - _課程企劃編號 = value; - OnPropertyChanged("課程企劃編號"); - } - } - } - - /// - /// 照片序號 - /// - [DataObjectField(true, false, false)] - public int 照片序號 - { - get - { - return _照片序號; - } - set - { - if (value != _照片序號) - { - _照片序號 = value; - OnPropertyChanged("照片序號"); - } - } - } - - /// - /// 照片說明 - /// - [DataObjectField(false, false, true, 200)] - public string 照片說明 - { - get - { - return _照片說明; - } - set - { - if (value != _照片說明) - { - _照片說明 = value; - OnPropertyChanged("照片說明"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_課程剪影2.cs b/branches/1150807/DAC/辦訓狀況/DAC_課程剪影2.cs deleted file mode 100644 index 26c6336..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_課程剪影2.cs +++ /dev/null @@ -1,173 +0,0 @@ -// -// 這個檔案是 課程剪影 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 課程剪影 資料存取類別 - /// - public partial class DAC_課程剪影 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(課程剪影 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(課程剪影 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(課程剪影 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(課程剪影 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(課程剪影 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(課程剪影 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 課程企劃編號, int 照片序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 課程企劃編號, int 照片序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - public int Next照片序號(int 課程企劃編號) - { - DbCommand cmdSelect = NewCommand("SELECT ISNULL(MAX(照片序號), 0) + 1 FROM " + _tableName - + " WHERE 課程企劃編號 = @課程企劃編號 "); - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 課程剪影List SelectBy課程企劃編號(int 課程企劃編號) - { - 課程剪影List result = new 課程剪影List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程企劃編號 = @課程企劃編號 " - + " order by 照片序號" - ; - AddParam(cmdSelect, "課程企劃編號", 課程企劃編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select課程剪影摘要() - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"SELECT A.課程企劃編號, MIN(A.照片序號) AS 照片序號, B.訓練日期, B.訓練名稱 - FROM 課程剪影 A - INNER JOIN 訓練課程企劃 B ON A.課程企劃編號 = B.編號 - GROUP BY A.課程企劃編號, B.訓練日期, B.訓練名稱 - ORDER BY B.訓練日期 DESC"; - return Select(cmdSelect); - } - } - - /// - /// 課程剪影 資料集合類別 - /// - public partial class 課程剪影List : List<課程剪影> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 課程剪影 資料紀錄類別 - /// - public partial class 課程剪影 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_課程經費1.cs b/branches/1150807/DAC/辦訓狀況/DAC_課程經費1.cs deleted file mode 100644 index f5fa272..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_課程經費1.cs +++ /dev/null @@ -1,402 +0,0 @@ -// -// 這個檔案是 課程經費 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 課程經費 資料存取類別 - /// - [DataObject] - public partial class DAC_課程經費 : WebLib.DAC - { - private string _tableName = "課程經費"; - private string _select = "select 訓練課程企劃編號, 單據序號, 收支, 金額, 摘要, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "訓練課程企劃編號, 單據序號, 收支, 金額, 摘要, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@訓練課程企劃編號, @單據序號, @收支, @金額, @摘要, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 課程經費 "; - 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() - { - 課程經費List result = new 課程經費List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 課程經費List SelectOne(int 訓練課程企劃編號, int 單據序號) - { - 課程經費List result = new 課程經費List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 單據序號 = @單據序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "單據序號", 單據序號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(課程經費 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 課程經費" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(課程經費 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 課程經費List oldValues = SelectOne(value.訓練課程企劃編號, value.單據序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"課程經費\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 單據序號 = @original_單據序號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "收支", value.收支); - AddParam(cmdUpdate, "金額", value.金額); - AddParam(cmdUpdate, "摘要", value.摘要); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_訓練課程企劃編號", value.訓練課程企劃編號); - AddParam(cmdUpdate, "original_單據序號", value.單據序號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 訓練課程企劃編號, int 單據序號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(訓練課程企劃編號, 單據序號, DB_APPNO)) - return -1; - - 課程經費List oldValues = SelectOne(訓練課程企劃編號, 單據序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"課程經費\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 課程經費 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 單據序號 = @單據序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", 訓練課程企劃編號); - 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(課程經費 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 課程經費List oldValues = SelectOne(value.訓練課程企劃編號, value.單據序號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"課程經費\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 課程經費 - where 1=1 - and 訓練課程企劃編號 = @訓練課程企劃編號 - and 單據序號 = @單據序號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "訓練課程企劃編號", value.訓練課程企劃編號); - 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 訓練課程企劃編號, int 單據序號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " and 單據序號 = @單據序號 " - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - AddParam(cmdSelect, "單據序號", 單據序號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 課程經費 資料集合類別 - /// - public partial class 課程經費List : List<課程經費>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 課程經費 newItem = new 課程經費(); - newItem.訓練課程企劃編號 = DAC.GetInt32(reader[0]); - newItem.單據序號 = DAC.GetInt32(reader[1]); - newItem.收支 = DAC.GetString(reader[2]); - newItem.金額 = DAC.GetInt32(reader[3]); - newItem.摘要 = DAC.GetString(reader[4]); - newItem.DB_APPNO = DAC.GetInt32(reader[5]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[6]); - newItem.DB_CRUSR = DAC.GetString(reader[7]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[8]); - newItem.DB_TRUSR = DAC.GetString(reader[9]); - Add(newItem); - } - } - } - - /// - /// 課程經費 資料紀錄類別 - /// - [Serializable] - public partial class 課程經費 : DataItemBase - { - private int _訓練課程企劃編號; - private int _單據序號; - private string _收支; - private int _金額; - private string _摘要; - - #region 資料欄位 - /// - /// 訓練課程企劃編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程企劃編號 - { - get - { - return _訓練課程企劃編號; - } - set - { - if (value != _訓練課程企劃編號) - { - _訓練課程企劃編號 = value; - OnPropertyChanged("訓練課程企劃編號"); - } - } - } - - /// - /// 單據序號 - /// - [DataObjectField(true, false, false)] - public int 單據序號 - { - get - { - return _單據序號; - } - set - { - if (value != _單據序號) - { - _單據序號 = value; - OnPropertyChanged("單據序號"); - } - } - } - - /// - /// 收支 - /// - [DataObjectField(false, false, true, 1)] - 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, 500)] - public string 摘要 - { - get - { - return _摘要; - } - set - { - if (value != _摘要) - { - _摘要 = value; - OnPropertyChanged("摘要"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_課程經費2.cs b/branches/1150807/DAC/辦訓狀況/DAC_課程經費2.cs deleted file mode 100644 index 9d0bdc6..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_課程經費2.cs +++ /dev/null @@ -1,177 +0,0 @@ -// -// 這個檔案是 課程經費 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 課程經費 資料存取類別 - /// - public partial class DAC_課程經費 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(課程經費 value) - { - value.單據序號 = Next單據序號(value.訓練課程企劃編號); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(課程經費 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(課程經費 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(課程經費 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(課程經費 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(課程經費 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 訓練課程企劃編號, int 單據序號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 訓練課程企劃編號, int 單據序號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - [DataObjectMethod(DataObjectMethodType.Select)] - public 課程經費List Select(int 訓練課程企劃編號) - { - 課程經費List result = new 課程經費List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 訓練課程企劃編號 = @訓練課程企劃編號 " - + " order by 單據序號" - ; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public int Get經費合計(int 訓練課程企劃編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select isnull(sum(金額), 0) from 課程經費 where 訓練課程企劃編號 = @訓練課程企劃編號 and 收支='支'"; -// @"select -// (select isnull(sum(金額), 0) from 課程經費 where 訓練課程企劃編號 = @訓練課程企劃編號 and 收支='支') -// - -// (select isnull(sum(金額), 0) from 課程經費 where 訓練課程企劃編號 = @訓練課程企劃編號 and 收支='收')"; - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - private int Next單據序號(int 訓練課程企劃編號) - { - DbCommand cmdSelect = NewCommand(@"select isnull(max(單據序號), 0) + 1 from " - + _tableName + " where 訓練課程企劃編號 = @訓練課程企劃編號"); - AddParam(cmdSelect, "訓練課程企劃編號", 訓練課程企劃編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - } - - /// - /// 課程經費 資料集合類別 - /// - public partial class 課程經費List : List<課程經費> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 課程經費 資料紀錄類別 - /// - public partial class 課程經費 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_講師外訓滿意度1.cs b/branches/1150807/DAC/辦訓狀況/DAC_講師外訓滿意度1.cs deleted file mode 100644 index 3ec73d9..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_講師外訓滿意度1.cs +++ /dev/null @@ -1,882 +0,0 @@ -// -// 這個檔案是 講師外訓滿意度 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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, int? 編號, int? 講師編號, DateTime? 日期_1, DateTime? 日期_2, string 地點, int? 人數_1, int? 人數_2, string 對象, string 課程名稱) - { - if (編號 != null) - { - noInput = false; - cmdSelect.CommandText += " and 編號 = @編號 "; - AddParam(cmdSelect, "編號", 編號); - } - - if (講師編號 != null) - { - noInput = false; - cmdSelect.CommandText += " and 講師編號 = @講師編號 "; - AddParam(cmdSelect, "講師編號", 講師編號); - } - - if (日期_1 != null && 日期_2 != null) - { - noInput = false; - cmdSelect.CommandText += " and 日期 >= @日期_1 and 日期 <= @日期_2 "; - AddParam(cmdSelect, "日期_1", 日期_1); - AddParam(cmdSelect, "日期_2", 日期_2); - } - else if (日期_1 != null && 日期_2 == null) - { - noInput = false; - cmdSelect.CommandText += " and 日期 >= @日期_1 "; - AddParam(cmdSelect, "日期_1", 日期_1); - } - else if (日期_1 == null && 日期_2 != null) - { - noInput = false; - cmdSelect.CommandText += " and 日期 <= @日期_2 "; - AddParam(cmdSelect, "日期_2", 日期_2); - } - - if (地點 != null && 地點.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 地點 like @地點 "; - AddParam(cmdSelect, "地點", "%" + 地點 + "%"); - } - - if (人數_1 != null && 人數_2 != null) - { - noInput = false; - cmdSelect.CommandText += " and 人數 >= @人數_1 and 人數 <= @人數_2 "; - AddParam(cmdSelect, "人數_1", 人數_1); - AddParam(cmdSelect, "人數_2", 人數_2); - } - else if (人數_1 != null && 人數_2 == null) - { - noInput = false; - cmdSelect.CommandText += " and 人數 >= @人數_1 "; - AddParam(cmdSelect, "人數_1", 人數_1); - } - else if (人數_1 == null && 人數_2 != null) - { - noInput = false; - cmdSelect.CommandText += " and 人數 <= @人數_2 "; - AddParam(cmdSelect, "人數_2", 人數_2); - } - - if (對象 != null && 對象.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 對象 like @對象 "; - AddParam(cmdSelect, "對象", "%" + 對象 + "%"); - } - - if (課程名稱 != null && 課程名稱.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 課程名稱 like @課程名稱 "; - AddParam(cmdSelect, "課程名稱", "%" + 課程名稱 + "%"); - } - - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 講師外訓滿意度List Select(bool noInputReturnAll, int? 編號, int? 講師編號, DateTime? 日期_1, DateTime? 日期_2, string 地點, int? 人數_1, int? 人數_2, string 對象, string 課程名稱, 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, 地點, 人數_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, int? 編號, int? 講師編號, DateTime? 日期_1, DateTime? 日期_2, string 地點, int? 人數_1, int? 人數_2, string 對象, string 課程名稱, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 編號, 講師編號, 日期_1, 日期_2, 地點, 人數_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, int? 編號, int? 講師編號, DateTime? 日期_1, DateTime? 日期_2, string 地點, int? 人數_1, int? 人數_2, string 對象, string 課程名稱, 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, 地點, 人數_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, "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("在更新 \"講師外訓滿意度\" 資料表時發生並行例外:找不到要更新的資料列"); - } - - 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, "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("在更新 \"講師外訓滿意度\" 資料表時發生並行例外:找不到要更新的資料列"); - } - - 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, "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("在刪除 \"講師外訓滿意度\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - - 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("在刪除 \"講師外訓滿意度\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - - 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; - } - - } - - - /// - ///講師外訓滿意度 資料集合類別 - /// - [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 int _講師編號; - private DateTime? _日期; - private string _地點; - private int? _人數; - private string _對象; - private string _課程名稱; - private int? _專業度; - private int? _授課技巧; - private int? _互動氛圍; - private int? _內容切題; - private int? _配合度; - private int? _學員滿意度; - private string _跟課觀察; - private string _講師授課方式; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 講師編號 - /// - [DataObjectField(false, false, false)] - public int 講師編號 - { - get - { - return _講師編號; - } - set - { - if (value != _講師編號) - { - _講師編號 = value; - OnPropertyChanged("講師編號"); - } - } - } - - /// - /// 日期 - /// - [DataObjectField(false, false, true)] - public DateTime? 日期 - { - 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)] - public int? 人數 - { - 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)] - 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)] - 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)] - 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, 500)] - public string 跟課觀察 - { - get - { - return _跟課觀察; - } - set - { - if (value != _跟課觀察) - { - _跟課觀察 = value; - OnPropertyChanged("跟課觀察"); - } - } - } - - /// - /// 講師授課方式 - /// - [DataObjectField(false, false, true, 500)] - public string 講師授課方式 - { - get - { - return _講師授課方式; - } - set - { - if (value != _講師授課方式) - { - _講師授課方式 = value; - OnPropertyChanged("講師授課方式"); - } - } - } - #endregion - } -} diff --git a/branches/1150807/DAC/辦訓狀況/DAC_講師外訓滿意度2.cs b/branches/1150807/DAC/辦訓狀況/DAC_講師外訓滿意度2.cs deleted file mode 100644 index 5197f4d..0000000 --- a/branches/1150807/DAC/辦訓狀況/DAC_講師外訓滿意度2.cs +++ /dev/null @@ -1,156 +0,0 @@ -// -// 這個檔案是 講師外訓滿意度 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Linq; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 講師外訓滿意度 資料存取類別 - /// - public partial class DAC_講師外訓滿意度 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(講師外訓滿意度Item value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(講師外訓滿意度Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(講師外訓滿意度Item value) - { - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(講師外訓滿意度Item value, 講師外訓滿意度Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(講師外訓滿意度Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(講師外訓滿意度Item value, 講師外訓滿意度Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(講師外訓滿意度Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(講師外訓滿意度Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///講師外訓滿意度 資料集合類別 - /// - public partial class 講師外訓滿意度List : List<講師外訓滿意度Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///講師外訓滿意度 資料紀錄類別 - /// - public partial class 講師外訓滿意度Item - { - // 有另外加上去的屬性及方法,請加在這裡 - public int 合計 - { - get { return DAC.GetInt32(專業度) + DAC.GetInt32(授課技巧) + DAC.GetInt32(互動氛圍) + DAC.GetInt32(內容切題) + DAC.GetInt32(配合度); } - } - } -} diff --git a/branches/1150807/DAC/選課報名/DAC_學員出席1.cs b/branches/1150807/DAC/選課報名/DAC_學員出席1.cs deleted file mode 100644 index 826d9e6..0000000 --- a/branches/1150807/DAC/選課報名/DAC_學員出席1.cs +++ /dev/null @@ -1,413 +0,0 @@ -// -// 這個檔案是 學員出席 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 學員出席 資料存取類別 - /// - [DataObject] - public partial class DAC_學員出席 : WebLib.DAC - { - private string _tableName = "[學員出席]"; - private string _select = "select [學員編號], [訓練課程編號], [課程日期], [出席狀況], [請假事由], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insert = "[學員編號], [訓練課程編號], [課程日期], [出席狀況], [請假事由], [DB_APPNO], [DB_CRDAT], [DB_CRUSR], [DB_TRDAT], [DB_TRUSR]"; - private string _insertValue = "@學員編號, @訓練課程編號, @課程日期, @出席狀況, @請假事由, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from [學員出席] "; - 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() - { - 學員出席List result = new 學員出席List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 學員出席List SelectOne(string 學員編號, int 訓練課程編號, DateTime 課程日期) - { - 學員出席List result = new 學員出席List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 學員編號 = @學員編號 " - + " and 訓練課程編號 = @訓練課程編號 " - + " and 課程日期 = @課程日期 " - ; - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - AddParam(cmdSelect, "課程日期", 課程日期); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(學員出席 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 學員出席" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(學員出席 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 學員出席List oldValues = SelectOne(value.學員編號, value.訓練課程編號, value.課程日期); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"學員出席\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 訓練課程編號 = @original_訓練課程編號 - and 課程日期 = @original_課程日期 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "出席狀況", value.出席狀況); - AddParam(cmdUpdate, "請假事由", value.請假事由); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_學員編號", value.學員編號); - AddParam(cmdUpdate, "original_訓練課程編號", value.訓練課程編號); - AddParam(cmdUpdate, "original_課程日期", value.課程日期); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(string 學員編號, int 訓練課程編號, DateTime 課程日期, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(學員編號, 訓練課程編號, 課程日期, DB_APPNO)) - return -1; - - 學員出席List oldValues = SelectOne(學員編號, 訓練課程編號, 課程日期); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"學員出席\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 學員出席 - where 1=1 - and 學員編號 = @學員編號 - and 訓練課程編號 = @訓練課程編號 - and 課程日期 = @課程日期 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "學員編號", 學員編號); - AddParam(cmdDelete, "訓練課程編號", 訓練課程編號); - 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(學員出席 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 學員出席List oldValues = SelectOne(value.學員編號, value.訓練課程編號, value.課程日期); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"學員出席\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 學員出席 - where 1=1 - and 學員編號 = @學員編號 - and 訓練課程編號 = @訓練課程編號 - and 課程日期 = @課程日期 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "學員編號", value.學員編號); - AddParam(cmdDelete, "訓練課程編號", value.訓練課程編號); - 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(string 學員編號, int 訓練課程編號, DateTime 課程日期) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 學員編號 = @學員編號 " - + " and 訓練課程編號 = @訓練課程編號 " - + " and 課程日期 = @課程日期 " - ; - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - AddParam(cmdSelect, "課程日期", 課程日期); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 學員出席 資料集合類別 - /// - public partial class 學員出席List : List<學員出席>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 學員出席 newItem = new 學員出席(); - newItem.學員編號 = DAC.GetString(reader[0]); - newItem.訓練課程編號 = DAC.GetInt32(reader[1]); - newItem.課程日期 = DAC.GetDateTime(reader[2]); - newItem.出席狀況 = DAC.GetString(reader[3]); - newItem.請假事由 = DAC.GetString(reader[4]); - newItem.DB_APPNO = DAC.GetInt32(reader[5]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[6]); - newItem.DB_CRUSR = DAC.GetString(reader[7]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[8]); - newItem.DB_TRUSR = DAC.GetString(reader[9]); - Add(newItem); - } - } - } - - /// - /// 學員出席 資料紀錄類別 - /// - [Serializable] - public partial class 學員出席 : DataItemBase - { - private string _學員編號; - private int _訓練課程編號; - private DateTime _課程日期; - private string _出席狀況; - private string _請假事由; - - #region 資料欄位 - /// - /// 學員編號 - /// - [DataObjectField(true, false, false, 10)] - public string 學員編號 - { - get - { - return _學員編號; - } - set - { - if (value != _學員編號) - { - _學員編號 = value; - OnPropertyChanged("學員編號"); - } - } - } - - /// - /// 訓練課程編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程編號 - { - get - { - return _訓練課程編號; - } - set - { - if (value != _訓練課程編號) - { - _訓練課程編號 = value; - OnPropertyChanged("訓練課程編號"); - } - } - } - - /// - /// 課程日期 - /// - [DataObjectField(true, false, false)] - public DateTime 課程日期 - { - get - { - return _課程日期; - } - set - { - if (value != _課程日期) - { - _課程日期 = value; - OnPropertyChanged("課程日期"); - } - } - } - - /// - /// 出席狀況 - /// Y=出席 - /// N=缺席 - /// L=請假 - /// - [DataObjectField(false, false, true, 1)] - public string 出席狀況 - { - get - { - return _出席狀況; - } - set - { - if (value != _出席狀況) - { - _出席狀況 = value; - OnPropertyChanged("出席狀況"); - } - } - } - - /// - /// 請假事由 - /// - [DataObjectField(false, false, true, 100)] - public string 請假事由 - { - get - { - return _請假事由; - } - set - { - if (value != _請假事由) - { - _請假事由 = value; - OnPropertyChanged("請假事由"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/選課報名/DAC_學員出席2.cs b/branches/1150807/DAC/選課報名/DAC_學員出席2.cs deleted file mode 100644 index f4414f2..0000000 --- a/branches/1150807/DAC/選課報名/DAC_學員出席2.cs +++ /dev/null @@ -1,206 +0,0 @@ -// -// 這個檔案是 學員出席 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 學員出席 資料存取類別 - /// - public partial class DAC_學員出席 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(學員出席 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(學員出席 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(學員出席 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(學員出席 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(學員出席 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(學員出席 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(string 學員編號, int 訓練課程編號, DateTime 課程日期, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(string 學員編號, int 訓練課程編號, DateTime 課程日期, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - - [DataObjectMethod(DataObjectMethodType.Select)] - public 學員出席List Select(string 學員編號, int 訓練課程編號) - { - 學員出席List result = new 學員出席List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 學員編號 = @學員編號 " - + " and 訓練課程編號 = @訓練課程編號 " - ; - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - Select(cmdSelect, ref list); - return result; - } - - public void Update(學員出席 value) - { - 學員出席List oldValue = SelectOne(value.學員編號, value.訓練課程編號, value.課程日期); - if (oldValue.Count == 0) - { - InsertOne(value); - } - else - { - oldValue[0].出席狀況 = value.出席狀況; - oldValue[0].請假事由 = value.請假事由; - UpdateOne(oldValue[0]); - } - } - - public int Get出席人次(int 訓練課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select count(1) from 學員出席 - where 訓練課程編號 = @訓練課程編號 - and 出席狀況='Y'"; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - public int Get參與人數(int 訓練課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select distinct count(學員編號) from 學員出席 - where 訓練課程編號 = @訓練課程編號 - and 出席狀況='Y'"; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select出席狀況(string 學員編號, int 訓練課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select 課程日期, 出席狀況, 請假事由 " + _from + _where - + " and 學員編號 = @學員編號 " - + " and 訓練課程編號 = @訓練課程編號 " - + " order by 課程日期 "; - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - return Select(cmdSelect); - } - } - - /// - /// 學員出席 資料集合類別 - /// - public partial class 學員出席List : List<學員出席> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 學員出席 資料紀錄類別 - /// - public partial class 學員出席 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/選課報名/DAC_數位課程觀看紀錄1.cs b/branches/1150807/DAC/選課報名/DAC_數位課程觀看紀錄1.cs deleted file mode 100644 index a0dd650..0000000 --- a/branches/1150807/DAC/選課報名/DAC_數位課程觀看紀錄1.cs +++ /dev/null @@ -1,377 +0,0 @@ -// -// 這個檔案是 數位課程觀看紀錄 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 數位課程觀看紀錄 資料存取類別 - /// - [DataObject] - public partial class DAC_數位課程觀看紀錄 : WebLib.DAC - { - //private string _tableName = "數位課程觀看紀錄"; - private string _select = "select 課程編號, 學員編號, 必看, 觀看日期, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "課程編號, 學員編號, 必看, 觀看日期, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@課程編號, @學員編號, @必看, @觀看日期, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 數位課程觀看紀錄 "; - 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() - { - 數位課程觀看紀錄List result = new 數位課程觀看紀錄List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 數位課程觀看紀錄List SelectOne(int 課程編號, string 學員編號) - { - 數位課程觀看紀錄List result = new 數位課程觀看紀錄List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 課程編號 = @課程編號 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdSelect, "課程編號", 課程編號); - AddParam(cmdSelect, "學員編號", 學員編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(數位課程觀看紀錄 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 數位課程觀看紀錄" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - AddParam(cmdInsert, "課程編號", value.課程編號); - AddParam(cmdInsert, "學員編號", value.學員編號); - AddParam(cmdInsert, "必看", value.必看); - AddParam(cmdInsert, "觀看日期", value.觀看日期); - AddParam(cmdInsert, "DB_APPNO", 1); - AddParam(cmdInsert, "DB_CRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(數位課程觀看紀錄 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 數位課程觀看紀錄List oldValues = SelectOne(value.課程編號, value.學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"數位課程觀看紀錄\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 學員編號 = @original_學員編號 - and DB_APPNO = @original_DB_APPNO - "; - AddParam(cmdUpdate, "必看", value.必看); - AddParam(cmdUpdate, "觀看日期", value.觀看日期); - AddParam(cmdUpdate, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_課程編號", value.課程編號); - AddParam(cmdUpdate, "original_學員編號", value.學員編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(int 課程編號, string 學員編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(課程編號, 學員編號, DB_APPNO)) - return -1; - - 數位課程觀看紀錄List oldValues = SelectOne(課程編號, 學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"數位課程觀看紀錄\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 數位課程觀看紀錄 - where 1=1 - and 課程編號 = @課程編號 - and 學員編號 = @學員編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程編號", 課程編號); - 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(數位課程觀看紀錄 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 數位課程觀看紀錄List oldValues = SelectOne(value.課程編號, value.學員編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"數位課程觀看紀錄\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 數位課程觀看紀錄 - where 1=1 - and 課程編號 = @課程編號 - and 學員編號 = @學員編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "課程編號", value.課程編號); - 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 課程編號, string 學員編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 課程編號 = @課程編號 " - + " and 學員編號 = @學員編號 " - ; - AddParam(cmdSelect, "課程編號", 課程編號); - AddParam(cmdSelect, "學員編號", 學員編號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 數位課程觀看紀錄 資料集合類別 - /// - public partial class 數位課程觀看紀錄List : List<數位課程觀看紀錄>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 數位課程觀看紀錄 newItem = new 數位課程觀看紀錄(); - newItem.課程編號 = DAC.GetInt32(reader[0]); - newItem.學員編號 = DAC.GetString(reader[1]); - newItem.必看 = DAC.GetString(reader[2]); - newItem.觀看日期 = DAC.GetDateTime(reader[3]); - newItem.DB_APPNO = DAC.GetInt32(reader[4]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[5]); - newItem.DB_CRUSR = DAC.GetString(reader[6]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[7]); - newItem.DB_TRUSR = DAC.GetString(reader[8]); - Add(newItem); - } - } - } - - /// - /// 數位課程觀看紀錄 資料紀錄類別 - /// - [Serializable] - public partial class 數位課程觀看紀錄 : DataItemBase - { - private int _課程編號; - private string _學員編號; - private string _必看; - private DateTime _觀看日期; - - #region 資料欄位 - /// - /// 課程編號 - /// - [DataObjectField(true, false, false)] - public int 課程編號 - { - get - { - return _課程編號; - } - set - { - if (value != _課程編號) - { - _課程編號 = value; - OnPropertyChanged("課程編號"); - } - } - } - - /// - /// 學員編號 - /// - [DataObjectField(true, false, false, 10)] - public string 學員編號 - { - get - { - return _學員編號; - } - set - { - if (value != _學員編號) - { - _學員編號 = value; - OnPropertyChanged("學員編號"); - } - } - } - - /// - /// 必看 - /// - [DataObjectField(false, false, true, 1)] - public string 必看 - { - get - { - return _必看; - } - set - { - if (value != _必看) - { - _必看 = value; - OnPropertyChanged("必看"); - } - } - } - - /// - /// 觀看日期 - /// - [DataObjectField(false, false, true)] - public DateTime 觀看日期 - { - get - { - return _觀看日期; - } - set - { - if (value != _觀看日期) - { - _觀看日期 = value; - OnPropertyChanged("觀看日期"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/選課報名/DAC_數位課程觀看紀錄2.cs b/branches/1150807/DAC/選課報名/DAC_數位課程觀看紀錄2.cs deleted file mode 100644 index 2192d87..0000000 --- a/branches/1150807/DAC/選課報名/DAC_數位課程觀看紀錄2.cs +++ /dev/null @@ -1,228 +0,0 @@ -// -// 這個檔案是 數位課程觀看紀錄 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 數位課程觀看紀錄 資料存取類別 - /// - public partial class DAC_數位課程觀看紀錄 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(數位課程觀看紀錄 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(數位課程觀看紀錄 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(數位課程觀看紀錄 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(數位課程觀看紀錄 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(數位課程觀看紀錄 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(數位課程觀看紀錄 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 課程編號, string 學員編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 課程編號, string 學員編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - // 有另外加上去的屬性及方法,請加在這裡 - public void 報名(int 課程編號, string 學員編號, string userId) - { - 數位課程觀看紀錄List d = SelectOne(課程編號, 學員編號); - if (d.Count == 0) - { - 數位課程觀看紀錄 newValue = new 數位課程觀看紀錄(); - newValue.課程編號 = 課程編號; - newValue.學員編號 = 學員編號; - newValue.必看 = "Y"; - newValue.DB_CRUSR = userId; - InsertOne(newValue); - } - else - { - d[0].必看 = "Y"; - d[0].DB_TRUSR = userId; - UpdateOne(d[0]); - } - } - - public void 取消報名(int 課程編號, string 學員編號) - { - 數位課程觀看紀錄List d = SelectOne(課程編號, 學員編號); - if (d.Count > 0) - { - if (d[0].觀看日期.Ticks == 0) - DeleteOne(d[0]); - } - } - - public bool 是否報名(int 課程編號, string 學員編號) - { - 數位課程觀看紀錄List d = SelectOne(課程編號, 學員編號); - return d.Count > 0; - } - - public bool 是否觀看(int 課程編號, string 學員編號) - { - 數位課程觀看紀錄List d = SelectOne(課程編號, 學員編號); - return (d.Count > 0 && d[0].觀看日期.Ticks > 0); - } - - public void Insert(int 課程編號, string 學員編號, string userId) - { - 數位課程觀看紀錄List d = SelectOne(課程編號, 學員編號); - if (d.Count == 0) - { - 數位課程觀看紀錄 newValue = new 數位課程觀看紀錄(); - newValue.課程編號 = 課程編號; - newValue.學員編號 = 學員編號; - newValue.觀看日期 = DateTime.UtcNow.AddHours(8).Date; - newValue.DB_CRUSR = userId; - InsertOne(newValue); - } - else - { - d[0].觀看日期 = DateTime.UtcNow.AddHours(8).Date; - UpdateOne(d[0]); - } - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select必修學員(int 課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select A.學員編號, A.學員編號 + ' ' + B.BPNME as 學員姓名 - from 數位課程觀看紀錄 A - inner join BPSNView B on A.學員編號=B.BPENO - where A.課程編號 = @課程編號 - and A.必看 = 'Y' - order by A.學員編號"; - AddParam(cmdSelect, "課程編號", 課程編號); - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select觀看紀錄(string 學員編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"SELECT A.課程編號, A.學員編號, A.觀看日期, - B.課程名稱, B.講師, B.課程簡介, B.長度, B.課程網址, B.課程文件, B.評量文件, - C.BSSCR AS 課程類別 - FROM 數位課程觀看紀錄 A - INNER JOIN 數位課程 B ON A.課程編號=B.課程編號 - LEFT OUTER JOIN BCLS C ON B.課程類別=C.BSCLS AND C.BSPAR='課程類別' - WHERE 學員編號 = @學員編號 AND 觀看日期 IS NOT NULL - ORDER BY A.課程編號"; - AddParam(cmdSelect, "學員編號", 學員編號); - return Select(cmdSelect); - } - } - - /// - /// 數位課程觀看紀錄 資料集合類別 - /// - public partial class 數位課程觀看紀錄List : List<數位課程觀看紀錄> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 數位課程觀看紀錄 資料紀錄類別 - /// - public partial class 數位課程觀看紀錄 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/選課報名/DAC_課程報名1.cs b/branches/1150807/DAC/選課報名/DAC_課程報名1.cs deleted file mode 100644 index 79094e8..0000000 --- a/branches/1150807/DAC/選課報名/DAC_課程報名1.cs +++ /dev/null @@ -1,485 +0,0 @@ -// -// 這個檔案是 課程報名 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Transactions; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 課程報名 資料存取類別 - /// - [DataObject] - public partial class DAC_課程報名 : WebLib.DAC - { - //private string _tableName = "課程報名"; - private string _select = "select 學員編號, 訓練課程編號, 報名狀態, 報名日期, 取消報名日期, 通知發送狀態, 出席狀況, 請假事由, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insert = "學員編號, 訓練課程編號, 報名狀態, 報名日期, 取消報名日期, 通知發送狀態, 出席狀況, 請假事由, DB_APPNO, DB_CRDAT, DB_CRUSR, DB_TRDAT, DB_TRUSR"; - private string _insertValue = "@學員編號, @訓練課程編號, @報名狀態, @報名日期, @取消報名日期, @通知發送狀態, @出席狀況, @請假事由, @DB_APPNO, @DB_CRDAT, @DB_CRUSR, @DB_TRDAT, @DB_TRUSR"; - private string _from = " from 課程報名 "; - 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() - { - 課程報名List result = new 課程報名List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where + _order; - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public 課程報名List SelectOne(string 學員編號, int 訓練課程編號) - { - 課程報名List result = new 課程報名List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 學員編號 = @學員編號 " - + " and 訓練課程編號 = @訓練課程編號 " - ; - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Insert)] - public void InsertOne(課程報名 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeInsertOne(value)) - return; - - DbCommand cmdInsert = NewCommand(); - cmdInsert.CommandText = - "insert into 課程報名" - + " (" + _insert + ")" - + "values " - + " (" + _insertValue + ");" - ; - 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.UtcNow.AddHours(8)); - AddParam(cmdInsert, "DB_CRUSR", CurrentUserId); - AddParam(cmdInsert, "DB_TRDAT", DBNull.Value); - AddParam(cmdInsert, "DB_TRUSR", DBNull.Value); - ExecuteNonQuery(cmdInsert); - AfterInsertOne(value); - ts.Complete(); - } - catch (Exception error) - { - bool handled; - OnInsertOneError(error, out handled); - if(!handled) - throw error; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Update)] - public int UpdateOne(課程報名 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeUpdateOne(value)) - return -1; - - 課程報名List oldValues = SelectOne(value.學員編號, value.訓練課程編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在更新 \"課程報名\" 資料表時發生並行例外:找不到要更新的資料列"); - } - 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 訓練課程編號 = @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, "DB_TRDAT", DateTime.UtcNow.AddHours(8)); - AddParam(cmdUpdate, "DB_TRUSR", CurrentUserId); - AddParam(cmdUpdate, "original_學員編號", value.學員編號); - AddParam(cmdUpdate, "original_訓練課程編號", value.訓練課程編號); - AddParam(cmdUpdate, "original_DB_APPNO", value.DB_APPNO); - int rowsAffected = ExecuteNonQuery(cmdUpdate); - AfterUpdateOne(value); - ts.Complete(); - return rowsAffected; - } - catch (Exception error) - { - bool handled; - OnUpdateOneError(error, out handled); - if(!handled) - throw error; - return -1; - } - } - } - - [DataObjectMethod(DataObjectMethodType.Delete)] - public int DeleteOne(string 學員編號, int 訓練課程編號, int DB_APPNO) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(學員編號, 訓練課程編號, DB_APPNO)) - return -1; - - 課程報名List oldValues = SelectOne(學員編號, 訓練課程編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"課程報名\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 課程報名 - where 1=1 - and 學員編號 = @學員編號 - and 訓練課程編號 = @訓練課程編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "學員編號", 學員編號); - 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(課程報名 value) - { - using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) - { - try - { - if (!BeforeDeleteOne(value)) - return -1; - - 課程報名List oldValues = SelectOne(value.學員編號, value.訓練課程編號); - if (oldValues.Count == 0 || oldValues[0].DB_APPNO != value.DB_APPNO) - { - throw new DBConcurrencyException("在刪除 \"課程報名\" 資料表時發生並行例外:找不到要刪除的資料列"); - } - DbCommand cmdDelete = NewCommand(); - cmdDelete.CommandText = - @"delete from 課程報名 - where 1=1 - and 學員編號 = @學員編號 - and 訓練課程編號 = @訓練課程編號 - and DB_APPNO = @DB_APPNO - "; - AddParam(cmdDelete, "學員編號", value.學員編號); - 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(string 學員編號, int 訓練課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1)" + _from + _where - + " and 學員編號 = @學員編號 " - + " and 訓練課程編號 = @訓練課程編號 " - ; - AddParam(cmdSelect, "學員編號", 學員編號); - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - int count; - ExecuteScalar(cmdSelect, out count); - return count > 0; - } - } - - /// - /// 課程報名 資料集合類別 - /// - public partial class 課程報名List : List<課程報名>, IDataList - { - public void Fill(DbDataReader reader) - { - while (reader.Read()) - { - 課程報名 newItem = new 課程報名(); - newItem.學員編號 = DAC.GetString(reader[0]); - newItem.訓練課程編號 = DAC.GetInt32(reader[1]); - newItem.報名狀態 = DAC.GetString(reader[2]); - newItem.報名日期 = DAC.GetDateTime(reader[3]); - newItem.取消報名日期 = DAC.GetDateTime(reader[4]); - newItem.通知發送狀態 = DAC.GetString(reader[5]); - newItem.出席狀況 = DAC.GetString(reader[6]); - newItem.請假事由 = DAC.GetString(reader[7]); - newItem.DB_APPNO = DAC.GetInt32(reader[8]); - newItem.DB_CRDAT = DAC.GetDateTime(reader[9]); - newItem.DB_CRUSR = DAC.GetString(reader[10]); - newItem.DB_TRDAT = DAC.GetDateTime(reader[11]); - newItem.DB_TRUSR = DAC.GetString(reader[12]); - Add(newItem); - } - } - } - - /// - /// 課程報名 資料紀錄類別 - /// - [Serializable] - public partial class 課程報名 : DataItemBase - { - private string _學員編號; - private int _訓練課程編號; - private string _報名狀態; - private DateTime _報名日期; - private DateTime _取消報名日期; - private string _通知發送狀態; - private string _出席狀況; - private string _請假事由; - - #region 資料欄位 - /// - /// 學員編號 - /// - [DataObjectField(true, false, false, 10)] - public string 學員編號 - { - get - { - return _學員編號; - } - set - { - if (value != _學員編號) - { - _學員編號 = value; - OnPropertyChanged("學員編號"); - } - } - } - - /// - /// 訓練課程編號 - /// - [DataObjectField(true, false, false)] - public int 訓練課程編號 - { - get - { - return _訓練課程編號; - } - set - { - if (value != _訓練課程編號) - { - _訓練課程編號 = value; - OnPropertyChanged("訓練課程編號"); - } - } - } - - /// - /// 報名狀態 - /// Y = 指定為選修,已報名 - /// S = 指定為選修,但尚未報名 - /// R = 指定為必修(並且已報名),學員不可取消報名 - /// N = 被管理員取消必修或是選修 - /// - [DataObjectField(false, false, true, 1)] - public string 報名狀態 - { - get - { - return _報名狀態; - } - set - { - if (value != _報名狀態) - { - _報名狀態 = value; - OnPropertyChanged("報名狀態"); - } - } - } - - /// - /// 報名日期 - /// - [DataObjectField(false, false, true)] - public DateTime 報名日期 - { - get - { - return _報名日期; - } - set - { - if (value != _報名日期) - { - _報名日期 = value; - OnPropertyChanged("報名日期"); - } - } - } - - /// - /// 取消報名日期 - /// - [DataObjectField(false, false, true)] - public DateTime 取消報名日期 - { - get - { - return _取消報名日期; - } - set - { - if (value != _取消報名日期) - { - _取消報名日期 = value; - OnPropertyChanged("取消報名日期"); - } - } - } - - /// - /// 通知發送狀態 - /// Y=已發送 - /// - [DataObjectField(false, false, true, 1)] - public string 通知發送狀態 - { - get - { - return _通知發送狀態; - } - set - { - if (value != _通知發送狀態) - { - _通知發送狀態 = value; - OnPropertyChanged("通知發送狀態"); - } - } - } - - /// - /// 出席狀況 - /// Y=出席 - /// N=缺席 - /// L=請假 - /// - [DataObjectField(false, false, true, 1)] - public string 出席狀況 - { - get - { - return _出席狀況; - } - set - { - if (value != _出席狀況) - { - _出席狀況 = value; - OnPropertyChanged("出席狀況"); - } - } - } - - /// - /// 請假事由 - /// - [DataObjectField(false, false, true, 100)] - public string 請假事由 - { - get - { - return _請假事由; - } - set - { - if (value != _請假事由) - { - _請假事由 = value; - OnPropertyChanged("請假事由"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/選課報名/DAC_課程報名2.cs b/branches/1150807/DAC/選課報名/DAC_課程報名2.cs deleted file mode 100644 index 4548520..0000000 --- a/branches/1150807/DAC/選課報名/DAC_課程報名2.cs +++ /dev/null @@ -1,748 +0,0 @@ -// -// 這個檔案是 課程報名 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 課程報名 資料存取類別 - /// - public partial class DAC_課程報名 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(課程報名 value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(課程報名 value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(課程報名 value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(課程報名 value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(課程報名 value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(課程報名 value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(string 學員編號, int 訓練課程編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(string 學員編號, int 訓練課程編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select選課紀錄(string 學員編號, bool 僅已簽核, bool 僅必修, bool 僅已上課, bool 僅已出席) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select * from ( - select A.學員編號, A.訓練課程編號, A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, - (select count(1) from 學員出席 where 學員出席.訓練課程編號=A.訓練課程編號 and 學員出席.學員編號=A.學員編號) AS 出席次數, - B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限, - (select count(1) from 滿意度調查 C where A.訓練課程編號=C.訓練課程企劃編號 and A.學員編號=C.學員編號) as 填寫數, - J.心得報告編號, J.上架 as 心得上架 - from 課程報名 A - inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號 - left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號 - where A.學員編號 = @學員編號"; - - if (僅已簽核) - cmdSelect.CommandText += - @" and exists ( select 1 from 表單簽核主檔 - where 表單類別ID = N'課程企劃' and 表單ID = B.編號 - and 應簽關數 = 已簽關數 - and 應簽關數 <> 'D' - and 最終結果 = 'Y' ) "; - - if (僅已上課) - cmdSelect.CommandText += - @" and B.訓練日期 <= GetDate() "; - - cmdSelect.CommandText += " ) as TMP1 where 1=1 "; - - if (僅已出席) - cmdSelect.CommandText += - @" and (出席次數 > 0) or (出席狀況 is not null and 出席狀況 <> '') "; - - cmdSelect.CommandText += " order by 訓練日期 desc"; - AddParam(cmdSelect, "學員編號", 學員編號); - return Select(cmdSelect); - } - - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select選課紀錄(int 訓練年度, string 計畫別, string 課程名稱, string 公司別) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select '外訓' AS 開課別, CONVERT(NVARCHAR(10), A.訓練年度) as 訓練日期, '' as 訓練日期迄, - A.訓練名稱, A.訓練時數, A.員工編號, C.BPNME as 員工姓名, - D.RAPYN AS 計畫年度編號, - '【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱, - D.RABRH AS 站別編號, F.BSRMK AS 站別名稱, - D.RAJNO AS 職務編號, G.BPJME AS 職務名稱, - D.RACNO AS 等級編號, H.BPCME AS 等級名稱, - 1 as 填寫數 - from 外部受訓紀錄 A - inner join BPSNView C on A.員工編號=C.BPENO - left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM) - left outer join BPAA E on D.RAPYN = E.BPPYN - left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH' - left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO - left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO - where 1=1 "; - - if (訓練年度 > 0) - { - cmdSelect.CommandText += " and A.訓練年度 = @訓練年度 "; - AddParam(cmdSelect, "訓練年度", 訓練年度); - } - - if (計畫別 != null && 計畫別.Length > 0) - { - cmdSelect.CommandText += " and D.RAPYN = @計畫別 "; - } - - if (課程名稱 != null && 課程名稱.Length > 0) - { - cmdSelect.CommandText += " and A.訓練名稱 like @課程名稱 "; - } - - cmdSelect.CommandText += - @" - union all - select '內訓' AS 開課別, CONVERT(NVARCHAR(10), B.訓練日期, 120) as 訓練日期, CONVERT(NVARCHAR(10), B.訓練日期迄, 120) as 訓練日期迄, - B.訓練名稱, B.訓練時數, A.學員編號 as 員工編號, C.BPNME as 學員姓名, - D.RAPYN AS 計畫年度編號, - '【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱, - D.RABRH AS 站別編號, F.BSRMK AS 站別名稱, - D.RAJNO AS 職務編號, G.BPJME AS 職務名稱, - D.RACNO AS 等級編號, H.BPCME AS 等級名稱, - (select count(1) from 滿意度調查 I where A.訓練課程編號=I.訓練課程企劃編號 and A.學員編號=I.學員編號) as 填寫數 - from 課程報名 A - inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號 - inner join BPSNView C on A.學員編號=C.BPENO - left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM) - left outer join BPAA E on D.RAPYN = E.BPPYN - left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH' - left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO - left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO - where exists ( select 1 from 表單簽核主檔 - where 表單類別ID = N'課程企劃' and 表單ID = B.編號 - and 應簽關數 = 已簽關數 - and 應簽關數 <> 'D' - and 最終結果 = 'Y' ) - and B.公司別=@公司別 "; - - if (訓練年度 > 0) - { - cmdSelect.CommandText += " and B.訓練日期 >= @訓練日期1 and B.訓練日期 < @訓練日期2 "; - AddParam(cmdSelect, "訓練日期1", new DateTime(訓練年度, 1, 1)); - AddParam(cmdSelect, "訓練日期2", new DateTime(訓練年度 + 1, 1, 1)); - } - - if (計畫別 != null && 計畫別.Length > 0) - { - cmdSelect.CommandText += " and D.RAPYN = @計畫別 "; - } - - if (課程名稱 != null && 課程名稱.Length > 0) - { - cmdSelect.CommandText += " and B.訓練名稱 like @課程名稱 "; - } - - cmdSelect.CommandText += " order by 訓練日期 desc"; - - AddParam(cmdSelect, "公司別", 公司別); - AddParam(cmdSelect, "計畫別", 計畫別); - AddParam(cmdSelect, "課程名稱", "%" + 課程名稱 + "%"); - - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select缺席紀錄(int 年度, string 計畫別, string 訓練名稱, string 公司別, List 訓練企劃編號, List 計畫年度編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select A.學員編號, C.BPNME as 學員姓名, A.訓練課程編號, A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由, - B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限, B.計畫別, - D.RAPYN AS 計畫年度編號, - '【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱, - D.RABRH AS 站別編號, F.BSRMK AS 站別名稱, - D.RAJNO AS 職務編號, G.BPJME AS 職務名稱, - D.RACNO AS 等級編號, H.BPCME AS 等級名稱, - - (select count(1) from 滿意度調查 C where A.訓練課程編號=C.訓練課程企劃編號 and A.學員編號=C.學員編號) as 填寫數, - J.心得報告編號, J.上架 as 心得上架 - from 課程報名 A - inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號 - inner join BPSNView C on A.學員編號=C.BPENO - left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM) - left outer join BPAA E on D.RAPYN = E.BPPYN - left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH' - left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO - left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO - left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號 - where exists ( select 1 from 表單簽核主檔 - where 表單類別ID = N'課程企劃' and 表單ID = B.編號 - and 應簽關數 = 已簽關數 - and 應簽關數 <> 'D' - and 最終結果 = 'Y' ) - and (SELECT COUNT(1) FROM 學員出席 K WHERE A.訓練課程編號=K.訓練課程編號 and A.學員編號=K.學員編號 AND K.出席狀況='Y') = 0 "; - - if (年度 > 0) - { - cmdSelect.CommandText += " and B.訓練日期 >= @訓練日期1 and B.訓練日期 < @訓練日期2 "; - AddParam(cmdSelect, "訓練日期1", new DateTime(年度, 1, 1)); - AddParam(cmdSelect, "訓練日期2", new DateTime(年度 + 1, 1, 1)); - } - - if (計畫別 != null && 計畫別.Length > 0) - { - cmdSelect.CommandText += " and B.計畫別 = @計畫別 "; - AddParam(cmdSelect, "計畫別", 計畫別); - } - - if (訓練名稱 != null && 訓練名稱.Length > 0) - { - cmdSelect.CommandText += " and B.訓練名稱 like @訓練名稱 "; - AddParam(cmdSelect, "訓練名稱", "%" + 訓練名稱 + "%"); - } - - if (公司別 != null && 公司別.Length > 0) - { - cmdSelect.CommandText += " and B.公司別 = @公司別 "; - AddParam(cmdSelect, "公司別", 公司別); - } - - if (訓練企劃編號 != null && 訓練企劃編號.Count > 0) - { - cmdSelect.CommandText += " and B.編號 in (" + String.Join(",", 訓練企劃編號.ToArray()) + ")"; - } - - if (計畫年度編號 != null && 計畫年度編號.Count > 0) - { - cmdSelect.CommandText += " and D.RAPYN in (" + String.Join(",", 計畫年度編號.ToArray()) + ")"; - } - - cmdSelect.CommandText += " order by B.訓練日期 desc"; - - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select確定報名學員名單(int 訓練課程編號, string 計畫年度編號 = "") - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select A.學員編號, C.BPNME as 學員姓名, C.BPEML as 電子郵件, A.訓練課程編號, - A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由, A.通知發送狀態, - B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限, - D.RAPYN AS 計畫年度編號, - '【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱, - D.RABRH AS 站別編號, F.BSRMK AS 站別名稱, - D.RAJNO AS 職務編號, G.BPJME AS 職務名稱, - D.RACNO AS 等級編號, H.BPCME AS 等級名稱, - (select count(1) from 滿意度調查 I where A.訓練課程編號=I.訓練課程企劃編號 and A.學員編號=I.學員編號) as 填寫數, - J.心得報告編號, J.上架 as 心得上架 - from 課程報名 A - inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號 - inner join BPSNView C on A.學員編號=C.BPENO - left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM) - left outer join BPAA E on D.RAPYN = E.BPPYN - left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH' - left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO - left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO - left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號 - where A.訓練課程編號 = @訓練課程編號 - and (A.報名狀態 = 'Y' or A.報名狀態 = 'R') "; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - - if (計畫年度編號 != null && 計畫年度編號.Length > 0) - { - cmdSelect.CommandText += " and D.RAPYN = @計畫年度編號 "; - AddParam(cmdSelect, "計畫年度編號", 計畫年度編號); - } - cmdSelect.CommandText += " order by 計畫年度編號, 站別編號, 職務編號, 等級編號, A.學員編號"; - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select效益追蹤名單(int 訓練課程編號, string 站別編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select A.學員編號, C.BPNME as 學員姓名, C.BPEML as 電子郵件, A.訓練課程編號, - A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由, A.通知發送狀態, - B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限, - D.RAPYN AS 計畫年度編號, - '【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱, - D.RABRH AS 站別編號, F.BSRMK AS 站別名稱, - D.RAJNO AS 職務編號, G.BPJME AS 職務名稱, - D.RACNO AS 等級編號, H.BPCME AS 等級名稱, - (select count(1) from 滿意度調查 I where A.訓練課程編號=I.訓練課程企劃編號 and A.學員編號=I.學員編號) as 填寫數, - J.心得報告編號, J.上架 as 心得上架 - from 課程報名 A - inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號 - inner join BPSNView C on A.學員編號=C.BPENO - left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM) - left outer join BPAA E on D.RAPYN = E.BPPYN - left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH' - left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO - left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO - left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號 - where A.訓練課程編號 = @訓練課程編號 - and (A.報名狀態 = 'Y' or A.報名狀態 = 'R') - and (SELECT COUNT(1) FROM 學員出席 K WHERE A.訓練課程編號=K.訓練課程編號 and A.學員編號=K.學員編號 AND K.出席狀況='Y') > 0"; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - - if (站別編號 != null && 站別編號.Length > 0) - { - string[] IDs = 站別編號.Split('|'); - if (IDs.Length > 1) - { - // 部門 - if (IDs[0] == "A") - { - string str組織 = ""; - - DAC_組織圖 Dao組織圖 = new DAC_組織圖(conn); - 組織圖List d = Dao組織圖.Select子樹(1, DAC.GetInt32(IDs[1])); - foreach (組織圖 item in d) - { - str組織 += String.Format("{0},", item.組織ID); - } - if (str組織.Length > 0) - { - str組織 = str組織.Remove(str組織.Length - 1); - cmdSelect.CommandText += " and exists (select 1 from 組織人員 X where A.學員編號=X.人員ID and X.組織ID IN (" + str組織 + ") ) "; - } - } - // 站別 - else - { - cmdSelect.CommandText += " and D.RABRH = @站別編號 "; - AddParam(cmdSelect, "站別編號", IDs[1]); - } - } - } - - // cmdSelect.CommandText += " order by 計畫年度編號, 站別編號, 職務編號, 等級編號, A.學員編號"; - cmdSelect.CommandText += " order by A.學員編號"; - - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select選課狀況(int 訓練課程編號, bool 必修) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select A.學員編號, C.BPNME as 學員姓名, C.BPEML as 電子郵件, A.訓練課程編號, - A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由, A.通知發送狀態, - B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限, - D.RAPYN AS 計畫年度編號, - '【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(E.BPPYN,LEN(E.BPPYN)-5,1)) + '】' + E.BPPYM AS 計畫年度名稱, - D.RABRH AS 站別編號, F.BSRMK AS 站別名稱, - D.RAJNO AS 職務編號, G.BPJME AS 職務名稱, - D.RACNO AS 等級編號, H.BPCME AS 等級名稱 - from 課程報名 A - inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號 - inner join BPSNView C on A.學員編號=C.BPENO - left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM) - left outer join BPAA E on D.RAPYN = E.BPPYN - left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH' - left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO - left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO - left outer join 心得報告 J on A.訓練課程編號=J.訓練課程企劃編號 and A.學員編號=J.學員編號 - where A.訓練課程編號 = @訓練課程編號"; - if (必修) - cmdSelect.CommandText += " and A.報名狀態 = 'R' "; - else - cmdSelect.CommandText += " and A.報名狀態 <> 'R' AND A.報名狀態 <> 'N' "; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - - cmdSelect.CommandText += " order by A.學員編號"; - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select確定報名學員計畫(int 訓練課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select distinct 計畫年度編號, ISNULL('【' + I.BSSCR + '】', '') + 計畫年度名稱 as 計畫年度名稱 from - (select A.學員編號, C.BPNME as 學員姓名, C.BPEML as 電子郵件, A.訓練課程編號, - A.報名狀態, A.報名日期, A.取消報名日期, A.出席狀況, A.請假事由, A.通知發送狀態, - B.顯示編號, B.訓練名稱, B.訓練日期, B.訓練日期迄, B.取消報名截止期限, - D.RAPYN AS 計畫年度編號, E.BPPYM AS 計畫年度名稱, - D.RABRH AS 站別編號, F.BSRMK AS 站別名稱, - D.RAJNO AS 職務編號, G.BPJME AS 職務名稱, - D.RACNO AS 等級編號, H.BPCME AS 等級名稱 - from 課程報名 A - inner join 訓練課程企劃 B on A.訓練課程編號 = B.編號 - inner join BPSNView C on A.學員編號=C.BPENO - left outer join RASN D on C.BPENO = D.RANUM and D.RAITM = (SELECT MAX(RASN.RAITM) FROM RASN WHERE RASN.RANUM=D.RANUM) - left outer join BPAA E on D.RAPYN = E.BPPYN - left outer join BCLS F on F.BSCLS = D.RABRH and F.BSPAR = 'BPSNBRH' - left outer join BPJA G on G.BPPYN = D.RAPYN and G.BPJNO = D.RAJNO - left outer join BPJB H on H.BPPYN = D.RAPYN and H.BPJNO = D.RAJNO and H.BPCNO = D.RACNO - where A.訓練課程編號 = @訓練課程編號 - and (A.報名狀態 = 'Y' or A.報名狀態 = 'R')) as tmp1 - left outer join BCLS I on I.BSCLS = SUBSTRING(計畫年度編號, LEN(計畫年度編號)-5,1) and I.BSPAR = 'BCUSZON' - order by 計畫年度編號"; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select必修學員(int 訓練課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select A.學員編號, A.學員編號 + ' ' + B.BPNME as 學員姓名 - from 課程報名 A - inner join BPSNView B on A.學員編號=B.BPENO - where A.訓練課程編號 = @訓練課程編號 - and A.報名狀態 = 'R' - order by A.學員編號"; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - return Select(cmdSelect); - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public DataTable Select選修學員(int 訓練課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select A.學員編號, A.學員編號 + ' ' + B.BPNME as 學員姓名 - from 課程報名 A - inner join BPSNView B on A.學員編號=B.BPENO - where A.訓練課程編號 = @訓練課程編號 - and (A.報名狀態 = 'S' or A.報名狀態 = 'Y') - order by A.學員編號"; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - return Select(cmdSelect); - } - - public int Get報名人數(int 訓練課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select count(1) from 課程報名 - where 訓練課程編號 = @訓練課程編號 - and (報名狀態 = 'Y' or 報名狀態 = 'R')"; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - /* - public int Get出席人數(int 訓練課程編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select count(1) from 課程報名 - where 訓練課程編號 = @訓練課程編號 - and (報名狀態 = 'Y' or 報名狀態 = 'R') and 出席狀況='Y'"; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - */ - - public int Get出席人數(int 訓練課程編號) - { - return new DAC_學員出席(conn).Get出席人次(訓練課程編號); - } - - public decimal Get出席率(int 訓練課程編號) - { - // 出席率 = 出席人次 / 報名人數 * 課程天數 - - if (訓練課程編號 == 0) - return 0; - - int 出席人次 = new DAC_學員出席(conn).Get出席人次(訓練課程編號); - int 報名人數 = Get報名人數(訓練課程編號); - int 課程天數 = new DAC_訓練課程內容(conn).Select訓練日期List(訓練課程編號).Count; - if (課程天數 == 0 || 報名人數 == 0) - return 0; - else - return (decimal)出席人次 / ((decimal)報名人數 * (decimal)課程天數) * 100m; - - /* - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"declare @totalcount int - select @totalcount = count(1) from 課程報名 - where 訓練課程編號 = @訓練課程編號 - and (報名狀態 = 'Y' or 報名狀態 = 'R') - - if @totalcount > 0 - select - cast((select count(1) from 課程報名 - where 訓練課程編號 = @訓練課程編號 - and (報名狀態 = 'Y' or 報名狀態 = 'R') and 出席狀況='Y') as float) - / - cast((select count(1) from 課程報名 - where 訓練課程編號 = @訓練課程編號 - and (報名狀態 = 'Y' or 報名狀態 = 'R')) as float) * 100 - else - select 0"; - AddParam(cmdSelect, "訓練課程編號", 訓練課程編號); - decimal i; - ExecuteScalar(cmdSelect, out i); - return i; - */ - } - - /// - /// 取得某學員是否報名某課程 - /// - public string Get報名狀態(string 學員編號, int 訓練課程編號) - { - 課程報名List d = SelectOne(學員編號, 訓練課程編號); - if (d.Count == 0) - return ""; - return d[0].報名狀態; - } - - public void 必修(string 學員編號, int 訓練課程編號, string userId) - { - 課程報名List values = SelectOne(學員編號, 訓練課程編號); - if (values.Count == 0) - { - 課程報名 newValue = new 課程報名(); - newValue.學員編號 = 學員編號; - newValue.訓練課程編號 = 訓練課程編號; - newValue.報名日期 = DateTime.UtcNow.AddHours(8); - newValue.報名狀態 = "R"; - newValue.DB_CRUSR = userId; - InsertOne(newValue); - } - else - { - // 已經是必修或是選修,不管他 - if (values[0].報名狀態 == "R" || values[0].報名狀態 == "Y" || values[0].報名狀態 == "S") - return; - - values[0].報名日期 = DateTime.UtcNow.AddHours(8); - values[0].取消報名日期 = new DateTime(); - values[0].報名狀態 = "R"; - values[0].DB_TRUSR = userId; - UpdateOne(values[0]); - } - } - - public void 取消必修(string 學員編號, int 訓練課程編號, string userId) - { - 課程報名List values = SelectOne(學員編號, 訓練課程編號); - if (values.Count > 0 && values[0].報名狀態 == "R") - { - values[0].報名日期 = DateTime.UtcNow.AddHours(8); - values[0].取消報名日期 = new DateTime(); - values[0].報名狀態 = "N"; - values[0].DB_TRUSR = userId; - UpdateOne(values[0]); - } - } - - public void 選修(string 學員編號, int 訓練課程編號, string userId) - { - 課程報名List values = SelectOne(學員編號, 訓練課程編號); - if (values.Count == 0) - { - 課程報名 newValue = new 課程報名(); - newValue.學員編號 = 學員編號; - newValue.訓練課程編號 = 訓練課程編號; - newValue.報名日期 = DateTime.UtcNow.AddHours(8); - newValue.報名狀態 = "S"; - newValue.DB_CRUSR = userId; - InsertOne(newValue); - } - else - { - // 已經是必修或是選修,不管他 - if (values[0].報名狀態 == "R" || values[0].報名狀態 == "Y" || values[0].報名狀態 == "S") - return; - - values[0].報名日期 = DateTime.UtcNow.AddHours(8); - values[0].取消報名日期 = new DateTime(); - values[0].報名狀態 = "S"; - values[0].DB_TRUSR = userId; - UpdateOne(values[0]); - } - } - - public void 取消選修(string 學員編號, int 訓練課程編號, string userId) - { - 課程報名List values = SelectOne(學員編號, 訓練課程編號); - if (values.Count > 0 && (values[0].報名狀態 == "S" || values[0].報名狀態 == "Y")) - { - values[0].報名日期 = DateTime.UtcNow.AddHours(8); - values[0].取消報名日期 = new DateTime(); - values[0].報名狀態 = "N"; - values[0].DB_TRUSR = userId; - UpdateOne(values[0]); - } - } - - public void 選修報名(string 學員編號, int 訓練課程編號, string userId) - { - 課程報名List values = SelectOne(學員編號, 訓練課程編號); - if (values.Count > 0 && values[0].報名狀態 == "S") - { - values[0].報名日期 = DateTime.UtcNow.AddHours(8); - values[0].取消報名日期 = new DateTime(); - values[0].報名狀態 = "Y"; - values[0].DB_TRUSR = userId; - UpdateOne(values[0]); - } - } - - public void 取消報名(string 學員編號, int 訓練課程編號, string userId) - { - 課程報名List values = SelectOne(學員編號, 訓練課程編號); - if (values.Count > 0 && values[0].報名狀態 == "Y") - { - values[0].報名日期 = new DateTime(); - values[0].取消報名日期 = DateTime.UtcNow.AddHours(8); - values[0].報名狀態 = "S"; - values[0].DB_TRUSR = userId; - UpdateOne(values[0]); - } - } - - public void 標記已發送學員通知(string 學員編號, int 訓練課程編號, string UserId) - { - 課程報名List values = SelectOne(學員編號, 訓練課程編號); - if (values.Count > 0) - { - values[0].通知發送狀態 = "Y"; - values[0].DB_TRUSR = UserId; - UpdateOne(values[0]); - } - } - - public void Update出席狀況(string 學員編號, int 訓練課程編號, string 出席狀況, string 請假事由, string UserId) - { - 課程報名List values = SelectOne(學員編號, 訓練課程編號); - if (values.Count > 0) - { - values[0].出席狀況 = 出席狀況; - values[0].請假事由 = 請假事由; - values[0].DB_TRUSR = UserId; - UpdateOne(values[0]); - } - } - - } - - /// - /// 課程報名 資料集合類別 - /// - public partial class 課程報名List : List<課程報名> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - /// 課程報名 資料紀錄類別 - /// - public partial class 課程報名 - { - // 有另外加上去的屬性及方法,請加在這裡 - } -} diff --git a/branches/1150807/DAC/領據系統/BRML.cs b/branches/1150807/DAC/領據系統/BRML.cs deleted file mode 100644 index 2a8fed5..0000000 --- a/branches/1150807/DAC/領據系統/BRML.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - /// - /// 通匯銀行資料 - /// - public class BRML: DAC - { - public BRML() - : base() - { - } - - public BRML(DbConnection conn) - : base(conn) - { - } - - - public NameValueList BankBranchList() - { - NameValueList result = new NameValueList(); - - NameValueList banks = new NameValueList(); - IDataList banklist = banks as IDataList; - DbCommand cmdSelect = NewCommand("SELECT BCNUM AS Value, BCSNM as Name FROM BRML WHERE LEN(BCNUM) = 3"); - Select(cmdSelect, ref banklist); - - foreach (NameValueItem bank in banks) - { - NameValueList branches = new NameValueList(); - IDataList branchlist = branches as IDataList; - DbCommand cmdBranch = NewCommand("SELECT BCNUM AS Value, BCNAM as Name FROM BRML WHERE BCNUM LIKE @BCNUM AND LEN(BCNUM) > 3"); - AddParam(cmdBranch, "@BCNUM", $"{bank.Value}%"); - Select(cmdBranch, ref branchlist); - - foreach (NameValueItem branch in branches) - { - result.Add($"{bank.Name}{branch.Name}", branch.Value); - } - } - return result; - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/領據系統/DAC_付款設定1.cs b/branches/1150807/DAC/領據系統/DAC_付款設定1.cs deleted file mode 100644 index 50416d9..0000000 --- a/branches/1150807/DAC/領據系統/DAC_付款設定1.cs +++ /dev/null @@ -1,736 +0,0 @@ -// -// 這個檔案是 付款設定 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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, int? 編號, string 講師_非講師編號) - { - if (編號 != null) - { - 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, int? 編號, string 講師_非講師編號, 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, 編號, 講師_非講師編號); - 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, int? 編號, string 講師_非講師編號, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 編號, 講師_非講師編號); - - 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, int? 編號, string 講師_非講師編號, 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, 編號, 講師_非講師編號); - 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, "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, "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, "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, "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 _備註; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 講師/非講師編號 - /// - [DataObjectField(false, false, false, 10)] - 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, 2)] - 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, 50)] - 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, 50)] - 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, 500)] - public string 備註 - { - get - { - return _備註; - } - set - { - if (value != _備註) - { - _備註 = value; - OnPropertyChanged("備註"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_付款設定2.cs b/branches/1150807/DAC/領據系統/DAC_付款設定2.cs deleted file mode 100644 index 4c01a37..0000000 --- a/branches/1150807/DAC/領據系統/DAC_付款設定2.cs +++ /dev/null @@ -1,256 +0,0 @@ -// -// 這個檔案是 付款設定 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Linq; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 付款設定 資料存取類別 - /// - public partial class DAC_付款設定 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(付款設定Item value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(付款設定Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(付款設定Item value) - { - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(付款設定Item value, 付款設定Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(付款設定Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(付款設定Item value, 付款設定Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(付款設定Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(付款設定Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - [DataObjectMethod(DataObjectMethodType.Select)] - public 付款設定List SelectPageBy講師_非講師編號(int startRowIndex, int maximumRows, string 講師_非講師編號) - { - 付款設定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 生效日期 desc) as rowid " - + _from + _where; - - if (!String.IsNullOrEmpty(講師_非講師編號)) - { - cmdSelect.CommandText += " and 講師_非講師編號 = @講師_非講師編號 "; - AddParam(cmdSelect, "講師_非講師編號", 講師_非講師編號); - } - - cmdSelect.CommandText += ") as TMP1 where rowid > @startRowIndex "; - AddParam(cmdSelect, "startRowIndex", startRowIndex); - - Select(cmdSelect, ref list); - return result; - } - - [DataObjectMethod(DataObjectMethodType.Select)] - public int SelectCountBy講師_非講師編號(string 講師_非講師編號) - { - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - - if (!String.IsNullOrEmpty(講師_非講師編號)) - { - cmdSelect.CommandText += " and 講師_非講師編號 = @講師_非講師編號 "; - AddParam(cmdSelect, "講師_非講師編號", 講師_非講師編號); - } - - int i; - ExecuteScalar(cmdSelect, out i); - return i; - } - - /// - /// 依照 eventDate 選取生效的付款設定 - /// - /// - /// - /// - public 付款設定Item SelectRecentlyActivated(string 講師_非講師編號, DateTime? eventDate) - { - if (String.IsNullOrEmpty(講師_非講師編號) || !eventDate.HasValue) - { - return null; - } - var 編號 = 講師_非講師編號.StartsWith("P") || 講師_非講師編號.StartsWith("T") - ? 講師_非講師編號 - : string.Format("T{0:0000}", DAC.GetInt32(講師_非講師編號)); - - 付款設定List result = new 付款設定List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = $"select top 1 * {_from} {_where} and 講師_非講師編號 = @講師_非講師編號 and 生效日期 <= @生效日期 order by 生效日期 desc"; - AddParam(cmdSelect, "講師_非講師編號", 編號); - AddParam(cmdSelect, "生效日期", eventDate.Value); - Select(cmdSelect, ref list); - return result.FirstOrDefault(); - } - } - - /// - ///付款設定 資料集合類別 - /// - public partial class 付款設定List : List<付款設定Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///付款設定 資料紀錄類別 - /// - public partial class 付款設定Item - { - // 有另外加上去的屬性及方法,請加在這裡 - private DbConnection _conn = null; - private DAC_BPSN _dao_bpsn = null; - private DAC_BPSN dao_bpsn - { - get - { - if (_dao_bpsn == null) - { - if (_conn == null) - { - _conn = DAC.NewConnection(); - _conn.Open(); - } - _dao_bpsn = new DAC_BPSN(_conn); - } - return _dao_bpsn; - } - } - - [DataObjectField(false)] - public string DB_CRUSR_NAME - { - get - { - return dao_bpsn.Get員工姓名(DB_CRUSR); - } - } - - [DataObjectField(false)] - public string DB_TRUSR_NAME - { - get - { - return dao_bpsn.Get員工姓名(DB_TRUSR); - } - } - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_勞務費1.cs b/branches/1150807/DAC/領據系統/DAC_勞務費1.cs deleted file mode 100644 index 2818117..0000000 --- a/branches/1150807/DAC/領據系統/DAC_勞務費1.cs +++ /dev/null @@ -1,756 +0,0 @@ -// -// 這個檔案是 勞務費 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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, int? 領據編號) - { - if (領據編號 != null) - { - noInput = false; - cmdSelect.CommandText += " and 領據編號 = @領據編號 "; - AddParam(cmdSelect, "領據編號", 領據編號); - } - - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 勞務費List Select(bool noInputReturnAll, int? 領據編號, 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, 領據編號); - 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, int? 領據編號, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 領據編號); - - 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, int? 領據編號, 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, 領據編號); - 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 + ");" ; - 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); - ExecuteNonQuery(cmdInsert); - 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, "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, "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, "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 string _編號; - private int _領據編號; - private string _費用別; - private int? _單價; - private decimal? _數量; - private string _單位; - private string _扣繳類別; - private int? _合計金額; - private int? _應扣繳稅額; - private int? _服務費; - private int? _作廢; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(false, false, true, 10)] - public string 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 領據編號 - /// - [DataObjectField(true, false, false)] - public int 領據編號 - { - 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)] - public int? 單價 - { - get - { - return _單價; - } - set - { - if (value != _單價) - { - _單價 = value; - OnPropertyChanged("單價"); - } - } - } - - /// - /// 數量 - /// - [DataObjectField(false, false, true)] - public decimal? 數量 - { - 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, 20)] - 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)] - public int? 服務費 - { - get - { - return _服務費; - } - set - { - if (value != _服務費) - { - _服務費 = value; - OnPropertyChanged("服務費"); - } - } - } - - /// - /// 作廢 - /// - [DataObjectField(false, false, true)] - public int? 作廢 - { - get - { - return _作廢; - } - set - { - if (value != _作廢) - { - _作廢 = value; - OnPropertyChanged("作廢"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_勞務費2.cs b/branches/1150807/DAC/領據系統/DAC_勞務費2.cs deleted file mode 100644 index 8fa1a19..0000000 --- a/branches/1150807/DAC/領據系統/DAC_勞務費2.cs +++ /dev/null @@ -1,189 +0,0 @@ -// -// 這個檔案是 勞務費 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using NPOI.SS.Formula.Functions; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.Linq; -using System.Text; -using WebLib; - -namespace Education -{ - /// - /// 勞務費 資料存取類別 - /// - public partial class DAC_勞務費 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(勞務費Item value) - { - value.作廢 = 0; - value.合計金額 = value.計算合計(); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(勞務費Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(勞務費Item value) - { - value.合計金額 = value.計算合計(); - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(勞務費Item value, 勞務費Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(勞務費Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(勞務費Item value, 勞務費Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(勞務費Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(勞務費Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 領據編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 領據編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - - /// - /// 判斷是否為空 - /// - /// - /// - public bool IsEmpty(勞務費Item item) - { - if (item == null) - return true; - return string.IsNullOrEmpty(item.編號) - && item.領據編號 == 0 - && string.IsNullOrEmpty(item.費用別) - && item.單價.HasValue - && item.數量.HasValue - && string.IsNullOrEmpty(item.單位) - && string.IsNullOrEmpty(item.扣繳類別) - && item.合計金額 == 0 - && item.應扣繳稅額 == 0 - && item.服務費 == 0; - } - } - - /// - ///勞務費 資料集合類別 - /// - public partial class 勞務費List : List<勞務費Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///勞務費 資料紀錄類別 - /// - public partial class 勞務費Item - { - // 有另外加上去的屬性及方法,請加在這裡 - public bool IsEmpty - { - get - { - return (!單價.HasValue || 單價 == 0) && (!數量.HasValue || 數量 == 0) && (!服務費.HasValue || 服務費 == 0); - } - } - - public int 計算合計() - { - return (int)((decimal)(單價.HasValue ? 單價 : 0) * (數量.HasValue ? 數量.Value : 0)); - } - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_差旅費1.cs b/branches/1150807/DAC/領據系統/DAC_差旅費1.cs deleted file mode 100644 index a9a820e..0000000 --- a/branches/1150807/DAC/領據系統/DAC_差旅費1.cs +++ /dev/null @@ -1,864 +0,0 @@ -// -// 這個檔案是 差旅費 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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, int? 領據編號) - { - if (領據編號 != null) - { - noInput = false; - cmdSelect.CommandText += " and 領據編號 = @領據編號 "; - AddParam(cmdSelect, "領據編號", 領據編號); - } - - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 差旅費List Select(bool noInputReturnAll, int? 領據編號, 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, 領據編號); - 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, int? 領據編號, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 領據編號); - - 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, int? 領據編號, 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, 領據編號); - 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 + ");" ; - 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); - ExecuteNonQuery(cmdInsert); - 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, "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, "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, "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 string _編號; - private int _領據編號; - private string _票價資訊; - private string _費用別; - private string _起點; - private string _訖點; - private int? _捷運公車; - private int? _火車; - private int? _計程車; - private int? _高鐵飛機; - private int? _自行開車; - private int? _過路費停車費; - private int? _住宿費; - private int? _合計; - private int? _作廢; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(false, false, true, 10)] - public string 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 領據編號 - /// - [DataObjectField(true, false, false)] - public int 領據編號 - { - 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, 20)] - 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, 20)] - 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)] - 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)] - 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)] - 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)] - public int? 作廢 - { - get - { - return _作廢; - } - set - { - if (value != _作廢) - { - _作廢 = value; - OnPropertyChanged("作廢"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_差旅費2.cs b/branches/1150807/DAC/領據系統/DAC_差旅費2.cs deleted file mode 100644 index 9268dcb..0000000 --- a/branches/1150807/DAC/領據系統/DAC_差旅費2.cs +++ /dev/null @@ -1,196 +0,0 @@ -// -// 這個檔案是 差旅費 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using NPOI.SS.Formula.Functions; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.Linq; -using System.Text; -using WebLib; - -namespace Education -{ - /// - /// 差旅費 資料存取類別 - /// - public partial class DAC_差旅費 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(差旅費Item value) - { - value.作廢 = 0; - value.合計 = value.計算合計(); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(差旅費Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(差旅費Item value) - { - value.合計 = value.計算合計(); - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(差旅費Item value, 差旅費Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(差旅費Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(差旅費Item value, 差旅費Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(差旅費Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(差旅費Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 領據編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 領據編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - - /// - /// 判斷是否為空 - /// - /// - /// - public bool IsEmpty(差旅費Item item) - { - if (item == null) - return true; - return string.IsNullOrEmpty(item.編號) - && item.領據編號 == 0 - && string.IsNullOrEmpty(item.票價資訊) - && string.IsNullOrEmpty(item.費用別) - && string.IsNullOrEmpty(item.起點) - && string.IsNullOrEmpty(item.訖點) - && item.捷運公車.HasValue - && item.火車.HasValue - && item.計程車.HasValue - && item.高鐵飛機.HasValue - && item.自行開車.HasValue - && item.過路費停車費.HasValue - && item.住宿費.HasValue - && item.合計.HasValue; - } - } - - /// - ///差旅費 資料集合類別 - /// - public partial class 差旅費List : List<差旅費Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///差旅費 資料紀錄類別 - /// - public partial class 差旅費Item - { - // 有另外加上去的屬性及方法,請加在這裡 - public bool IsEmpty - { - get { return (!合計.HasValue || 合計 == 0); } - } - - public int 計算合計() - { - return (捷運公車.HasValue ? 捷運公車.Value : 0) - + (火車.HasValue ? 火車.Value : 0) - + (計程車.HasValue ? 計程車.Value : 0) - + (高鐵飛機.HasValue ? 高鐵飛機.Value : 0) - + (自行開車.HasValue ? 自行開車.Value : 0) - + (過路費停車費.HasValue ? 過路費停車費.Value : 0) - + (住宿費.HasValue ? 住宿費.Value : 0); - } - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_火車票價1.cs b/branches/1150807/DAC/領據系統/DAC_火車票價1.cs deleted file mode 100644 index 393ad55..0000000 --- a/branches/1150807/DAC/領據系統/DAC_火車票價1.cs +++ /dev/null @@ -1,635 +0,0 @@ -// -// 這個檔案是 火車票價 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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, int? 版本號, string 起站, string 迄站) - { - if (版本號 != null) - { - 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 迄站 like @迄站 "; - AddParam(cmdSelect, "迄站", "%" + 迄站 + "%"); - } - - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 火車票價List Select(bool noInputReturnAll, int? 版本號, string 起站, string 迄站, 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, 版本號, 起站, 迄站); - 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, int? 版本號, string 起站, string 迄站, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 版本號, 起站, 迄站); - - 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, int? 版本號, string 起站, string 迄站, 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, 版本號, 起站, 迄站); - 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, "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, "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, "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, "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 int _版本號; - private DateTime _生效日期; - private string _起站; - private string _迄站; - private int _票價; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false)] - public int 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 版本號 - /// - [DataObjectField(false, false, false)] - public int 版本號 - { - get - { - return _版本號; - } - set - { - if (value != _版本號) - { - _版本號 = value; - OnPropertyChanged("版本號"); - } - } - } - - /// - /// 生效日期 - /// - [DataObjectField(false, false, false)] - public DateTime 生效日期 - { - get - { - return _生效日期; - } - set - { - if (value != _生效日期) - { - _生效日期 = value; - OnPropertyChanged("生效日期"); - } - } - } - - /// - /// 起站 - /// - [DataObjectField(false, false, false, 20)] - public string 起站 - { - get - { - return _起站; - } - set - { - if (value != _起站) - { - _起站 = value; - OnPropertyChanged("起站"); - } - } - } - - /// - /// 迄站 - /// - [DataObjectField(false, false, false, 20)] - public string 迄站 - { - get - { - return _迄站; - } - set - { - if (value != _迄站) - { - _迄站 = value; - OnPropertyChanged("迄站"); - } - } - } - - /// - /// 票價 - /// - [DataObjectField(false, false, false)] - public int 票價 - { - get - { - return _票價; - } - set - { - if (value != _票價) - { - _票價 = value; - OnPropertyChanged("票價"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_火車票價2.cs b/branches/1150807/DAC/領據系統/DAC_火車票價2.cs deleted file mode 100644 index 64af896..0000000 --- a/branches/1150807/DAC/領據系統/DAC_火車票價2.cs +++ /dev/null @@ -1,278 +0,0 @@ -// -// 這個檔案是 火車票價 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Linq; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 火車票價 資料存取類別 - /// - public partial class DAC_火車票價 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(火車票價Item value) - { - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(火車票價Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(火車票價Item value) - { - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(火車票價Item value, 火車票價Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(火車票價Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(火車票價Item value, 火車票價Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(火車票價Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(火車票價Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - - public NameValueList 查詢版本號List() - { - NameValueList result = new NameValueList(); - DbCommand cmdSelect = NewCommand(); - - // SQL 查詢:取得所有不同的版本、生效日期、以及該版本最後的建檔和修改日期 - cmdSelect.CommandText = $@" - select - 版本號, - max(生效日期) as 生效日期, - max(DB_CRDAT) as 建檔日期, - max(DB_TRDAT) as 修改日期 - from {_tableName} - group by 版本號 - order by 版本號 desc"; - - var dt = Select(cmdSelect); - foreach (DataRow row in dt.Rows) - { - int versionId = DAC.GetInt32(row["版本號"]); - DateTime effectiveDate = DAC.GetDateTime(row["生效日期"]); - - // 取得修改日期,如果沒有則使用建檔日期 - DateTime modifyDate = row["修改日期"] != DBNull.Value - ? DAC.GetDateTime(row["修改日期"]) - : DAC.GetDateTime(row["建檔日期"]); - - string displayText = $"第 {versionId} 版 - 生效日期 {effectiveDate:yyyy-MM-dd} - 修改時間 {modifyDate:yyyy-MM-dd HH:mm:ss}"; - result.Add(displayText, versionId.ToString()); - } - - return result; - } - - public int 查詢版本號(DateTime? date) - { - if (!date.HasValue) - { - date = PublicVariable.TaiwanNow; - } - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = $"select top 1 版本號 from {_tableName} where 生效日期 < @生效日期 order by 生效日期 desc"; - AddParam(cmdSelect, "生效日期", date.Value); - if (ExecuteScalar(cmdSelect, out int value)) - { - return value; - } - return 0; - } - - public NameValueList 查詢起站(string key) - { - var 版本號 = 查詢版本號(null); - - NameValueList result = new NameValueList(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - var sql = $"select distinct 起站 Name, 起站 Value from {_tableName} where 版本號=@版本號 "; - if (!string.IsNullOrEmpty(key)) - { - sql += " and 起站 like @起站 "; - AddParam(cmdSelect, "起站", $"%{key}%"); - } - AddParam(cmdSelect, "版本號", 版本號); - cmdSelect.CommandText = sql + " order by 起站"; - Select(cmdSelect, ref list); - return result; - } - - public NameValueList 查詢迄站(string key) - { - var 版本號 = 查詢版本號(null); - - NameValueList result = new NameValueList(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - var sql = $"select distinct 迄站 Name, 迄站 Value from {_tableName} where 版本號=@版本號 "; - if (!string.IsNullOrEmpty(key)) - { - sql += " and 迄站 like @迄站 "; - AddParam(cmdSelect, "迄站", $"%{key}%"); - } - AddParam(cmdSelect, "版本號", 版本號); - cmdSelect.CommandText = sql + " order by 迄站"; - Select(cmdSelect, ref list); - return result; - } - - public int 查詢票價(string 起站, string 迄站) - { - var 版本號 = 查詢版本號(null); - - DbCommand cmdSelect = NewCommand($"select 票價 from {_tableName} where 版本號=@版本號 and 起站=@起站 and 迄站=@迄站"); - AddParam(cmdSelect, "版本號", 版本號); - AddParam(cmdSelect, "起站", 起站); - AddParam(cmdSelect, "迄站", 迄站); - if (ExecuteScalar(cmdSelect, out int value)) - { - return value; - } - return 0; - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 火車票價List 查詢票價表(int? 版本號) - { - 火車票價List result = new 火車票價List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = - @"select A.*, B.站碼 起站站碼, C.站碼 迄站站碼 - from 火車票價 A - join 火車站 B on A.起站=B.站名 - join 火車站 C on A.迄站=C.站名 - where A.版本號=@版本號 - order by 起站站碼, 迄站站碼"; - AddParam(cmdSelect, "版本號", 版本號); - Select(cmdSelect, ref list); - return result; - } - } - - /// - ///火車票價 資料集合類別 - /// - public partial class 火車票價List : List<火車票價Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///火車票價 資料紀錄類別 - /// - public partial class 火車票價Item - { - // 有另外加上去的屬性及方法,請加在這裡 - public string 起站站碼 { get; set; } - public string 迄站站碼 { get; set; } - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_非講師1.cs b/branches/1150807/DAC/領據系統/DAC_非講師1.cs deleted file mode 100644 index 02c7560..0000000 --- a/branches/1150807/DAC/領據系統/DAC_非講師1.cs +++ /dev/null @@ -1,1027 +0,0 @@ -// -// 這個檔案是 非講師 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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(string 編號) - { - 非講師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, string 編號, string 姓名, string 身分證字號, string 聯絡電話, string 電子郵件) - { - if (編號 != null && 編號.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 編號 like @編號 "; - AddParam(cmdSelect, "編號", "%" + 編號 + "%"); - } - - if (姓名 != null && 姓名.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 姓名 like @姓名 "; - AddParam(cmdSelect, "姓名", "%" + 姓名 + "%"); - } - - if (身分證字號 != null && 身分證字號.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 身分證字號 like @身分證字號 "; - AddParam(cmdSelect, "身分證字號", "%" + 身分證字號 + "%"); - } - - if (聯絡電話 != null && 聯絡電話.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 聯絡電話 like @聯絡電話 "; - AddParam(cmdSelect, "聯絡電話", "%" + 聯絡電話 + "%"); - } - - if (電子郵件 != null && 電子郵件.Length > 0) - { - noInput = false; - cmdSelect.CommandText += " and 電子郵件 like @電子郵件 "; - AddParam(cmdSelect, "電子郵件", "%" + 電子郵件 + "%"); - } - - } - - /// - /// 給查詢畫面用的 Select 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 非講師List Select(bool noInputReturnAll, string 編號, string 姓名, string 身分證字號, string 聯絡電話, string 電子郵件, 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, 編號, 姓名, 身分證字號, 聯絡電話, 電子郵件); - 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, string 編號, string 姓名, string 身分證字號, string 聯絡電話, string 電子郵件, string orderBy = "") - { - bool noInput = true; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = "select count(1) " + _from + _where; - AddWhere(cmdSelect, ref noInput, 編號, 姓名, 身分證字號, 聯絡電話, 電子郵件); - - 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, string 編號, string 姓名, string 身分證字號, string 聯絡電話, string 電子郵件, 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, 編號, 姓名, 身分證字號, 聯絡電話, 電子郵件); - 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 + ");" ; - 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, "接受邀約", 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); - ExecuteNonQuery(cmdInsert); - 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, "聯繫狀況與報價", 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, "接受邀約", 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(string 編號, 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(string 編號) - { - 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, "聯繫狀況與報價", 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 string _編號; - 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 string _居住地址_街道地址; - private string _職務內容; - private string _合作滿意度; - private string _窗口; - private int? _接受邀約; - private string _聯繫狀況與報價; - private string _備註; - - #region 資料欄位 - /// - /// 編號 - /// - [DataObjectField(true, false, false, 10)] - public string 編號 - { - get - { - return _編號; - } - set - { - if (value != _編號) - { - _編號 = value; - OnPropertyChanged("編號"); - } - } - } - - /// - /// 姓名 - /// - [DataObjectField(false, false, false, 20)] - public string 姓名 - { - get - { - return _姓名; - } - set - { - if (value != _姓名) - { - _姓名 = value; - OnPropertyChanged("姓名"); - } - } - } - - /// - /// 身分證字號 - /// - [DataObjectField(false, false, false, 12)] - 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, false, 50)] - public string 聯絡電話 - { - get - { - return _聯絡電話; - } - set - { - if (value != _聯絡電話) - { - _聯絡電話 = value; - OnPropertyChanged("聯絡電話"); - } - } - } - - /// - /// 電子郵件 - /// - [DataObjectField(false, false, false, 100)] - 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, 10)] - 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, 50)] - 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, 10)] - 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, 50)] - public string 居住地址_街道地址 - { - get - { - return _居住地址_街道地址; - } - set - { - if (value != _居住地址_街道地址) - { - _居住地址_街道地址 = value; - OnPropertyChanged("居住地址_街道地址"); - } - } - } - - /// - /// 職務內容 - /// - [DataObjectField(false, false, true, 500)] - public string 職務內容 - { - get - { - return _職務內容; - } - set - { - if (value != _職務內容) - { - _職務內容 = value; - OnPropertyChanged("職務內容"); - } - } - } - - /// - /// 合作滿意度 - /// - [DataObjectField(false, false, true, 2000)] - 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)] - public int? 接受邀約 - { - get - { - return _接受邀約; - } - set - { - if (value != _接受邀約) - { - _接受邀約 = value; - OnPropertyChanged("接受邀約"); - } - } - } - - /// - /// 聯繫狀況與報價 - /// - [DataObjectField(false, false, true, 2000)] - public string 聯繫狀況與報價 - { - get - { - return _聯繫狀況與報價; - } - set - { - if (value != _聯繫狀況與報價) - { - _聯繫狀況與報價 = value; - OnPropertyChanged("聯繫狀況與報價"); - } - } - } - - /// - /// 備註 - /// - [DataObjectField(false, false, true, 2000)] - public string 備註 - { - get - { - return _備註; - } - set - { - if (value != _備註) - { - _備註 = value; - OnPropertyChanged("備註"); - } - } - } - - #endregion - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_非講師2.cs b/branches/1150807/DAC/領據系統/DAC_非講師2.cs deleted file mode 100644 index 517e5a5..0000000 --- a/branches/1150807/DAC/領據系統/DAC_非講師2.cs +++ /dev/null @@ -1,209 +0,0 @@ -// -// 這個檔案是 非講師 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Linq; -using WebLib; -using System.Data.SqlClient; - -namespace Education -{ - /// - /// 非講師 資料存取類別 - /// - public partial class DAC_非講師 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(非講師Item value) - { - value.編號 = Next單號(DateTime.UtcNow.AddHours(8).Date, _tableName, "編號", "\"P\"<9999>", ""); - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(非講師Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(非講師Item value) - { - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(非講師Item value, 非講師Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(非講師Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(非講師Item value, 非講師Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(非講師Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(非講師Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(string 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(string 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - internal bool Is身份證字號Dulicate(string 編號, string 身分證字號) - { - DbCommand cmd = NewCommand( - @"SELECT COUNT(1) FROM 非講師 WHERE 編號<>@講師編號 AND 身分證字號=@身分證字號"); - AddParam(cmd, "講師編號", 編號); - AddParam(cmd, "身分證字號", 身分證字號); - int i; - ExecuteScalar(cmd, out i); - return i > 0; - } - - public 非講師Item Existing(string 姓名, string 身分證字號) - { - 非講師List result = new 非講師List(); - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and 姓名=@姓名 and 身分證字號=@身分證字號 "; - AddParam(cmdSelect, "姓名", 姓名); - AddParam(cmdSelect, "身分證字號", 身分證字號); - Select(cmdSelect, ref list); - return result.FirstOrDefault(); - } - public 非講師List SelectByKeyword(string keyword) - { - 非講師List result = new 非講師List(); - keyword = !string.IsNullOrEmpty(keyword) ? keyword.Trim() : string.Empty; - if (string.IsNullOrEmpty(keyword)) - return result; - - IDataList list = result as IDataList; - DbCommand cmdSelect = NewCommand(); - cmdSelect.CommandText = _select + _from + _where - + " and (姓名 like @keyword or 身分證字號 like @keyword) " - + _order; - AddParam(cmdSelect, "keyword", "%" + keyword + "%"); - Select(cmdSelect, ref list); - return result; - } - } - - /// - ///非講師 資料集合類別 - /// - public partial class 非講師List : List<非講師Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///非講師 資料紀錄類別 - /// - public partial class 非講師Item - { - // 有另外加上去的屬性及方法,請加在這裡 - - public string 戶籍地址 - { - get - { - return string.Format("{0}{1}{2}{3}", 戶籍地址_郵編, 戶籍地址_縣市, 戶籍地址_鄉鎮市區, 戶籍地址_街道地址); - } - } - - public string 居住地址 - { - get - { - return string.Format("{0}{1}{2}{3}", 居住地址_郵編, 居住地址_縣市, 居住地址_鄉鎮市區, 居住地址_街道地址); - } - } - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_領據1.cs b/branches/1150807/DAC/領據系統/DAC_領據1.cs deleted file mode 100644 index e81baf0..0000000 --- a/branches/1150807/DAC/領據系統/DAC_領據1.cs +++ /dev/null @@ -1,1014 +0,0 @@ -// -// 這個檔案是 領據 資料表的資料存取類別 檔案一 -// 請不要修改這個檔案,重新產生資料存取類別時,這個檔案會被覆蓋掉 -// -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 - } -} diff --git a/branches/1150807/DAC/領據系統/DAC_領據2.cs b/branches/1150807/DAC/領據系統/DAC_領據2.cs deleted file mode 100644 index 1ebff74..0000000 --- a/branches/1150807/DAC/領據系統/DAC_領據2.cs +++ /dev/null @@ -1,669 +0,0 @@ -// -// 這個檔案是 領據 資料表的資料存取類別 檔案二 -// 您可以修改這個檔案,加入您自訂的屬性與方法 -// -using Education; -using Education.Services; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Data.Common; -using System.Data.SqlClient; -using System.Linq; -using System.Text; -using WebLib; - -namespace Education -{ - /// - /// 領據 資料存取類別 - /// - public partial class DAC_領據 : WebLib.DAC - { - #region 自動產生的資料存取方法 - /// - /// InsertOne 之前會執行此方法 - /// 在這裡可以做一些檢查或是自動編號等動作 - /// 回傳 false 會打斷 InsertOne 的執行 - /// - protected virtual bool BeforeInsertOne(領據Item value) - { - value.列印次數 = 0; - value.作廢 = 0; - if (string.IsNullOrEmpty(value.表單編號)) - { - value.表單編號 = Next單號(value.活動日期, _tableName, "表單編號", "YYYYMMDD<9999>", ""); - } - return true; - } - - /// - /// InsertOne 之後會執行此方法 - /// - protected virtual void AfterInsertOne(領據Item value) - { - } - - /// - /// InsertOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnInsertOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(領據Item value) - { - return true; - } - - /// - /// UpdateOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 UpdateOne 的執行 - /// - protected virtual bool BeforeUpdateOne(領據Item value, 領據Item original_value) - { - return true; - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(領據Item value) - { - } - - /// - /// UpdateOne 之後會執行此方法 - /// - protected virtual void AfterUpdateOne(領據Item value, 領據Item original_value) - { - } - - /// - /// UpdateOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnUpdateOneError(Exception error, out bool handled) - { - handled = false; - } - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(領據Item value) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(領據Item value) - { - } - - /// - /// DeleteOne 之前會執行此方法 - /// 在這裡可以做一些檢查 - /// 回傳 false 會打斷 DeleteOne 的執行 - /// - protected virtual bool BeforeDeleteOne(int 編號, int DB_APPNO) - { - return true; - } - - /// - /// DeleteOne 之後會執行此方法 - /// - protected virtual void AfterDeleteOne(int 編號, int DB_APPNO) - { - } - - /// - /// DeleteOne 發生錯誤時會執行此方法 - /// - ///錯誤是否已經處理妥當 - protected virtual void OnDeleteOneError(Exception error, out bool handled) - { - handled = false; - } - #endregion - - // 有另外加上去的屬性及方法,請加在這裡 - - /// - /// 計算資料庫中符合重複條件的筆數 - /// 重複條件:活動日期 + 領款人姓名 + 計畫代號 + 活動名稱事由 - /// - public int CountDuplicates(DateTime 活動日期, string 領款人姓名, string 計畫代號, string 活動名稱事由) - { - DbCommand cmd = NewCommand(); - cmd.CommandText = "select count(1) from [領據] where 活動日期 = @活動日期 and 領款人姓名 = @領款人姓名 and 計畫代號 = @計畫代號 and ISNULL(活動名稱事由,'') = @活動名稱事由"; - AddParam(cmd, "活動日期", 活動日期); - AddParam(cmd, "領款人姓名", 領款人姓名 ?? ""); - AddParam(cmd, "計畫代號", 計畫代號 ?? ""); - AddParam(cmd, "活動名稱事由", 活動名稱事由 ?? ""); - int count; - ExecuteScalar(cmd, out count); - return count; - } - - /// - /// 給查詢畫面用的 SelectPage 方法 - /// - [DataObjectMethod(DataObjectMethodType.Select)] - public 領據List SelectPageWithRelations(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); - - var dao_勞務費 = new DAC_勞務費(conn); - var dao_差旅費 = new DAC_差旅費(conn); - var dao_BPSN = new DAC_BPSN(conn); - - result.ForEach(item => - { - item.DB_CRUSR_NAME = dao_BPSN.Get員工姓名(item.DB_CRUSR); - item.DB_TRUSR_NAME = dao_BPSN.Get員工姓名(item.DB_TRUSR); - - var 勞務費 = dao_勞務費.SelectOne(item.編號).FirstOrDefault(); - var 差旅費 = dao_差旅費.SelectOne(item.編號).FirstOrDefault(); - - if (勞務費 != null) - { - item.勞務費_編號 = 勞務費.編號; - item.勞務費_費用別 = 勞務費.費用別; - item.勞務費_單價 = 勞務費.單價; - item.勞務費_數量 = 勞務費.數量; - item.勞務費_單位 = 勞務費.單位; - item.勞務費_扣繳類別 = 勞務費.扣繳類別; - item.勞務費_扣繳類別名稱 = 扣繳類別.GetName(勞務費.扣繳類別); - item.勞務費_合計金額 = 勞務費.合計金額; - item.勞務費_應扣繳稅額 = 勞務費.應扣繳稅額; - item.勞務費_服務費 = 勞務費.服務費; - item.勞務費_作廢 = 勞務費.作廢; - } - else - { - item.勞務費_編號 = string.Empty; - item.勞務費_費用別 = string.Empty; - item.勞務費_單價 = 0; - item.勞務費_數量 = 0; - item.勞務費_單位 = string.Empty; - item.勞務費_扣繳類別 = string.Empty; - item.勞務費_扣繳類別名稱 = string.Empty; - item.勞務費_合計金額 = 0; - item.勞務費_應扣繳稅額 = 0; - item.勞務費_服務費 = 0; - item.勞務費_作廢 = 0; - } - - if (差旅費 != null) - { - item.差旅費_編號 = 差旅費.編號; - item.差旅費_票價資訊 = 差旅費.票價資訊; - item.差旅費_費用別 = 差旅費.費用別; - item.差旅費_起點 = 差旅費.起點; - item.差旅費_訖點 = 差旅費.訖點; - item.差旅費_捷運公車 = 差旅費.捷運公車; - item.差旅費_火車 = 差旅費.火車; - item.差旅費_計程車 = 差旅費.計程車; - item.差旅費_高鐵飛機 = 差旅費.高鐵飛機; - item.差旅費_自行開車 = 差旅費.自行開車; - item.差旅費_過路費停車費 = 差旅費.過路費停車費; - item.差旅費_住宿費 = 差旅費.住宿費; - item.差旅費_合計 = 差旅費.合計; - item.差旅費_作廢 = 差旅費.作廢; - } - else - { - item.差旅費_編號 = string.Empty; - item.差旅費_票價資訊 = string.Empty; - item.差旅費_費用別 = string.Empty; - item.差旅費_起點 = string.Empty; - item.差旅費_訖點 = string.Empty; - item.差旅費_捷運公車 = 0; - item.差旅費_火車 = 0; - item.差旅費_計程車 = 0; - item.差旅費_高鐵飛機 = 0; - item.差旅費_自行開車 = 0; - item.差旅費_過路費停車費 = 0; - item.差旅費_住宿費 = 0; - item.差旅費_合計 = 0; - item.差旅費_作廢 = 0; - } - }); - - return result; - } - - - public 個人費用彙整表List SelectSummary(bool noInputReturnAll, int startRowIndex, int maximumRows, DateTime? 起日, DateTime? 迄日, string 身分別, string 付款方式) - { - 個人費用彙整表List tempData = new 個人費用彙整表List(); - bool noInput = true; - IDataList list = tempData as IDataList; - DbCommand cmdSelect = NewCommand(); - - // 取出明細資料 - cmdSelect.CommandText = String.Format("select top {0} * from (", maximumRows) - + @"select A.講師_非講師編號, A.領款人姓名, A.活動日期, A.身分證字號, 1 堂數 - , ISNULL(B.合計金額, 0) - ISNULL(B.應扣繳稅額, 0) - ISNULL(B.服務費, 0) + ISNULL(C.合計, 0) 付款金額 - , row_number() over (order by A.領款人姓名) as rowid - from 領據 A - left join 勞務費 B on A.編號 = B.領據編號 and B.編號 is not NULL and B.編號 <> '' - left join 差旅費 C on A.編號 = C.領據編號 and C.編號 is not NULL and C.編號 <> '' - where 1=1 - "; - - AddWhere(cmdSelect, ref noInput, 起日, 迄日, 身分別, null, null, null, null, null, 付款方式); - cmdSelect.CommandText += ") as TMP1 where 付款金額 > 0 and rowid > @startRowIndex "; - AddParam(cmdSelect, "startRowIndex", startRowIndex); - - if (!noInputReturnAll && noInput) - return tempData; - - Select(cmdSelect, ref list); - - var dao付款設定 = new DAC_付款設定(conn); - foreach (var r in tempData) - { - // 加入付款設定資料 - var paymentSetting = dao付款設定.SelectRecentlyActivated(r.講師_非講師編號, r.活動日期); - if (paymentSetting != null) - { - r.扣繳類別 = 扣繳類別.GetActuralValue(paymentSetting.扣繳類別); - r.扣繳類別名稱 = 扣繳類別.GetName(paymentSetting.扣繳類別); - r.帳戶名 = paymentSetting.匯款戶名; - r.匯款帳號 = paymentSetting.匯款帳號; - r.銀行分行代碼 = paymentSetting.銀行分行代碼; - r.銀行分行 = paymentSetting.銀行分行; - } - } - - // 彙整 - // 這裡要用領款人姓名 + 身分證字號 + 扣繳類別 + 帳戶名 + 匯款帳號 + 銀行分行代碼 來彙總 - // 加總堂數 和 付款金額 - 個人費用彙整表List result = new 個人費用彙整表List(); - - // 按照 (領款人姓名、身分證字號、扣繳類別、帳戶名、匯款帳號、銀行分行代碼) 分組彙總 - var groupedData = tempData.GroupBy(x => new - { - x.領款人姓名, - x.身分證字號, - x.扣繳類別, - x.扣繳類別名稱, - x.帳戶名, - x.匯款帳號, - x.銀行分行代碼, - x.銀行分行 - }); - - foreach (var group in groupedData) - { - var summaryItem = new 個人費用彙整表Item - { - 領款人姓名 = group.Key.領款人姓名, - 身分證字號 = group.Key.身分證字號, - 扣繳類別 = group.Key.扣繳類別, - 扣繳類別名稱 = group.Key.扣繳類別名稱, - 帳戶名 = group.Key.帳戶名, - 匯款帳號 = group.Key.匯款帳號, - 銀行分行代碼 = group.Key.銀行分行代碼, - 銀行分行 = group.Key.銀行分行, - // 堂數是數量,加總所有同組的數量 - 堂數 = group.Sum(x => x.堂數), - // 付款金額直接加總 - 付款金額 = group.Sum(x => x.付款金額) - }; - result.Add(summaryItem); - } - - return result; - } - - public List<扣繳匯總Item> SelectDetail(bool noInputReturnAll, int startRowIndex, int maximumRows, - DateTime? 起日, DateTime? 迄日, string 身分別, string 憑證類別) - { - DAC_講師 dao講師 = new DAC_講師(this.conn); - DAC_非講師 dao非講師 = new DAC_非講師(this.conn); - - 扣繳明細List tempData = new 扣繳明細List(); - bool noInput = true; - IDataList list = tempData as IDataList; - DbCommand cmdSelect = NewCommand(); - - // 取出明細資料 - cmdSelect.CommandText = String.Format("select top {0} * from (", maximumRows) - + @"select A.編號, A.講師_非講師編號, A.領款人姓名, A.身分證字號, A.身分別, A.郵件已發送 - , ISNULL(B.合計金額, 0) - ISNULL(B.應扣繳稅額, 0) - ISNULL(B.服務費, 0) 講師勞務費 - , ISNULL(B.應扣繳稅額, 0) 應扣繳稅額 - , ISNULL(B.服務費, 0) 服務費 - , B.扣繳類別 - , A.計畫代號 - , CONVERT(varchar(10), A.活動日期, 121) 活動日期 - , A.活動名稱事由 - , A.憑證類別 - , B.編號 領據編號 - , B.費用別 - , B.單價 - , B.數量 - , B.單位 - , row_number() over (order by A.領款人姓名) as rowid - from 領據 A - join 勞務費 B on A.編號 = B.領據編號 and B.編號 is not NULL and B.編號 <> '' - where 1=1"; - - List wheres = new List(); - if (起日 != null && 迄日 != null) - { - noInput = false; - wheres.Add(WhereItem.GreatThanOrEqual(fieldName: "A.活動日期", value: 起日)); - wheres.Add(WhereItem.LessThan(fieldName: "A.活動日期", value: 迄日.Value.AddDays(1))); - } - else if (起日 != null && 迄日 == null) - { - noInput = false; - wheres.Add(WhereItem.GreatThanOrEqual(fieldName: "A.活動日期", value: 起日)); - } - else if (起日 == null && 迄日 != null) - { - noInput = false; - wheres.Add(WhereItem.LessThan(fieldName: "A.活動日期", value: 迄日.Value.AddDays(1))); - } - if (身分別 != null && 身分別.Length > 0) - { - noInput = false; - wheres.Add(WhereItem.Equal(fieldName: "A.身分別", value: 身分別)); - } - if (憑證類別 != null && 憑證類別.Length > 0) - { - noInput = false; - wheres.Add(WhereItem.Equal(fieldName: "A.憑證類別", value: 憑證類別)); - } - AddWhere(cmdSelect, wheres); - cmdSelect.CommandText += ") as TMP1 where rowid > @startRowIndex "; - AddParam(cmdSelect, "startRowIndex", startRowIndex); - - if (!noInputReturnAll && noInput) - return new List<扣繳匯總Item>(); - - Select(cmdSelect, ref list); - - // 加入付款設定資料 - var dao付款設定 = new DAC_付款設定(conn); - foreach (var r in tempData) - { - r.扣繳類別名稱 = 扣繳類別.GetName(r.扣繳類別); - r.扣繳類別 = 扣繳類別.GetActuralValue(r.扣繳類別); - } - - // 分組彙整 - List<扣繳匯總Item> result = new List<扣繳匯總Item>(); - var groupedData = tempData.GroupBy(x => new - { - x.講師_非講師編號, - x.領款人姓名, - x.身分證字號, - x.身分別, - x.扣繳類別, - x.扣繳類別名稱, - }); - - foreach (var group in groupedData) - { - var 戶籍地址 = string.Empty; - var 電子郵件 = string.Empty; - if (group.Key.身分別 == "講師") - { - var t = dao講師.SelectOne(DAC.GetInt32(group.Key.講師_非講師編號)).FirstOrDefault(); - if (t != null) - { - 戶籍地址 = string.Format("{0}{1}{2}", t.戶籍地址_縣市, t.戶籍地址_鄉鎮市區, t.戶籍地址_街道地址); - 電子郵件 = t.電子郵件; - } - } - else - { - var t = dao非講師.SelectOne(group.Key.講師_非講師編號).FirstOrDefault(); - if (t != null) - { - 戶籍地址 = string.Format("{0}{1}{2}", t.戶籍地址_縣市, t.戶籍地址_鄉鎮市區, t.戶籍地址_街道地址); - 電子郵件 = t.電子郵件; - } - } - - var summaryItem = new 扣繳匯總Item - { - 講師_非講師編號 = group.Key.講師_非講師編號, - 領款人姓名 = group.Key.領款人姓名, - 身分證字號 = group.Key.身分證字號, - 戶籍地址 = 戶籍地址, - 電子郵件 = 電子郵件, - 扣繳類別 = group.Key.扣繳類別, - 扣繳類別名稱 = group.Key.扣繳類別名稱, - 講師勞務費合計 = group.Sum(x => x.講師勞務費), - 應扣繳稅額合計 = group.Sum(x => x.應扣繳稅額), - 服務費合計 = group.Sum(x => x.服務費) - }; - - var i = 1; - foreach (var detail in group.ToList()) - { - summaryItem.明細.Add(detail); - } - result.Add(summaryItem); - } - - return result; - } - } - - /// - ///領據 資料集合類別 - /// - public partial class 領據List : List<領據Item> - { - // 有另外加上去的屬性及方法,請加在這裡 - } - - /// - ///個人費用彙整表 資料集合類別 - /// - public partial class 個人費用彙整表List : List<個人費用彙整表Item>, IDataList - { - public void Fill(DbDataReader reader) - { - DAC.FillData<個人費用彙整表Item>(reader, this); - } - } - - /// - ///扣繳明細 資料集合類別 - /// - public partial class 扣繳明細List : List<扣繳明細Item>, IDataList - { - public void Fill(DbDataReader reader) - { - DAC.FillData<扣繳明細Item>(reader, this); - } - } - - /// - ///個人費用彙整表 資料紀錄類別 - /// - [Serializable] - public partial class 個人費用彙整表Item : DataItemBase - { - /// 講師/非講師編號 (用於內部查詢) - public string 講師_非講師編號 { get; set; } - - /// 領款人姓名 - public string 領款人姓名 { get; set; } - - /// 活動日期 (用於查詢付款設定) - public DateTime? 活動日期 { get; set; } - - /// 身分證字號 - public string 身分證字號 { get; set; } - - /// 堂數 (數量) - [DataObjectField(false)] - public int 堂數 { get; set; } - - /// 付款金額 - [DataObjectField(false)] - public int 付款金額 { get; set; } - - /// 扣繳類別 - [DataObjectField(false)] - public string 扣繳類別 { get; set; } - - /// 扣繳類別名稱 (顯示用) - [DataObjectField(false)] - public string 扣繳類別名稱 { get; set; } - - /// 帳戶名 - [DataObjectField(false)] - public string 帳戶名 { get; set; } - - /// 匯款帳號 - [DataObjectField(false)] - public string 匯款帳號 { get; set; } - - /// 銀行分行代碼 - [DataObjectField(false)] - public string 銀行分行代碼 { get; set; } - - /// 銀行分行 - [DataObjectField(false)] - public string 銀行分行 { get; set; } - } - - /// - ///領據 資料紀錄類別 - /// - public partial class 領據Item - { - // 有另外加上去的屬性及方法,請加在這裡 - public bool 已關帳 { get { return string.Compare(PublicVariable.領據關帳年月, string.Format("{0:yyyy-MM}", 活動日期)) >= 0; } } - public string DB_CRUSR_NAME { get; set; } - public string DB_TRUSR_NAME { get; set; } - public string 勞務費_編號 { get; set; } - public string 勞務費_費用別 { get; set; } - public int? 勞務費_單價 { get; set; } - public decimal? 勞務費_數量 { get; set; } - public string 勞務費_單位 { get; set; } - public string 勞務費_扣繳類別 { get; set; } - public string 勞務費_扣繳類別名稱 { get; set; } - public int? 勞務費_合計金額 { get; set; } - public int? 勞務費_應扣繳稅額 { get; set; } - public int? 勞務費_服務費 { get; set; } - public int? 勞務費_作廢 { get; set; } - public string 差旅費_編號 { get; set; } - public string 差旅費_票價資訊 { get; set; } - public string 差旅費_費用別 { get; set; } - public string 差旅費_起點 { get; set; } - public string 差旅費_訖點 { get; set; } - public int? 差旅費_捷運公車 { get; set; } - public int? 差旅費_火車 { get; set; } - public int? 差旅費_計程車 { get; set; } - public int? 差旅費_高鐵飛機 { get; set; } - public int? 差旅費_自行開車 { get; set; } - public int? 差旅費_過路費停車費 { get; set; } - public int? 差旅費_住宿費 { get; set; } - public int? 差旅費_合計 { get; set; } - public int? 差旅費_作廢 { get; set; } - } - - /// - ///扣繳明細 資料紀錄類別 - /// - [Serializable] - public partial class 扣繳匯總Item : DataItemBase - { - public string 講師_非講師編號 { get; set; } - public string 領款人姓名 { get; set; } - public string 身分證字號 { get; set; } - public string 戶籍地址 { get; set; } - public string 電子郵件 { get; set; } - public string 扣繳類別 { get; set; } - public string 扣繳類別名稱 { get; set; } - public int 應扣繳稅額合計 { get; set; } - public int 服務費合計 { get; set; } - public int 講師勞務費合計 { get; set; } - public List<扣繳明細Item> 明細 { get; set; } - public 扣繳匯總Item() - { - 明細 = new List<扣繳明細Item>(); - } - } - - public partial class 扣繳匯總郵件Item : DataItemBase - { - public string 收件人姓名 { get; set; } - public string 收件人郵箱 { get; set; } - public string 主旨 { get; set; } - public string 內文 { get; set; } - public List<扣繳明細Item> 明細 { get; set; } - public int 講師勞務費合計 { get; set; } - public int 應扣繳稅額合計 { get; set; } - public int 服務費合計 { get; set; } - public 扣繳匯總郵件Item() - { - 明細 = new List<扣繳明細Item>(); - } - } - - public class 扣繳明細Item : DataItemBase - { - public int 編號 { get; set; } - public string 講師_非講師編號 { get; set; } - public string 領款人姓名 { get; set; } - public string 身分證字號 { get; set; } - public string 身分別 { get; set; } - public string 戶籍地址 { get; set; } - public string 電子郵件 { get; set; } - public string 活動日期 { get; set; } - public string 計畫代號 { get; set; } - public string 活動名稱事由 { get; set; } - public string 扣繳類別 { get; set; } - public string 扣繳類別名稱 { get; set; } - public string 憑證類別 { get; set; } - public string 領據編號 { get; set; } - public string 費用別 { get; set; } - public int 單價 { get; set; } - public decimal 數量 { get; set; } - public string 單位 { get; set; } - public int 講師勞務費 { get; set; } - public int 應扣繳稅額 { get; set; } - public int 服務費 { get; set; } - public string 郵件已發送 { get; set; } - } -} diff --git a/branches/1150807/DAC/領據系統/付款方式.cs b/branches/1150807/DAC/領據系統/付款方式.cs deleted file mode 100644 index 1230cce..0000000 --- a/branches/1150807/DAC/領據系統/付款方式.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class 付款方式 - { - public const string 付款方式_匯款 = "匯款"; - public const string 付款方式_支票 = "支票"; - public const string 付款方式_現金 = "現金"; - - /// - /// 身分別 輸入用下拉清單資料 - /// - public static NameValueList InputSelectList = new NameValueList() - { - { "(請選擇)", "" }, - { "匯款", 付款方式_匯款 }, - { "支票", 付款方式_支票 }, - { "現金", 付款方式_現金 }, - }; - - /// - /// 身分別 查詢用下拉清單資料 - /// - public static NameValueList SearchSelectList = new NameValueList() - { - { "(全部)", "" }, - { "匯款", 付款方式_匯款 }, - { "支票", 付款方式_支票 }, - { "現金", 付款方式_現金 }, - }; - - /// - /// 身分別 由值取得名稱 - /// - public static string GetName(object value) - { - return InputSelectList.GetName(value); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/領據系統/單位別.cs b/branches/1150807/DAC/領據系統/單位別.cs deleted file mode 100644 index b788601..0000000 --- a/branches/1150807/DAC/領據系統/單位別.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class 單位別 - { - public const string 單位別_節 = "節"; - public const string 單位別_時 = "時"; - public const string 單位別_天 = "天"; - public const string 單位別_場 = "場"; - public const string 單位別_式 = "式"; - public const string 單位別_千字 = "千字"; - - /// - /// 單位別 輸入用下拉清單資料 - /// - public static NameValueList InputSelectList = new NameValueList() - { - { "(請選擇)", "" }, - { "節", 單位別_節 }, - { "時", 單位別_時 }, - { "天", 單位別_天 }, - { "場", 單位別_場 }, - { "式", 單位別_式 }, - { "千字", 單位別_千字 }, - }; - - /// - /// 單位別 查詢用下拉清單資料 - /// - public static NameValueList SearchSelectList = new NameValueList() - { - { "(全部)", "" }, - { "節", 單位別_節 }, - { "時", 單位別_時 }, - { "天", 單位別_天 }, - { "場", 單位別_場 }, - { "式", 單位別_式 }, - { "千字", 單位別_千字 }, - }; - - /// - /// 單位別 由值取得名稱 - /// - public static string GetName(object value) - { - return InputSelectList.GetName(value); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/領據系統/憑證類別.cs b/branches/1150807/DAC/領據系統/憑證類別.cs deleted file mode 100644 index 1482157..0000000 --- a/branches/1150807/DAC/領據系統/憑證類別.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class 憑證類別 - { - public const string 憑證類別_領據 = "領據"; - public const string 憑證類別_發票 = "發票"; - public const string 憑證類別_收據 = "收據"; - - /// - /// 付款設定.扣繳類別 輸入用下拉清單資料 - /// - public static NameValueList InputSelectList = new NameValueList() - { - { "(請選擇)", "" }, - { "領據", 憑證類別_領據 }, - { "發票", 憑證類別_發票 }, - { "收據", 憑證類別_收據 }, - }; - - /// - /// 付款設定.扣繳類別 查詢用下拉清單資料 - /// - public static NameValueList SearchSelectList = new NameValueList() - { - { "(全部)", "" }, - { "領據", 憑證類別_領據 }, - { "發票", 憑證類別_發票 }, - { "收據", 憑證類別_收據 }, - }; - - /// - /// 付款設定.扣繳類別 由值取得名稱 - /// - public static string GetName(object value) - { - return InputSelectList.GetName(value); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/領據系統/扣繳類別.cs b/branches/1150807/DAC/領據系統/扣繳類別.cs deleted file mode 100644 index e471e46..0000000 --- a/branches/1150807/DAC/領據系統/扣繳類別.cs +++ /dev/null @@ -1,119 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.RegularExpressions; -using System.Web; -using WebLib; - -namespace Education -{ - /// - /// 付款設定.扣繳類別 下拉清單資料類別 - /// - public class 扣繳類別 - { - public const string 扣繳類別_50薪資 = "50"; - public const string 扣繳類別_9A55執行業務所得_心理師 = "9A55"; - public const string 扣繳類別_9A70執行業務所得_表演人 = "9A70"; - public const string 扣繳類別_9A90執行業務所得_其他 = "9A90"; - public const string 扣繳類別_9A92執行業務所得_程式設計師 = "9A92"; - public const string 扣繳類別_9B98執行業務所得_稿費 = "9B98A"; - public const string 扣繳類別_9B98執行業務所得_演講之鐘點費 = "9B98B"; - - /// - /// 付款設定.扣繳類別 輸入用下拉清單資料 - /// - public static NameValueList InputSelectList = new NameValueList() - { - { "(請選擇)", "" }, - { "50 薪資", 扣繳類別_50薪資 }, - { "9A-55 執行業務所得-心理師", 扣繳類別_9A55執行業務所得_心理師 }, - { "9A-70 執行業務所得-表演人", 扣繳類別_9A70執行業務所得_表演人 }, - { "9A-90 執行業務所得-其他", 扣繳類別_9A90執行業務所得_其他 }, - { "9A-92 執行業務所得-程式設計師", 扣繳類別_9A92執行業務所得_程式設計師 }, - { "9B-98 執行業務所得-稿費", 扣繳類別_9B98執行業務所得_稿費 }, - { "9B-98 執行業務所得-演講之鐘點費", 扣繳類別_9B98執行業務所得_演講之鐘點費 } - }; - - /// - /// 付款設定.扣繳類別 查詢用下拉清單資料 - /// - public static NameValueList SearchSelectList = new NameValueList() - { - { "(全部)", "" }, - { "50 薪資", 扣繳類別_50薪資 }, - { "9A-55 執行業務所得-心理師", 扣繳類別_9A55執行業務所得_心理師 }, - { "9A-70 執行業務所得-表演人", 扣繳類別_9A70執行業務所得_表演人 }, - { "9A-90 執行業務所得-其他", 扣繳類別_9A90執行業務所得_其他 }, - { "9A-92 執行業務所得-程式設計師", 扣繳類別_9A92執行業務所得_程式設計師 }, - { "9B-98 執行業務所得-稿費", 扣繳類別_9B98執行業務所得_稿費 }, - { "9B-98 執行業務所得-演講之鐘點費", 扣繳類別_9B98執行業務所得_演講之鐘點費 } - }; - - public static NameValueList ActialValueList = new NameValueList() - { - { "50", 扣繳類別_50薪資 }, - { "9A-55", 扣繳類別_9A55執行業務所得_心理師 }, - { "9A-70", 扣繳類別_9A70執行業務所得_表演人 }, - { "9A-90", 扣繳類別_9A90執行業務所得_其他 }, - { "9A-92", 扣繳類別_9A92執行業務所得_程式設計師 }, - { "9B-98", 扣繳類別_9B98執行業務所得_稿費 }, - { "9B-98", 扣繳類別_9B98執行業務所得_演講之鐘點費 } - }; - - /// - /// 付款設定.扣繳類別 由值取得名稱 - /// - public static string GetName(object value) - { - return InputSelectList.GetName(value); - } - - /// - /// 取得真實世界的值 - /// - /// - /// - public static string GetActuralValue(object value) - { - return ActialValueList.GetName(value); - } - - /// - /// 試圖對應出扣繳類別的欄位值 - /// - /// - /// - internal static string MapValue(string v) - { - if (string.IsNullOrEmpty(v)) - return string.Empty; - - var upper = v.ToUpper(); - // 取第一個由英文字母與數字(可含連字號)組成的區段,再移除連字號 - var m = Regex.Match(upper, @"[A-Z0-9]+(?:-[A-Z0-9]+)*"); - if (!m.Success) - return string.Empty; - - var va1 = m.Value.Replace("-", ""); - - if (va1 == 扣繳類別_50薪資 - || va1 == 扣繳類別_9A55執行業務所得_心理師 - || va1 == 扣繳類別_9A70執行業務所得_表演人 - || va1 == 扣繳類別_9A90執行業務所得_其他 - || va1 == 扣繳類別_9A92執行業務所得_程式設計師) - { - return va1; - } - else if (va1.StartsWith("9B98")) - { - // 從第一個符合區段之後的文字中尋找關鍵字 - var remainder = upper.Substring(m.Index + m.Length); - if (remainder.Contains("稿")) { return 扣繳類別_9B98執行業務所得_稿費; } - else if (remainder.Contains("演講") || remainder.Contains("鐘點")) { return 扣繳類別_9B98執行業務所得_演講之鐘點費; } - else return string.Empty; - } - return string.Empty; - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/領據系統/費用別.cs b/branches/1150807/DAC/領據系統/費用別.cs deleted file mode 100644 index b64595a..0000000 --- a/branches/1150807/DAC/領據系統/費用別.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - /// - /// 勞務費.費用別 下拉清單資料類別 - /// - public class 勞務費_費用別 - { - public const string 講師費 = "講師費"; - public const string 諮詢費 = "諮詢費"; - public const string 工作人員費 = "工作人員費"; - public const string 勞務費 = "勞務費"; - public const string 主持人費 = "主持人費"; - public const string 出席費 = "出席費"; - public const string 演講費 = "演講費"; - public const string 撰稿費 = "撰稿費"; - - /// - /// 勞務費.費用別 輸入用下拉清單資料 - /// - public static NameValueList InputSelectList = new NameValueList() - { - { "(請選擇)", "" }, - { StringTable.GetString("講師費"), "講師費" }, - { StringTable.GetString("諮詢費"), "諮詢費" }, - { StringTable.GetString("工作人員費"), "工作人員費" }, - { StringTable.GetString("勞務費"), "勞務費" }, - { StringTable.GetString("主持人費"), "主持人費" }, - { StringTable.GetString("出席費"), "出席費" }, - { StringTable.GetString("演講費"), "演講費" }, - { StringTable.GetString("撰稿費"), "撰稿費" } - }; - - /// - /// 勞務費.費用別 查詢用下拉清單資料 - /// - public static NameValueList SearchSelectList = new NameValueList() - { - { StringTable.GetString("(全部)"), "" }, - { StringTable.GetString("講師費"), "講師費" }, - { StringTable.GetString("諮詢費"), "諮詢費" }, - { StringTable.GetString("工作人員費"), "工作人員費" }, - { StringTable.GetString("勞務費"), "勞務費" }, - { StringTable.GetString("主持人費"), "主持人費" }, - { StringTable.GetString("出席費"), "出席費" }, - { StringTable.GetString("演講費"), "演講費" }, - { StringTable.GetString("撰稿費"), "撰稿費" } - }; - - /// - /// 勞務費.費用別 由值取得名稱 - /// - public static string GetName(object value) - { - return InputSelectList.GetName(value); - } - } - - - /// - /// 差旅費.費用別 下拉清單資料類別 - /// - public class 差旅費_費用別 - { - public const string 交通住宿費 = "交通住宿費"; - - /// - /// 差旅費.費用別 輸入用下拉清單資料 - /// - public static NameValueList InputSelectList = new NameValueList() - { - { "(請選擇)", "" }, - { "交通住宿費", 交通住宿費 }, - }; - - /// - /// 差旅費.費用別 查詢用下拉清單資料 - /// - public static NameValueList SearchSelectList = new NameValueList() - { - { "(全部)", "" }, - { "交通住宿費", 交通住宿費 }, - }; - - /// - /// 差旅費.費用別 由值取得名稱 - /// - public static string GetName(object value) - { - return InputSelectList.GetName(value); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/領據系統/身分別.cs b/branches/1150807/DAC/領據系統/身分別.cs deleted file mode 100644 index 9f6feb0..0000000 --- a/branches/1150807/DAC/領據系統/身分別.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class 身分別 - { - public const string 身分別_講師 = "講師"; - public const string 身分別_非講師 = "非講師"; - - /// - /// 身分別 輸入用下拉清單資料 - /// - public static NameValueList InputSelectList = new NameValueList() - { - { "(請選擇)", "" }, - { "講師", 身分別_講師 }, - { "非講師", 身分別_非講師 }, - }; - - /// - /// 身分別 查詢用下拉清單資料 - /// - public static NameValueList SearchSelectList = new NameValueList() - { - { "(全部)", "" }, - { "講師", 身分別_講師 }, - { "非講師", 身分別_非講師 }, - }; - - /// - /// 身分別 由值取得名稱 - /// - public static string GetName(object value) - { - return InputSelectList.GetName(value); - } - } -} \ No newline at end of file diff --git a/branches/1150807/DAC/領據系統/領據匯入驗證.cs b/branches/1150807/DAC/領據系統/領據匯入驗證.cs deleted file mode 100644 index 43b584c..0000000 --- a/branches/1150807/DAC/領據系統/領據匯入驗證.cs +++ /dev/null @@ -1,147 +0,0 @@ -using NPOI.SS.Formula.Functions; -using System; -using System.Collections.Generic; -using System.Data; -using System.Data.Common; -using System.Linq; -using WebLib; - -namespace Education -{ - /// - /// 領據匯入驗證類別 - /// - public class 領據匯入驗證 - { - /// - /// 驗證憑證類別是否有效 - /// - public static bool IsValidProofType(string value) - { - if (string.IsNullOrEmpty(value)) - return false; - - var list = new string[] { "領據", "發票", "收據" }; - return list.Contains(value); - } - - /// - /// 驗證計畫代號是否存在於 BPAA 表 - /// - public static bool IsValidProjectCode(string planCode) - { - if (string.IsNullOrEmpty(planCode)) - return false; - - try - { - var dac = new DAC_BPAA(); - var dataTable = dac.GetBpaaWithTYPlusNone(); - foreach (DataRow row in dataTable.Rows) - { - if (row["BPPYN"].ToString() == planCode) - { - return true; - } - } - return false; - } - catch - { - return false; - } - } - - /// - /// 驗證付款方式是否有效 - /// - public static bool IsValidPaymentMethod(string value) - { - if (string.IsNullOrEmpty(value)) - return true; // 付款方式可以為空 - - var list = new string[] { "匯款", "支票", "現金" }; - return list.Contains(value); - } - - /// - /// 驗證勞務費費用別是否有效 - /// - public static bool IsValidLaborExpenseType(string value) - { - if (string.IsNullOrEmpty(value)) - return true; // 勞務費費用別可以為空 - - var list = new string[] { "講師費", "諮詢費", "工作人員費", "勞務費", "主持人費", "出席費", "演講費", "撰稿費" }; - return list.Contains(value); - } - - /// - /// 驗證扣繳類別是否有效 - /// - public static bool IsValidWithholdingCategory(string value) - { - if (string.IsNullOrEmpty(value)) - return true; // 扣繳類別可以為空 - - var list = new string[] { "50", "9A55", "9A70", "9A90", "9A92", "9B98A", "9B98B" }; - return list.Contains(value); - } - - /// - /// 驗證日期格式 - /// - public static bool IsValidDate(string value) - { - if (string.IsNullOrEmpty(value)) - return false; - - if (DateTime.TryParse(value, out DateTime dt)) - { - return true; - } - - // 支援 Excel OADate 數值格式(如從 Excel 讀取的序號日期) - if (double.TryParse(value, out double d)) - { - // OADate 有效範圍:2020-01-01(43831.0)~ 9999-12-31(2958465.0) - if (d >= ImportBase.MinOADate && d <= ImportBase.MaxOADate) - { - return true; - } - } - - return false; - } - - /// - /// 驗證數值格式 - /// - public static bool IsValidDecimal(string value) - { - if (string.IsNullOrEmpty(value)) - return true; // 可選欄位 - - if (decimal.TryParse(value, out decimal d)) - { - return true; - } - return false; - } - - /// - /// 驗證整數格式 - /// - public static bool IsValidInt(string value) - { - if (string.IsNullOrEmpty(value)) - return true; // 可選欄位 - - if (int.TryParse(value, out int i)) - { - return true; - } - return false; - } - } -} diff --git a/branches/1150807/DAC/領據系統/領據匯出.cs b/branches/1150807/DAC/領據系統/領據匯出.cs deleted file mode 100644 index 0789489..0000000 --- a/branches/1150807/DAC/領據系統/領據匯出.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using WebLib; - -namespace Education -{ - public class 領據匯出Item : DataItemBase - { - public string 表單編號 { get; set; } - public DateTime 活動日期 { get; set; } - public string 身分別 { get; set; } - public string 領款人姓名 { get; set; } - public string 身分證字號 { get; set; } - public string 憑證類別 { get; set; } - public string 計畫代號 { get; set; } - public string 活動地點 { get; set; } - public string 活動類別 { get; set; } - public string 付款方式 { get; set; } - public string 活動名稱事由 { get; set; } - public string 領據編號 { get; set; } - public string 領據費用別 { get; set; } - public string 扣繳類別 { get; set; } - public int 單價 { get; set; } - public decimal 數量 { get; set; } - public string 單位 { get; set; } - public int 服務費 { get; set; } - public string 差旅費編號 { get; set; } - public string 差旅票價資訊 { get; set; } - public string 起點 { get; set; } - public string 訖點 { get; set; } - public int 捷運公車 { get; set; } - public int 火車 { get; set; } - public int 計程車 { get; set; } - public int 高鐵飛機 { get; set; } - public int 自行開車 { get; set; } - public int 過路費停車費 { get; set; } - public int 住宿費 { get; set; } - } -} \ No newline at end of file diff --git a/branches/1150807/DOC/DAC_領據_SelectSummary_完成報告.md b/branches/1150807/DOC/DAC_領據_SelectSummary_完成報告.md deleted file mode 100644 index b90994b..0000000 --- a/branches/1150807/DOC/DAC_領據_SelectSummary_完成報告.md +++ /dev/null @@ -1,269 +0,0 @@ -# DAC_領據.SelectSummary 彙整邏輯 - 完成報告 - -## 概述 - -已成功完成 `DAC_領據.SelectSummary` 方法中的**彙整邏輯**。該方法負責將領據、勞務費、差旅費和付款設定資料進行分組彙總,生成個人費用彙整表。 - -## 完成的工作 - -### 1. 資料模型定義 ✅ - -在 `DAC\領據系統\DAC_領據2.cs` 中定義了完整的資料模型: - -**`個人費用彙整表List` 類別** -- 繼承自 `List<個人費用彙整表Item>` -- 實現 `IDataList` 介面 -- 支援 ORM 資料填充 - -**`個人費用彙整表Item` 類別** -```csharp -public partial class 個人費用彙整表Item -{ - // 內部欄位 (查詢用) - public string 講師_非講師編號 { get; set; } - public DateTime? 活動日期 { get; set; } - - // 顯示欄位 - public string 領款人姓名 { get; set; } - public string 身分證字號 { get; set; } - public decimal 堂數 { get; set; } // 已彙總 - public decimal 付款金額 { get; set; } // 已彙總 - public string 扣繳類別 { get; set; } - public string 扣繳類別名稱 { get; set; } - public string 帳戶名 { get; set; } - public string 匯款帳號 { get; set; } - public string 銀行分行代碼 { get; set; } - public string 銀行分行 { get; set; } -} -``` - -### 2. SelectSummary 方法完成 ✅ - -**方法簽名** -```csharp -public 個人費用彙整表List SelectSummary( - bool noInputReturnAll, - int startRowIndex, - int maximumRows, - DateTime? 起日, - DateTime? 迄日, - string 身分別, - string 付款方式) -``` - -**實現流程** - -#### 步驟 1: 基本資料查詢 -- 從 `領據` 表查詢基本資訊 -- 左 JOIN `勞務費` 表(取得堂數和金額) -- 左 JOIN `差旅費` 表(取得差旅費用) -- 支援日期和身分別、付款方式篩選 - -#### 步驟 2: 加入付款設定資料 -```csharp -var dao付款設定 = new DAC_付款設定(conn); -foreach (var r in tempData) -{ - var paymentSetting = dao付款設定.SelectRecentlyActivated(r.講師_非講師編號, r.活動日期); - if (paymentSetting != null) - { - r.扣繳類別 = 扣繳類別.GetActuralValue(paymentSetting.扣繳類別); - r.扣繳類別名稱 = 扣繳類別.GetName(paymentSetting.扣繳類別); - r.帳戶名 = paymentSetting.匯款戶名; - r.匯款帳號 = paymentSetting.匯款帳號; - r.銀行分行代碼 = paymentSetting.銀行分行代碼; - r.銀行分行 = paymentSetting.銀行分行; - } -} -``` - -#### 步驟 3: 彙整聚合 ✨ -```csharp -// 按照 (領款人姓名、身分證字號、扣繳類別、帳戶名、匯款帳號、銀行分行代碼) 分組 -var groupedData = tempData.GroupBy(x => new -{ - x.領款人姓名, - x.身分證字號, - x.扣繳類別, - x.帳戶名, - x.匯款帳號, - x.銀行分行代碼, - x.銀行分行 -}); - -// 彙總堂數和付款金額 -foreach (var group in groupedData) -{ - var summaryItem = new 個人費用彙整表Item - { - 領款人姓名 = group.Key.領款人姓名, - 身分證字號 = group.Key.身分證字號, - 扣繳類別 = group.Key.扣繳類別, - 帳戶名 = group.Key.帳戶名, - 匯款帳號 = group.Key.匯款帳號, - 銀行分行代碼 = group.Key.銀行分行代碼, - 銀行分行 = group.Key.銀行分行, - // 核心彙總邏輯 - 堂數 = group.Sum(x => x.堂數), - 付款金額 = group.Sum(x => x.付款金額) - }; - result.Add(summaryItem); -} -``` - -### 3. WebService 整合 ✅ - -在 `Services\領據處理.asmx.cs` 的 `SearchSummaryTable` 方法中呼叫 DAC 層: - -```csharp -using (var conn = DAC.NewConnection()) -{ - var dao領據 = new DAC_領據(conn); - var summaryData = dao領據.SelectSummary( - true, // noInputReturnAll - 0, // startRowIndex - int.MaxValue, // maximumRows - startDate, // 起日 - endDate, // 迄日 - 身分別, - 付款方式 - ); - - if (輸出方式 == "DATA") - { - if (summaryData.Count > 0) - return ServiceResponse.CreateSuccess("查詢成功", summaryData); - else - return ServiceResponse.CreateError("查不到相關資料"); - } - else // EXPORT - { - // TODO: Excel 匯出邏輯 - var excelResult = new - { - excelData = "", - fileName = $"講師個人費用彙整表_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx" - }; - return ServiceResponse.CreateSuccess("匯出成功", excelResult); - } -} -``` - -## 📊 資料流程圖 - -``` -領據表 - ↓ (LEFT JOIN 勞務費) - ↓ (LEFT JOIN 差旅費) - ↓ 過濾條件 (日期、身分別、付款方式) - ↓ -臨時資料集合 tempData - ↓ 迴圈逐筆加入付款設定資料 - ↓ -加入扣繳類別、帳戶名、匯款帳號、銀行資訊 - ↓ -按照彙整鍵值分組 - ↓ -彙總: - - 堂數加總 (SUM) - - 付款金額加總 (SUM) - ↓ -個人費用彙整表 (彙整後結果) -``` - -## 🔑 彙整鍵值 - -以下欄位組合作為彙整的唯一鍵值: -1. `領款人姓名` -2. `身分證字號` -3. `扣繳類別` -4. `帳戶名` -5. `匯款帳號` -6. `銀行分行代碼` -7. `銀行分行` - -**邏輯說明**:同一個講師或非講師,如果有多筆領據且: -- 相同的身分證字號 -- 相同的扣繳類別 -- 相同的付款帳戶資訊 - -則會被合併為一筆記錄,堂數和付款金額會累加。 - -## 💾 程式碼統計 - -| 項目 | 數量 | -|------|------| -| 新增類別 | 2 個 (List + Item) | -| 實現方法 | 1 個 (SelectSummary) | -| 程式碼行數 | ~60 行 | -| 編譯狀態 | ✅ 成功 | - -## 🧪 測試檢查清單 - -### 單元測試 -- [ ] 無條件查詢 (返回所有資料) -- [ ] 日期範圍查詢 (起日、迄日) -- [ ] 身分別篩選 (講師/非講師) -- [ ] 付款方式篩選 -- [ ] 多條件組合查詢 -- [ ] 無符合資料情況 - -### 功能測試 -- [ ] 驗證彙整結果正確性 -- [ ] 檢查堂數加總是否正確 -- [ ] 檢查付款金額加總是否正確 -- [ ] 驗證付款設定資料正確加入 -- [ ] 確認無重複資料 - -### 效能測試 -- [ ] 大量資料查詢性能 -- [ ] 分組彙整效率 -- [ ] 記憶體使用情況 - -## 🚀 後續步驟 - -### 1. Excel 匯出實現 ⏳ -在 `SearchSummaryTable` 方法的 EXPORT 部分實現: -- 生成 Excel 檔案 -- 設置欄位格式和寬度 -- Base64 編碼 -- 返回可下載的檔案 - -### 2. 前端整合驗證 ⏳ -- 測試查詢功能 -- 驗證表格顯示 -- 測試匯出功能 -- 檢查效能 - -### 3. 資料庫優化 (可選) -- 為常查詢欄位添加索引 -- 考慮物化視圖加速查詢 -- 分析查詢執行計劃 - -## 📝 注意事項 - -1. **付款設定查詢** - - 使用 `SelectRecentlyActivated` 方法 - - 根據活動日期選取生效的設定 - -2. **分組邏輯** - - 使用 LINQ GroupBy 進行彙整 - - 堂數和付款金額使用 SUM 聚合 - -3. **空值處理** - - 左 JOIN 可能導致 NULL 值 - - 已在 SQL 中使用 ISNULL 處理 - -4. **效能考量** - - 當前採用記憶體彙整(GroupBy) - - 大量資料時可考慮移到 SQL 實現 - -## ✅ 建置狀態 - -✅ **項目成功構建,無編譯錯誤** - ---- - -**完成日期:** 2024年 -**實施狀態:** 彙整邏輯完成,待 Excel 匯出實現 -**下一里程碑:** Excel 匯出功能 diff --git a/branches/1150807/DOC/NPOI 2.1 Excel 報表.md b/branches/1150807/DOC/NPOI 2.1 Excel 報表.md deleted file mode 100644 index 43c1c41..0000000 --- a/branches/1150807/DOC/NPOI 2.1 Excel 報表.md +++ /dev/null @@ -1,123 +0,0 @@ -# NPOI 2.1 (.NET 3.5) 跨版本 Excel 列印跑版終極解決方案文件 - -## 1. 問題背景與根本原因 -在使用 **NPOI 2.1** 配合 **.NET Framework 3.5** 的舊系統環境下,產出的 Excel 報表在不同版本(例如 Excel 2010/2016 與 Excel 2021/2024)直接列印時,會出現「**橫向切到下一頁**」或「**右側多出一欄空白**」的排版不一致問題。 - -### 核心原因分析: -1. **字型渲染引擎演進(標楷體效應)**:新舊版 Excel 對「標楷體」的字元寬度計算像素不同(GDI vs DirectWrite)。相同的標楷體文字在新版中渲染出來的總寬度通常會多出幾個像素。如果文字因為多出的像素而折行,雖然目前系統列高預留得夠高、高度沒差,但依然會觸發 Excel 盲測邊界失準,導致橫向被切頁或多印空白欄。 -2. **NPOI 2.1 底層 Bug**:原生的 `workbook.SetPrintArea` 存在著名的 XML 節點建構 Bug,在新版 Excel 中會直接導致導出檔案被判定為「檔案已損毀,需要修復」,因此無法使用設定列印區域的方式來限制範圍。 -3. **多人連線檔案鎖定**:如果直接操作、修改並儲存伺服器上的實體模板,在 Web 多人同時連線產出報表時,會引發「檔案被另一個程序佔用」的嚴重衝突。 - ---- - -## 2. 終極解決方案架構:記憶體隔離克隆法 (Thread-Safe) -不要建立全新的 Workbook 並逐一複製樣式,也絕不污染實體模板。改用**以唯讀模式將模板讀入記憶體 ➔ 在記憶體中進行 Sheet 克隆與字串替換 ➔ 清理邊界 ➔ 存檔前刪除樣板** 的閉環流程。 - -### 核心開發流程與程式碼實作 (C#) - -```csharp -using System; -using System.IO; -using NPOI.SS.UserModel; - -public class ExcelReportGenerator -{ - public void GenerateReport() - { - string templatePath = @"C:\Templates\ReportTemplate.xlsx"; - string outputPath = @"C:\Outputs\FinalReport.xlsx"; - - // 預期報表的最大總欄數(假設固定為 8 欄,索引 0 ~ 7) - int maxValidColumnIndex = 7; - - // 1. 使用 FileShare.Read 唯讀模式開啟實體檔案,保證多人同時連線不鎖檔 - using (FileStream fs = new FileStream(templatePath, FileMode.Open, FileAccess.Read, FileShare.Read)) - { - // 2. 將模板內容完整載入記憶體 - byte[] templateBytes; - using (MemoryStream ms = new MemoryStream()) - { - byte[] buffer = new byte[1024 * 4]; - int read; - while ((read = fs.Read(buffer, 0, buffer.Length)) > 0) - { - ms.Write(buffer, 0, read); - } - templateBytes = ms.ToArray(); - } - - // 3. 在完全隔離的記憶體中建立獨立的 Workbook 物件 - using (MemoryStream workbookMs = new MemoryStream(templateBytes)) - { - IWorkbook workbook = WorkbookFactory.Create(workbookMs); - - // 4. 利用 CloneSheet 完美克隆樣板,完整帶走字型、預設邊界與頁面配置 - int templateIndex = 0; // 假設原始樣板在第一個 Sheet - ISheet newSheet = workbook.CloneSheet(templateIndex); - workbook.SetSheetName(workbook.GetSheetIndex(newSheet), "正式報表"); - - // 5. 執行您原有的 Find and Replace 邏輯 - // 註:標楷體即使因為版本差而折行,因高度安全故不會影響縱向分頁 - PerformFindAndReplace(newSheet); - - // ============================================================ - // 防線一:補上底層 PageSetup 縮放,強制鎖定橫向寬度(根治「切到下一頁」) - // ============================================================ - newSheet.FitToPage = true; - newSheet.PrintSetup.Scale = 0; // 關鍵:在 NPOI 2.1 中,必須將 Scale 歸零,FitWidth 才會在所有 Excel 版本中生效 - newSheet.PrintSetup.FitWidth = 1; // 強制所有欄位橫向壓縮在一頁內 - newSheet.PrintSetup.FitHeight = 0; // 高度設為 0,代表縱向不限制,隨資料自然往下延伸 - - // ============================================================ - // 防線二:徹底拔除右側隱形/殘留儲存格(替代 SetPrintArea,根治「多一欄」) - // ============================================================ - for (int rowNum = 0; rowNum <= newSheet.LastRowNum; rowNum++) - { - IRow row = newSheet.GetRow(rowNum); - if (row == null) continue; - - // 如果 NPOI 判定此行在 XML 中的最後一欄超過了實質資料的上限 - if (row.LastCellNum > (maxValidColumnIndex + 1)) - { - // 倒序迴圈,將指定欄位之後的所有隱形/空儲存格物件物理性地徹底拔除 - for (int c = row.LastCellNum - 1; c > maxValidColumnIndex; c--) - { - ICell cell = row.GetCell(c); - if (cell != null) - { - row.RemoveCell(cell); - } - } - } - } - - // ============================================================ - // 防線三:安全刪除原始樣板工作表,避開打開空白與重複列印 - // ============================================================ - // 技巧:先將活動焦點(ActiveSheet)移至新報表,再進行刪除 - workbook.SetActiveSheet(workbook.GetSheetIndex(newSheet)); - workbook.RemoveSheetAt(templateIndex); - - // 6. 將專屬的報表匯出成獨立新檔(或直接 Response 給瀏覽器下載) - using (FileStream outFs = new FileStream(outputPath, FileMode.Create, FileAccess.Write)) - { - workbook.Write(outFs); - } - } - } - } - - private void PerformFindAndReplace(ISheet sheet) - { - // 您的 Find and Replace 實作代碼 - // 提示:只更新 cell.SetCellValue(),絕對不要重新 CreateCell(),以完整保留標楷體格式與邊框 - } -} -``` - ---- - -## 3. 關鍵執行與相容性檢查清單 -1. **只換值、不重造**:在 `Find and Replace` 時,請直接使用 `cell.SetCellValue(newValue)`,不要重新 `CreateCell`,否則會把原模板上精心設計的標楷體字型、置中、邊框等 CellStyle 屬性完全洗掉。 -2. **`Scale = 0` 是必備開關**:在 NPOI 2.1 底層 XML 結構中,如果沒有明確指定 `PrintSetup.Scale = 0`,部分 Office 版本在讀取 `FitWidth = 1` 時會發生衝突進而失效。 -3. **活動焦點移轉**:在呼叫 `workbook.RemoveSheetAt(0)` 刪除空白樣板前,必須先呼叫 `workbook.SetActiveSheet()` 鎖定新工作表,否則使用者開啟 Excel 時畫面可能因焦點遺失而顯示全白(需手動點選下方分頁才看得到內容)。 diff --git a/branches/1150807/DOC/SQL_FUNCTION.txt b/branches/1150807/DOC/SQL_FUNCTION.txt deleted file mode 100644 index e9f7737..0000000 --- a/branches/1150807/DOC/SQL_FUNCTION.txt +++ /dev/null @@ -1,241 +0,0 @@ - --- FN取得選定講師編號 -CREATE FUNCTION FN取得選定講師編號 -( - @課程企劃編號 AS INT, - @課程序號 AS INT -) -RETURNS INT -AS -BEGIN - DECLARE @RESULT INT - DECLARE @COUNT INT - DECLARE @講師編號 INT - - SELECT @COUNT=COUNT(1) FROM 訓練課程內容 WHERE 訓練課程企劃編號=@課程企劃編號 AND 課程序號=@課程序號 - IF @COUNT = 0 - BEGIN - RETURN 0 - END - ELSE - BEGIN - SELECT TOP 1 @講師編號 = 講師編號 FROM 講師異動 - WHERE 課程企劃編號 = @課程企劃編號 AND 課程序號 = @課程序號 - ORDER BY 異動次數 DESC - - IF @講師編號 IS NOT NULL - BEGIN - RETURN @講師編號 - END - ELSE - BEGIN - DECLARE @講師A INT - DECLARE @講師B INT - DECLARE @講師C INT - DECLARE @分數A INT - DECLARE @分數B INT - DECLARE @分數C INT - - SELECT @講師A = ISNULL(講師編號_A, 0), @講師B = ISNULL(講師編號_B, 0), @講師C = ISNULL(講師編號_C, 0), - @分數A = ISNULL(合計_A, 0), @分數B = ISNULL(合計_B, 0), @分數C = ISNULL(合計_C, 0) - FROM 講師遴選 - WHERE 課程企劃編號 = @課程企劃編號 AND 課程序號 = @課程序號 - - IF (@分數A > @分數B AND @分數A > @分數C) - SET @講師編號 = @講師A - ELSE IF (@分數B > @分數A AND @分數B > @分數C) - SET @講師編號 = @講師B - ELSE - SET @講師編號 = @講師C - END - END - RETURN @講師編號 -END - - --- FN取得選定場地編號 -CREATE FUNCTION FN取得選定場地編號 -( - @課程企劃編號 AS INT -) -RETURNS INT -AS -BEGIN - DECLARE @RESULT INT - DECLARE @COUNT INT - DECLARE @場地編號 INT - - SELECT @COUNT=COUNT(1) FROM 訓練課程企劃 WHERE 編號=@課程企劃編號 - IF @COUNT = 0 - BEGIN - RETURN 0 - END - ELSE - BEGIN - SELECT TOP 1 @場地編號 = 場地編號 FROM 場地異動 - WHERE 課程企劃編號 = @課程企劃編號 - ORDER BY 異動次數 DESC - - IF @場地編號 IS NOT NULL - BEGIN - RETURN @場地編號 - END - ELSE - BEGIN - DECLARE @場地A INT - DECLARE @場地B INT - DECLARE @場地C INT - DECLARE @分數A INT - DECLARE @分數B INT - DECLARE @分數C INT - - SELECT @場地A = ISNULL(場地編號_A, 0), @場地B = ISNULL(場地編號_B, 0), @場地C = ISNULL(場地編號_C, 0), - @分數A = ISNULL(合計_A, 0), @分數B = ISNULL(合計_B, 0), @分數C = ISNULL(合計_C, 0) - FROM 場地遴選 - WHERE 課程企劃編號 = @課程企劃編號 - - IF (@分數A > @分數B AND @分數A > @分數C) - SET @場地編號 = @場地A - ELSE IF (@分數B > @分數A AND @分數B > @分數C) - SET @場地編號 = @場地B - ELSE - SET @場地編號 = @場地C - END - END - RETURN @場地編號 -END - - --- FN取得選定講師名稱 -CREATE FUNCTION FN取得選定講師名稱 -( - @課程企劃編號 AS INT, - @課程序號 AS INT -) -RETURNS NVARCHAR(200) -AS -BEGIN - DECLARE @講師編號 INT - DECLARE @講師名稱 NVARCHAR(200) - - -- 先檢查 訓練課程內容 是否存在 - IF NOT EXISTS (SELECT 1 FROM 訓練課程內容 WHERE 訓練課程企劃編號=@課程企劃編號 AND 課程序號=@課程序號) - RETURN NULL - - -- Step 1: 先查 講師異動 (最後異動) - SELECT TOP 1 @講師編號 = ISNULL(講師編號, 0), @講師名稱 = 講師姓名 - FROM 講師異動 - WHERE 課程企劃編號 = @課程企劃編號 AND 課程序號 = @課程序號 - ORDER BY 異動次數 DESC - - IF @講師編號 > 0 - BEGIN - SELECT @講師名稱 = 姓名 FROM 講師 WHERE 編號 = @講師編號 - RETURN @講師名稱 - END - ELSE IF @講師名稱 IS NOT NULL AND @講師名稱 <> '' - BEGIN - RETURN @講師名稱 - END - - -- Step 2: 查 講師遴選 - DECLARE @講師A INT, @講師B INT, @講師C INT - DECLARE @姓名A NVARCHAR(200), @姓名B NVARCHAR(200), @姓名C NVARCHAR(200) - DECLARE @分數A INT, @分數B INT, @分數C INT - DECLARE @選定 INT - - SELECT @講師A = ISNULL(講師編號_A, 0), @講師B = ISNULL(講師編號_B, 0), @講師C = ISNULL(講師編號_C, 0), - @姓名A = 講師姓名_A, @姓名B = 講師姓名_B, @姓名C = 講師姓名_C, - @分數A = ISNULL(合計_A, 0), @分數B = ISNULL(合計_B, 0), @分數C = ISNULL(合計_C, 0), - @選定 = ISNULL(選定講師, 0) - FROM 講師遴選 - WHERE 課程企劃編號 = @課程企劃編號 AND 課程序號 = @課程序號 - - IF @@ROWCOUNT = 0 - RETURN NULL - - IF @選定 = 1 - SELECT @講師編號 = @講師A, @講師名稱 = @姓名A - ELSE IF @選定 = 2 - SELECT @講師編號 = @講師B, @講師名稱 = @姓名B - ELSE IF @選定 = 3 - SELECT @講師編號 = @講師C, @講師名稱 = @姓名C - ELSE IF (@分數A >= @分數B AND @分數A >= @分數C) - SELECT @講師編號 = @講師A, @講師名稱 = @姓名A - ELSE IF (@分數B >= @分數A AND @分數B >= @分數C) - SELECT @講師編號 = @講師B, @講師名稱 = @姓名B - ELSE - SELECT @講師編號 = @講師C, @講師名稱 = @姓名C - - IF @講師編號 > 0 - SELECT @講師名稱 = 姓名 FROM 講師 WHERE 編號 = @講師編號 - - RETURN @講師名稱 -END - - --- FN取得選定場地名稱 -CREATE FUNCTION FN取得選定場地名稱 -( - @課程企劃編號 AS INT -) -RETURNS NVARCHAR(200) -AS -BEGIN - DECLARE @場地編號 INT - DECLARE @場地名稱 NVARCHAR(200) - - -- 先檢查 訓練課程企劃 是否存在 - IF NOT EXISTS (SELECT 1 FROM 訓練課程企劃 WHERE 編號=@課程企劃編號) - RETURN NULL - - -- Step 1: 先查 場地異動 (最後異動) - SELECT TOP 1 @場地編號 = ISNULL(場地編號, 0), @場地名稱 = 場地名稱 - FROM 場地異動 - WHERE 課程企劃編號 = @課程企劃編號 - ORDER BY 異動次數 DESC - - IF @場地編號 > 0 - BEGIN - SELECT @場地名稱 = 場地名稱 FROM 場地 WHERE 編號 = @場地編號 - RETURN @場地名稱 - END - ELSE IF @場地名稱 IS NOT NULL AND @場地名稱 <> '' - BEGIN - RETURN @場地名稱 - END - - -- Step 2: 查 場地遴選 - DECLARE @場地A INT, @場地B INT, @場地C INT - DECLARE @名稱A NVARCHAR(200), @名稱B NVARCHAR(200), @名稱C NVARCHAR(200) - DECLARE @分數A INT, @分數B INT, @分數C INT - DECLARE @選定 INT - - SELECT @場地A = ISNULL(場地編號_A, 0), @場地B = ISNULL(場地編號_B, 0), @場地C = ISNULL(場地編號_C, 0), - @名稱A = 場地名稱_A, @名稱B = 場地名稱_B, @名稱C = 場地名稱_C, - @分數A = ISNULL(合計_A, 0), @分數B = ISNULL(合計_B, 0), @分數C = ISNULL(合計_C, 0), - @選定 = ISNULL(選定場地, 0) - FROM 場地遴選 - WHERE 課程企劃編號 = @課程企劃編號 - - IF @@ROWCOUNT = 0 - RETURN NULL - - IF @選定 = 1 - SELECT @場地編號 = @場地A, @場地名稱 = @名稱A - ELSE IF @選定 = 2 - SELECT @場地編號 = @場地B, @場地名稱 = @名稱B - ELSE IF @選定 = 3 - SELECT @場地編號 = @場地C, @場地名稱 = @名稱C - ELSE IF (@分數A >= @分數B AND @分數A >= @分數C) - SELECT @場地編號 = @場地A, @場地名稱 = @名稱A - ELSE IF (@分數B >= @分數A AND @分數B >= @分數C) - SELECT @場地編號 = @場地B, @場地名稱 = @名稱B - ELSE - SELECT @場地編號 = @場地C, @場地名稱 = @名稱C - - IF @場地編號 > 0 - SELECT @場地名稱 = 場地名稱 FROM 場地 WHERE 編號 = @場地編號 - - RETURN @場地名稱 -END diff --git a/branches/1150807/DOC/個人費用彙整表_完整實施報告.md b/branches/1150807/DOC/個人費用彙整表_完整實施報告.md deleted file mode 100644 index abb47f6..0000000 --- a/branches/1150807/DOC/個人費用彙整表_完整實施報告.md +++ /dev/null @@ -1,310 +0,0 @@ -# 講師個人費用彙整表 - 完整實施報告 - -## 📋 概述 - -本報告總結了「講師個人費用彙整表」功能的完整實施情況。已實施的內容包括前端 UI、Vue.js 邏輯框架和 WebService 方法簽名。待實施的內容主要為後端查詢邏輯和 Excel 匯出邏輯。 - -## 🎯 項目目標 - -實施一個完整的講師個人費用彙整表查詢和匯出系統,允許用戶: -1. 按日期、身分別、付款方式查詢講師費用資訊 -2. 查看結果並在表格中展示 9 個關鍵欄位 -3. 將查詢結果匯出為 Excel 檔案 - -## ✅ 完成情況 - -### 1. 前端 UI (100% 完成) - -**檔案:** `Forms\領據系統\財稅作業與領據關帳.aspx` - -**實施內容:** -- Tab 0 個人費用彙整表頁面結構 -- 查詢表單(4 個欄位) - - 起日:日期選擇控制項 - - 迄日:日期選擇控制項 - - 身分別:下拉清單(動態加載) - - 付款方式:下拉清單(動態加載) -- 操作按鈕 - - 查詢按鈕(綠色 green80) - - 匯出按鈕(藍色 blue80) -- 查詢結果表格 - - 9 個欄位列標題 - - 動態綁定資料列 - - 貨幣格式化顯示 -- 訊息提示區域 - - 支援 4 種訊息類型(success, danger, warning, info) -- 完整 CSS 樣式 - - 響應式布局 - - 現代化設計 - -**代碼行數:** ~150 行 HTML/CSS - -### 2. Vue.js 邏輯 (100% 完成) - -**檔案:** `Scripts\財稅作業與領據關帳.js` - -**實施內容:** - -**資料結構:** -```javascript -summaryTable: { - startDate: '', - endDate: '', - identity: '', - paymentMethod: '', - identityOptions: [], - paymentMethodOptions: [], - dataList: [], - loading: false, - message: '', - messageType: 'info' -} -``` - -**方法(共 6 個):** -1. `loadSummaryTableDropdowns()` - 非同步加載下拉清單選項 -2. `searchSummaryTable()` - 非同步執行查詢 -3. `exportSummaryTable()` - 非同步執行匯出 -4. `parseDate()` - 日期字符串解析(ISO 8601 格式) -5. `formatCurrency()` - 貨幣格式化(NTD) -6. `downloadExcel()` - Base64 Excel 檔案下載 - -**特色:** -- 完整的異常處理 -- 加載狀態管理 -- 用戶友好的錯誤訊息 -- 自動訊息隱藏 -- 按鈕禁用狀態管理 - -**代碼行數:** ~200 行 JavaScript - -### 3. WebService 方法 (100% 完成框架) - -**檔案:** `Services\領據處理.asmx.cs` - -**實施內容:** - -**方法簽名:** -```csharp -[WebMethod(EnableSession = true)] -[ScriptMethod(ResponseFormat = ResponseFormat.Json)] -public ServiceResponse SearchSummaryTable( - string 起日, - string 迄日, - string 身分別, - string 付款方式, - string 輸出方式) -``` - -**功能:** -- 日期參數解析(支援多種格式) -- 輸出方式驗證(DATA 或 EXPORT) -- 異常捕捉和錯誤回應 -- 參數驗證 - -**資料模型:** -```csharp -public class 個人費用彙整表Item -{ - public string 領款人姓名 { get; set; } - public string 身分證字號 { get; set; } - public string 堂數 { get; set; } - public string 扣繳類別 { get; set; } - public string 帳戶名 { get; set; } - public decimal 付款金額 { get; set; } - public string 匯款帳號 { get; set; } - public string 銀行分行代碼 { get; set; } - public string 銀行分行 { get; set; } -} -``` - -**代碼行數:** ~80 行 C# - -### 4. 樣式優化 (100% 完成) - -**檔案:** -- `Styles\領據資料處理.css` -- `Forms\領據系統\財稅作業與領據關帳.aspx` (內部 CSS) - -**新增樣式:** -- `.ml-2` - 左邊距(0.5rem) -- `.mt-3` - 上邊距(1rem) -- `.mt-4` - 上邊距(1.5rem) -- `.button` 系列 - 按鈕基礎樣式 -- `.green80` - 綠色按鈕 -- `.blue80` - 藍色按鈕 -- `.table` 系列 - 表格樣式 -- `.alert` 系列 - 警告訊息樣式 -- `.form-*` - 表單樣式 - -**特色:** -- 響應式布局 -- 現代化設計 -- 易於維護和擴展 - -## ⏳ 待實施部分 - -### 1. 查詢邏輯 (需要用戶完成) - -**位置:** `Services\領據處理.asmx.cs` 第 688 行 - -**實現要點:** -```csharp -// TODO: 實現查詢邏輯 -// 根據 startDate, endDate, 身分別, 付款方式 查詢資料 -// 返回 List<個人費用彙整表Item> - -// 應該呼叫 DAC 層方法 -var summaryData = dac.SearchSummaryTable(startDate, endDate, 身分別, 付款方式); -``` - -**建議:** -- 創建 `DAC_個人費用彙整` 或在現有 DAC 中添加方法 -- SQL 查詢應該聯結講師、非講師、勞務費、付款設定等表 -- 考慮性能優化(分頁、索引等) - -### 2. Excel 匯出邏輯 (需要用戶完成) - -**位置:** `Services\領據處理.asmx.cs` 第 715 行 - -**實現要點:** -```csharp -// TODO: 實現 Excel 匯出邏輯 -// 1. 使用相同的查詢取得 summaryData -// 2. 生成 Excel 檔案 -// 3. 轉換為 Base64 編碼 -// 4. 返回 { excelData, fileName } - -var excelBase64 = GenerateExcelBase64(summaryData); -var excelResult = new -{ - excelData = excelBase64, - fileName = $"講師個人費用彙整表_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx" -}; -``` - -**建議:** -- 使用 NPOI 或 DocumentFormat.OpenXml 生成 Excel -- 参考現有的 `Report.領據列印` 實現方式 -- 設置適當的欄寬和格式化 - -## 📊 開發統計 - -| 項目 | 數量 | -|------|------| -| 修改文件 | 4 個 | -| 新增方法 | 7 個 | -| 新增類別 | 1 個 | -| CSS 樣式 | 100+ 行 | -| JavaScript 代碼 | 200+ 行 | -| C# 代碼 | 80+ 行 | -| 總代碼行數 | 400+ 行 | - -## 🔗 代碼流程 - -``` -用戶查詢流程: -1. 用戶輸入查詢條件(起日、迄日、身分別、付款方式) -2. 點擊「查詢」按鈕 -3. Vue: searchSummaryTable() -4. Ajax: SearchSummaryTable(方式="DATA") -5. C#: 解析參數 → 查詢資料 → 返回 JSON -6. Vue: 綁定結果到表格 -7. 顯示查詢結果和訊息 - -用戶匯出流程: -1. 點擊「匯出」按鈕 -2. Vue: exportSummaryTable() -3. Ajax: SearchSummaryTable(方式="EXPORT") -4. C#: 生成 Excel → Base64 編碼 → 返回 -5. Vue: downloadExcel() -6. 瀏覽器下載 Excel 檔案 -``` - -## 🚀 部署步驟 - -1. **準備階段** - - 完成查詢邏輯實施 - - 完成 Excel 匯出邏輯實施 - - 進行全面測試 - -2. **構建階段** - - Visual Studio 編譯 - - 無編譯錯誤(已驗證 ✅) - -3. **測試階段** - - 單元測試 - - 集成測試 - - 用戶驗收測試 - -4. **部署階段** - - 部署到開發環境 - - 部署到測試環境 - - 部署到生產環境 - -## 📚 參考文檔 - -1. `DOC\講師個人費用彙整表.md` - 需求文檔 -2. `DOC\個人費用彙整表_實施指南.md` - 詳細實施指南 -3. `DOC\個人費用彙整表_實施摘要.md` - 實施摘要 -4. `DOC\個人費用彙整表_檢查清單.md` - 檢查清單 - -## 🎓 技術棧 - -- **前端框架:** Vue.js 2.x -- **前端 HTTP:** Axios -- **後端框架:** ASP.NET WebService -- **後端語言:** C# -- **.NET 版本:** Framework 3.5 -- **資料庫:** SQL Server (推測) -- **Excel 生成:** NPOI / OpenXml (待選) - -## 💾 版本資訊 - -| 組件 | 版本 | -|------|------| -| Vue.js | 2.x | -| Axios | Latest | -| .NET Framework | 3.5 | -| Project Status | In Development | - -## ✨ 亮點特色 - -1. **完整的前後端集成** - 從 UI 到 WebService 的完整實施 -2. **現代化的用戶界面** - 響應式設計、友好的提示訊息 -3. **健壯的錯誤處理** - 完善的異常捕捉和錯誤回應 -4. **易於擴展** - 模塊化設計,便於添加新功能 -5. **清晰的代碼註釋** - 易於維護和理解 - -## 🔧 後續優化建議 - -1. **性能優化** - - 添加分頁功能(大量資料場景) - - 緩存下拉清單選項 - - 優化 SQL 查詢 - -2. **功能增強** - - 添加更多過濾條件 - - 支援自訂欄位選擇 - - 支援高級查詢 - -3. **用戶體驗改進** - - 添加查詢歷史 - - 支援模板保存 - - 添加快速鍵 - -## 📞 支援聯絡 - -如有任何問題或需要進一步的協助,請參考: -- 實施指南:`DOC\個人費用彙整表_實施指南.md` -- 實施摘要:`DOC\個人費用彙整表_實施摘要.md` -- 檢查清單:`DOC\個人費用彙整表_檢查清單.md` - -## ✅ 建置狀態 - -✅ **項目成功構建,無編譯錯誤** - ---- - -**報告生成時間:** 2024年 -**報告狀態:** 完整實施階段完成,待後端邏輯實施 diff --git a/branches/1150807/DOC/個人費用彙整表_實施指南.md b/branches/1150807/DOC/個人費用彙整表_實施指南.md deleted file mode 100644 index 1332ff9..0000000 --- a/branches/1150807/DOC/個人費用彙整表_實施指南.md +++ /dev/null @@ -1,154 +0,0 @@ -# 個人費用彙整表 - 實施指南 - -## 概述 -已完成「個人費用彙整表」的前端和框架實施。本文檔說明需要用戶完成的後端邏輯部分。 - -## 完成的工作 - -### 1. 前端 UI (Forms\領據系統\財稅作業與領據關帳.aspx) -✅ **完成內容:** -- Tab 0 查詢表單 (起日、迄日、身分別、付款方式) -- 查詢/匯出按鈕 -- 查詢結果表格 (9 個欄位) -- 完整的 CSS 樣式 - -### 2. Vue.js 邏輯 (Scripts\財稅作業與領據關帳.js) -✅ **完成內容:** -- summaryTable 資料物件初始化 -- 下拉清單加載邏輯 (`loadSummaryTableDropdowns`) -- 查詢方法 (`searchSummaryTable`) -- 匯出方法 (`exportSummaryTable`) -- 輔助方法 (`parseDate`, `formatCurrency`, `downloadExcel`) - -### 3. WebService 方法簽名 (Services\領據處理.asmx.cs) -✅ **完成內容:** -- `SearchSummaryTable` 方法框架 -- `個人費用彙整表Item` 資料模型類 - -## 需要用戶完成的工作 - -### 1. SearchSummaryTable 後端實現 - -**位置:** `Services\領據處理.asmx.cs` - `SearchSummaryTable` 方法 - -**需要實現:** -```csharp -// 在此處替換 TODO 註解的部分 - -// 根據查詢參數取得資料: -using (var conn = DAC.NewConnection()) -{ - // 你的查詢邏輯應該: - // 1. 根據 startDate (起日), endDate (迄日) 篩選日期範圍 - // 2. 如果 身分別 有值,篩選身分別 - // 3. 如果 付款方式 有值,篩選付款方式 - // 4. 返回 List<個人費用彙整表Item> - - // 查詢應該返回以下欄位: - var summaryData = new List<個人費用彙整表Item>(); - - // TODO: 實現查詢邏輯 - // var result = dac.SearchSummaryTable(startDate, endDate, 身分別, 付款方式); - // summaryData = result.ToList(); - - return summaryData; -} -``` - -**輸出欄位 (9 個):** -1. `領款人姓名` (string) - 講師/非講師姓名 -2. `身分證字號` (string) -3. `堂數` (string) - 格式:「數量 + 單位」,例如「5堂」 -4. `扣繳類別` (string) -5. `帳戶名` (string) -6. `付款金額` (decimal) -7. `匯款帳號` (string) -8. `銀行分行代碼` (string) -9. `銀行分行` (string) - -**參數:** -- `startDate` (DateTime?) - 起日 -- `endDate` (DateTime?) - 迄日 -- `身分別` (string) - 身分別 (可空) -- `付款方式` (string) - 付款方式 (可空) - -### 2. Excel 匯出實現 - -**位置:** `Services\領據處理.asmx.cs` - `SearchSummaryTable` 方法中的 EXPORT 部分 - -**需要實現:** -```csharp -if (輸出方式 == "EXPORT") -{ - // TODO: 實現 Excel 匯出邏輯 - // 1. 使用相同的查詢取得 summaryData - // 2. 生成 Excel 檔案 (使用 NPOI 或其他庫) - // 3. 將 Excel 檔案轉換為 Base64 編碼 - // 4. 返回 excelData (Base64) 和 fileName - - var excelResult = new - { - excelData = excelBase64String, // Base64 編碼的 Excel 檔案內容 - fileName = $"講師個人費用彙整表_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx" - }; - - return ServiceResponse.CreateSuccess("匯出成功", excelResult); -} -``` - -## 測試檢查清單 - -- [ ] 在 Visual Studio 中構建項目 (確無編譯錯誤) -- [ ] 在瀏覽器中開啟財稅作業與領據關帳頁面 -- [ ] 驗證 Tab 0 個人費用彙整表是否顯示正確 -- [ ] 驗證下拉清單是否正確加載身分別和付款方式 -- [ ] 點擊查詢按鈕,驗證是否呼叫後端 `SearchSummaryTable` 方法 -- [ ] 驗證查詢結果表格是否正確顯示 (如有 TODO 實現) -- [ ] 點擊匯出按鈕,驗證是否下載 Excel 檔案 (如有 TODO 實現) - -## 後續建議 - -1. **數據庫查詢** - - 建立 DAC 類別 `DAC_個人費用彙整` 或在現有 DAC 中添加查詢方法 - - 優化 SQL 查詢效能 (考慮分組、合計等) - -2. **Excel 匯出** - - 建議使用 NPOI 庫生成 Excel - - 可參考現有的 `Report.領據列印` 實現方式 - -3. **數據驗證** - - 驗證日期範圍的合理性 - - 驗證身分別和付款方式的有效值 - -4. **錯誤處理** - - 新增更詳細的錯誤訊息 - - 記錄查詢日誌用於除錯 - -## 技術棧 - -- **前端:** Vue.js 2.x, HTML5, CSS3 -- **後端:** ASP.NET (C#), WebService -- **資料庫:** SQL Server (假設) -- **.NET 版本:** Framework 3.5 - -## 支援的瀏覽器 - -- Chrome (推薦) -- Firefox -- Edge -- Safari - -## 常見問題 - -**Q: 如何修改查詢結果欄位?** -A: 修改 `個人費用彙整表Item` 類別的屬性,並更新前端表格 HTML。 - -**Q: 如何添加更多查詢條件?** -A: -1. 在 ASPX 中添加新的表單控制項 -2. 在 Vue data 中添加新屬性 -3. 在 `searchSummaryTable` 方法中傳遞新參數 -4. 在後端 `SearchSummaryTable` 方法中處理新參數 - -**Q: 如何修改 Excel 匯出格式?** -A: 在 EXPORT 邏輯中自訂 Excel 生成代碼,調整欄寬、字體、顏色等。 diff --git a/branches/1150807/DOC/個人費用彙整表_實施摘要.md b/branches/1150807/DOC/個人費用彙整表_實施摘要.md deleted file mode 100644 index d0aad02..0000000 --- a/branches/1150807/DOC/個人費用彙整表_實施摘要.md +++ /dev/null @@ -1,199 +0,0 @@ -# 講師個人費用彙整表 - 實施摘要 - -## ✅ 已完成部分 - -### 1. 前端 UI 實施 - -**檔案:** `Forms\領據系統\財稅作業與領據關帳.aspx` - -- ✅ Tab 0: 個人費用彙整表頁面結構 -- ✅ 查詢表單 (4 個輸入欄位) - - 起日 (date input) - - 迄日 (date input) - - 身分別 (dropdown) - - 付款方式 (dropdown) -- ✅ 操作按鈕 - - 查詢按鈕 (綠色) - - 匯出按鈕 (藍色) -- ✅ 查詢結果表格 (9 欄) - - 領款人姓名、身分證字號、堂數、扣繳類別、帳戶名、付款金額、匯款帳號、銀行分行代碼、銀行分行 -- ✅ 完整 CSS 樣式 - - 按鈕樣式、表格樣式、提示訊息樣式、表單樣式等 - -### 2. Vue.js 邏輯實施 - -**檔案:** `Scripts\財稅作業與領據關帳.js` - -- ✅ 初始化 summaryTable 物件 - ```javascript - summaryTable: { - startDate: '', - endDate: '', - identity: '', - paymentMethod: '', - identityOptions: [], - paymentMethodOptions: [], - dataList: [], - loading: false, - message: '', - messageType: 'info' - } - ``` - -- ✅ 方法實施 - - `loadSummaryTableDropdowns()` - 加載下拉選項 - - `searchSummaryTable()` - 執行查詢 - - `exportSummaryTable()` - 執行匯出 - - `parseDate()` - 日期解析 - - `formatCurrency()` - 貨幣格式化 - - `downloadExcel()` - Excel 下載 - -### 3. WebService 框架實施 - -**檔案:** `Services\領據處理.asmx.cs` - -- ✅ `SearchSummaryTable` 方法簽名 - ```csharp - public ServiceResponse SearchSummaryTable( - string 起日, - string 迄日, - string 身分別, - string 付款方式, - string 輸出方式) - ``` - -- ✅ 日期解析邏輯 -- ✅ 輸出方式驗證 (DATA / EXPORT) -- ✅ `個人費用彙整表Item` 資料模型 - -### 4. 樣式優化 - -**檔案:** `Styles\領據資料處理.css` 和 ASPX 內部 CSS - -- ✅ 新增邊距類 (`ml-2`, `mt-3`, `mt-4`) -- ✅ 表格響應式設計 -- ✅ 按鈕樣式 (綠色、藍色) -- ✅ 警告/成功/信息訊息樣式 -- ✅ 表單欄位布局 - -## 📋 待實施部分(用戶需完成) - -### 1. SearchSummaryTable 查詢邏輯 - -**方法位置:** `Services\領據處理.asmx.cs` 第 688 行 - -**需要完成:** -```csharp -// 1. 連接資料庫 -using (var conn = DAC.NewConnection()) -{ - // 2. 根據參數查詢資料 - // - startDate (起日) - // - endDate (迄日) - // - 身分別 (可空) - // - 付款方式 (可空) - - // 3. 返回 List<個人費用彙整表Item> - var summaryData = new List<個人費用彙整表Item>(); - - // TODO: 實現查詢邏輯 - // 可參考現有的 DAC_領據.SelectPageWithRelations() 方法 -} -``` - -### 2. Excel 匯出邏輯 - -**方法位置:** `Services\領據處理.asmx.cs` 第 715 行 - -**需要完成:** -```csharp -if (輸出方式 == "EXPORT") -{ - // 1. 生成 Excel 檔案 - // 2. 轉換為 Base64 編碼 - // 3. 返回 { excelData, fileName } - - // 可參考現有的 Report.領據列印 實現方式 -} -``` - -## 📊 資料模型 - -```csharp -public class 個人費用彙整表Item -{ - public string 領款人姓名 { get; set; } // 講師/非講師姓名 - public string 身分證字號 { get; set; } - public string 堂數 { get; set; } // 格式:「數量 + 單位」 - public string 扣繳類別 { get; set; } - public string 帳戶名 { get; set; } - public decimal 付款金額 { get; set; } - public string 匯款帳號 { get; set; } - public string 銀行分行代碼 { get; set; } - public string 銀行分行 { get; set; } -} -``` - -## 🔗 方法調用流程 - -``` -前端查詢按鈕 - ↓ -JavaScript: searchSummaryTable() - ↓ -WebService: SearchSummaryTable (輸出方式="DATA") - ↓ -返回 List<個人費用彙整表Item> - ↓ -Vue 綁定結果到表格 -``` - -``` -前端匯出按鈕 - ↓ -JavaScript: exportSummaryTable() - ↓ -WebService: SearchSummaryTable (輸出方式="EXPORT") - ↓ -返回 { excelData: Base64, fileName: "..." } - ↓ -JavaScript: downloadExcel() - ↓ -瀏覽器下載檔案 -``` - -## 🛠 設定和相依性 - -- ✅ Vue.js 2.x (已在頁面加載) -- ✅ Axios (已在頁面加載) -- ✅ ToastMixin (已在頁面加載) -- ✅ ApiMixin (已在頁面加載) - -## ✨ 特色功能 - -1. **响應式設計** - 適配不同螢幕尺寸 -2. **即時驗證** - 日期範圍檢查 -3. **錯誤提示** - 友好的錯誤訊息 -4. **加載狀態** - 按鈕禁用狀態提示 -5. **貨幣格式** - 自動格式化付款金額 (NTD) -6. **Excel 下載** - Base64 解碼下載 - -## 📝 建置狀態 - -✅ 項目已成功構建,無編譯錯誤 - -## 🚀 下一步 - -1. 實施 `SearchSummaryTable` 的查詢邏輯 -2. 實施 Excel 匯出邏輯 -3. 測試查詢和匯出功能 -4. 驗證資料正確性 -5. 性能優化 (如需要) - -## 📞 技術支援 - -- 有任何問題,請檢查: - 1. WebService 方法是否正確傳遞參數 - 2. 資料庫查詢是否返回正確欄位 - 3. Excel 生成邏輯是否正確編碼為 Base64 - 4. 瀏覽器開發者工具中的網路請求和回應 diff --git a/branches/1150807/DOC/個人費用彙整表_檢查清單.md b/branches/1150807/DOC/個人費用彙整表_檢查清單.md deleted file mode 100644 index b6da3e7..0000000 --- a/branches/1150807/DOC/個人費用彙整表_檢查清單.md +++ /dev/null @@ -1,215 +0,0 @@ -# 講師個人費用彙整表 - 檢查清單 - -## 📅 實施日期:2024 - -## ✅ 已完成項目 - -### 前端實施 - -- [x] ASPX 頁面結構(Tab 0) - - [x] 查詢表單(4 個輸入欄位) - - [x] 操作按鈕(查詢、匯出) - - [x] 結果表格(9 欄) - - [x] 訊息提示區域 - -- [x] CSS 樣式 - - [x] 表單樣式 - - [x] 按鈕樣式(綠色、藍色) - - [x] 表格樣式(響應式、奇偶行) - - [x] 訊息樣式(警告、成功、信息、錯誤) - - [x] 邊距類(ml-2、mt-3、mt-4) - -### JavaScript 實施 - -- [x] Vue.js 資料物件 - - [x] summaryTable 初始化 - - [x] 下拉清單選項陣列 - - [x] 查詢結果陣列 - - [x] 狀態標誌 - -- [x] Vue.js 方法 - - [x] loadSummaryTableDropdowns() - - [x] searchSummaryTable() - - [x] exportSummaryTable() - - [x] parseDate() - - [x] formatCurrency() - - [x] downloadExcel() - -### WebService 實施 - -- [x] SearchSummaryTable 方法簽名 - - [x] 參數解析 - - [x] 日期驗證 - - [x] 輸出方式驗證 - - [x] 成功/失敗回應 - -- [x] 資料模型類 - - [x] 個人費用彙整表Item - - [x] 9 個屬性定義 - -## 📝 待完成項目 - -### 查詢邏輯 - -- [ ] 實施 SearchSummaryTable 的 TODO 查詢部分 - - [ ] 根據日期範圍查詢 - - [ ] 根據身分別篩選 - - [ ] 根據付款方式篩選 - - [ ] 返回 List<個人費用彙整表Item> - -- [ ] 創建或修改 DAC 類別 - - [ ] DAC_個人費用彙整(新建或擴充) - - [ ] 實施查詢方法 - -### Excel 匯出 - -- [ ] 實施 SearchSummaryTable 的 TODO 匯出部分 - - [ ] 生成 Excel 檔案 - - [ ] 轉換為 Base64 編碼 - - [ ] 返回檔案名和內容 - -## 🧪 測試計劃 - -### 單元測試 - -- [ ] 測試日期解析 - - [ ] 有效的日期格式 - - [ ] 無效的日期格式 - - [ ] 空值處理 - -- [ ] 測試查詢方法 - - [ ] 無條件查詢 - - [ ] 僅日期條件 - - [ ] 僅身分別條件 - - [ ] 僅付款方式條件 - - [ ] 多條件組合 - - [ ] 無結果情況 - -- [ ] 測試匯出方法 - - [ ] 正常匯出 - - [ ] 無資料匯出 - -### 集成測試 - -- [ ] 頁面加載 - - [ ] Tab 0 是否正確顯示 - - [ ] 下拉清單是否正確加載 - - [ ] 樣式是否正確應用 - -- [ ] 查詢功能 - - [ ] 點擊查詢按鈕 - - [ ] WebService 方法呼叫 - - [ ] 結果綁定表格 - - [ ] 訊息提示顯示 - -- [ ] 匯出功能 - - [ ] 點擊匯出按鈕 - - [ ] WebService 方法呼叫 - - [ ] Excel 檔案下載 - - [ ] 檔案內容驗證 - -### UI 測試 - -- [ ] 響應式設計 - - [ ] 桌面版(≥1024px) - - [ ] 平板版(768px-1023px) - - [ ] 手機版(<768px) - -- [ ] 瀏覽器兼容性 - - [ ] Chrome - - [ ] Firefox - - [ ] Edge - - [ ] Safari - -- [ ] 用戶交互 - - [ ] 表單驗證 - - [ ] 按鈕禁用狀態 - - [ ] 加載動畫 - - [ ] 訊息自動隱藏 - -## 📊 功能驗收標準 - -### 查詢功能 - -- ✅ 系統應正確解析查詢參數 -- ✅ 系統應返回符合條件的資料 -- ✅ 系統應顯示符合的資料筆數 -- ✅ 系統應在無結果時提示用戶 - -### 匯出功能 - -- ✅ 系統應生成有效的 Excel 檔案 -- ✅ 系統應正確命名檔案(日期+時間) -- ✅ 系統應在用戶瀏覽器中下載檔案 -- ✅ 系統應包含所有查詢結果 - -### 用戶體驗 - -- ✅ 用戶應能快速進行查詢 -- ✅ 用戶應看到清晰的結果 -- ✅ 用戶應收到操作反饋 -- ✅ 用戶應能輕鬆匯出資料 - -## 🐛 已知問題 - -(待用戶填充) - -## 📞 後續步驟 - -1. **實施查詢邏輯** - - 根據文檔指南完成 DAC 層查詢 - - 在 SearchSummaryTable 方法中替換 TODO - -2. **實施匯出邏輯** - - 選擇 Excel 生成庫(建議 NPOI) - - 在 SearchSummaryTable 方法中替換 TODO - -3. **執行測試** - - 執行單元測試 - - 執行集成測試 - - 執行 UI 測試 - -4. **上線部署** - - 代碼審查 - - QA 測試通過 - - 部署到生產環境 - -## 📎 相關文檔 - -- [個人費用彙整表.md](./個人費用彙整表.md) - 需求文檔 -- [個人費用彙整表_實施指南.md](./個人費用彙整表_實施指南.md) - 實施指南 -- [個人費用彙整表_實施摘要.md](./個人費用彙整表_實施摘要.md) - 實施摘要 - -## 💾 檔案變更記錄 - -| 檔案 | 狀態 | 說明 | -|------|------|------| -| Forms\領據系統\財稅作業與領據關帳.aspx | ✅ 修改 | 添加 Tab 0 內容 | -| Scripts\財稅作業與領據關帳.js | ✅ 修改 | 添加查詢和匯出邏輯 | -| Services\領據處理.asmx.cs | ✅ 修改 | 添加 SearchSummaryTable 方法和資料模型 | -| Styles\領據資料處理.css | ✅ 修改 | 添加邊距類 | - -## ✨ 開發貼士 - -1. **調試技巧** - - 使用瀏覽器開發者工具的 Network 標籤檢查 WebService 呼叫 - - 使用 Console 檢查 JavaScript 錯誤 - - 使用 Vue 開發者工具檢查資料狀態 - -2. **性能優化** - - 考慮分頁加載大量資料 - - 考慮緩存下拉清單選項 - - 優化 SQL 查詢效能 - -3. **安全考量** - - 驗證用戶輸入 - - 檢查用戶權限 - - 記錄操作日誌 - -## 簽名和日期 - -開發者:_____________________ 日期:_____________ - -審核者:_____________________ 日期:_____________ - -批准者:_____________________ 日期:_____________ diff --git a/branches/1150807/DOC/快速開始指南.md b/branches/1150807/DOC/快速開始指南.md deleted file mode 100644 index 324530b..0000000 --- a/branches/1150807/DOC/快速開始指南.md +++ /dev/null @@ -1,221 +0,0 @@ -# 講師個人費用彙整表 - 快速開始指南 - -## 🎯 5 分鐘快速瞭解 - -### 已實施的功能 ✅ - -1. **前端 UI** - 完整的查詢表單和結果表格 -2. **Vue.js 邏輯** - 查詢和匯出的前端邏輯 -3. **WebService 框架** - SearchSummaryTable 方法簽名和資料模型 - -### 需要實施的功能 ⏳ - -1. **查詢邏輯** - 後端資料查詢(SQL) -2. **Excel 匯出** - Excel 檔案生成和下載 - -## 🚀 立即開始 - -### 步驟 1: 驗證前端 - -1. 打開 Visual Studio -2. 按 F5 或點擊「開始除錯」 -3. 導航至「財稅作業與領據關帳」頁面 -4. 驗證 Tab 0「個人費用彙整表」是否顯示 -5. 驗證查詢表單和按鈕是否可見 - -### 步驟 2: 實施查詢邏輯 - -**檔案:** `Services\領據處理.asmx.cs` - -**方法:** `SearchSummaryTable` (第 688 行) - -**實現步驟:** - -```csharp -// 1. 在 TODO 註解處添加查詢邏輯 -using (var conn = DAC.NewConnection()) -{ - // 2. 創建或使用現有的 DAC 查詢方法 - // 例如:DAC_領據、DAC_勞務費 等 - - // 3. 根據參數查詢資料 - var dac = new DAC_個人費用彙整(conn); // 假設的 DAC 類 - var summaryData = dac.SearchSummaryTable( - startDate, - endDate, - 身分別, - 付款方式 - ); - - // 4. 轉換為 List<個人費用彙整表Item> - var result = new List<個人費用彙整表Item>(); - foreach (var item in summaryData) - { - result.Add(new 個人費用彙整表Item - { - 領款人姓名 = item.姓名, - 身分證字號 = item.身分證, - 堂數 = $"{item.數量}{item.單位}", - 扣繳類別 = item.扣繳類別, - 帳戶名 = item.帳戶名, - 付款金額 = item.金額, - 匯款帳號 = item.帳號, - 銀行分行代碼 = item.銀行代碼, - 銀行分行 = item.銀行分行 - }); - } - - return ServiceResponse.CreateSuccess("查詢成功", result); -} -``` - -### 步驟 3: 實施 Excel 匯出 - -**檔案:** `Services\領據處理.asmx.cs` - -**方法:** `SearchSummaryTable` (第 715 行) - -**使用 NPOI 庫的示例:** - -```csharp -if (輸出方式 == "EXPORT") -{ - // 1. 執行相同的查詢取得資料 - var summaryData = dac.SearchSummaryTable(...); - - // 2. 使用 NPOI 生成 Excel - var workbook = new HSSFWorkbook(); - var sheet = workbook.CreateSheet("個人費用彙整"); - - // 3. 寫入表頭 - var headerRow = sheet.CreateRow(0); - headerRow.CreateCell(0).SetCellValue("領款人姓名"); - headerRow.CreateCell(1).SetCellValue("身分證字號"); - // ... 其他欄位 - - // 4. 寫入資料 - int rowNum = 1; - foreach (var item in summaryData) - { - var row = sheet.CreateRow(rowNum++); - row.CreateCell(0).SetCellValue(item.領款人姓名); - row.CreateCell(1).SetCellValue(item.身分證字號); - // ... 其他欄位 - } - - // 5. 轉換為 Base64 - using (var ms = new MemoryStream()) - { - workbook.Write(ms); - var excelBase64 = Convert.ToBase64String(ms.ToArray()); - - var excelResult = new - { - excelData = excelBase64, - fileName = $"講師個人費用彙整表_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx" - }; - - return ServiceResponse.CreateSuccess("匯出成功", excelResult); - } -} -``` - -## 📝 實施檢查清單 - -實施前: -- [ ] 備份原始代碼 -- [ ] 確認資料庫表結構 -- [ ] 準備必要的 DAC 類 - -實施中: -- [ ] 完成查詢邏輯 -- [ ] 完成 Excel 匯出 -- [ ] 測試各種查詢條件 - -實施後: -- [ ] 修復任何編譯錯誤 -- [ ] 進行功能測試 -- [ ] 驗證資料正確性 -- [ ] 測試 Excel 匯出 -- [ ] 檢查性能 - -## 🧪 快速測試 - -### 測試查詢功能 - -1. 打開頁面 -2. 輸入查詢條件(至少一項) -3. 點擊「查詢」按鈕 -4. 驗證結果表格是否顯示資料 -5. 驗證訊息提示是否出現 - -### 測試匯出功能 - -1. 執行查詢獲得結果 -2. 點擊「匯出」按鈕 -3. 驗證是否下載 Excel 檔案 -4. 打開 Excel 驗證資料正確性 - -## 📊 常見問題 - -**Q: 查詢按鈕無反應?** -A: -- 檢查 WebService 是否正確實施 -- 檢查瀏覽器控制台是否有 JavaScript 錯誤 -- 確認 TODO 部分已實施 - -**Q: 匯出後 Excel 無法打開?** -A: -- 驗證 Base64 編碼是否正確 -- 確認 Excel 檔案格式正確 -- 檢查是否有特殊字符導致編碼錯誤 - -**Q: 查詢結果為空?** -A: -- 驗證資料庫中是否有符合條件的資料 -- 檢查查詢條件是否正確 -- 檢查資料庫連線是否正常 - -## 💡 提示 - -1. **調試技巧** - - 使用 SQL Server Management Studio 測試 SQL 查詢 - - 使用 Postman 測試 WebService 方法 - - 使用瀏覽器開發者工具調試 JavaScript - -2. **性能優化** - - 為常用列添加資料庫索引 - - 考慮添加分頁功能 - - 考慮緩存下拉清單選項 - -3. **用戶體驗** - - 添加查詢條件驗證 - - 提供清晰的錯誤訊息 - - 添加操作提示 - -## 🔗 相關資源 - -- `DOC\個人費用彙整表_實施指南.md` - 詳細實施指南 -- `DOC\個人費用彙整表_實施摘要.md` - 完整摘要 -- `DOC\個人費用彙整表_檢查清單.md` - 詳細檢查清單 - -## 📞 聯絡方式 - -如有任何問題,請參考: -1. 查看相關文檔 -2. 檢查代碼註釋 -3. 執行測試用例 - -## ✨ 下一步 - -完成上述步驟後: -1. ✅ 驗證所有功能正常 -2. ✅ 執行效能測試 -3. ✅ 進行用戶驗收測試 -4. ✅ 提交上線部署 - ---- - -**預計實施時間:** 2-4 小時 -**難度級別:** 中等 -**所需技能:** C#、SQL、ASP.NET WebService diff --git a/branches/1150807/DOC/扣繳明細及寄發通知.md b/branches/1150807/DOC/扣繳明細及寄發通知.md deleted file mode 100644 index c664500..0000000 --- a/branches/1150807/DOC/扣繳明細及寄發通知.md +++ /dev/null @@ -1,62 +0,0 @@ -# 扣繳明細及寄發通知 - -這是用來查詢講師領據明細與寄發郵件通知的功能 - -## 查詢畫面 - 畫面:~\Forms\領據系統\財稅作業與領據關帳.aspx 裡面的 "Tab 1: 扣繳明細及寄發通知" - Script:~\Scripts\財稅作業與領據關帳.js - -### 查詢條件輸入 - - 起日 (日期輸入) - - 迄日 (日期輸入) - - 身分別 (下拉,選項來源:GetDropdownLists("身分別")) - - 憑證類別 (下拉,選項來源:GetDropdownLists("憑證類別")) - - 查詢按鈕 呼叫 SearchDetailTable,輸出方式="DATA" - - 匯出按鈕 呼叫 SearchDetailTable,輸出方式="EXPORT" - -### 寄件人與郵件內容輸入 - - 寄件人郵箱 - - 郵件主旨 - - 郵件內文 - - 發送按鈕 呼叫 SendEmail,輸出方式="SENDMAIL" - - 預覽按鈕 呼叫 SendEmail,輸出方式="PREVIEW" - -### 查詢結果 - #### 講師 - - 要發送勾選 - - 已發送顯示 - - 領款人姓名 (講師/非講師姓名) - - 身分證字號 - - 戶籍地址 - - 扣繳類別 - - 合計金額 (講師 / 勞務費) - - 應扣繳稅額 - - 服務費 - #### 講師的明細 (可展開收合) - - 序 - - 計畫代號 - - 活動日期 - - 活動名稱 / 事由 - - 扣繳類別 - - 講師 / 勞務費 - - 應扣繳稅額 - - 服務費 - -## 後端服務 - ~/Services/領據處理.asmx - - GetDropdownLists(類別):取得下拉清單選項 - - SearchDetailTable(DateTime? 起日, DateTime? 迄日, string 身分別, string 扣繳類別, string 輸出方式) - - 查詢講師領據明細資料 - - 輸出方式:DATA=查詢結果資料 / EXPORT=匯出Excel - - 實際 SQL 我自己寫,DATA 輸出會符合查詢結果的畫面欄位 - - 匯出我自己寫 - - SendEmail(DateTime? 起日, DateTime? 迄日, string 身分別, string 扣繳類別, string 輸出方式, List 講師非講師編號, string 寄件人郵箱, string 郵件主旨, string 郵件內文) - - 發送郵件或輸出郵件預覽資料 - - 輸出方式:PREVIEW=輸出預覽用資料 / SENDMAIL=發送郵件 - - 講師非講師編號:從查詢結果的「要發送勾選」欄位勾上的講師非講師編號 - - 實際 SQL 我自己寫,PREVIEW 輸出會符合預覽用的畫面欄位 - - 發郵件我自己寫 - -## 樣式表 - - 儘量用現有的樣式表 - - 若要撰寫新樣式,儘量保持畫面高度緊湊 diff --git a/branches/1150807/DOC/扣繳明細及寄發通知_實現指南.md b/branches/1150807/DOC/扣繳明細及寄發通知_實現指南.md deleted file mode 100644 index 742098e..0000000 --- a/branches/1150807/DOC/扣繳明細及寄發通知_實現指南.md +++ /dev/null @@ -1,151 +0,0 @@ -# 扣繳明細及寄發通知 - 實現指南 - -## 概述 -此文檔說明如何完成 "扣繳明細及寄發通知" 功能的後端實現。前端 UI 與基本服務框架已完成,需要實現核心的業務邏輯。 - -## 已實現的部分 - -### 1. 前端 (ASPX + Vue.js) -- ✅ Tab 1 UI 布局完整,包括: - - 查詢條件輸入欄位 - - 查詢結果表格(支持展開/收合明細) - - 郵件設定區塊 - - 郵件預覽與發送功能 - -- ✅ JavaScript 邏輯框架: - - `loadDetailTableDropdowns()` - 加載下拉清單 - - `searchDetailTable()` - 查詢資料 - - `exportDetailTable()` - 匯出 Excel - - `previewEmail()` - 預覽郵件 - - `sendEmail()` - 發送郵件 - - `toggleSelectAll()` - 全選/反選 - -### 2. 後端服務基框架 (Services/領據處理.asmx.cs) -已新增三個服務方法,框架完整但需實現 SQL 邏輯: -- `SearchDetailTable()` - 扣繳明細查詢與匯出 -- `SendEmail()` - 郵件發送與預覽 -- `GetDropdownLists()` - 已存在,返回下拉清單 - -## 需要實現的部分 - -### 1. SearchDetailTable 方法 (Services/領據處理.asmx.cs) - -**位置**: 約 900 行 - -**任務**: -- 根據查詢條件查詢扣繳明細資料 -- 支持 DATA(回傳資料)和 EXPORT(匯出 Excel)兩種模式 - -**返回資料結構**(DATA 模式): -```csharp -List 或 DataTable -{ - 編號 (或 ID/no) - 用於郵件發送時識別收件者 - 領款人姓名 - 身分證字號 - 戶籍地址 - 扣繳類別 - 合計金額 - 應扣繳稅額 - 服務費 - 已發送 (boolean) - 判斷是否已發送過郵件 - 明細 - List 或 nested DataTable - { - 計畫代號 - 活動日期 - 活動名稱 - 扣繳類別 - 金額 (講師/勞務費) - 應扣繳稅額 - 服務費 - } -} -``` - -**實現建議**: -1. 使用 DAC_領據 與相關 DAC 類別查詢 -2. 按日期與身分別條件篩選 -3. 使用講師非講師編號進行分組 -4. 對於 EXPORT 模式,可建立新的 Report 類別或使用現有的 Excel 工具 - -### 2. SendEmail 方法 (Services/領據處理.asmx.cs) - -**位置**: 約 950 行 - -**任務**: -- PREVIEW 模式:組織郵件預覽資料 -- SENDMAIL 模式:實際發送郵件 - -**實現建議**: -1. PREVIEW 模式:返回將發送的郵件預覽,供確認 -2. SENDMAIL 模式: - - 遍歷 `講師非講師編號` 列表 - - 根據編號查詢收件者郵箱地址 - - 使用 .NET 的 SmtpClient 或郵件服務發送 - - 記錄發送時間至資料庫(更新「已發送」欄位) - - 返回成功/失敗統計 - -**注意**: -- 需要配置 SMTP 服務設定(郵件伺服器、帳號密碼等) -- 考慮錯誤處理:單個郵件失敗不應中斷整個流程 -- 建議記錄郵件發送日誌 - -### 3. 資料庫相關 - -**需要確認**: -- 講師/非講師資料表中是否有郵箱欄位 -- 是否有「郵件發送記錄」表來追蹤已發送狀態 -- 領據資料表的結構與關聯 - -### 4. DAC 擴展(如需要) - -**可能需要新增方法**: -- `DAC_領據.SelectDetailByDate()` - 按日期範圍查詢明細 -- 郵件發送記錄相關的 DAC 操作 -- 收件者郵箱查詢方法 - -## 前端資料綁定說明 - -### ASPX 欄位映射 - -查詢結果表格預期從後端接收以下欄位: - -| 前端顯示 | 資料欄位 | 說明 | -|---------|--------|------| -| 要發送勾選 | item.selected | Vue.js 雙向綁定 | -| 已發送 | item.已發送 | boolean | -| 領款人姓名 | item.領款人姓名 | string | -| 身分證字號 | item.身分證字號 | string | -| 戶籍地址 | item.戶籍地址 | string | -| 扣繳類別 | item.扣繳類別 | string | -| 合計金額 | item.合計金額 | decimal | -| 應扣繳稅額 | item.應扣繳稅額 | decimal | -| 服務費 | item.服務費 | decimal | -| 明細展開 | item.showDetail | Vue.js 控制 | -| 明細列表 | item.明細 | List | - -## 編號欄位處理 - -JavaScript 代碼支持多種 ID 欄位名稱: -```javascript -item.ID || item.編號 || item.no -``` - -**選擇一個作為主要欄位即可** - -## 測試檢查清單 - -- [ ] GetDropdownLists 能正確返回身分別與憑證類別 -- [ ] SearchDetailTable(DATA) 返回結構化的查詢結果 -- [ ] SearchDetailTable(EXPORT) 能成功匯出 Excel -- [ ] SendEmail(PREVIEW) 能正確組織郵件預覽資料 -- [ ] SendEmail(SENDMAIL) 能正確發送郵件 -- [ ] 郵件發送後,已發送欄位應更新為是 - -## 相關檔案 - -- 前端: `Forms\領據系統\財稅作業與領據關帳.aspx` -- JavaScript: `Scripts\財稅作業與領據關帳.js` -- 後端服務: `Services\領據處理.asmx.cs` -- 資料存取: `DAC\領據系統\DAC_領據2.cs` -- 文件: `DOC\扣繳明細及寄發通知.md` diff --git a/branches/1150807/DOC/教學日誌修改.md b/branches/1150807/DOC/教學日誌修改.md deleted file mode 100644 index bed43b0..0000000 --- a/branches/1150807/DOC/教學日誌修改.md +++ /dev/null @@ -1,31 +0,0 @@ -# 教學日誌修改紀錄 - -## 2026-07-24 修改:還原為簡化版表單 - -### 異動說明 -客戶要求移除近期新增的 14 個欄位,還原為簡化版表單。 - -### 表單新設計 - -| 欄位 | 控制項 | 說明 | -|------|--------|------| -| 異常情形 | RadioButtonList (無/有) + TextBox + 片語按鈕 | 選「有」時可輸入異常描述 | -| 處理過程及建議 | TextBox (MultiLine) | 原「處理經過與結果」改名 | -| 處理結果追蹤 | TextBox (MultiLine) | 新增欄位 | - -### 異動檔案 - -| 檔案 | 動作 | -|------|------| -| `Forms\辦訓狀況\教學日誌處理.aspx` | 移除 14 個 ObjectDataSource;ItemTemplate/InsertItemTemplate/EditItemTemplate 將 14 欄位用 `<%-- --%>` 註解;異常情形改 RadioButtonList + TextBox + 片語;處理經過與結果→處理過程及建議;新增處理結果追蹤欄位 | -| `Forms\辦訓狀況\教學日誌處理.aspx.cs` | 移除 `控制異常欄位顯示`、`ddl有無異常事項_SelectedIndexChanged`、`ddl異常類型_SelectedIndexChanged`;新增 `btn片語_Click` 空方法 | -| `Forms\檢視UC\教學日誌暨異常狀況View.ascx` | 14 欄位用 `<%-- --%>` 註解;異常情形改 RadioButtonList + Label;處理經過與結果→處理過程及建議;新增處理結果追蹤顯示 | - -### 保留未異動 - -| 檔案 | 說明 | -|------|------| -| `DAC\辦訓狀況\DAC_教學日誌1.cs` | 保留所有欄位(含 14 新增欄位),資料庫欄位不動 | -| `DAC\辦訓狀況\DAC_教學日誌2.cs` | 不異動 | -| `DAC\辦訓狀況\DAC_教學日誌選項.cs` | 保留所有方法(課程執行觀察、有無異常事項、異常類型、異常處理結果) | -| 資料庫 | 保留所有欄位,不刪除 | diff --git a/branches/1150807/DOC/教學日誌暨異常狀況登錄.txt b/branches/1150807/DOC/教學日誌暨異常狀況登錄.txt deleted file mode 100644 index 25f681b..0000000 --- a/branches/1150807/DOC/教學日誌暨異常狀況登錄.txt +++ /dev/null @@ -1,37 +0,0 @@ -|----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 課程企劃編號 | 節次 | 講師 | -|-----------------|----------------|-----------------------------------------------------------------------------------------------------------------------------| -| 應到人數 | 實到人數 | 缺席人數 | -|----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 課程執行觀察 | 1.課程是否依原訂計畫執行 | □ 符合原訂計畫 □ 部分調整 □ 未依原訂計畫執行,調整或未依計畫執行之說明:______(多行輸入) | -| |--------------------------|-------------------------------------------------------------------------------------------------------------------| -| (請依課程現場 | 2.課程進度 | □ 超前 □ 符合規劃 □ 略有落後 □ 未完成 | -| |--------------------------|-------------------------------------------------------------------------------------------------------------------| -| 觀察,勾選最 | 3.講師授課情形 | □ 優良 □ 良好 □ 普通 □ 待改善 | -| |--------------------------|-------------------------------------------------------------------------------------------------------------------| -| 符合本次課程執 | 4.學員參與互動 | □ 非常踴躍 □ 踴躍 □ 普通 □ 不佳 | -| |--------------------------|-------------------------------------------------------------------------------------------------------------------| -| 行情形之選項) | 5.學員學習投入 | □ 積極投入 □ 大多投入 □ 部分投入 □ 投入度不足 | -| |--------------------------|-------------------------------------------------------------------------------------------------------------------| -| | 6.學員課堂回應情形 | □ 能主動分享工作經驗或案例 □ 能回應提問並連結工作情境 □ 經引導後能連結工作情境 □ 未觀察到相關回應 □ 不適用| -| |--------------------------|-------------------------------------------------------------------------------------------------------------------| -| | 7.實作/活動完成情形 | □ 全數完成 □ 大部分完成 □ 部分完成 □ 未完成 □ 不適用 | -| |--------------------------|-------------------------------------------------------------------------------------------------------------------| -| | 8.教學設備及場地 | □ 正常 □ 輕微異常 □ 影響授課 □ 無法使用 | -|----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 註:如勾選略有落後、未完成、待改善、不佳、投入度不足、影響授課或無法使用等情形,請於下方說明 | -|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------| -| 課程觀察紀錄 | 1.本次課程值得保留或表現良好之處 | -| | 2.本次課程可改善事項及建議 | -|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------| -| 異常情形 | □ 有  □ 無(勾無不需填寫) | -|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------| -| 處理過程及建議 | ___________________(多行輸入) | -|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------| -| 是否需後續追蹤 | □ 否,異常狀況順利解決,本案已結案 | -| | □ 是,追蹤事項:___________________(多行輸入) | -|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------| -| 處理結果追蹤 | ___________________(多行輸入) | -|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------| -| 填表人員 | 填表日期 -|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/branches/1150807/DOC/檢討報告修改.md b/branches/1150807/DOC/檢討報告修改.md deleted file mode 100644 index fff81ba..0000000 --- a/branches/1150807/DOC/檢討報告修改.md +++ /dev/null @@ -1,60 +0,0 @@ -# 檢討報告修改 - - -## 增加欄位 - -| No | Field Name | Data Type | Length | Not Null | PK | Identity | Description | UI Order | UI Control | UI Label | -| --- | ------------------ | --------- | ------ | -------- | --- | -------- | ------------------------------------------------------------------ | -------- | ---------- | -------- | -| 8 | 改善措施_學員_改善內容 | NVARCHAR | 50 | | | | 改善措施_學員_ 改善內容 複選(checkboxes) 逗號分隔 1=加強課前提醒 2=增加案例分享 3=增加實作練習 4=提供課後學習資源 9=其他 | FIELD9 | FIELD10 | 改善內容 | -| 9 | 改善措施_學員_改善內容_其他 | NVARCHAR | 200 | | | | 改善措施_學員_ 改善內容_其他 改善措施_學員_ 改善內容=9 時必填 | | | | -| 10 | 改善措施_學員_改善作法 | INT | | | | | 改善措施_學員_ 改善作法 單選 1=納入下次課程 2=修訂教材 3=修訂表單 4=修訂SOP 5=修訂訓練品質手冊 9=其他 | | | 改善作法 | -| 11 | 改善措施_學員_改善作法_其他 | NVARCHAR | 200 | | | | 改善措施_學員_ 改善作法_其他 改善措施_學員_ 改善作法=9 時必填 | | | | -| 12 | 改善措施_學員_補充說明 | NVARCHAR | 200 | | | | 改善措施_學員_ 補充說明 | | | 補充說明 | -| 13 | 改善措施_講師_改善內容 | NVARCHAR | 50 | | | | 改善措施_講師_ 改善內容 複選(checkboxes) 逗號分隔 1=調整授課節奏 2=加強重點說明 3=增加課堂互動 4=課前確認授課需求 9=其他 | | | 改善內容 | -| 14 | 改善措施_講師_改善內容_其他 | NVARCHAR | 200 | | | | 改善措施_講師_ 改善內容_其他 改善措施_講師_ 改善內容=9 時必填 | | | | -| 15 | 改善措施_講師_改善作法 | INT | | | | | 改善措施_講師_ 改善作法 單選 1=納入下次課程 2=修訂教材 3=修訂表單 4=修訂SOP 5=修訂訓練品質手冊 9=其他 | | | 改善作法 | -| 16 | 改善措施_講師_改善作法_其他 | NVARCHAR | 200 | | | | 改善措施_講師_ 改善作法_其他 改善措施_講師_ 改善作法=9 時必填 | | | | -| 17 | 改善措施_講師_補充說明 | NVARCHAR | 200 | | | | 改善措施_講師_ 補充說明 | | | 補充說明 | -| 18 | 改善措施_教材及教具_改善內容 | NVARCHAR | 50 | | | | 改善措施_教材及教具_ 改善內容 複選(checkboxes) 逗號分隔 1=修正教材內容 2=更新教材資料 3=增加教具輔助 4=提供電子教材 9=其他 | | | 改善內容 | -| 19 | 改善措施_教材及教具_改善內容_其他 | NVARCHAR | 200 | | | | 改善措施_教材及教具_ 改善內容_其他 改善措施_教材及教具_ 改善內容=9 時必填 | | | | -| 20 | 改善措施_教材及教具_改善作法 | INT | | | | | 改善措施_教材及教具_ 改善作法 單選 1=納入下次課程 2=修訂教材 3=修訂表單 4=修訂SOP 5=修訂訓練品質手冊 9=其他 | | | 改善作法 | -| 21 | 改善措施_教材及教具_改善作法_其他 | NVARCHAR | 200 | | | | 改善措施_教材及教具_ 改善作法_其他 改善措施_教材及教具_ 改善作法=9 時必填 | | | | -| 22 | 改善措施_教材及教具_補充說明 | NVARCHAR | 200 | | | | 改善措施_教材及教具_ 補充說明 | | | 補充說明 | -| 23 | 改善措施_教學方法_改善內容 | NVARCHAR | 50 | | | | 改善措施_教學方法_ 改善內容 複選(checkboxes) 逗號分隔 1=增加案例討論 2=增加分組互動 3=增加實作演練 4=調整教學方式 9=其他 | | | 改善內容 | -| 24 | 改善措施_教學方法_改善內容_其他 | NVARCHAR | 200 | | | | 改善措施_教學方法_ 改善內容_其他 改善措施_教學方法_ 改善內容=9 時必填 | | | | -| 25 | 改善措施_教學方法_改善作法 | INT | | | | | 改善措施_教學方法_ 改善作法 單選 1=納入下次課程 2=修訂教材 3=修訂表單 4=修訂SOP 5=修訂訓練品質手冊 9=其他 | | | 改善作法 | -| 26 | 改善措施_教學方法_改善作法_其他 | NVARCHAR | 200 | | | | 改善措施_教學方法_ 改善作法_其他 改善措施_教學方法_ 改善作法=9 時必填 | | | | -| 27 | 改善措施_教學方法_補充說明 | NVARCHAR | 200 | | | | 改善措施_教學方法_ 補充說明 | | | 補充說明 | -| 28 | 改善措施_場地及設備_改善內容 | NVARCHAR | 50 | | | | 改善措施_場地及設備_ 改善內容 複選(checkboxes) 逗號分隔 1=調整教室配置 2=增加設備數量 3=提前測試設備 4=改善上課環境 9=其他 | | | 改善內容 | -| 29 | 改善措施_場地及設備_改善內容_其他 | NVARCHAR | 200 | | | | 改善措施_場地及設備_ 改善內容_其他 改善措施_場地及設備_ 改善內容=9 時必填 | | | | -| 30 | 改善措施_場地及設備_改善作法 | INT | | | | | 改善措施_場地及設備_ 改善作法 單選 1=納入下次課程 2=修訂教材 3=修訂表單 4=修訂SOP 5=修訂訓練品質手冊 9=其他 | | | 改善作法 | -| 31 | 改善措施_場地及設備_改善作法_其他 | NVARCHAR | 200 | | | | 改善措施_場地及設備_ 改善作法_其他 改善措施_場地及設備_ 改善作法=9 時必填 | | | | -| 32 | 改善措施_場地及設備_補充說明 | NVARCHAR | 200 | | | | 改善措施_場地及設備_ 補充說明 | | | 補充說明 | -| 33 | 改善措施_行政流程_改善內容 | NVARCHAR | 50 | | | | 改善措施_行政流程_ 改善內容 複選(checkboxes) 逗號分隔 1=提前通知資訊 2=調整報到流程 3=強化行政協助 4=加強課後追蹤 9=其他 | | | 改善內容 | -| 34 | 改善措施_行政流程_改善內容_其他 | NVARCHAR | 200 | | | | 改善措施_行政流程_ 改善內容_其他 改善措施_行政流程_ 改善內容=9 時必填 | | | | -| 35 | 改善措施_行政流程_改善作法 | INT | | | | | 改善措施_行政流程_ 改善作法 單選 1=納入下次課程 2=修訂教材 3=修訂表單 4=修訂SOP 5=修訂訓練品質手冊 9=其他 | | | 改善作法 | -| 36 | 改善措施_行政流程_改善作法_其他 | NVARCHAR | 200 | | | | 改善措施_行政流程_ 改善作法_其他 改善措施_行政流程_ 改善作法=9 時必填 | | | | -| 37 | 改善措施_行政流程_補充說明 | NVARCHAR | 200 | | | | 改善措施_行政流程_ 補充說明 | | | 補充說明 | - - -## 增加欄位的畫面排列 - -改善措施 | 改善內容 | 改善作法 | 補充說明 --------------|------------------|-----------------|-------------- -學員 | {checkbox group} | {下拉 } | {輸入 - | {其他輸入 } | {其他輸入 } | } --------------|------------------|-----------------|-------------- -講師 | {checkbox group} | {下拉 } | {輸入 - | {其他輸入 } | {其他輸入 } | } --------------|------------------|-----------------|-------------- -教材及教具 | {checkbox group} | {下拉 } | {輸入 - | {其他輸入 } | {其他輸入 } | } --------------|------------------|-----------------|-------------- -教學方法 | {checkbox group} | {下拉 } | {輸入 - | {其他輸入 } | {其他輸入 } | } --------------|------------------|-----------------|-------------- -場地及設備 | {checkbox group} | {下拉 } | {輸入 - | {其他輸入 } | {其他輸入 } | } --------------|------------------|-----------------|-------------- -行政流程 | {checkbox group} | {下拉 } | {輸入 - | {其他輸入 } | {其他輸入 } | } diff --git a/branches/1150807/DOC/規格文件範本.md b/branches/1150807/DOC/規格文件範本.md deleted file mode 100644 index 841c438..0000000 --- a/branches/1150807/DOC/規格文件範本.md +++ /dev/null @@ -1,104 +0,0 @@ -# 規格文件範本 - -> 說明:此文件為專案功能/技術規格範本。請依專案需求填寫每個章節,保留章節順序以利審查與版本對照。 - ---- - -##1. 文件摘要 -- 文件名稱: --版本: -- 作者: -- 建立日期: --目的:簡要說明此規格要達成的目標與範圍。 - -##2. 範圍與背景 -- 專案名稱: -- 背景說明:為何需要此功能或變更。 -- 範圍:包含與不包含的功能項目(In-scope / Out-of-scope)。 - -##3.目標與成功指標 --目標:列出可衡量的技術或業務目標。 -- 成功指標(KPI / 驗收準則):例如性能、穩定度、完成時間等。 - -##4. 用戶故事(或功能清單) -- 功能1(範例) - - 說明: - - 使用者: - - 前置條件: - - 行為流程: - - 驗收標準(AC): -- 功能2 ... - -##5. API /介面定義 --介面名稱: -- 方法(HTTP / 函式): -- 路徑: --參數: - - 名稱: - - 型別: - - 必要性: - - 範例: -- 回傳格式(範例 JSON 或 XML): -- 錯誤代碼與描述: - -##6. 資料模型(Domain Model / DB Schema) -- 實體: - - 欄位:名稱、型別、長度、說明、範例 -- 關聯圖(如有): - -##7. 非功能需求 -- 相容性:例如需支援 `.NET Framework2.0` / `.NET Framework3.5`(若適用,請註明) -- 性能:響應時間、並發數、吞吐量 -- 可用性 / 可維護性:SLA、備援需求 -- 安全性:認證、授權、資料加密、輸入驗證 -- 國際化 / 在地化(若適用) - -##8. 錯誤與例外處理規則 -- 錯誤回傳格式: -- 日誌需求:錯誤等級、要記錄的欄位 -- 重試與補救流程(若適用) - -##9. 使用者介面(UI) -- 頁面或畫面清單: -- 每個畫面的需求與資料欄位: --主要互動流程(流程圖或步驟) - -##10. 相依性與第三方套件 --需安裝或使用的 library / 套件(含版本): -- 外部服務或 API: - -##11. 部署與操作 -- 部署流程(步驟、環境、指令或腳本): -- 配置檔:需要哪些參數或環境變數 --監控與告警: - -##12. 測試計畫 -- 測試範圍:單元測試、整合測試、端對端測試 -- 驗收測試(UAT)條件: -- 測試資料與測試案例範例: - -##13.里程碑與時程 --版本 /里程碑:預計完成日期 --交付內容: - -##14.交付物與驗收 --交付物清單:程式碼、文件、測試報告、部署指引 -- 驗收流程與簽核人員: - -##15.風險與備援措施 -- 已辨識風險項目: --風險等級與緩解策略: - -##16.參考與附錄 --相關文件或連結: -- 資料字典、範例請求/回應: - -##17.版本紀錄 -- v0.1 日期 - 作者 - 說明 -- v1.0 日期 - 作者 - 發佈 - ---- - -附註: -- 建議以此範本為基礎,針對每個專案需求增減章節。 -- 若需 Word(.docx)版本,可另行產生或轉換。 \ No newline at end of file diff --git a/branches/1150807/DOC/講師個人費用彙整表.md b/branches/1150807/DOC/講師個人費用彙整表.md deleted file mode 100644 index e72d411..0000000 --- a/branches/1150807/DOC/講師個人費用彙整表.md +++ /dev/null @@ -1,35 +0,0 @@ -# 講師個人費用彙整表 - -這是用來彙整講師個人費用的查詢與報表 - -## 查詢畫面 - 畫面:~\Forms\領據系統\財稅作業與領據關帳.aspx 裡面的 "Tab 0: 個人費用彙整表" - Script:~\Scripts\財稅作業與領據關帳.js - -### 查詢條件輸入 - - 起日 (日期輸入) - - 迄日 (日期輸入) - - 身分別 (下拉,選項來源:GetDropdownLists("身分別")) - - 付款方式 (下拉,選項來源:GetDropdownLists("付款方式")) - - 查詢按鈕 呼叫 SearchSummaryTable,輸出方式="DATA" - - 匯出按鈕 呼叫 SearchSummaryTable,輸出方式="EXPORT" - -### 查詢結果 - - 領款人姓名 (講師/非講師姓名) - - 身分證字號 - - 堂數 (數量 + 單位) - - 扣繳類別 - - 帳戶名 - - 付款金額 - - 匯款帳號 - - 銀行分行代碼 - - 銀行分行 - -## 後端服務 - ~/Services/領據處理.asmx - - GetDropdownLists(類別):取得下拉清單選項 - - SearchSummaryTable(DateTime? 起日, DateTime? 迄日, string 身分別, string 付款方式, string 輸出方式) - - 查詢講師個人費用彙整表資料 - - 輸出方式:DATA=查詢結果資料 / EXPORT=匯出Excel - - 實際 SQL 我自己寫,DATA 輸出會符合查詢結果的畫面欄位 - - 匯出我自己寫 diff --git a/branches/1150807/DOC/財稅作業與領據關帳.md b/branches/1150807/DOC/財稅作業與領據關帳.md deleted file mode 100644 index 210ac35..0000000 --- a/branches/1150807/DOC/財稅作業與領據關帳.md +++ /dev/null @@ -1,31 +0,0 @@ -# 財稅作業與領據關帳.aspx - -## 畫面 -* 畫面檔:財稅作業與領據關帳.aspx -* 三個 Tab 以及 MultiView 中的 View - - 個人費用彙整表 - - 扣繳明細及寄發通知 - - 領據關帳 - -### 個人費用彙整表 - 建置中 - -### 扣繳明細及寄發通知 - 建置中 - -### 領據關帳 -* 上方是提示訊息 - * 費用出帳後,財務即將領據關帳。 - * 領據關帳後,只能作廢不能修改,唯總管理處財務部可修改。 - -* 接下來是三個輸入框以及確定按鈕 - * 領據現行年度:今年 (不可修改) - * 領據已關帳年月:目前的關帳年月 - * 調整關帳年月為:欲修改的關帳年月 - -* 使用後端 asmx 為 API - * 關帳年月存入 BWEX 表 - * BSNUM = '領據關帳年月' - * BSITM = ' 1' - * BSNAM = 關帳年月,格式 YYYY-MM - \ No newline at end of file diff --git a/branches/1150807/DOC/領據資料作業.md b/branches/1150807/DOC/領據資料作業.md deleted file mode 100644 index e30cac9..0000000 --- a/branches/1150807/DOC/領據資料作業.md +++ /dev/null @@ -1,233 +0,0 @@ - -# 領據資料作業 - -## 前端程式碼: - * 使用 Vue.js 實現動態資料綁定與操作。 - * 不使用 Server control - * script 部分分離出來放置到 Scripts 目錄 - * 使用現代寫法,不要管 IE 相容性 - * 比照 付款設定.ascx 以及 付款設定.js 的作法 - -## 後端程式碼: - * 使用 WebService 實現非同步資料交換。 - * 提供 API 端點處理領據、勞務費、差旅費資料的新增、修改、刪除、作廢、列印等需求。 - -## 主畫面檔:~/Forms/領據系統/領據資料作業.aspx - - ### 子畫面檔 - * Tab、MultiView、View 以及 User Control 已經放好了: - * 查詢: ~/Forms/領據系統/領據查詢.ascx - * 領據登錄與修改:~/Forms/領據系統/領據處理.ascx - * 列印: ~/Forms/領據系統/領據列印.ascx - * 匯入與匯出: ~/Forms/領據系統/領據匯出匯入.ascx - - ### 寫碼規範 - * 把 script 部分分開寫在 Scripts 目錄 - * 使用現代寫法,不要管 IE 相容性 - * 比照 付款設定.ascx 以及 付款設定.js 的作法 - -## 資料存取類別 - ### Education.DAC_領據 - * 既有程式 - * 分為兩個檔案 ~/DAC/領據系統/DAC_領據1.cs 和 ~/DAC/領據系統/DAC_領據2.cs - * 若需要擴充,加在結尾 2.cs 裡 - * DAC_領據:資料處理類別 - * 分頁查詢資料:public 領據List SelectPage(bool noInputReturnAll, int startRowIndex, int maximumRows, DateTime? 活動日期_1, DateTime? 活動日期_2, string 身分別, string 講師_非講師編號, string 憑證類別, string 計畫代號, string 計畫名稱, string 活動類別, string 付款方式, string orderBy = "") - * 查詢筆數: public int SelectCount(bool noInputReturnAll, DateTime? 活動日期_1, DateTime? 活動日期_2, string 身分別, string 講師_非講師編號, string 憑證類別, string 計畫代號, string 計畫名稱, string 活動類別, string 付款方式, string orderBy = "") - * 新增: public 領據Item InsertOne(領據Item value) - * 修改: public 領據Item UpdateOne(領據Item value) - * 刪除: public int DeleteOne(string 編號, int DB_APPNO) - * 領據List:資料集類別 - * 領據Item:資料項目類別 - - ### Education.DAC_勞務費 - * 既有程式 - * 分為兩個檔案 ~/DAC/領據系統/DAC_勞務費1.cs 和 ~/DAC/領據系統/DAC_勞務費2.cs - * 若需要擴充,加在結尾 2.cs 裡 - * DAC_勞務費:資料處理類別 - * 查詢:SelectOne(string 領據編號) - * 新增:InsertOne(勞務費Item value) - * 修改:UpdateOne(勞務費Item value) - * 刪除:DeleteOne(string 領據編號, int DB_APPNO) - - ### Education.DAC_差旅費 - * 既有程式 - * 分為兩個檔案 ~/DAC/領據系統/DAC_差旅費1.cs 和 ~/DAC/領據系統/DAC_差旅費2.cs - * 若需要擴充,加在結尾 2.cs 裡 - * DAC_差旅費:資料處理類別 - * 查詢:SelectOne(string 領據編號) - * 新增:InsertOne(差旅費Item value) - * 修改:UpdateOne(差旅費Item value) - * 刪除:DeleteOne(string 領據編號, int DB_APPNO) - - ### 資料關聯 - * 1 領據 (編號) <-----> 0-1 勞務費 (領據編號) - * 1 領據 (編號) <-----> 0-1 差旅費 (領據編號) - - -## WebService 端點 - - ### 領據資料:Services/領據處理.asmx - - * EnableSession(True) - - * SelectPage(int pageIndex, int pageSize, DateTime? 活動日期_1, DateTime? 活動日期_2, string 身分別, string 講師_非講師編號, string 憑證類別, string 計畫代號, string 計畫名稱, string 活動類別, string 付款方式, string orderBy = "") - - pageIndex 從 1 開始 - - pageSize 預設 20 - - 查詢 function 用 DAC_領據.SelectPage - - 筆數 function 用 DAC_領據.SelectCount - bool noInputReturnAll (固定傳 true) - int startRowIndex (分頁起點) - int maximumRows (分頁大小) - - - 空白條件視為不限制(noInputReturnAll = true) - - 回傳:ServiceResponse(Success, Message, Data: 領據List, TotalCount: 總筆數 ) - - * Save(bool isNew, 領據Item mainItem, 勞務費Item laborItem, 差旅費Item travelItem):存檔 - - isNew:是否為新增 - - mainItem:新增或更正的領據資料 - - laborItem:新增或更正的勞務費資料 - - travelItem:新增或更正的差旅費資料 - - 新增呼叫 DAC_領據.InsertOne(領據Item value) - - 修改呼叫 DAC_領據.UpdateOne(領據Item value) - - 回傳:ServiceResponse(Success, Message) - - * Delete(string no):刪除領據 - - no:要刪除的領據編號 - - 呼叫 DAC_領據.DeleteOne(string 編號, int DB_APPNO) - - 一併刪除關聯的勞務費與差旅費資料 - - 回傳:ServiceResponse(Success, Message) - - * Void(string no):作廢/取消作廢領據 - - no:要作廢/取消作廢的領據編號 - - 呼叫 DAC_領據.UpdateOne(領據Item value) 只修改作廢欄位 1=作廢 0=未作廢 - - 回傳:ServiceResponse(Success, Message) - - * CalcTax(int laborFee, string category):計算稅額 - * 輸入勞務費計算稅額 - * 執行業務 (category 是 9A, 9B 開頭) laborFee >= 20000:laborFee * 10% 四捨五入至整數 - * 薪資 (category 是 50) laborFee >= 88501:laborFee * 5% 四捨五入至整數 - - * Print(List iDList): 列印領據 - * 一張一張的列印領據 - * 領據列印有兩個單據:勞務費和差旅費 - * 先實作取資料以及跑迴圈部分,列印的實作先留空,我後續補充 - * 若有勞務費,且勞務費的編號是空的,要給勞務費自動編號,詳情我自己寫,你加個 TODO 就好 - * 若有差旅費,且差旅費的編號是空的,要給差旅費自動編號,詳情我自己寫,你加個 TODO 就好 - * 如同火車票價匯出一樣返回一個 Excel 檔 - - ### 火車票價:Services/火車票價.asmx - - * EnableSession(True) - * 車站自動完成搜尋:SelectStation(string key) - * 查詢呼叫 DAC_火車票價.查詢車站(key) - * 回傳:ServiceResponse(Success, Message, Data: 查詢結果) - * 計算票價:SelectFare(起點, 訖點) - * 查詢呼叫 DAC_火車票價.查詢票價(起點, 訖點) - * 回傳:ServiceResponse(Success, Message, Data: 票價) - -## 畫面排列: - ### 查詢: - - * 上方:搜尋列 - - 查詢條件 - | 編號 | 顯示名稱 | 查詢參數 | 輸入元件 | 下拉資料來源 | - | ---- | ------------ | ---------- | -------- | ----------------------------------- | - | 1 | 計畫代號 | 計畫代號 | 文字 | | - | 2 | 計畫名稱 | 計畫名稱 | 文字 | | - | 3 | 活動日期(起) | 活動日期_1 | 日期 | | - | 4 | 活動日期(迄) | 活動日期_2 | 日期 | | - | 5 | 身分別 | 身分別 | 下拉 | Education.身分別.SearchSelectList | - | 6 | 憑證類別 | 憑證類別 | 下拉 | Education.憑證類別.SearchSelectList | - | 7 | 活動類別 | 活動類別 | 文字 | | - | 8 | 付款方式 | 付款方式 | 下拉 | Education.付款方式.SearchSelectList | - - - 操作按鈕 - - 查詢 - - 列印領據 - - 製作勾選項目的領據單據 - - 作廢 - - 作廢 / 取消作廢勾選項目 - - 領據登錄 - - 新增領據,跳至 "領據登錄與修改" 分頁標籤 - * 下方:搜尋結果列表 - - 分頁大小選項 10, 20, 30 / 預設 20 - - 標題一律水平齊中 - - 顯示欄位 - | 編號 | 表頭文字 | 資料欄位 | 輸入元件 | 格式化 | 水平對齊 | - | ---- | -------------- | -------------- | -------- | --------- | -------- | - | 1 | 操作 | | 勾選 | | 中 | - | 2 | 計畫代號 | 計畫代號 | | | 中 | - | 3 | 活動日期 | 活動日期 | | | 中 | - | 4 | 領款人姓名 | 領款人姓名 | | | 中 | - | 5 | 身分證字號 | 身分證字號 | | | 中 | - | 6 | 憑證類別 | 憑證類別 | | | 中 | - | 7 | 活動類別 | 活動類別 | | | 中 | - | 8 | 活動名稱事由 | 活動名稱事由 | | | 左 | - | 9 | 費用別 | 費用別 | | | 中 | - | 10 | 單價 | 單價 | | | 右 | - | 11 | 數量 | 數量 | | | 右 | - | 12 | 單位 | 單位 | | | 右 | - | 13 | 扣繳類別 | 扣繳類別 | | | 中 | - | 14 | 勞務費合計金額 | 勞務費合計金額 | | | 右 | - | 15 | 應扣繳稅額 | 應扣繳稅額 | | | 右 | - | 16 | 服務費 | 服務費 | | | 右 | - | 17 | 差旅費合計金額 | 差旅費合計金額 | | | 右 | - | 18 | 付款金額 | 付款金額 | | | 右 | - | 19 | 製單人員 | 製單人員 | | | 中 | - | 20 | 作廢紀錄 | 作廢 | | 1=是 0=否 | 中 | - | 21 | 列印次數 | 列印次數 | | | 中 | - - ### 領據登錄與修改: - - * 從上到下分三個區塊 - * 領據 - - | 編號 | 顯示名稱 | 資料欄位 | 輸入元件 | 必要 | 唯讀 | 最大長度 | 下拉資料來源 | 自動帶入 / 自動完成 | - | ---- | ------------- | ------------ | -------- | ---- | ---- | -------- | ----------------------------------- | ---------------------- | - | 1 | 表單編號 | 表單編號 | 文字 | | 是 | | | 自動編號,細節我來處理 | - | 2 | 活動日期 | 活動日期 | 日期 | | | | | | - | 3 | 身分別 | 身分別 | 下拉 | 是 | | | | | - | 4 | 領款人姓名 | 領款人姓名 | 文字 | 是 | | | | | - | 5 | 身分證字號 | 身分證字號 | 文字 | | | | | 領款人姓名自動完成帶出 | - | 6 | 憑證類別 | 憑證類別 | 下拉 | | | | Education.憑證類別.SearchSelectList | | - | 7 | 計畫代號 | 計畫代號 | 文字 | 是 | | | | | - | 8 | 計畫名稱 | 計畫名稱 | 文字 | | 是 | | | | - | 9 | 活動地點 | 活動地點 | 文字 | | | | | | - | 10 | 活動類別 | 活動類別 | 文字 | | | | | | - | 11 | 活動名稱/事由 | 活動名稱事由 | 文字 | | | | | | - | 12 | 製單人員 | DB_CRUSR | 文字 | | | | | CurrentUserId | - | 13 | 付款方式 | 付款方式 | 下拉 | | | | Education.付款方式.SearchSelectList | | - - - * 勞務費 - | 編號 | 顯示名稱 | 資料欄位 | 輸入元件 | 必要 | 唯讀 | 最大長度 | 下拉資料來源 | 計算 | - | ---- | ---------- | ---------- | -------- | ---- | ---- | -------- | ---------------------------------------- | --------------------------------------------------------------------- | - | 1 | 費用別 | 費用別 | 下拉 | 否 | | | Education.勞務費_費用別.SearchSelectList | | - | 2 | 單價 | 單價 | 數字 | 否 | | | | | - | 3 | 數量 | 數量 | 數字 | 否 | | | | | - | 4 | 單位 | 單位 | 文字 | 否 | | | | | - | 5 | 扣繳類別 | 扣繳類別 | 下拉 | 否 | | | Education.扣繳類別.SearchSelectList | | - | 6 | 合計金額 | 合計金額 | 數字 | 否 | 是 | | | 單價 * 數量 | - | 7 | 應扣繳稅額 | 應扣繳稅額 | 數字 | 否 | | | | Services/領據處理.asmx/CalcTax (laborFee=合計金額, category=扣繳類別) | - | 8 | 服務費 | 服務費 | 數字 | 否 | | | | | - - * 差旅費 - | 編號 | 顯示名稱 | 資料欄位 | 輸入元件 | 必要 | 唯讀 | 最大長度 | 資料來源 | 計算 | - | ---- | ------------- | ------------ | -------- | ---- | ---- | -------- | ---------------------------------------- | ---------------------------------------------------------- | - | 1 | 費用別 | 費用別 | 下拉 | | | | Education.差旅費_費用別.SearchSelectList | | - | 2 | 起點 | 起點 | 自動完成 | | | | Services/火車票價.asmx/SelectStation | | - | 3 | 訖點 | 訖點 | 自動完成 | | | | Services/火車票價.asmx/SelectStation | | - | 4 | 捷運/公車 | 捷運公車 | 數字 | | | | | | - | 5 | 火車 | 火車 | 數字 | | | | | Services/火車票價.asmx/SelectFare(起點, 訖點) | - | 6 | 計程車 | 計程車 | 數字 | | | | | | - | 7 | 高鐵/飛機 | 高鐵飛機 | 數字 | | | | | | - | 8 | 自行開車 | 自行開車 | 數字 | | | | | | - | 9 | 過路費/停車費 | 過路費停車費 | 數字 | | | | | | - | 10 | 住宿費 | 住宿費 | 數字 | | | | | | - | 11 | 合計金額 | 合計 | 純顯示 | | 是 | | | 捷運公車+火車+計程車+高鐵飛機+自行開車+過路費停車費+住宿費 | - - ### 列印: - 將勾選的領據編號發送到後端 Print 方法,會如同匯出那樣回傳一個 Excel 檔,儲存起來就可以了 - ### 匯入與匯出: - * 待補充 diff --git a/branches/1150807/Default.aspx b/branches/1150807/Default.aspx deleted file mode 100644 index d54eb66..0000000 --- a/branches/1150807/Default.aspx +++ /dev/null @@ -1,230 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/Site2.Master" - AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Education.Default" %> - -<%@ Register Src="~/Forms/Common/起訖日顯示.ascx" TagPrefix="uc1" TagName="起訖日顯示" %> - - - - - - - - - - - - -
-
- 課
- 程
- 資
- 訊 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 目前沒有您可以選課的課程 - - -
-
-
-
- 課
- 程
- 回
- 饋 -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - 參加「」課程後的心得: - - -
-
- - - -
-
-
-
- -
-
-
-
-
-
-
-
- 課
- 程
- 花
- 絮 -
-
- - -
-
- -
-
- -
-
-
-
-
-
- -
-
diff --git a/branches/1150807/Default.aspx.cs b/branches/1150807/Default.aspx.cs deleted file mode 100644 index f8f6c44..0000000 --- a/branches/1150807/Default.aspx.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.Web.UI.WebControls; -using System.Web.UI.HtmlControls; -using WebLib; -using System.Web; -using System.Web.Services; -using System.Web.Script.Services; - -namespace Education -{ - public partial class Default : FormBase - { - private DAC_場地遴選 Dao場地遴選; - - protected void Page_Load(object sender, EventArgs e) - { - FunctionName = "首頁"; - - Dao場地遴選 = new DAC_場地遴選(conn); - - if (IsPostBack) - { - gv課程資訊.DataBind(); - rp課程剪影.DataBind(); - dl課程回饋.DataBind(); - } - } - - protected void ds課程資訊_ObjectCreating(object sender, ObjectDataSourceEventArgs e) - { - e.ObjectInstance = new DAC_訓練課程企劃(conn); - } - - protected void ds課程資訊_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) - { - //DateTime d = new DateTime(DateTime.UtcNow.AddHours(8).Date.Year, DateTime.UtcNow.AddHours(8).Date.Month, 1); - //e.InputParameters["訓練日期1"] = d; - //e.InputParameters["訓練日期2"] = d.AddMonths(2).AddDays(-1); - } - - protected string Get訓練地點(object 課程ID) - { - return GetData.取得選定場地(DAC.GetInt32(課程ID)).場地名稱; - } - - protected string Get剩餘名額(object 課程ID, object 人數) - { - int 名額 = DAC.GetInt32(人數); - int 已報名人數 = Dao課程報名.Get報名人數(DAC.GetInt32(課程ID)); - if (名額 > 已報名人數) - return String.Format("{0}", 名額 - 已報名人數); - else - return "額滿"; - } - - protected void dl課程回饋_DataBinding(object sender, EventArgs e) - { - } - - protected void dl課程回饋_ItemDataBound(object sender, DataListItemEventArgs e) - { - if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) - { - if (e.Item.FindControl("btn展開") is LinkButton btn展開 - && e.Item.FindControl("div心得") is HtmlControl div心得) - { - btn展開.OnClientClick = String.Format("ShowHideContent(this, \"{0}\"); return false;", div心得.ClientID); - } - } - } - - [WebMethod(EnableSession = true)] - [ScriptMethod(ResponseFormat = ResponseFormat.Json)] - public static string Heartbeat() - { - //讀取Session,避免逾時 - var chk = HttpContext.Current.Session[PublicVariable.UserId] as string; - if (string.IsNullOrEmpty(chk)) - return "Session lost"; - return "OK"; - } - } -} diff --git a/branches/1150807/Default.aspx.designer.cs b/branches/1150807/Default.aspx.designer.cs deleted file mode 100644 index ae96faf..0000000 --- a/branches/1150807/Default.aspx.designer.cs +++ /dev/null @@ -1,80 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education -{ - - - public partial class Default - { - - /// - /// ds課程資訊 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds課程資訊; - - /// - /// ds課程剪影 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds課程剪影; - - /// - /// ds心得 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds心得; - - /// - /// gv課程資訊 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.GridView gv課程資訊; - - /// - /// gv課程回饋 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.GridView gv課程回饋; - - /// - /// dl課程回饋 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.DataList dl課程回饋; - - /// - /// rp課程剪影 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Repeater rp課程剪影; - } -} diff --git a/branches/1150807/DocUpload/DontDelete.txt b/branches/1150807/DocUpload/DontDelete.txt deleted file mode 100644 index 5f28270..0000000 --- a/branches/1150807/DocUpload/DontDelete.txt +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/branches/1150807/Docs/ApiMixin_使用指南.md b/branches/1150807/Docs/ApiMixin_使用指南.md deleted file mode 100644 index accfb47..0000000 --- a/branches/1150807/Docs/ApiMixin_使用指南.md +++ /dev/null @@ -1,183 +0,0 @@ -# ApiMixin 使用指南 - -## 概述 -`ApiMixin` 是一个 Vue mixin,用于统一管理和简化应用中的 API 调用。它提供了两个主要方法: -- `callApi()` - 基础的 API 调用方法 -- `callApiWithErrorMsg()` - 带自动错误处理的 API 调用方法 - -## 安装步骤 - -### 1. 引入 ApiMixin -在您的 HTML 页面中添加脚本引用(在 Vue 和其他依赖之后): -```html - -``` - -### 2. 在 Vue 组件中使用 -在您的 Vue 组件中,在 mixins 数组中添加 `ApiMixin`: -```javascript -receiptEditApp = new Vue({ - el: '#receiptEditApp', - mixins: [DateMixin, ToastMixin, ApiMixin], // 添加 ApiMixin - data: { ... }, - // 其他选项 -}); -``` - -## API 方法 - -### callApi(endpoint, functionName, data) -**用途**: 调用 API 并返回原始结果 - -**参数**: -- `endpoint` (string): API 端点名称(.asmx 文件名) - - 示例: `'領據處理'`, `'付款設定'` -- `functionName` (string): 方法名称 - - 示例: `'Save'`, `'GetOne'`, `'SearchRecipient'` -- `data` (object, 可选): 要传送的数据对象,默认为 `{}` - -**返回值**: Promise,resolve 时返回 API 响应对象,reject 时返回错误对象 - -**示例**: -```javascript -// 基础使用 -try { - const result = await this.callApi('領據處理', 'GetOne', { no: '001' }); - console.log(result.Data); -} catch (error) { - console.error('API 调用失败:', error); -} - -// 不等待结果 -this.callApi('領據處理', 'Save', data) - .then(result => { - this.ShowSuccess(result.Message); - }) - .catch(error => { - this.ShowError(error.message); - }); -``` - -### callApiWithErrorMsg(endpoint, functionName, data, errorPrefix) -**用途**: 调用 API 并自动显示错误消息 - -**参数**: -- `endpoint` (string): API 端点名称 -- `functionName` (string): 方法名称 -- `data` (object, 可选): 要传送的数据对象 -- `errorPrefix` (string, 可选): 错误消息前缀,默认为 `'操作'` - -**返回值**: Promise,reject 时自动调用 `this.ShowError()` - -**示例**: -```javascript -// 使用自动错误处理 -try { - const result = await this.callApiWithErrorMsg('領據處理', 'Save', data, '儲存'); - this.ShowSuccess(result.Message); -} catch (error) { - // 错误已自动显示 - console.error('操作失败:', error); -} -``` - -## 完整示例 - -### 原始代码(冗长) -```javascript -loadData(no) { - this.loading = true; - - axios({ - method: 'post', - url: `${API_BASE}/GetOne`, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - }, - data: JSON.stringify({ no }) - }) - .then(response => { - const result = response.data.d || response.data; - if (result.Success) { - this.mainData = result.Data.main; - this.laborData = result.Data.labor; - this.travelData = result.Data.travel; - this.backupData(); - } else { - this.ShowError('載入失敗: ' + result.Message); - } - }) - .catch(error => { - console.error('LoadData error:', error); - this.ShowError('載入發生錯誤: ' + (error.message || '請檢查網路連線')); - }) - .finally(() => { - this.loading = false; - }); -} -``` - -### 使用 ApiMixin 的简化代码 -```javascript -async loadData(no) { - this.loading = true; - - try { - const result = await this.callApiWithErrorMsg('領據處理', 'GetOne', { no }, '載入'); - - this.mainData = result.Data.main; - this.laborData = result.Data.labor; - this.travelData = result.Data.travel; - this.backupData(); - } catch (error) { - console.error('LoadData error:', error); - } finally { - this.loading = false; - } -} -``` - -## 重构建议 - -使用 ApiMixin 后,您可以将 `領據處理.js` 中的多个方法简化: - -1. **save()** - 减少 ~15 行代码 -2. **loadDropdownList()** - 减少 ~10 行代码 -3. **searchRecipient()** - 减少 ~10 行代码 -4. **searchPlan()** - 减少 ~10 行代码 -5. **searchOriginStation()** - 减少 ~10 行代码 -6. **searchDestStation()** - 减少 ~10 行代码 -7. **calculateTax()** - 减少 ~5 行代码 -8. **calculateFare()** - 减少 ~5 行代码 - -**总计**: 可减少 ~65+ 行代码,提高代码可读性和可维护性 - -## 错误处理 - -ApiMixin 会自动处理以下情况: -- ✅ API 响应格式 (`data.d` 或 `data`) -- ✅ Success 字段检查 -- ✅ 错误消息提取 -- ✅ 网络错误捕获 -- ✅ 自动显示错误(使用 `callApiWithErrorMsg`) - -## 注意事项 - -1. **ToastMixin 依赖**: `callApiWithErrorMsg` 需要 `this.ShowError()` 方法,确保您的 Vue 组件已混入 `ToastMixin` - -2. **API_BASE 变量**: 确保 `API_BASE` 全局变量已定义 - -3. **异步/等待**: 建议在 async/await 的 try-catch 块中使用,更易读 - -4. **错误消息格式**: 错误消息会自动格式化为 `"{errorPrefix}失敗: {具体错误信息}"` - -## 性能优化 - -由于所有 API 调用都走同一个方法,未来可以在 `callApi` 中添加: -- ✅ API 请求/响应日志 -- ✅ 请求超时管理 -- ✅ 重试机制 -- ✅ 请求缓存 -- ✅ 性能监测 - -无需修改调用代码! diff --git a/branches/1150807/FormBase.aspx b/branches/1150807/FormBase.aspx deleted file mode 100644 index 2aa25d3..0000000 --- a/branches/1150807/FormBase.aspx +++ /dev/null @@ -1,7 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/Site2.Master" - AutoEventWireup="true" CodeBehind="FormBase.aspx.cs" Inherits="Education.FormBase" %> - - - - - diff --git a/branches/1150807/FormBase.aspx.cs b/branches/1150807/FormBase.aspx.cs deleted file mode 100644 index 20e5ed4..0000000 --- a/branches/1150807/FormBase.aspx.cs +++ /dev/null @@ -1,286 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web.UI; -using System.Web.UI.WebControls; -using WebLib; - -namespace Education -{ - public partial class FormBase : WebLib.FormBase - { - // 資料存取類別變數 - //protected DAC_部門 Dao部門 = new DAC_部門(); - public DAC_GetData GetData; - public DAC_場地 Dao場地; - public DAC_講師 Dao講師; - public DAC_BCLS Dao類別; - public DAC_BPSN Dao員工; - public DAC_職務 Dao職務; - public DAC_組織圖 Dao組織圖; - public DAC_課程 Dao課程; - public DAC_公司別 Dao公司別 = new DAC_公司別(); - public DAC_訓練課程企劃 Dao訓練課程企劃; - public DAC_課程報名 Dao課程報名; - public DAC_表單簽核主檔 Dao表單簽核主檔; - public DAC_站別 Dao站別; - public DAC_片語 Dao片語; - - protected override void OnPreInit(EventArgs e) - { - base.OnPreInit(e); - systemName = PublicVariable.SystemName; - - GetData = new DAC_GetData(); - Dao類別 = new DAC_BCLS(conn); - Dao員工 = new DAC_BPSN(conn); - Dao職務 = new DAC_職務(conn); - Dao場地 = new DAC_場地(conn); - Dao講師 = new DAC_講師(conn); - Dao組織圖 = new DAC_組織圖(conn); - Dao課程 = new DAC_課程(conn); - Dao訓練課程企劃 = new DAC_訓練課程企劃(conn); - Dao課程報名 = new DAC_課程報名(conn); - Dao表單簽核主檔 = new DAC_表單簽核主檔(conn); - Dao站別 = new DAC_站別(conn); - Dao片語 = new DAC_片語(conn); - } - - /// - /// 向 ScriptManager 註冊要 觸發Postback 的控制項 - /// - /// - public void RegisterPostbackTrigger(Control ctrl) - { - if (ScriptManager.GetCurrent(Page) != null && ctrl != null) - { - ScriptManager.GetCurrent(Page).RegisterPostBackControl(ctrl); - } - } - - protected override bool IsSetMasterPage() - { - return false; - } - - /// - /// 公司別編號 - /// - public string CompanyId - { - get - { - return DAC.GetString(Session[PublicVariable.CompanyId]); - } - } - - /// - /// 公司別名稱 - /// - public string CompanyName - { - get - { - return Dao公司別.GetName(Session[PublicVariable.CompanyId]); - } - } - - /// - /// 判斷目前的使用者是否為某個群組的成員 - /// - /// - /// - public bool UserInGroup(string group_id) - { - List groups = (Session[PublicVariable.UserGroups] as List); - - if (groups != null) - return groups.Contains(group_id); - else - return false; - } - - /// - /// 目前的使用者是否屬於管理群組 - /// - public bool IsManager - { - get - { - return DAC.GetBoolean(Session[PublicVariable.IsManager]); - } - } - - /// - /// 目前的使用者是否屬於承辦人群組 - /// - public bool IsWorker - { - get - { - return DAC.GetBoolean(Session[PublicVariable.IsWorker]); - } - } - - /// - /// 目前是否登入後台 - /// - public bool IsBackend - { - get - { - return DAC.GetBoolean(Session[PublicVariable.IsBackend]); - } - } - - /// - /// 設定 Linkbutton 的 Enabled - /// - public void SetWebControlEnabled(WebControl ctrl, bool enabled) - { - if (ctrl == null) - return; - - ctrl.Enabled = enabled; - if (enabled) - { - ctrl.Attributes.Remove("disabled"); - } - else - { - ctrl.Attributes["disabled"] = "disabled"; - } - } - - public void ClientShowMessage(string message, string url = "") - { - if (System.Web.UI.ScriptManager.GetCurrent(this) != null) - { - if (url == null || url.Length == 0) - { - System.Web.UI.ScriptManager.RegisterStartupScript(this, Page.GetType(), "client_mesage", - String.Format("alert(\"{0}\");", StringTable.GetString(message)), true); - } - else - { - System.Web.UI.ScriptManager.RegisterStartupScript(this, Page.GetType(), "client_mesage", - String.Format("alert(\"{0}\"); window.location=\"{1}\";", StringTable.GetString(message), url), true); - } - } - else - { - base.ClientShowMessage(message, url); - } - } - - /// - /// 從 Validator 所在的 FormView 樣板尋找控制項並取得其值。 - /// - protected string FindFormValue(object source, string controlId) - { - Control container = (source as Control)?.NamingContainer; - while (container != null) - { - Control control = container.FindControl(controlId); - if (control is ListControl list) - return list.SelectedValue ?? ""; - if (control is ITextControl text) - return text.Text ?? ""; - container = container.NamingContainer; - } - return ""; - } - - /// - /// 以泛型取得容器內指定型別的控制項。 - /// - protected T FindControl(Control container, string controlId) where T : class - { - return container == null ? null : container.FindControl(controlId) as T; - } - - - - #region 資料查找相關 - - public string Get類別名稱(object 類別大類, object 類別編號) - { - return Dao類別.Get類別名稱(類別大類, 類別編號); - } - - public string Get員工姓名(object 員工編號) - { - return Dao員工.Get員工姓名(員工編號); - } - - public string Get職務名稱(object 職務ID) - { - return Dao職務.Get職務名稱(職務ID); - } - - public string Get組織名稱(object 組織ID) - { - return Dao組織圖.Get組織名稱(組織ID); - } - - public string Get場地名稱(object 場地ID) - { - return Dao場地.Get場地名稱(場地ID); - } - - public string Get講師姓名(object 講師ID) - { - return Dao講師.Get姓名(講師ID); - } - - public string Get訓練企劃名稱(object 訓練企劃ID) - { - 訓練課程企劃List d = Dao訓練課程企劃.SelectOne(DAC.GetInt32(訓練企劃ID)); - if (d.Count == 0) - return ""; - else - return d[0].訓練名稱; - } - #endregion - - #region 格式檢查相關 - - /// - /// 驗證電子郵件格式 - /// - public static bool IsValidEmail(string email) - { - if (string.IsNullOrEmpty(email)) - return false; - - // 基本格式檢查 - string pattern = @"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"; - if (!System.Text.RegularExpressions.Regex.IsMatch(email, pattern)) - return false; - - // 進階檢查(使用 .NET 內建類別) - try - { - var addr = new System.Net.Mail.MailAddress(email); - return (addr.Address == email); - } - catch - { - return false; - } - } - - #endregion - - #region 片語 - protected string GetPhraseClientClick(string controlId, string content) - { - string CID = ""; - CID = (Form_View.FindControl(controlId) as Control).ClientID; - if (CID.Length > 0) - return String.Format("javascript:FillMessage(\"{0}\", \"{1}\");return false;", CID, content); - else - return "javascript:return false;"; - } - #endregion - } -} diff --git a/branches/1150807/FormBase.aspx.designer.cs b/branches/1150807/FormBase.aspx.designer.cs deleted file mode 100644 index 2afb064..0000000 --- a/branches/1150807/FormBase.aspx.designer.cs +++ /dev/null @@ -1,17 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education -{ - - - public partial class FormBase - { - } -} diff --git a/branches/1150807/Forms/404.aspx b/branches/1150807/Forms/404.aspx deleted file mode 100644 index 63c9957..0000000 --- a/branches/1150807/Forms/404.aspx +++ /dev/null @@ -1,27 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/PopupForm3.Master" AutoEventWireup="true" CodeBehind="404.aspx.cs" Inherits="Education.Forms._404" %> - - - - -
-
- -
-
-

您想去哪裡?

-
    -
  • 您要求的頁面不存在,請回到上一頁或是回到首頁。 -
  • -
-
-
-
diff --git a/branches/1150807/Forms/404.aspx.cs b/branches/1150807/Forms/404.aspx.cs deleted file mode 100644 index e5f84b6..0000000 --- a/branches/1150807/Forms/404.aspx.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; - -namespace Education.Forms -{ - public partial class _404 : FormBase - { - protected void Page_Load(object sender, EventArgs e) - { - - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/404.aspx.designer.cs b/branches/1150807/Forms/404.aspx.designer.cs deleted file mode 100644 index d2284cf..0000000 --- a/branches/1150807/Forms/404.aspx.designer.cs +++ /dev/null @@ -1,17 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms -{ - - - public partial class _404 - { - } -} diff --git a/branches/1150807/Forms/500.aspx b/branches/1150807/Forms/500.aspx deleted file mode 100644 index 6976185..0000000 --- a/branches/1150807/Forms/500.aspx +++ /dev/null @@ -1,38 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/PopupForm3.Master" AutoEventWireup="true" CodeBehind="500.aspx.cs" Inherits="Education.Forms._500" %> - - - - - -
-
- -
-
-

系統發生錯誤

-
    -
  • 很抱歉造成您的困擾,請回到上一頁再嘗試一次剛才的操作 -
    -
    -
  • -
  • 如果仍然發生錯誤,請通知系統工程師,並請提供以下的錯誤代碼:
    -
    - - -
    - -
    -
  • -
-
-
-
diff --git a/branches/1150807/Forms/500.aspx.cs b/branches/1150807/Forms/500.aspx.cs deleted file mode 100644 index af0b926..0000000 --- a/branches/1150807/Forms/500.aspx.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.IO; - -namespace Education.Forms -{ - public partial class _500 : FormBase - { - protected void Page_Load(object sender, EventArgs e) - { - lbErrCode.Text = Request["errcode"]; - - if (PublicVariable.DEBUG) - { - Panel1.Visible = true; - txtErrLog.Text = File.ReadAllText(Server.MapPath(string.Format(@"~/Log/{0}.txt", lbErrCode.Text))); - } - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/500.aspx.designer.cs b/branches/1150807/Forms/500.aspx.designer.cs deleted file mode 100644 index fceff01..0000000 --- a/branches/1150807/Forms/500.aspx.designer.cs +++ /dev/null @@ -1,44 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms -{ - - - public partial class _500 - { - - /// - /// lbErrCode 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label lbErrCode; - - /// - /// Panel1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Panel Panel1; - - /// - /// txtErrLog 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.TextBox txtErrLog; - } -} diff --git a/branches/1150807/Forms/Common/FileTooLarge.aspx b/branches/1150807/Forms/Common/FileTooLarge.aspx deleted file mode 100644 index b733145..0000000 --- a/branches/1150807/Forms/Common/FileTooLarge.aspx +++ /dev/null @@ -1,27 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/PopupForm3.Master" AutoEventWireup="true" CodeBehind="FileTooLarge.aspx.cs" Inherits="Education.Forms.Common.FileTooLarge" %> - - - - -
-
- -
-
-

上傳的檔案太大了

-
    -
  • 上傳的檔案大小請勿超過  kB -
  • -
-
-
-
diff --git a/branches/1150807/Forms/Common/FileTooLarge.aspx.cs b/branches/1150807/Forms/Common/FileTooLarge.aspx.cs deleted file mode 100644 index 50f3646..0000000 --- a/branches/1150807/Forms/Common/FileTooLarge.aspx.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Configuration; -using System.Web.Configuration; -using WebLib; - -namespace Education.Forms.Common -{ - public partial class FileTooLarge : FormBase - { - protected void Page_Load(object sender, EventArgs e) - { - HttpRuntimeSection section = (HttpRuntimeSection)ConfigurationManager.GetSection("system.web/httpRuntime"); - lbFileLimit.Text = section.MaxRequestLength.ToString(); - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/Common/FileTooLarge.aspx.designer.cs b/branches/1150807/Forms/Common/FileTooLarge.aspx.designer.cs deleted file mode 100644 index 1c38ba8..0000000 --- a/branches/1150807/Forms/Common/FileTooLarge.aspx.designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.Common -{ - - - public partial class FileTooLarge - { - - /// - /// lbFileLimit 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label lbFileLimit; - } -} diff --git a/branches/1150807/Forms/Common/ReportBase.cs b/branches/1150807/Forms/Common/ReportBase.cs deleted file mode 100644 index 40c9529..0000000 --- a/branches/1150807/Forms/Common/ReportBase.cs +++ /dev/null @@ -1,214 +0,0 @@ -using CrystalDecisions.Shared; -using Newtonsoft.Json.Linq; -using NPOI.SS.Formula.Functions; -using NPOI.SS.UserModel; -using NPOI.XSSF.UserModel; -using System; -using WebLib; - -namespace Education -{ - public class ReportBase - { - protected XSSFWorkbook workbook; - protected ISheet sheet; - protected WebLib.Excel excel; - protected IFont headerFont; - protected IFont footerFont; - protected IFont titleFont; - protected IFont titleFontBoldUnderLine; - protected IFont bodyFont; - protected ICellStyle headerStyle; - protected ICellStyle footerStyle; - protected ICellStyle titleStyleLeft; - protected ICellStyle titleStyleRight; - protected ICellStyle titleStyleCenter; - protected ICellStyle titleStyleCenterBottom; - protected ICellStyle titleStyleLeftNoBorder; - protected ICellStyle titleStyleRightNoBorder; - protected ICellStyle titleStyleCenterNoBorder; - protected ICellStyle titleStyleCenterBottomNoBorder; - protected ICellStyle titleStyleCenterUDBorder; - protected ICellStyle bodyStyleLeft; - protected ICellStyle bodyStyleRight; - protected ICellStyle bodyStyleCenter; - protected ICellStyle bodyNumberStyle; - protected ICellStyle bodyNumberStyleNoBorder; - protected ICellStyle bodyNumberStyleUDBorder; - protected ICellStyle bodyNumberStyle2; - protected ICellStyle bodyPercentStyle; - protected int HeaderRowHeight = 24; - protected int BodyRowHeight = 18; - - public ReportBase() - { - Init(); - } - - protected virtual void Init() - { - workbook = new XSSFWorkbook(); - sheet = workbook.CreateSheet("報表"); - sheet.ForceFormulaRecalculation = true; - excel = new WebLib.Excel(); - excel.WorkBook = workbook; - excel.Sheet = sheet; - - headerFont = excel.NewFont("標楷體", 16, true); - footerFont = excel.NewFont("標楷體", 16); - titleFont = excel.NewFont("標楷體", 16, true); - titleFontBoldUnderLine = excel.NewFont("標楷體", 12, true); - titleFontBoldUnderLine.Underline = FontUnderlineType.Single; - bodyFont = excel.NewFont("標楷體", 12); - - headerStyle = excel.NewCellStyle(headerFont, HorizontalAlignment.Center, VerticalAlignment.Center, true); - footerStyle = excel.NewCellStyle(footerFont, HorizontalAlignment.Left, VerticalAlignment.Center, true); - - titleStyleLeft = excel.NewCellStyle(titleFont, HorizontalAlignment.Left, VerticalAlignment.Center, true); - /* - titleStyleLeft.BorderTop = BorderStyle.Thin; - titleStyleLeft.BorderBottom = BorderStyle.Thin; - titleStyleLeft.BorderLeft = BorderStyle.Thin; - titleStyleLeft.BorderRight = BorderStyle.Thin; - */ - - titleStyleRight = excel.NewCellStyle(titleFont, HorizontalAlignment.Right, VerticalAlignment.Center, true); - /* - titleStyleRight.BorderTop = BorderStyle.Thin; - titleStyleRight.BorderBottom = BorderStyle.Thin; - titleStyleRight.BorderLeft = BorderStyle.Thin; - titleStyleRight.BorderRight = BorderStyle.Thin; - */ - - titleStyleCenter = excel.NewCellStyle(titleFont, HorizontalAlignment.Center, VerticalAlignment.Center, true); - /* - titleStyleCenter.BorderTop = BorderStyle.Thin; - titleStyleCenter.BorderBottom = BorderStyle.Thin; - titleStyleCenter.BorderLeft = BorderStyle.Thin; - titleStyleCenter.BorderRight = BorderStyle.Thin; - */ - - titleStyleCenterBottom = excel.NewCellStyle(titleFont, HorizontalAlignment.Center, VerticalAlignment.Bottom, true); - /* - titleStyleCenterBottom.BorderTop = BorderStyle.Thin; - titleStyleCenterBottom.BorderBottom = BorderStyle.Thin; - titleStyleCenterBottom.BorderLeft = BorderStyle.Thin; - titleStyleCenterBottom.BorderRight = BorderStyle.Thin; - */ - - titleStyleLeftNoBorder = excel.NewCellStyle(titleFont, HorizontalAlignment.Left, VerticalAlignment.Center, true); - titleStyleRightNoBorder = excel.NewCellStyle(titleFont, HorizontalAlignment.Right, VerticalAlignment.Center, true); - titleStyleCenterNoBorder = excel.NewCellStyle(titleFont, HorizontalAlignment.Center, VerticalAlignment.Center, true); - titleStyleCenterBottomNoBorder = excel.NewCellStyle(titleFont, HorizontalAlignment.Center, VerticalAlignment.Bottom, true); - - titleStyleCenterUDBorder = excel.NewCellStyle(titleFont, HorizontalAlignment.Center, VerticalAlignment.Center, true); - titleStyleCenterUDBorder.BorderTop = BorderStyle.Thin; - titleStyleCenterUDBorder.BorderBottom = BorderStyle.Thin; - - bodyStyleLeft = excel.NewCellStyle(bodyFont, HorizontalAlignment.Left, VerticalAlignment.Center, true); - bodyStyleLeft.BorderTop = BorderStyle.Thin; - bodyStyleLeft.BorderBottom = BorderStyle.Thin; - bodyStyleLeft.BorderLeft = BorderStyle.Thin; - bodyStyleLeft.BorderRight = BorderStyle.Thin; - - bodyStyleRight = excel.NewCellStyle(bodyFont, HorizontalAlignment.Right, VerticalAlignment.Center, true); - bodyStyleRight.BorderTop = BorderStyle.Thin; - bodyStyleRight.BorderBottom = BorderStyle.Thin; - bodyStyleRight.BorderLeft = BorderStyle.Thin; - bodyStyleRight.BorderRight = BorderStyle.Thin; - - bodyStyleCenter = excel.NewCellStyle(bodyFont, HorizontalAlignment.Center, VerticalAlignment.Center, true); - bodyStyleCenter.BorderTop = BorderStyle.Thin; - bodyStyleCenter.BorderBottom = BorderStyle.Thin; - bodyStyleCenter.BorderLeft = BorderStyle.Thin; - bodyStyleCenter.BorderRight = BorderStyle.Thin; - - IDataFormat numberFormat = workbook.CreateDataFormat(); - bodyNumberStyle = excel.NewCellStyle(bodyFont, HorizontalAlignment.Right, VerticalAlignment.Center, true); - bodyNumberStyle.DataFormat = numberFormat.GetFormat("###,###,##0"); - bodyNumberStyle.BorderTop = BorderStyle.Thin; - bodyNumberStyle.BorderBottom = BorderStyle.Thin; - bodyNumberStyle.BorderLeft = BorderStyle.Thin; - bodyNumberStyle.BorderRight = BorderStyle.Thin; - - bodyNumberStyle2 = excel.NewCellStyle(bodyFont, HorizontalAlignment.Right, VerticalAlignment.Center, true); - bodyNumberStyle2.DataFormat = numberFormat.GetFormat("###,###,##0.00"); - bodyNumberStyle2.BorderTop = BorderStyle.Thin; - bodyNumberStyle2.BorderBottom = BorderStyle.Thin; - bodyNumberStyle2.BorderLeft = BorderStyle.Thin; - bodyNumberStyle2.BorderRight = BorderStyle.Thin; - - bodyPercentStyle = excel.NewCellStyle(bodyFont, HorizontalAlignment.Right, VerticalAlignment.Center, true); - bodyPercentStyle.DataFormat = numberFormat.GetFormat("##0.00"); - bodyPercentStyle.BorderTop = BorderStyle.Thin; - bodyPercentStyle.BorderBottom = BorderStyle.Thin; - bodyPercentStyle.BorderLeft = BorderStyle.Thin; - bodyPercentStyle.BorderRight = BorderStyle.Thin; - - bodyNumberStyleNoBorder = excel.NewCellStyle(bodyFont, HorizontalAlignment.Right, VerticalAlignment.Center, true); - bodyNumberStyleNoBorder.DataFormat = numberFormat.GetFormat("###,###,##0"); - - bodyNumberStyleUDBorder = excel.NewCellStyle(bodyFont, HorizontalAlignment.Right, VerticalAlignment.Center, true); - bodyNumberStyleUDBorder.DataFormat = numberFormat.GetFormat("###,###,##0"); - bodyNumberStyleUDBorder.BorderTop = BorderStyle.Thin; - bodyNumberStyleUDBorder.BorderBottom = BorderStyle.Thin; - } - - protected void SetPaperAndMargin(ISheet Asheet) - { - // 設定紙張 - Asheet.PrintSetup.PaperSize = 9; // A4 - Asheet.PrintSetup.Landscape = false; // 直向 - - // 列印格式 - Asheet.PrintSetup.UsePage = true; - Asheet.PrintSetup.FitWidth = 1; // 將所有欄擠進 1 頁寬 - Asheet.PrintSetup.FitHeight = 0; // 0 表示不指定幾頁 - Asheet.HorizontallyCenter = true; // 水平置中 - - // 頁首頁尾 - Asheet.Footer.Left = "列印日期:&D"; - Asheet.Footer.Right = "頁數:&P"; - - // 紙張邊界 - Asheet.PrintSetup.HeaderMargin = 0d; - Asheet.PrintSetup.FooterMargin = 0.3d; - Asheet.SetMargin(MarginType.TopMargin, 0.5d); - Asheet.SetMargin(MarginType.BottomMargin, 0.5d); - Asheet.SetMargin(MarginType.LeftMargin, 0.3d); - Asheet.SetMargin(MarginType.RightMargin, 0.3d); - } - - protected void SetDataValue(int row, int col, ExportColumn column, object value, ICellStyle cellStyle) - { - if (column.MoneyFormat) - { - if (column.MondyDigits == 0) - excel.SetCellValue(row, col, DAC.GetDouble(value), bodyNumberStyle); - else - excel.SetCellValue(row, col, DAC.GetDouble(value), bodyNumberStyle2); - } - else if (!string.IsNullOrEmpty(column.Format)) - { - excel.SetCellValue(row, col, String.Format(column.Format, value), cellStyle); - } - else - { - excel.SetCellValue(row, col, DAC.GetString(value), cellStyle); - } - } - } - - public class ExportColumn - { - public string Key { get; set; } - public string Title { get; set; } - public int Width { get; set; } - public string FieldName { get; set; } - public string Format { get; set; } = string.Empty; - public bool MoneyFormat { get; set; } = false; - public int MondyDigits { get; set; } = 0; - public HorizontalAlignment Align { get; set; } = HorizontalAlignment.Left; - public string Comment { get; set; } - } -} diff --git a/branches/1150807/Forms/Common/ShowContent.aspx b/branches/1150807/Forms/Common/ShowContent.aspx deleted file mode 100644 index 18edd6e..0000000 --- a/branches/1150807/Forms/Common/ShowContent.aspx +++ /dev/null @@ -1,6 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/PopupForm2.Master" AutoEventWireup="true" CodeBehind="ShowContent.aspx.cs" Inherits="Education.Forms.辦訓前置作業.ShowContent" %> - - - - - diff --git a/branches/1150807/Forms/Common/ShowContent.aspx.cs b/branches/1150807/Forms/Common/ShowContent.aspx.cs deleted file mode 100644 index 2514df6..0000000 --- a/branches/1150807/Forms/Common/ShowContent.aspx.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using WebLib; - -namespace Education.Forms.辦訓前置作業 -{ - public partial class ShowContent : FormBase - { - protected void Page_Load(object sender, EventArgs e) - { - switch (Request["type"]) - { - case "CourseChange": - DAC_訓練課程異動通知 Dao異動通知 = new DAC_訓練課程異動通知(conn); - - int id = DAC.GetInt32(Request["id"]); - int item = DAC.GetInt32(Request["item"]); - - 訓練課程異動通知List d1 = Dao異動通知.SelectOne(id, item); - if (d1.Count > 0) - Label1.Text = d1[0].異動通知內容.Replace("\r\n", "
").Replace("\r", "
").Replace("\n", "
"); - break; - - case "OnlineCourse": - id = DAC.GetInt32(Request["id"]); - DAC_數位課程 Dao數位課程 = new DAC_數位課程(conn); - 數位課程List d2 = Dao數位課程.SelectOne(id); - if (d2.Count > 0) - Label1.Text = d2[0].課程簡介.Replace("\r\n", "
").Replace("\r", "
").Replace("\n", "
"); - break; - } - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/Common/ShowContent.aspx.designer.cs b/branches/1150807/Forms/Common/ShowContent.aspx.designer.cs deleted file mode 100644 index d5a36ab..0000000 --- a/branches/1150807/Forms/Common/ShowContent.aspx.designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.辦訓前置作業 -{ - - - public partial class ShowContent - { - - /// - /// Label1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label Label1; - } -} diff --git a/branches/1150807/Forms/Common/ShowLargePicture.aspx b/branches/1150807/Forms/Common/ShowLargePicture.aspx deleted file mode 100644 index bf7ce0b..0000000 --- a/branches/1150807/Forms/Common/ShowLargePicture.aspx +++ /dev/null @@ -1,14 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/PopupForm2.Master" AutoEventWireup="true" CodeBehind="ShowLargePicture.aspx.cs" Inherits="Education.Forms.Common.ShowLargePicture" %> - - - - -
- -
- -
diff --git a/branches/1150807/Forms/Common/ShowLargePicture.aspx.cs b/branches/1150807/Forms/Common/ShowLargePicture.aspx.cs deleted file mode 100644 index df1705e..0000000 --- a/branches/1150807/Forms/Common/ShowLargePicture.aspx.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; - -namespace Education.Forms.Common -{ - public partial class ShowLargePicture : FormBase - { - protected void Page_Load(object sender, EventArgs e) - { - Image1.ImageUrl = Request["pic"] + "?now=" + DateTime.UtcNow.AddHours(8).Ticks.ToString(); - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/Common/ShowLargePicture.aspx.designer.cs b/branches/1150807/Forms/Common/ShowLargePicture.aspx.designer.cs deleted file mode 100644 index 960cc97..0000000 --- a/branches/1150807/Forms/Common/ShowLargePicture.aspx.designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.Common -{ - - - public partial class ShowLargePicture - { - - /// - /// Image1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Image Image1; - } -} diff --git a/branches/1150807/Forms/Common/ShowLargePicture1.aspx b/branches/1150807/Forms/Common/ShowLargePicture1.aspx deleted file mode 100644 index c703827..0000000 --- a/branches/1150807/Forms/Common/ShowLargePicture1.aspx +++ /dev/null @@ -1,23 +0,0 @@ -<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ShowLargePicture1.aspx.cs" - Inherits="Education.Forms.基本資料.ShowLargePicture1" %> - - - - - - - 大圖檢視 - - -
-
- -
-
- - - diff --git a/branches/1150807/Forms/Common/ShowLargePicture1.aspx.cs b/branches/1150807/Forms/Common/ShowLargePicture1.aspx.cs deleted file mode 100644 index 8ed3f13..0000000 --- a/branches/1150807/Forms/Common/ShowLargePicture1.aspx.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; - -namespace Education.Forms.基本資料 -{ - public partial class ShowLargePicture1 : System.Web.UI.Page - { - protected void Page_Load(object sender, EventArgs e) - { - Image1.ImageUrl = Request["pic"] + "?now=" + DateTime.UtcNow.AddHours(8).Ticks.ToString(); - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/Common/ShowLargePicture1.aspx.designer.cs b/branches/1150807/Forms/Common/ShowLargePicture1.aspx.designer.cs deleted file mode 100644 index e12415b..0000000 --- a/branches/1150807/Forms/Common/ShowLargePicture1.aspx.designer.cs +++ /dev/null @@ -1,35 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.基本資料 -{ - - - public partial class ShowLargePicture1 - { - - /// - /// form1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.HtmlControls.HtmlForm form1; - - /// - /// Image1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Image Image1; - } -} diff --git a/branches/1150807/Forms/Common/Test.aspx b/branches/1150807/Forms/Common/Test.aspx deleted file mode 100644 index d70c10c..0000000 --- a/branches/1150807/Forms/Common/Test.aspx +++ /dev/null @@ -1,17 +0,0 @@ -<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Education.Forms.Common.Test" %> - - - - - - - - - -
-
- -
-
- - diff --git a/branches/1150807/Forms/Common/Test.aspx.cs b/branches/1150807/Forms/Common/Test.aspx.cs deleted file mode 100644 index 3c1ac00..0000000 --- a/branches/1150807/Forms/Common/Test.aspx.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net.Mail; -using System.Text; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using WebLib; - -namespace Education.Forms.Common -{ - public partial class Test : System.Web.UI.Page - { - protected void Page_Load(object sender, EventArgs e) - { - - } - - protected void btnSendMailTest_Click(object sender, EventArgs e) - { - MailMessage mm = new MailMessage(); - mm.Subject = "郵件發送測試"; - mm.To.Add(new MailAddress("neo.sryang@gmail.com")); - mm.BodyEncoding = Encoding.UTF8; - mm.IsBodyHtml = true; - mm.Body = @"郵件發送測試"; - - MailService.Send(mm, "郵件發送測試"); - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/Common/Test.aspx.designer.cs b/branches/1150807/Forms/Common/Test.aspx.designer.cs deleted file mode 100644 index c91aa3f..0000000 --- a/branches/1150807/Forms/Common/Test.aspx.designer.cs +++ /dev/null @@ -1,35 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.Common -{ - - - public partial class Test - { - - /// - /// form1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.HtmlControls.HtmlForm form1; - - /// - /// btnSendMailTest 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Button btnSendMailTest; - } -} diff --git a/branches/1150807/Forms/Common/訓練企劃搜尋.ascx b/branches/1150807/Forms/Common/訓練企劃搜尋.ascx deleted file mode 100644 index ab6ef8b..0000000 --- a/branches/1150807/Forms/Common/訓練企劃搜尋.ascx +++ /dev/null @@ -1,86 +0,0 @@ -<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="訓練企劃搜尋.ascx.cs" Inherits="Education.Forms.Common.訓練企劃搜尋" %> -<%@ Register Assembly="WebLib" Namespace="WebLib" TagPrefix="weblib" %> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- 年度 - - 查詢年度課程 -
-
- 課程企劃 - - - 查詢 -
-
-
-
- -
-
\ No newline at end of file diff --git a/branches/1150807/Forms/Common/訓練企劃搜尋.ascx.cs b/branches/1150807/Forms/Common/訓練企劃搜尋.ascx.cs deleted file mode 100644 index 8d4764a..0000000 --- a/branches/1150807/Forms/Common/訓練企劃搜尋.ascx.cs +++ /dev/null @@ -1,148 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.ComponentModel; -using WebLib; - -namespace Education.Forms.Common -{ - [DefaultProperty("訓練企劃編號")] - [DefaultEvent("Click")] - public partial class 訓練企劃搜尋 : UserControlBase - { - protected void Page_Load(object sender, EventArgs e) - { - if (txtYear.Text == "") - { - txtYear.Text = DateTime.UtcNow.AddHours(8).Date.Year.ToString(); - - DoDataBind(); - } - } - - private void DoDataBind() - { - switch (訓練企劃狀態) - { - case 企劃狀態Enum.未上課: - ddl課程企劃.DataSource = ds未上課; - lbHint.Text = "(還未上課的課程企劃)"; - break; - case 企劃狀態Enum.已截止未上課: - ddl課程企劃.DataSource = ds已截止未上課; - lbHint.Text = "(已截止報名,還未上課的課程企劃)"; - break; - case 企劃狀態Enum.已上課未結案: - ddl課程企劃.DataSource = ds已上課未結案; - lbHint.Text = "(已上課,還未結案的課程企劃)"; - break; - case 企劃狀態Enum.已上課: - ddl課程企劃.DataSource = ds已上課; - lbHint.Text = "(已上課的課程企劃)"; - break; - case 企劃狀態Enum.已結案: - ddl課程企劃.DataSource = ds已結案; - lbHint.Text = "(已結案的課程企劃)"; - break; - case 企劃狀態Enum.已簽核未結案: - ddl課程企劃.DataSource = ds已簽核未結案; - lbHint.Text = "(已簽核未結案的課程企劃)"; - break; - case 企劃狀態Enum.全部: - ddl課程企劃.DataSource = ds全部; - lbHint.Text = "(全部課程企劃)"; - break; - } - - ddl課程企劃.DataBind(); - } - - protected void ds_ObjectCreating(object sender, ObjectDataSourceEventArgs e) - { - e.ObjectInstance = Dao訓練課程企劃; - } - - [DefaultValue(企劃狀態Enum.已上課未結案)] - public 企劃狀態Enum 訓練企劃狀態 - { - get - { - if (ViewState["訓練企劃狀態"] == null) - return 企劃狀態Enum.已上課未結案; - else - return (企劃狀態Enum)ViewState["訓練企劃狀態"]; - } - set - { - ViewState["訓練企劃狀態"] = value; - } - } - - public int 訓練企劃編號 - { - get - { - return DAC.GetInt32(ddl課程企劃.SelectedValue); - } - } - - public string 訓練企劃名稱 - { - get - { - if (ddl課程企劃.SelectedItem != null) - return ddl課程企劃.SelectedItem.Text; - else - return ""; - } - } - - public string SearchButtonText - { - get - { - return btnOK.Text; - } - set - { - btnOK.Text = value; - } - } - - public Control SearchButton - { - get - { - return btnOK; - } - } - - - public event EventHandler Click; - - protected void btnOK_Click(object sender, EventArgs e) - { - Click(this, new EventArgs()); - } - - protected void btnYearSearch_Click(object sender, EventArgs e) - { - DoDataBind(); - } - } - - public enum 企劃狀態Enum - { - 未上課, - 已截止未上課, - 已上課未結案, - 已上課, - 已結案, - 已簽核未結案, - 全部 - } - -} \ No newline at end of file diff --git a/branches/1150807/Forms/Common/訓練企劃搜尋.ascx.designer.cs b/branches/1150807/Forms/Common/訓練企劃搜尋.ascx.designer.cs deleted file mode 100644 index 2165a8f..0000000 --- a/branches/1150807/Forms/Common/訓練企劃搜尋.ascx.designer.cs +++ /dev/null @@ -1,125 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.Common -{ - - - public partial class 訓練企劃搜尋 - { - - /// - /// ds未上課 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds未上課; - - /// - /// ds已截止未上課 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds已截止未上課; - - /// - /// ds已上課未結案 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds已上課未結案; - - /// - /// ds已上課 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds已上課; - - /// - /// ds已結案 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds已結案; - - /// - /// ds已簽核未結案 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds已簽核未結案; - - /// - /// ds全部 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource ds全部; - - /// - /// txtYear 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.TextBox txtYear; - - /// - /// btnYearSearch 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.LinkButton btnYearSearch; - - /// - /// ddl課程企劃 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::WebLib.WDropDownList ddl課程企劃; - - /// - /// btnOK 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.LinkButton btnOK; - - /// - /// lbHint 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label lbHint; - } -} diff --git a/branches/1150807/Forms/Common/起訖日顯示.ascx b/branches/1150807/Forms/Common/起訖日顯示.ascx deleted file mode 100644 index c580c43..0000000 --- a/branches/1150807/Forms/Common/起訖日顯示.ascx +++ /dev/null @@ -1,4 +0,0 @@ -<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="起訖日顯示.ascx.cs" Inherits="Education.Forms.Common.起訖日顯示" %> - - - diff --git a/branches/1150807/Forms/Common/起訖日顯示.ascx.cs b/branches/1150807/Forms/Common/起訖日顯示.ascx.cs deleted file mode 100644 index 6f629fe..0000000 --- a/branches/1150807/Forms/Common/起訖日顯示.ascx.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.ComponentModel; - -namespace Education.Forms.Common -{ - public partial class 起訖日顯示 : System.Web.UI.UserControl - { - protected void Page_Load(object sender, EventArgs e) - { - - } - - [Bindable(true)] - public Object 起日 - { - get; - set; - } - - [Bindable(true)] - public Object 迄日 - { - get; - set; - } - - [Bindable(true)] - [DefaultValue("yyyy-MM-dd")] - public string Format - { - get; - set; - } - - public override void DataBind() - { - base.DataBind(); - - if (DesignMode) - return; - - DateTime dt起日 = WebLib.DAC.GetDateTime(起日); - DateTime dt迄日 = WebLib.DAC.GetDateTime(迄日); - - if (dt起日.Ticks > 0) - { - lb起日.Text = dt起日.ToString(Format); - } - else - { - lb起日.Text = ""; - } - - if (dt迄日.Ticks > 0 && dt起日.CompareTo(dt迄日) != 0) - { - lb至.Text = "至"; - lb迄日.Text = dt迄日.ToString(Format); - } - else - { - lb至.Text = ""; - lb迄日.Text = ""; - } - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/Common/起訖日顯示.ascx.designer.cs b/branches/1150807/Forms/Common/起訖日顯示.ascx.designer.cs deleted file mode 100644 index f90b5a2..0000000 --- a/branches/1150807/Forms/Common/起訖日顯示.ascx.designer.cs +++ /dev/null @@ -1,44 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.Common -{ - - - public partial class 起訖日顯示 - { - - /// - /// lb起日 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label lb起日; - - /// - /// lb至 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label lb至; - - /// - /// lb迄日 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label lb迄日; - } -} diff --git a/branches/1150807/Forms/Common/送簽.ascx b/branches/1150807/Forms/Common/送簽.ascx deleted file mode 100644 index 66fb10e..0000000 --- a/branches/1150807/Forms/Common/送簽.ascx +++ /dev/null @@ -1,41 +0,0 @@ -<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="送簽.ascx.cs" - Inherits="Education.Forms.Common.送簽" %> -<%@ Register Assembly="WebLib" Namespace="WebLib" TagPrefix="weblib" %> - - - - - - - - - - - - - -
- - - -
- - - - - - 送簽 - - - - - - - 撤簽 -
- - - diff --git a/branches/1150807/Forms/Common/送簽.ascx.cs b/branches/1150807/Forms/Common/送簽.ascx.cs deleted file mode 100644 index c678810..0000000 --- a/branches/1150807/Forms/Common/送簽.ascx.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.ComponentModel; - -namespace Education.Forms.Common -{ - [DefaultBindingProperty("表單ID")] - public partial class 送簽 : System.Web.UI.UserControl - { - protected void Page_Load(object sender, EventArgs e) - { - } - - public int 簽核ID - { - get; - set; - } - - public string 表單類別 - { - get; - set; - } - - [Bindable(BindableSupport.Yes, BindingDirection.TwoWay)] - public string 表單ID - { - get; - set; - } - - public int 關 - { - get; - set; - } - - public override void DataBind() - { - base.DataBind(); - - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/Common/送簽.ascx.designer.cs b/branches/1150807/Forms/Common/送簽.ascx.designer.cs deleted file mode 100644 index f110fcd..0000000 --- a/branches/1150807/Forms/Common/送簽.ascx.designer.cs +++ /dev/null @@ -1,98 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.Common -{ - - - public partial class 送簽 - { - - /// - /// Label18 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label Label18; - - /// - /// Label20 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label Label20; - - /// - /// Label19 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label Label19; - - /// - /// DropDownList1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::WebLib.WDropDownList DropDownList1; - - /// - /// LinkButton8 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.LinkButton LinkButton8; - - /// - /// Label21 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label Label21; - - /// - /// DropDownList2 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::WebLib.WDropDownList DropDownList2; - - /// - /// LinkButton9 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.LinkButton LinkButton9; - - /// - /// lbSignMessage 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.Label lbSignMessage; - } -} diff --git a/branches/1150807/Forms/Test01.aspx b/branches/1150807/Forms/Test01.aspx deleted file mode 100644 index 900b10d..0000000 --- a/branches/1150807/Forms/Test01.aspx +++ /dev/null @@ -1,35 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/Site2.Master" AutoEventWireup="true" - CodeBehind="Test01.aspx.cs" Inherits="Education.Forms.Test01" %> - -<%@ Register Assembly="WebLib" Namespace="WebLib" TagPrefix="weblib" %> - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - - - - - - - - diff --git a/branches/1150807/Forms/Test01.aspx.cs b/branches/1150807/Forms/Test01.aspx.cs deleted file mode 100644 index 88c15c7..0000000 --- a/branches/1150807/Forms/Test01.aspx.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using WebLib; - -namespace Education.Forms -{ - public partial class Test01 : FormBase - { - protected void Page_Load(object sender, EventArgs e) - { - DAC_組織圖 Dao組織圖 = new DAC_組織圖(conn); - 組織圖List d = Dao組織圖.Select子樹(1, 1); - - GridView1.DataSource = d; - GridView1.DataBind(); - } - - protected void DropDownList1_DataBinding(object sender, EventArgs e) - { - if (!(sender is DropDownList dd) - || !(dd.Parent.Parent is GridViewRow row)) - return; - - string v = DataBinder.Eval(row.DataItem, "上層ID", "{0}"); - if (dd.Items.FindByValue(v) == null) - { - dd.Items.Insert(0, new ListItem(v, v)); - } - } - } -} diff --git a/branches/1150807/Forms/Test01.aspx.designer.cs b/branches/1150807/Forms/Test01.aspx.designer.cs deleted file mode 100644 index 1d1db29..0000000 --- a/branches/1150807/Forms/Test01.aspx.designer.cs +++ /dev/null @@ -1,62 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms -{ - - - public partial class Test01 - { - - /// - /// LookupTextBox1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::WebLib.LookupTextBox LookupTextBox1; - - /// - /// TextBox1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.TextBox TextBox1; - - /// - /// TextBox2 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.TextBox TextBox2; - - /// - /// TextBox3 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.TextBox TextBox3; - - /// - /// GridView1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.GridView GridView1; - } -} diff --git a/branches/1150807/Forms/UnderConstruction.aspx b/branches/1150807/Forms/UnderConstruction.aspx deleted file mode 100644 index 980f234..0000000 --- a/branches/1150807/Forms/UnderConstruction.aspx +++ /dev/null @@ -1,21 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/Site2.Master" - AutoEventWireup="true" CodeBehind="UnderConstruction.aspx.cs" - Inherits="Education.Forms.UnderConstruction" %> - - - - - -
- 本功能建構中...
- -
-
diff --git a/branches/1150807/Forms/UnderConstruction.aspx.cs b/branches/1150807/Forms/UnderConstruction.aspx.cs deleted file mode 100644 index 323a4aa..0000000 --- a/branches/1150807/Forms/UnderConstruction.aspx.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; - -namespace Education.Forms -{ - public partial class UnderConstruction : FormBase - { - protected void Page_Load(object sender, EventArgs e) - { - - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/UnderConstruction.aspx.designer.cs b/branches/1150807/Forms/UnderConstruction.aspx.designer.cs deleted file mode 100644 index 0e4e025..0000000 --- a/branches/1150807/Forms/UnderConstruction.aspx.designer.cs +++ /dev/null @@ -1,17 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms -{ - - - public partial class UnderConstruction - { - } -} diff --git a/branches/1150807/Forms/Web.Debug.config b/branches/1150807/Forms/Web.Debug.config deleted file mode 100644 index 44afa5d..0000000 --- a/branches/1150807/Forms/Web.Debug.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/branches/1150807/Forms/Web.Release.config b/branches/1150807/Forms/Web.Release.config deleted file mode 100644 index 3ff31fb..0000000 --- a/branches/1150807/Forms/Web.Release.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/branches/1150807/Forms/Web.config b/branches/1150807/Forms/Web.config deleted file mode 100644 index 7c80dd4..0000000 --- a/branches/1150807/Forms/Web.config +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/branches/1150807/Forms/基本資料/PlaceDetail.aspx b/branches/1150807/Forms/基本資料/PlaceDetail.aspx deleted file mode 100644 index af1f490..0000000 --- a/branches/1150807/Forms/基本資料/PlaceDetail.aspx +++ /dev/null @@ -1,205 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/PopupForm.Master" AutoEventWireup="true" CodeBehind="PlaceDetail.aspx.cs" Inherits="Education.Forms.基本資料.PlaceDetail" %> - -<%@ Register Assembly="WebLib" Namespace="WebLib" TagPrefix="weblib" %> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - - -   -
- - - - - - - - - - - -
- - - -
- - - -
-
-
-
diff --git a/branches/1150807/Forms/基本資料/PlaceDetail.aspx.cs b/branches/1150807/Forms/基本資料/PlaceDetail.aspx.cs deleted file mode 100644 index fff50cc..0000000 --- a/branches/1150807/Forms/基本資料/PlaceDetail.aspx.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.IO; -using WebLib; - -namespace Education.Forms.基本資料 -{ - public partial class PlaceDetail : FormBase - { - protected void Page_Load(object sender, EventArgs e) - { - FunctionName = "場地詳情"; - - Form_View = FormView1; - } - - protected override void FormView_ReadOnlyDataBound(object sender, EventArgs e) - { - base.FormView_ReadOnlyDataBound(sender, e); - - int 編號 = 0; - Label lb編號 = (Form_View.FindControl("lb編號") as Label); - if (lb編號 != null) - 編號 = DAC.GetInt32(lb編號.Text); - - Image image1 = (Form_View.FindControl("Image1") as Image); - if (image1 != null) - { - string[] tmp = image1.ImageUrl.Split('?'); - if (tmp.Length > 0 && !File.Exists(Server.MapPath(tmp[0]))) - { - image1.ImageUrl = "~/picture/nopicture.jpg"; - image1.Attributes.Remove("onclick"); - image1.Style.Remove("cursor"); - } - else - { - image1.Attributes.Add("onclick", GetOpenWindowJS("../Common/ShowLargePicture.aspx", "_picture", "pic", String.Format(Education.PublicVariable.場地照片路徑 + "{0:000000}_1.jpg", 編號))); - image1.Style.Add("cursor", "pointer"); - } - } - - Image image2 = (Form_View.FindControl("Image2") as Image); - if (image2 != null) - { - string[] tmp = image2.ImageUrl.Split('?'); - if (tmp.Length > 0 && !File.Exists(Server.MapPath(tmp[0]))) - { - image2.ImageUrl = "~/picture/nopicture.jpg"; - image2.Attributes.Remove("onclick"); - image2.Style.Remove("cursor"); - } - else - { - image2.Attributes.Add("onclick", GetOpenWindowJS("../Common/ShowLargePicture.aspx", "_picture", "pic", String.Format(Education.PublicVariable.場地照片路徑 + "{0:000000}_2.jpg", 編號))); - image2.Style.Add("cursor", "pointer"); - } - } - } - - protected void dsForm_ObjectCreating(object sender, ObjectDataSourceEventArgs e) - { - e.ObjectInstance = Dao場地; - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/基本資料/PlaceDetail.aspx.designer.cs b/branches/1150807/Forms/基本資料/PlaceDetail.aspx.designer.cs deleted file mode 100644 index 091aa05..0000000 --- a/branches/1150807/Forms/基本資料/PlaceDetail.aspx.designer.cs +++ /dev/null @@ -1,35 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.基本資料 -{ - - - public partial class PlaceDetail - { - - /// - /// dsForm 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource dsForm; - - /// - /// FormView1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.FormView FormView1; - } -} diff --git a/branches/1150807/Forms/基本資料/TeacherDetail.aspx b/branches/1150807/Forms/基本資料/TeacherDetail.aspx deleted file mode 100644 index 70a0101..0000000 --- a/branches/1150807/Forms/基本資料/TeacherDetail.aspx +++ /dev/null @@ -1,196 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/PopupForm.Master" AutoEventWireup="true" CodeBehind="TeacherDetail.aspx.cs" Inherits="Education.Forms.基本資料.TeacherDetail" %> - -<%@ Register Assembly="WebLib" Namespace="WebLib" TagPrefix="weblib" %> - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - -
- - - - - - -
- - - - - - -
- - - -   - - - - -   - - - - -   -
- - - -
- - - -
- - - -
- - - -
-
-
- -
-
-
-
-
diff --git a/branches/1150807/Forms/基本資料/TeacherDetail.aspx.cs b/branches/1150807/Forms/基本資料/TeacherDetail.aspx.cs deleted file mode 100644 index 4319a89..0000000 --- a/branches/1150807/Forms/基本資料/TeacherDetail.aspx.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.IO; -using WebLib; - -namespace Education.Forms.基本資料 -{ - public partial class TeacherDetail : FormBase - { - protected void Page_Load(object sender, EventArgs e) - { - FunctionName = "講師查詢"; - - Form_View = FormView1; - } - - protected override void FormView_ReadOnlyDataBound(object sender, EventArgs e) - { - base.FormView_ReadOnlyDataBound(sender, e); - int 編號 = 0; - Label lb編號 = (Form_View.FindControl("lb編號") as Label); - if (lb編號 != null) - 編號 = DAC.GetInt32(lb編號.Text); - - Image image1 = (Form_View.FindControl("Image1") as Image); - if (image1 != null) - { - string[] tmp = image1.ImageUrl.Split('?'); - if (tmp.Length > 0 && !File.Exists(Server.MapPath(tmp[0]))) - { - image1.ImageUrl = "~/picture/nopicture.jpg"; - image1.Attributes.Remove("onclick"); - image1.Style.Remove("cursor"); - } - else - { - image1.Attributes.Add("onclick", GetOpenWindowJS("../Common/ShowLargePicture.aspx", "_picture", "pic", String.Format(Education.PublicVariable.講師照片路徑 + "{0:000000}.jpg", 編號))); - image1.Style.Add("cursor", "pointer"); - } - } - } - - protected void dsForm_ObjectCreating(object sender, ObjectDataSourceEventArgs e) - { - e.ObjectInstance = Dao講師; - } - } -} \ No newline at end of file diff --git a/branches/1150807/Forms/基本資料/TeacherDetail.aspx.designer.cs b/branches/1150807/Forms/基本資料/TeacherDetail.aspx.designer.cs deleted file mode 100644 index ffb10b7..0000000 --- a/branches/1150807/Forms/基本資料/TeacherDetail.aspx.designer.cs +++ /dev/null @@ -1,35 +0,0 @@ -//------------------------------------------------------------------------------ -// <自動產生> -// 這段程式碼是由工具產生的。 -// -// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生 -// 程式碼,則會遺失變更。 -// -//------------------------------------------------------------------------------ - -namespace Education.Forms.基本資料 -{ - - - public partial class TeacherDetail - { - - /// - /// dsForm 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.ObjectDataSource dsForm; - - /// - /// FormView1 控制項。 - /// - /// - /// 自動產生的欄位。 - /// 若要修改,請將欄位宣告從設計工具檔案移到程式碼後置檔案。 - /// - protected global::System.Web.UI.WebControls.FormView FormView1; - } -} diff --git a/branches/1150807/Forms/基本資料/場地基本資料.aspx b/branches/1150807/Forms/基本資料/場地基本資料.aspx deleted file mode 100644 index 3943ff8..0000000 --- a/branches/1150807/Forms/基本資料/場地基本資料.aspx +++ /dev/null @@ -1,1034 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/Site2.Master" - AutoEventWireup="true" CodeBehind="場地基本資料.aspx.cs" Inherits="Education.Forms.基本資料.場地基本資料" %> - -<%@ Register Assembly="WebLib" Namespace="WebLib" TagPrefix="weblib" %> - - - - 處理 - 查詢 -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - - -
- - - - - - - -
- - - - -
- - - - - - - -
- 查詢 - 清除 -
- -
-
- - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - -
- - - - - - - - - - - -
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - -   -
- - - - - - - - - - - - - 刪除照片 - - 刪除照片 -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - - - - - -
-
- - - -
- - - - 上傳照片一 - - -
-
- - - - 上傳照片二 - - -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - - - - - -
-
-
- - - -
- - - - - - - - - - - -
- - - -
- - - -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - - - - - -
-
-
- - - -
- - - - - - - - - - - -
- - - -
- - - -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -   - -  
- -   - -  
- -   - -   - -  
- -  
- -  
- -  
- -   - -   - -  
- -  
- -  
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-
diff --git a/branches/1150807/Forms/基本資料/場地基本資料.aspx.cs b/branches/1150807/Forms/基本資料/場地基本資料.aspx.cs deleted file mode 100644 index c53d577..0000000 --- a/branches/1150807/Forms/基本資料/場地基本資料.aspx.cs +++ /dev/null @@ -1,354 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.IO; -using WebLib; - -namespace Education.Forms.基本資料 -{ - public partial class 場地基本資料 : FormBase - { - private bool fileOK = false; - private int 新編號; - private string 圖檔儲存路徑; - - protected void Page_Load(object sender, EventArgs e) - { - FunctionName = "場地基本資料"; - 圖檔儲存路徑 = Server.MapPath(Education.PublicVariable.場地照片路徑); - - Form_View = FormView1; - Grid_View = GridView1; - FormView_DataSource = dsForm; - GridView_DataSource = dsGrid; - - AddTabButton(MultiView1, 0, btnSearchTab); - AddTabButton(MultiView1, 1, btnProcessTab); - - if (!IsPostBack) - { - BindSearchDDL(); - ActivateTab(MultiView1, 1); - } - else - { - Grid_View.DataBind(); - Form_View.DataBind(); - } - - if (Form_View.CurrentMode != FormViewMode.ReadOnly) - { - Grid_View.Visible = false; - } - } - - private void BindSearchDDL() - { - ddl場地地區.DataSource = Dao場地.Select地區ForDropDown(); - ddl場地地區.DataTextField = "Name"; - ddl場地地區.DataValueField = "Value"; - ddl場地地區.DataBind(); - - ddl場地教室類型.DataSource = Dao場地.Select教室類型ForDropDown(); - ddl場地教室類型.DataTextField = "Name"; - ddl場地教室類型.DataValueField = "Value"; - ddl場地教室類型.DataBind(); - } - - protected override void CalcFields(object sender, ObjectDataSourceMethodEventArgs e) - { - base.CalcFields(sender, e); - } - - protected override void FormView_ReadOnlyDataBound(object sender, EventArgs e) - { - base.FormView_ReadOnlyDataBound(sender, e); - - int 編號 = 0; - Label lb編號 = FindControl