diff --git a/BackEnd/api/exportBabyRec.ashx.cs b/BackEnd/api/exportBabyRec.ashx.cs index a0757dc..f462856 100644 --- a/BackEnd/api/exportBabyRec.ashx.cs +++ b/BackEnd/api/exportBabyRec.ashx.cs @@ -117,15 +117,53 @@ namespace abbott_2024_event.BackEnd.api int pageNum = 4; foreach (babyRec rec in babyRecs) { - string baby_inpercent = ""; + - if (rec.babyRec_inpercent > 97) + string inpercent = ""; + + + switch (rec.babyRec_inpercent) { - baby_inpercent = "大於 97%"; - } - else - { - baby_inpercent = rec.babyRec_inpercent.ToString() + "%"; + case 3: + { + inpercent = "0%~3%"; + break; + } + case 15: + { + inpercent = "3%~15%"; + break; + } + case 25: + { + inpercent = "15%~25%"; + break; + } + case 50: + { + inpercent = "25%~50%"; + break; + } + case 75: + { + inpercent = "50%~75%"; + break; + } + case 85: + { + inpercent = "75%~85%"; + break; + } + case 97: + { + inpercent = "85%~97%"; + break; + } + case 100: + { + inpercent = "97%~100%"; + break; + } } @@ -133,7 +171,7 @@ namespace abbott_2024_event.BackEnd.api excelRow.CreateCell(0).SetCellValue(rec.babyRec_recdate.ToString("yyyy/MM/dd")); excelRow.CreateCell(1).SetCellValue(rec.babyRec_yearMonthStr); excelRow.CreateCell(2).SetCellValue(rec.babyRec_height); - excelRow.CreateCell(3).SetCellValue(baby_inpercent); + excelRow.CreateCell(3).SetCellValue(inpercent); pageNum++; } diff --git a/BackEnd/api/exportExcel.ashx.cs b/BackEnd/api/exportExcel.ashx.cs index 8341a19..09262c7 100644 --- a/BackEnd/api/exportExcel.ashx.cs +++ b/BackEnd/api/exportExcel.ashx.cs @@ -19,6 +19,7 @@ using System.Data.SqlClient; using System.Runtime.Remoting; using Dapper; using System.Linq; +using NPOI.SS.Formula.Functions; namespace abbott_2024_event.BackEnd.api { @@ -108,17 +109,53 @@ namespace abbott_2024_event.BackEnd.api baby_gender = "女"; } - string baby_inpercent = ""; + string inpercent = ""; - if (view.babyRec_inpercent > 97) - { - baby_inpercent = "大於 97%"; - } - else { - baby_inpercent = view.babyRec_inpercent.ToString() + "%"; - } + switch (view.babyRec_inpercent) + { + case 3: + { + inpercent = "0%~3%"; + break; + } + case 15: + { + inpercent = "3%~15%"; + break; + } + case 25: + { + inpercent = "15%~25%"; + break; + } + case 50: + { + inpercent = "25%~50%"; + break; + } + case 75: + { + inpercent = "50%~75%"; + break; + } + case 85: + { + inpercent = "75%~85%"; + break; + } + case 97: + { + inpercent = "85%~97%"; + break; + } + case 100: + { + inpercent = "97%~100%"; + break; + } + } HSSFRow excelRow = (HSSFRow)sheet.CreateRow(pageNum); excelRow.CreateCell(0).SetCellValue(view.line_uid); @@ -129,7 +166,7 @@ namespace abbott_2024_event.BackEnd.api excelRow.CreateCell(5).SetCellValue(view.babyRec_recdate.ToString("yyyy/MM/dd")); excelRow.CreateCell(6).SetCellValue(view.babyRec_yearMonthStr); excelRow.CreateCell(7).SetCellValue(view.babyRec_height); - excelRow.CreateCell(8).SetCellValue(baby_inpercent); + excelRow.CreateCell(8).SetCellValue(inpercent); pageNum++; } diff --git a/BackEnd/assets/javascript/custom/userList.js b/BackEnd/assets/javascript/custom/userList.js index 3fc7396..2f0f660 100644 --- a/BackEnd/assets/javascript/custom/userList.js +++ b/BackEnd/assets/javascript/custom/userList.js @@ -274,6 +274,50 @@ function loadDataTable() { inpercent = item.baby_percent + '%'; } + switch (item.baby_percent) { + case 3: + { + inpercent = '0%~3%'; + break; + } + case 15: + { + inpercent = '3%~15%'; + break; + } + case 25: + { + inpercent = '15%~25%'; + break; + } + case 50: + { + inpercent = '25%~50%'; + break; + } + case 75: + { + inpercent = '50%~75%'; + break; + } + case 85: + { + inpercent = '75%~85%'; + break; + } + case 97: + { + inpercent = '85%~97%'; + break; + } + case 100: + { + inpercent = '97%~100%'; + break; + } + + } + htmlString += ""; htmlString += " " + item.baby_name + "(" + gender + ")"; htmlString += " 生日:" + item.baby_birthday + ""; @@ -386,13 +430,56 @@ function initSubTable() { orderable: false, searchable: false, render: function render(data, type, row, meta) { + var inpercent = ""; + + + switch (row.babyRec_inpercent) { + case 3: + { + inpercent = '0%~3%'; + break; + } + case 15: + { + inpercent = '3%~15%'; + break; + } + case 25: + { + inpercent = '15%~25%'; + break; + } + case 50: + { + inpercent = '25%~50%'; + break; + } + case 75: + { + inpercent = '50%~75%'; + break; + } + case 85: + { + inpercent = '75%~85%'; + break; + } + case 97: + { + inpercent = '85%~97%'; + break; + } + case 100: + { + inpercent = '97%~100%'; + break; + } - if (row.babyRec_inpercent > 97) { - return "> 97%"; - } else { - return row.babyRec_inpercent + "%" } + + return inpercent; + } } diff --git a/bin/abbott_2024_event.dll b/bin/abbott_2024_event.dll index 036f1c2..8f3851c 100644 Binary files a/bin/abbott_2024_event.dll and b/bin/abbott_2024_event.dll differ diff --git a/bin/app.publish/BackEnd/Main.Master b/bin/app.publish/BackEnd/Main.Master index 076b5e9..fc11cdc 100644 --- a/bin/app.publish/BackEnd/Main.Master +++ b/bin/app.publish/BackEnd/Main.Master @@ -154,7 +154,11 @@ - + + <%-- + --%> + + diff --git a/bin/app.publish/BackEnd/api/babyRecList.ashx b/bin/app.publish/BackEnd/api/babyRecList.ashx new file mode 100644 index 0000000..da814e3 --- /dev/null +++ b/bin/app.publish/BackEnd/api/babyRecList.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="babyRecList.ashx.cs" Class="abbott_2024_event.BackEnd.api.babyRecList" %> diff --git a/bin/app.publish/BackEnd/api/exportBabyRec.ashx b/bin/app.publish/BackEnd/api/exportBabyRec.ashx new file mode 100644 index 0000000..5a621c7 --- /dev/null +++ b/bin/app.publish/BackEnd/api/exportBabyRec.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="exportBabyRec.ashx.cs" Class="abbott_2024_event.BackEnd.api.exportBabyRec" %> diff --git a/bin/app.publish/BackEnd/api/exportExcel.ashx b/bin/app.publish/BackEnd/api/exportExcel.ashx new file mode 100644 index 0000000..8863e88 --- /dev/null +++ b/bin/app.publish/BackEnd/api/exportExcel.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="exportExcel.ashx.cs" Class="abbott_2024_event.BackEnd.api.exportExcel" %> diff --git a/bin/app.publish/BackEnd/api/lineData.ashx b/bin/app.publish/BackEnd/api/lineData.ashx new file mode 100644 index 0000000..4498366 --- /dev/null +++ b/bin/app.publish/BackEnd/api/lineData.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="lineData.ashx.cs" Class="abbott_2024_event.BackEnd.api.lineData" %> diff --git a/bin/app.publish/BackEnd/api/userList.ashx b/bin/app.publish/BackEnd/api/userList.ashx new file mode 100644 index 0000000..aa52d18 --- /dev/null +++ b/bin/app.publish/BackEnd/api/userList.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="userList.ashx.cs" Class="abbott_2024_event.BackEnd.api.userList" %> diff --git a/bin/app.publish/BackEnd/assets/javascript/custom/userList.js b/bin/app.publish/BackEnd/assets/javascript/custom/userList.js index 2d3dd97..2f0f660 100644 --- a/bin/app.publish/BackEnd/assets/javascript/custom/userList.js +++ b/bin/app.publish/BackEnd/assets/javascript/custom/userList.js @@ -1,4 +1,7 @@  +var oTable; +var oPos; + $(document).ready(function () { var actualDate = new Date(); // convert to actual date var prevDate = new Date(actualDate.getFullYear(), actualDate.getMonth() - 6, actualDate.getDate()); @@ -16,4 +19,477 @@ $(document).ready(function () { language: "zh-TW", autoclose: true }); -}); \ No newline at end of file + + var start = $("#startDate").val(); + var end = $("#endDate").val(); + var gender = $("#gender_select").val(); + var min_age = $("#age_start").val(); + var max_age = $("#age_end").val(); + + $('#export_btn').click(function () { + var start = $("#startDate").val(); + var end = $("#endDate").val(); + var gender = $("#gender_select").val(); + var min_age = $("#age_start").val(); + var max_age = $("#age_end").val(); + + var url = "api/exportExcel.ashx?start=" + start + "&end=" + end + "&gender=" + gender + "&min_age=" + min_age + "&max_age=" + max_age; + window.open(url); + }); + + //$.ajax({ + // url: "api/userList.ashx", + // type: "POST", + // data: formData, + // success: function (data, textStatus, jqXHR) { + // if (data.ret == "yes") { + // location.href = "userList.aspx"; + // } else { + // alert(data.message); + // } + // }, + // error: function (jqXHR, textStatus, errorThrown) { + // alert('网絡或伺服器发生错误,请稍后重试!'); + // } + //}); + + + loadDataTable(); + + initSubTable(); + + + $('#baby_select').on('change', function () { + loadBabyRec(); + }); + + $('#downloadBtn').click(function () { + var line_uid = $('#line_uid_data').val(); + var baby_uid = $('#baby_select').val(); + + + var url = "api/exportBabyRec.ashx?line_uid=" + line_uid + "&baby_uid=" + baby_uid; + window.open(url); + + }); + +}); + +function loadBabyRec() { + var baby_uid = $('#baby_select').val(); + + var formData = { + baby_uid: baby_uid + } + + $.ajax({ + url: "api/babyRecList.ashx", + type: "POST", + data: formData, + success: function (data, textStatus, jqXHR) { + if (data.ret == "yes") { + $('#dt-responsive-baby').dataTable().fnClearTable(); + if (data.recs.length > 0) { + + $('#dt-responsive-baby').dataTable().fnAddData(data.recs); + } + + } else { + alert(data.message); + + } + }, + error: function (jqXHR, textStatus, errorThrown) { + alert('网絡或伺服器发生错误,请稍后重试!'); + } + }); +} + +function buttonClick(obj) { + var uid = obj.getAttribute('data-uid'); + + var formData = { + line_uid: uid + } + + $('#line_uid_data').val(uid); + + $.ajax({ + url: "api/lineData.ashx", + type: "POST", + data: formData, + success: function (data, textStatus, jqXHR) { + if (data.ret == "yes") { + $('#LineTitle').val("Line 名稱:" + data.user.line_displayName + ", Line Uid:" + data.user.line_uid); + + $("#baby_select option").remove(); + + $.each(data.user.babyDatas, function (i, item) { + + var gender = ""; + + if (item.baby_gender == "M") { + gender = "男"; + } else { + gender = "女"; + } + + var babyTxt = item.baby_name + " (" + gender + "), 生日:" + item.baby_birthday; + + $("#baby_select").append($("").attr("value", item.baby_uid).text(babyTxt)); + }); + + loadBabyRec(); + + $('#clientHistoryListModal').modal('toggle'); + + } else { + alert(data.message); + + } + }, + error: function (jqXHR, textStatus, errorThrown) { + alert('网絡或伺服器发生错误,请稍后重试!'); + } + }); + + +} + +function loadDataTable() { + var dataTables = { + init: function init() { + + this.bindUIActions(); + }, + bindUIActions: function bindUIActions() { + + // event handlers + this.table = this.handleDataTables(); + + // add buttons + //this.table.buttons().container().appendTo('#dt-buttons').unwrap(); + }, + handleDataTables: function handleDataTables() { + //$('#myTable').append(""); + return $('#myTable').DataTable({ + dom: '<\'text-muted\'Bif>\n <\'table-responsive\'trl>\n <\'mt-4\'p>', + lengthChange: true, + lengthMenu: [[25, 50, 100, -1], [25, 50, 100, "All"]], + pageLength: 50, + buttons: [ + //{ + // text: 'Excel', + // action: function (e, dt, node, config) { + + // var start = $("#startDate").val(); + // var end = $("#endDate").val(); + // var gender = $("#gender_select").val(); + // var min_age = $("#age_start").val(); + // var max_age = $("#age_end").val(); + + // var url = "api/exportExcel.ashx?start=" + start + "&end=" + end + "&gender=" + gender + "&min_age=" + min_age + "&max_age=" + max_age; + // window.open(url); + + // } + //} + ], + language: { + paginate: { + previous: '', + next: '' + }, + buttons: { + copyTitle: 'Data copied', + copyKeys: 'Use your keyboard or menu to select the copy command' + } + }, + autoWidth: false, + ajax: { + url: 'Api/userList.ashx', + type: 'POST', + data: function (d) { + Object.assign(d, { + start: $("#startDate").val(), + end: $("#endDate").val(), + gender: $("#gender_select").val(), + min_age: $("#age_start").val(), + max_age: $("#age_end").val() + }); + + return d; + }, + dataSrc: 'datas' + }, + rowId: 'line_uid', + deferRender: true, + initComplete: function () { + //mainItemTable = $('#dt-responsive').dataTable(); + $('#myTable').on('click', 'a', function () { + buttonClick(this); + }); + + $('#myTable').on('click', 'button', function () { + buttonClick(this); + }); + + + }, + order: [[2, 'desc']], + info: true, + search: "搜尋:", + searching: true, + columns: [ + { data: 'line_displayName', className: 'align-middle text-left', orderable: true, searchable: true }, + { data: 'line_uid', className: 'align-middle text-left', orderable: false, searchable: true }, + { data: 'testdate', className: 'align-top text-center', orderable: false, searchable: false, visible: false }, + { data: 'line_uid', className: 'align-middle text-left', orderable: false, searchable: false }, + { data: 'line_uid', className: 'align-middle text-center', orderable: false, searchable: false } + ], + columnDefs: [ + { + targets: 3, + className: 'align-middle text-left', + orderable: false, + searchable: true, + render: function render(data, type, row, meta) { + var gender = ''; + var inpercent = ''; + + + + + var htmlString = ''; + + $.each(row.babyDatas, function (i, item) { + if (item.baby_gender == 'M') { + gender = '男'; + } else { + gender = '女'; + } + + if (item.baby_percent > 97) { + inpercent = '> 97%'; + } else { + inpercent = item.baby_percent + '%'; + } + + switch (item.baby_percent) { + case 3: + { + inpercent = '0%~3%'; + break; + } + case 15: + { + inpercent = '3%~15%'; + break; + } + case 25: + { + inpercent = '15%~25%'; + break; + } + case 50: + { + inpercent = '25%~50%'; + break; + } + case 75: + { + inpercent = '50%~75%'; + break; + } + case 85: + { + inpercent = '75%~85%'; + break; + } + case 97: + { + inpercent = '85%~97%'; + break; + } + case 100: + { + inpercent = '97%~100%'; + break; + } + + } + + htmlString += ""; + htmlString += " " + item.baby_name + "(" + gender + ")"; + htmlString += " 生日:" + item.baby_birthday + ""; + htmlString += " 測驗日期:" + item.baby_testdate + ""; + htmlString += " 年齡:" + item.baby_age + ""; + htmlString += " 身高:" + item.baby_height + " cm "; + htmlString += " 成長百分比:" + inpercent + ""; + htmlString += ""; + + }); + + htmlString = "" + htmlString + "
"; + + return htmlString; + + //return '' + row.company_name + ''; + + } + }, + { + targets: 4, + orderable: false, + searchable: false, + render: function render(data, type, row, meta) { + var ret = ''; + + ret += ''; + return ret; + } + } + + ] + }); + }, + handleSearchRecords: function handleSearchRecords() { + var self = this; + + $('#table-search, #filterBy').on('keyup change focus', function (e) { + var filterBy = $('#filterBy').val(); + var hasFilter = filterBy !== ''; + var value = $('#table-search').val(); + + self.table.search('').columns().search('').draw(); + + if (hasFilter) { + self.table.columns(filterBy).search(value).draw(); + } else { + self.table.search(value).draw(); + } + + }); + } + } + + dataTables.init(); +} + +function initSubTable() { + $("#dt-responsive-baby").DataTable({ + dom: '<\'text-muted\'Bi>\n <\'table-fixed\'trl>\n <\'mt-4\'p>', + lengthChange: true, + lengthMenu: [[10, 25, 50, -1], [10, 25, 50, "All"]], + pageLength: 25, + buttons: [], + language: { + paginate: { + previous: '', + next: '' + }, + buttons: { + copyTitle: 'Data copied', + copyKeys: 'Use your keyboard or menu to select the copy command' + } + }, + deferRender: true, + rowId: 'babyRec_uid', + deferRender: true, + order: [[0, 'desc']], + columns: [ + { data: 'babyRec_recdate', className: 'align-middle text-left', orderable: true, searchable: false }, + { data: 'babyRec_yearMonthStr', className: 'align-middle text-left', orderable: true, searchable: false }, + { data: 'babyRec_height', className: 'align-middle text-left', orderable: true, searchable: false }, + { data: 'babyRec_inpercent', className: 'align-middle text-left', orderable: true, searchable: false } + ], + columnDefs: [ + { + targets: 0, + orderable: true, + searchable: false, + render: function render(data, type, row, meta) { + tMonth = row.babyRec_recMonth; + tDay = row.babyRec_recDay; + + if (tDay < 10) { + tDay = '0' + tDay; + } + + if (tMonth < 10) { + tMonth = '0' + tMonth; + } + + return row.babyRec_recYear + "/" + tMonth + "/" + tDay; + + + + } + }, + { + targets: 3, + orderable: false, + searchable: false, + render: function render(data, type, row, meta) { + var inpercent = ""; + + + switch (row.babyRec_inpercent) { + case 3: + { + inpercent = '0%~3%'; + break; + } + case 15: + { + inpercent = '3%~15%'; + break; + } + case 25: + { + inpercent = '15%~25%'; + break; + } + case 50: + { + inpercent = '25%~50%'; + break; + } + case 75: + { + inpercent = '50%~75%'; + break; + } + case 85: + { + inpercent = '75%~85%'; + break; + } + case 97: + { + inpercent = '85%~97%'; + break; + } + case 100: + { + inpercent = '97%~100%'; + break; + } + + } + + + return inpercent; + + + } + } + + ], + initComplete: function () { + + }, + info: false, + ordering: true, + paging: true + }); +} \ No newline at end of file diff --git a/bin/app.publish/BackEnd/assets/javascript/pages/dataTables.fixedHeader.min.js b/bin/app.publish/BackEnd/assets/javascript/pages/dataTables.fixedHeader.min.js new file mode 100644 index 0000000..6ab2ab0 --- /dev/null +++ b/bin/app.publish/BackEnd/assets/javascript/pages/dataTables.fixedHeader.min.js @@ -0,0 +1,18 @@ +/*! + FixedHeader 3.1.5 + ©2009-2018 SpryMedia Ltd - datatables.net/license +*/ +(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(g){return d(g,window,document)}):"object"===typeof exports?module.exports=function(g,i){g||(g=window);if(!i||!i.fn.dataTable)i=require("datatables.net")(g,i).$;return d(i,g,g.document)}:d(jQuery,window,document)})(function(d,g,i,k){var j=d.fn.dataTable,l=0,h=function(a,b){if(!(this instanceof h))throw"FixedHeader must be initialised with the 'new' keyword.";!0===b&&(b={});a=new j.Api(a);this.c=d.extend(!0, +{},h.defaults,b);this.s={dt:a,position:{theadTop:0,tbodyTop:0,tfootTop:0,tfootBottom:0,width:0,left:0,tfootHeight:0,theadHeight:0,windowHeight:d(g).height(),visible:!0},headerMode:null,footerMode:null,autoWidth:a.settings()[0].oFeatures.bAutoWidth,namespace:".dtfc"+l++,scrollLeft:{header:-1,footer:-1},enable:!0};this.dom={floatingHeader:null,thead:d(a.table().header()),tbody:d(a.table().body()),tfoot:d(a.table().footer()),header:{host:null,floating:null,placeholder:null},footer:{host:null,floating:null, +placeholder:null}};this.dom.header.host=this.dom.thead.parent();this.dom.footer.host=this.dom.tfoot.parent();var e=a.settings()[0];if(e._fixedHeader)throw"FixedHeader already initialised on table "+e.nTable.id;e._fixedHeader=this;this._constructor()};d.extend(h.prototype,{enable:function(a){this.s.enable=a;this.c.header&&this._modeChange("in-place","header",!0);this.c.footer&&this.dom.tfoot.length&&this._modeChange("in-place","footer",!0);this.update()},headerOffset:function(a){a!==k&&(this.c.headerOffset= +a,this.update());return this.c.headerOffset},footerOffset:function(a){a!==k&&(this.c.footerOffset=a,this.update());return this.c.footerOffset},update:function(){this._positions();this._scroll(!0)},_constructor:function(){var a=this,b=this.s.dt;d(g).on("scroll"+this.s.namespace,function(){a._scroll()}).on("resize"+this.s.namespace,j.util.throttle(function(){a.s.position.windowHeight=d(g).height();a.update()},50));var e=d(".fh-fixedHeader");!this.c.headerOffset&&e.length&&(this.c.headerOffset=e.outerHeight()); +e=d(".fh-fixedFooter");!this.c.footerOffset&&e.length&&(this.c.footerOffset=e.outerHeight());b.on("column-reorder.dt.dtfc column-visibility.dt.dtfc draw.dt.dtfc column-sizing.dt.dtfc responsive-display.dt.dtfc",function(){a.update()});b.on("destroy.dtfc",function(){a.c.header&&a._modeChange("in-place","header",true);a.c.footer&&a.dom.tfoot.length&&a._modeChange("in-place","footer",true);b.off(".dtfc");d(g).off(a.s.namespace)});this._positions();this._scroll()},_clone:function(a,b){var e=this.s.dt, +c=this.dom[a],f="header"===a?this.dom.thead:this.dom.tfoot;!b&&c.floating?c.floating.removeClass("fixedHeader-floating fixedHeader-locked"):(c.floating&&(c.placeholder.remove(),this._unsize(a),c.floating.children().detach(),c.floating.remove()),c.floating=d(e.table().node().cloneNode(!1)).css("table-layout","fixed").attr("aria-hidden","true").removeAttr("id").append(f).appendTo("body"),c.placeholder=f.clone(!1),c.placeholder.find("*[id]").removeAttr("id"),c.host.prepend(c.placeholder),this._matchWidths(c.placeholder, +c.floating))},_matchWidths:function(a,b){var e=function(b){return d(b,a).map(function(){return d(this).width()}).toArray()},c=function(a,c){d(a,b).each(function(a){d(this).css({width:c[a],minWidth:c[a]})})},f=e("th"),e=e("td");c("th",f);c("td",e)},_unsize:function(a){var b=this.dom[a].floating;b&&("footer"===a||"header"===a&&!this.s.autoWidth)?d("th, td",b).css({width:"",minWidth:""}):b&&"header"===a&&d("th, td",b).css("min-width","")},_horizontal:function(a,b){var e=this.dom[a],c=this.s.position, +d=this.s.scrollLeft;e.floating&&d[a]!==b&&(e.floating.css("left",c.left-b),d[a]=b)},_modeChange:function(a,b,e){var c=this.dom[b],f=this.s.position,g=this.dom["footer"===b?"tfoot":"thead"],h=d.contains(g[0],i.activeElement)?i.activeElement:null;h&&h.blur();if("in-place"===a){if(c.placeholder&&(c.placeholder.remove(),c.placeholder=null),this._unsize(b),"header"===b?c.host.prepend(g):c.host.append(g),c.floating)c.floating.remove(),c.floating=null}else"in"===a?(this._clone(b,e),c.floating.addClass("fixedHeader-floating").css("header"=== +b?"top":"bottom",this.c[b+"Offset"]).css("left",f.left+"px").css("width",f.width+"px"),"footer"===b&&c.floating.css("top","")):"below"===a?(this._clone(b,e),c.floating.addClass("fixedHeader-locked").css("top",f.tfootTop-f.theadHeight).css("left",f.left+"px").css("width",f.width+"px")):"above"===a&&(this._clone(b,e),c.floating.addClass("fixedHeader-locked").css("top",f.tbodyTop).css("left",f.left+"px").css("width",f.width+"px"));h&&h!==i.activeElement&&setTimeout(function(){h.focus()},10);this.s.scrollLeft.header= +-1;this.s.scrollLeft.footer=-1;this.s[b+"Mode"]=a},_positions:function(){var a=this.s.dt.table(),b=this.s.position,e=this.dom,a=d(a.node()),c=a.children("thead"),f=a.children("tfoot"),e=e.tbody;b.visible=a.is(":visible");b.width=a.outerWidth();b.left=a.offset().left;b.theadTop=c.offset().top;b.tbodyTop=e.offset().top;b.theadHeight=b.tbodyTop-b.theadTop;f.length?(b.tfootTop=f.offset().top,b.tfootBottom=b.tfootTop+f.outerHeight(),b.tfootHeight=b.tfootBottom-b.tfootTop):(b.tfootTop=b.tbodyTop+e.outerHeight(), +b.tfootBottom=b.tfootTop,b.tfootHeight=b.tfootTop)},_scroll:function(a){var b=d(i).scrollTop(),e=d(i).scrollLeft(),c=this.s.position,f;if(this.s.enable&&(this.c.header&&(f=!c.visible||b<=c.theadTop-this.c.headerOffset?"in-place":b<=c.tfootTop-c.theadHeight-this.c.headerOffset?"in":"below",(a||f!==this.s.headerMode)&&this._modeChange(f,"header",a),this._horizontal("header",e)),this.c.footer&&this.dom.tfoot.length))b=!c.visible||b+c.windowHeight>=c.tfootBottom+this.c.footerOffset?"in-place":c.windowHeight+ +b>c.tbodyTop+c.tfootHeight+this.c.footerOffset?"in":"above",(a||b!==this.s.footerMode)&&this._modeChange(b,"footer",a),this._horizontal("footer",e)}});h.version="3.1.5";h.defaults={header:!0,footer:!1,headerOffset:0,footerOffset:0};d.fn.dataTable.FixedHeader=h;d.fn.DataTable.FixedHeader=h;d(i).on("init.dt.dtfh",function(a,b){if("dt"===a.namespace){var e=b.oInit.fixedHeader,c=j.defaults.fixedHeader;if((e||c)&&!b._fixedHeader)c=d.extend({},c,e),!1!==e&&new h(b,c)}});j.Api.register("fixedHeader()",function(){}); +j.Api.register("fixedHeader.adjust()",function(){return this.iterator("table",function(a){(a=a._fixedHeader)&&a.update()})});j.Api.register("fixedHeader.enable()",function(a){return this.iterator("table",function(b){b=b._fixedHeader;a=a!==k?a:!0;b&&a!==b.s.enable&&b.enable(a)})});j.Api.register("fixedHeader.disable()",function(){return this.iterator("table",function(a){(a=a._fixedHeader)&&a.s.enable&&a.enable(!1)})});d.each(["header","footer"],function(a,b){j.Api.register("fixedHeader."+b+"Offset()", +function(a){var c=this.context;return a===k?c.length&&c[0]._fixedHeader?c[0]._fixedHeader[b+"Offset"]():k:this.iterator("table",function(c){if(c=c._fixedHeader)c[b+"Offset"](a)})})});return h}); diff --git a/bin/app.publish/BackEnd/userList.aspx b/bin/app.publish/BackEnd/userList.aspx index cd6e7d9..ec33a27 100644 --- a/bin/app.publish/BackEnd/userList.aspx +++ b/bin/app.publish/BackEnd/userList.aspx @@ -33,7 +33,7 @@
-
+
@@ -81,10 +81,14 @@
-
+
+
+ + +
@@ -94,14 +98,12 @@ -   - 報價單編號 - 報價單名稱 - 收入(含稅) - 支出(含稅) - 客戶 - 發票狀態 - 備註 + + Line名稱 + Line UID + 測驗日期 + 寶寶資料 +   @@ -116,8 +118,79 @@
+ +
+ +
- + diff --git a/bin/app.publish/bin/abbott_2024_event.dll b/bin/app.publish/bin/abbott_2024_event.dll index 200851e..8f3851c 100644 Binary files a/bin/app.publish/bin/abbott_2024_event.dll and b/bin/app.publish/bin/abbott_2024_event.dll differ