跳到主要內容

醫院排班表 Sample

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="HOSPTIAL.aspx.vb" Inherits="HOSPTIAL" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>排班表維護</title>
</head>
    <body  >
      
            <form id="Form1" method="post" runat="server">
              
                <TABLE   width="98%"   align="center" border="0">
                    <TBODY>
                        <TR>
                            <TD ><h1> 排班表維護</h1></TD>
                        </TR>
                        <TR>
                            <TD  >
                              
                                                                        <table     width="100%" align="center" border="1">
                                                                            <tr>
                                                                                <td align="left">  月份
                                                                                        :
                                                                                        <span class="input-append date" id="datetimepicker1" data-date="">
                                                                                        <input type="text" id="calendar_Month" runat="server" class="span2 form-control" size="16" readonly>
                                                                                        <span class="add-on"> <img src="images/calendar.jpg"/> </span>
                                                                                        </span>   
                                                                                        班別 :
                                                                                        <asp:DropDownList id="f_dept_cd" runat="server" AutoPostBack="True"></asp:DropDownList>
                                                                                </td>
                                                                                <td align="right">    
                                                                                        <asp:Button id="Button1" runat="server" Text="查詢"  ></asp:Button>
                                                                                        <asp:button   id="PrintList" runat="server" Text="儲存"></asp:button>
                                                                             <asp:button   id="Button2" runat="server" Text="複製上月份"></asp:button>
                                                                            <asp:button   id="PrintmailList" runat="server" Text="取消" Visible="false"></asp:button> </td>
                                                                            </tr>
                                                                  
                                                                      
                                                                                <TR>
                                                                                    <TD align="middle" colspan="2" >
                                                                                        <asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder></TD>
                                                                                </TR>
                                                                          
                                                                        <TR>
                                                                        <TD align="right" colspan="2">&nbsp;</TD>
                                                                    </TR>
                                                                    <asp:TextBox id="f_income_code" runat="server" Visible="False"></asp:TextBox>
                                                                    <asp:literal id="msg" runat="server"></asp:literal>
                                                            </TABLE>
                                                      
                                                    </TD>
                                                  
                                                </TR>
                                          
                    </TABLE>
      
        </FORM>
    </body>
<script type="text/javascript">
    $(document).ready(function(){
        DateTimePickerInit('#datetimepicker1',1,1,"yyyy/mm")
    });
</script>  
</html>
----------------------------------------------------------------------------------------------------------------------------
Partial Public Class HOSPTIAL
    Inherits PageBase
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此加入要初始化頁面的使用者程式碼
        Dim sql As String
        Dim li As ListItem
        Dim reader As IDataReader
        Dim l_Task_Item_ID = Request("Task_Item_ID")
        msg.Text = ""
        If Not Page.IsPostBack() Then
            calendar_Month.Value = GetSysDate()
            Me.f_dept_cd.Items.Add(New ListItem("", ""))
            'sql = "select Code_No, Code_Nm  from Code1 where Code_Grp = 'E'"
            sql = "select Code_No, Code_Nm  from Code1 where Code_Grp = 'CS' "
            reader = DB.QueryGetDataReader(sql)
            While reader.Read()
                Me.f_dept_cd.Items.Add(New ListItem(Trim(reader.Item("Code_Nm")), Trim(reader.Item("Code_No"))))
            End While
            reader.Close()
            Call Build_Body(MonthType.Current)
        End If
        Call Build_Body(MonthType.Current)
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Call Build_Body(MonthType.Current)
    End Sub
    Sub ShowCalendar(ByVal l_year As String, ByVal l_month As String, ByVal mt As MonthType)
        Dim StartDate As String = FormatDateTime((CInt(l_year)) & "/" & CInt(l_month) & "/1", DateFormat.ShortDate)
        Dim MonthFirstWorkDay As String
        Dim MonthFirstWorkWeekDay As String
        Dim WeekFirstWorkDay As String
        Dim WeekFirstWorkWeekDay As String
        Dim DateIndex As String
        Dim count As Integer
        Dim HaveDates As Boolean = True
        MonthFirstWorkDay = StartDate
        MonthFirstWorkWeekDay = Weekday(MonthFirstWorkDay)
        WeekFirstWorkDay = MonthFirstWorkDay
        WeekFirstWorkWeekDay = MonthFirstWorkWeekDay
        Dim tmpTable As Table
        Dim tmpRow As TableRow
        tmpTable = New Table()
        tmpTable.Attributes.Item("border") = 1
        tmpTable.Attributes.Item("width") = "100%"
        tmpTable.Attributes.Item("BorderColor") = "#000000"
        '=====================================================
        '建立標頭
        '=====================================================
        Dim tmpTEXT As TableCell
        Dim InputWeekDay As Literal
        tmpTEXT = New TableCell()
        InputWeekDay = New Literal()
        InputWeekDay.Text = " "
        tmpTEXT.Attributes.Item("width") = "50px"
        tmpTEXT.Controls.Add(InputWeekDay)
        tmpRow = New TableRow()
        tmpRow.Controls.Add(tmpTEXT)
        For count = 1 To 7
            tmpTEXT = New TableCell()
            InputWeekDay = New Literal()
            InputWeekDay.Text = WeekdayName(count)
            tmpTEXT.Attributes.Item("width") = "70px"
            'tmpTEXT.Attributes.Item("bgcolor") = "#cccccc"
            tmpTEXT.Controls.Add(InputWeekDay)
            tmpRow.Controls.Add(tmpTEXT)
        Next
        tmpTable.Rows.Add(tmpRow)
        While HaveDates
            Dim tmpCell01 As TableCell = New TableCell()
            Dim tmpCell02 As TableCell = New TableCell()
            Dim title1 As Literal = New Literal()
            Dim title2 As Literal = New Literal()
            title1.Text = "日期"
            title2.Text = "人員"
            tmpCell01.Attributes.Item("width") = "30px"
            'tmpCell01.Attributes.Item("bgcolor") = "#ccffcc"
            tmpCell02.Attributes.Item("width") = "30px"
            tmpCell01.Controls.Add(title1)
            tmpCell02.Controls.Add(title2)
            '=====================================================
            '建立日期
            '=====================================================
            tmpRow = New TableRow()
            tmpRow.Controls.Add(tmpCell01)
            tmpTable.Rows.Add(tmpRow)
            For count = 1 To (WeekFirstWorkWeekDay - 1)
                tmpRow.Controls.Add(Create_Date_Cell("", count))
                tmpTable.Rows.Add(tmpRow)
            Next
            DateIndex = WeekFirstWorkDay
            For count = (WeekFirstWorkWeekDay) To 7
                If Month(DateIndex) = Month(StartDate) Then
                    tmpRow.Controls.Add(Create_Date_Cell(DateIndex, count))  '
                Else
                    tmpRow.Controls.Add(Create_Date_Cell("", count))
                End If
                DateIndex = DateAdd("d", 1, DateIndex)
                tmpTable.Rows.Add(tmpRow)
            Next

            '=======================================
            '建立人員
            '=======================================
            tmpRow = New TableRow()
            tmpRow.Controls.Add(tmpCell02)
            tmpTable.Rows.Add(tmpRow)
            For count = 1 To (WeekFirstWorkWeekDay - 1)
                tmpRow.Controls.Add(Create_Users_Cell("", mt))
                tmpTable.Rows.Add(tmpRow)
            Next
            DateIndex = WeekFirstWorkDay
            For count = (WeekFirstWorkWeekDay) To 7
                If Month(DateIndex) = Month(StartDate) Then
                    tmpRow.Controls.Add(Create_Users_Cell(DateIndex, mt))
                Else
                    tmpRow.Controls.Add(Create_Users_Cell("", mt))
                End If
                DateIndex = DateAdd("d", 1, DateIndex)
                tmpTable.Rows.Add(tmpRow)
            Next
            '計算下周起始日
            If Month(DateIndex) <> Month(StartDate) Then
                HaveDates = False
            Else
                WeekFirstWorkDay = DateAdd("d", 7 - WeekFirstWorkWeekDay + 1, WeekFirstWorkDay)
                If Month(WeekFirstWorkDay) <> Month(StartDate) Then
                    HaveDates = False
                End If
                WeekFirstWorkWeekDay = 1
            End If
        End While
        PlaceHolder1.Controls.Add(tmpTable)
    End Sub

    Private Function Create_Date_Cell(ByVal DateData As String, ByVal WeekDayData As String) As TableCell
        Dim tmpCell As TableCell
        Dim ShowDateData As Literal
        tmpCell = New TableCell()
        tmpCell.Attributes.Item("width") = "70px"
        'tmpCell.Attributes.Item("bgColor") = "#ccffcc"
        ShowDateData = New Literal()
        If DateData <> "" Then
            Dim dateArray = Split(DateData, "/")
            Dim l_year As String = ModifyString(CInt(dateArray(0)), 4, "0")
            Dim l_month As String = ModifyString(dateArray(1), 2, "0")
            Dim l_day As String = ModifyString(dateArray(2), 2, "0")
            ShowDateData.Text = l_year & "/" & l_month & "/" & l_day
        Else
            ShowDateData.Text = " "
        End If
        tmpCell.Controls.Add(ShowDateData)
        If DateData <> "" Then
            tmpCell.Controls.Add(ShowDateData)
        End If
        Return tmpCell
    End Function
    Private Function Create_Users_Cell(ByVal DateData As String, ByVal mt As MonthType) As TableCell
        Dim sql As String
        Dim li As ListItem
        Dim dr_list As DropDownList
        Dim dr_list2 As DropDownList
        'add machine no
        Dim machine1 As DropDownList
        Dim machine2 As DropDownList
        Dim tmpCell As TableCell
        Dim l_holiday As Literal
        tmpCell = New TableCell()
        dr_list = New DropDownList()
        dr_list2 = New DropDownList()
        machine1 = New DropDownList
        machine2 = New DropDownList
        l_holiday = New Literal()
        dr_list.Items.Insert(0, "")
        dr_list.AppendDataBoundItems = True
        dr_list2.Items.Insert(0, "")
        dr_list2.AppendDataBoundItems = True
        If DateData <> "" Then
            Dim dateArray = Split(DateData, "/")
            Dim l_year As String = ModifyString(CInt(dateArray(0)), 4, "0")
            Dim l_month As String = ModifyString(dateArray(1), 2, "0")
            Dim l_day As String = ModifyString(dateArray(2), 2, "0")
            dr_list.ID = "l_" & l_year & l_month & l_day & TimePeriod.AM.ToString
            dr_list2.ID = "l_" & l_year & l_month & l_day & TimePeriod.PM.ToString
            machine1.ID = "MC_l_" & l_year & l_month & l_day & TimePeriod.AM.ToString
            machine2.ID = "MC_l_" & l_year & l_month & l_day & TimePeriod.PM.ToString
            Dim subsql As String = ""
            Dim i As Integer

            Dim mcs As ArrayList = New ArrayList
            Dim instrument_order As String = ""
            Dim mcCount As String = "0"
            mcs.Add("99")
            mcs.Add("100")
            mcs.Add("102")
            mcs.Add("106")
            Dim result = From mx In mcs Where f_dept_cd.SelectedValue.Trim.StartsWith(mx.ToString.Trim) Select mx.ToString.Trim
            If result.Count > 0 Then
                Select Case result.FirstOrDefault.ToString.Trim
                    Case "99"
                        instrument_order = "MRI"
                    Case "100"
                        instrument_order = "ES"
                    Case "102"
                        instrument_order = "ECHO"
                    Case "106"
                        instrument_order = "CT"
                End Select
                mcCount = QueryGetValue(" select count(instrument_order) as mCount from BS_instrument  where instrument_order = '" & instrument_order & "'  group by instrument_order ")
                If Convert.ToInt32(mcCount) > 0 Then
                    For m As Integer = 0 To Convert.ToInt32(mcCount) - 1 Step 1
                        machine1.Items.Add(New ListItem("第" & Convert.ToString(m + 1) & "台", Convert.ToString(m + 1)))
                        machine2.Items.Add(New ListItem("第" & Convert.ToString(m + 1) & "台", Convert.ToString(m + 1)))
                    Next
                End If
            End If

            '====================
            '產生醫生選單
            '====================
            sql = " select Emp_No, ltrim(rtrim(Emp_No)) + ' ' + ltrim(rtrim(NameC)) as NameC  from Emp where VS_Flag = '1' "
            sql &= " AND EMP_NO NOT IN(SELECT EMP_NO FROM APS018 WHERE DT = '" & l_year & l_month & l_day & "' AND [Off] = '0' ) "
            Dim dtDr = From x In QueryGetDataTable(sql).AsEnumerable Select New With {.Emp_No = x.Field(Of String)("Emp_No").Trim, .NameC = x.Field(Of String)("NameC").Trim}
            dr_list.DataSource = dtDr
            dr_list.DataTextField = "NameC"
            dr_list.DataValueField = "Emp_No"
            dr_list.DataBind()
            dr_list2.DataSource = dtDr
            dr_list2.DataTextField = "NameC"
            dr_list2.DataValueField = "Emp_No"
            dr_list2.DataBind()
            Dim dr_id As String = String.Empty
            If mt = MonthType.Current Then
                dr_id = GetDrId(MonthType.Current, TimePeriod.AM, l_year, l_month, l_day)
            Else
                dr_id = GetDrId(MonthType.Last, TimePeriod.AM, l_year, l_month, l_day)
            End If
            If dr_id <> "" Then dr_id = dr_id.Trim
            For Each li In dr_list.Items
                If li.Value = dr_id Then
                    li.Selected = True
                    Exit For
                Else
                    li.Selected = False
                End If
            Next
            If mt = MonthType.Current Then
                dr_id = GetDrId(MonthType.Current, TimePeriod.PM, l_year, l_month, l_day)
            Else
                dr_id = GetDrId(MonthType.Last, TimePeriod.PM, l_year, l_month, l_day)
            End If
            If dr_id <> "" Then dr_id = dr_id.Trim
            For Each li In dr_list2.Items
                If li.Value = dr_id Then
                    li.Selected = True
                    Exit For
                Else
                    li.Selected = False
                End If
            Next
            '--------------------------------------------
            Dim mcNo As String = String.Empty
            If mt = MonthType.Current Then
                mcNo = GetMcNo(MonthType.Current, TimePeriod.AM, l_year, l_month, l_day)
            Else
                mcNo = GetMcNo(MonthType.Last, TimePeriod.AM, l_year, l_month, l_day)
            End If
            If mcNo <> "" Then mcNo = mcNo.Trim
            For Each li In machine1.Items
                If li.Value = mcNo Then
                    li.Selected = True
                    Exit For
                Else
                    li.Selected = False
                End If
            Next

            If mt = MonthType.Current Then
                mcNo = GetMcNo(MonthType.Current, TimePeriod.PM, l_year, l_month, l_day)
            Else
                mcNo = GetMcNo(MonthType.Last, TimePeriod.PM, l_year, l_month, l_day)
            End If
            If mcNo <> "" Then mcNo = mcNo.Trim
            For Each li In machine2.Items
                If li.Value = mcNo Then
                    li.Selected = True
                    Exit For
                Else
                    li.Selected = False
                End If
            Next
            If result.Count >= 0 Then
                machine1.Visible = False
                machine2.Visible = False
            End If
            If QueryGetValue("Calendar", "DType", "Dt='" & l_year & l_month & l_day & "'  ") = "1" Then
                tmpCell.Controls.Add(New Literal() With {.Text = TimePeriod.AM.ToString & "&nbsp;"})
                tmpCell.Controls.Add(dr_list)
                tmpCell.Controls.Add(New Literal() With {.Text = "&nbsp;&nbsp;&nbsp;&nbsp;"})
                tmpCell.Controls.Add(machine1)
                tmpCell.Controls.Add(New Literal() With {.Text = "<br/>"})
                tmpCell.Controls.Add(New Literal() With {.Text = TimePeriod.PM.ToString & "&nbsp;"})
                tmpCell.Controls.Add(dr_list2)
                tmpCell.Controls.Add(New Literal() With {.Text = "&nbsp;&nbsp;&nbsp;&nbsp;"})
                tmpCell.Controls.Add(machine2)
            Else
                l_holiday.Text = "假日"
                tmpCell.Controls.Add(l_holiday)
            End If
        Else
            l_holiday.Text = " "
            tmpCell.Controls.Add(l_holiday)
        End If
        Return tmpCell
    End Function
    Private Sub PrintList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintList.Click
        Dim i As Integer
        Dim counts As Integer = 0
        Dim SqlList(0) As String
        Dim l_year As String = ModifyString(calendar_Month.Value.Replace("/", "").Substring(0, 4), 4, "0")
        Dim l_month As String = ModifyString(calendar_Month.Value.Replace("/", "").Substring(4, 2), 2, "0")
        SqlList(UBound(SqlList)) = "   DELETE FROM Clinic_Schedule WHERE Clinic_Dept_Cd = '" & Me.f_dept_cd.SelectedValue.Trim & "' and Clinic_Dt LIKE '" & l_year.Trim & l_month.Trim & "%'  "
        ReDim Preserve SqlList(UBound(SqlList) + 1)
        Dim tmpTable As Table
        Dim tmpRow As TableRow
        Dim tmpCell As TableCell
        Dim tmpControl As Object
        Dim strClinicDt As String = ""
        Dim strEmpNo As String = ""
        Dim strEmpName As String = ""
        Dim strEmpNoPM As String = ""
        Dim strEmpNamePM As String = ""
        Dim mcAmNo As String = ""
        Dim mcPmNo As String = ""
        For Each tmpTable In PlaceHolder1.Controls
            For Each tmpRow In tmpTable.Controls
                For Each tmpCell In tmpRow.Controls
                    For Each tmpControl In tmpCell.Controls
                        If TypeOf (tmpControl) Is System.Web.UI.WebControls.DropDownList Then
                            If (CType(tmpControl, DropDownList)).ClientID.IndexOf(TimePeriod.AM.ToString) >= 0 And (CType(tmpControl, DropDownList)).ClientID.IndexOf("MC_") < 0 Then
                                strClinicDt = Replace(Replace(tmpControl.id, "l_", ""), TimePeriod.AM.ToString, "").Trim
                                Try
                                    If tmpControl.selecteditem IsNot Nothing Then
                                        If Not String.IsNullOrEmpty(tmpControl.selecteditem.value) Then
                                            strEmpNo = tmpControl.selecteditem.value.ToString
                                            strEmpName = tmpControl.selecteditem.text.ToString.Split(New Char() {" "})(1)
                                        End If
                                    End If
                                Catch ex As Exception
                                    Throw ex
                                End Try
                            End If
                            If TypeOf (tmpControl) Is System.Web.UI.WebControls.DropDownList Then
                                If (CType(tmpControl, DropDownList)).ClientID.IndexOf(TimePeriod.PM.ToString) >= 0 And (CType(tmpControl, DropDownList)).ClientID.IndexOf("MC_") < 0 Then
                                    strClinicDt = Replace(Replace(tmpControl.id, "l_", ""), TimePeriod.PM.ToString, "").Trim
                                    If tmpControl.selecteditem IsNot Nothing Then
                                        If Not String.IsNullOrEmpty(tmpControl.selecteditem.value) Then
                                            strEmpNoPM = tmpControl.selecteditem.value.ToString
                                            strEmpNamePM = tmpControl.selecteditem.text.ToString.Split(New Char() {" "})(1)
                                        End If
                                    End If
                                End If
                            End If
                            If (CType(tmpControl, DropDownList)).ClientID.IndexOf(TimePeriod.AM.ToString) >= 0 And (CType(tmpControl, DropDownList)).ClientID.IndexOf("MC_") >= 0 Then
                                strClinicDt = Replace(Replace(Replace(tmpControl.id, "l_", ""), TimePeriod.AM.ToString, "").Trim, "MC_", "")
                                Try
                                    If tmpControl.selecteditem IsNot Nothing Then
                                        If Not String.IsNullOrEmpty(tmpControl.selecteditem.value) Then
                                            mcAmNo = tmpControl.selecteditem.value.ToString.Trim
                                        End If
                                    End If
                                Catch ex As Exception
                                    Throw ex
                                End Try
                            End If
                            If TypeOf (tmpControl) Is System.Web.UI.WebControls.DropDownList Then
                                If (CType(tmpControl, DropDownList)).ClientID.IndexOf(TimePeriod.PM.ToString) >= 0 And (CType(tmpControl, DropDownList)).ClientID.IndexOf("MC_") >= 0 Then
                                    strClinicDt = Replace(Replace(Replace(tmpControl.id, "l_", ""), TimePeriod.PM.ToString, "").Trim, "MC_", "")
                                    If tmpControl.selecteditem IsNot Nothing Then
                                        If Not String.IsNullOrEmpty(tmpControl.selecteditem.value) Then
                                            mcPmNo = tmpControl.selecteditem.value.ToString.Trim
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    Next
                    If Not String.IsNullOrEmpty(strEmpNo) And Not String.IsNullOrEmpty(strEmpName) _
                                And Not String.IsNullOrEmpty(strEmpNoPM) And Not String.IsNullOrEmpty(strEmpNamePM) Then
                        SqlList(UBound(SqlList)) = "  insert into Clinic_Schedule(Clinic_Type,Clinic_Dt,AM_Emp_No,AM_Emp_Nm,PM_Emp_No,PM_Emp_Nm,Clinic_Dept_Cd,Cr_Login_ID,Cr_Tm) "
                        SqlList(UBound(SqlList)) = SqlList(UBound(SqlList)) & "  values('1','" & strClinicDt & "','" & strEmpNo & "','" & strEmpName & "','" & strEmpNoPM & "','" & strEmpNamePM & "','" & Me.f_dept_cd.SelectedValue & "','" & Session("Login_ID") & "',GETDATE())  "
                        ReDim Preserve SqlList(UBound(SqlList) + 1)
                    ElseIf Not String.IsNullOrEmpty(strEmpNo) And Not String.IsNullOrEmpty(strEmpName) Then
                        SqlList(UBound(SqlList)) = "  insert into Clinic_Schedule(Clinic_Type,Clinic_Dt,AM_Emp_No,AM_Emp_Nm,PM_Emp_No,PM_Emp_Nm,Clinic_Dept_Cd,Cr_Login_ID,Cr_Tm) "
                        SqlList(UBound(SqlList)) = SqlList(UBound(SqlList)) & "  values('1','" & strClinicDt & "','" & strEmpNo & "','" & strEmpName & "','" & strEmpNoPM & "','" & strEmpNamePM & "','" & Me.f_dept_cd.SelectedValue & "','" & Session("Login_ID") & "',GETDATE())  "
                        ReDim Preserve SqlList(UBound(SqlList) + 1)
                    ElseIf Not String.IsNullOrEmpty(strEmpNoPM) And Not String.IsNullOrEmpty(strEmpNamePM) Then
                        SqlList(UBound(SqlList)) = "  insert into Clinic_Schedule(Clinic_Type,Clinic_Dt,AM_Emp_No,AM_Emp_Nm,PM_Emp_No,PM_Emp_Nm,Clinic_Dept_Cd,Cr_Login_ID,Cr_Tm) "
                        SqlList(UBound(SqlList)) = SqlList(UBound(SqlList)) & "  values('1','" & strClinicDt & "','" & strEmpNo & "','" & strEmpName & "','" & strEmpNoPM & "','" & strEmpNamePM & "','" & Me.f_dept_cd.SelectedValue & "','" & Session("Login_ID") & "',GETDATE())  "
                        ReDim Preserve SqlList(UBound(SqlList) + 1)
                    End If
                    strEmpNo = ""
                    strEmpName = ""
                    strEmpNoPM = ""
                    strEmpNamePM = ""
                    If Not String.IsNullOrEmpty(mcAmNo) And Not String.IsNullOrEmpty(mcPmNo) Then
                        SqlList(UBound(SqlList)) = " update Clinic_Schedule set AM_Machine_No = '" & mcAmNo & "', PM_Machine_No = '" & mcPmNo & "' , Ed_Login_ID = '" & Session("Login_ID").ToString & "' , Ed_Tm = getdate()  where Clinic_Dept_Cd = '" & Me.f_dept_cd.SelectedValue & "' and Clinic_Dt = '" & strClinicDt & "'  "
                        ReDim Preserve SqlList(UBound(SqlList) + 1)
                    End If
                    mcAmNo = ""
                    mcPmNo = ""
                Next
            Next
        Next
        counts = UBound(SqlList)
        If counts > 0 Then
            Try
                For i = 1 To counts
                    If Not SqlList(i - 1) Is Nothing Then
                        DB.Execute(SqlList(i - 1))
                    End If
                Next
                PlaceHolder1.Controls.Clear()
                Dim l_dept As String = f_dept_cd.SelectedItem.Value
                If l_year <> "" And l_month <> "" And l_dept <> "" Then
                    Call ShowCalendar(calendar_Month.Value.Replace("/", "").Substring(0, 4), calendar_Month.Value.Replace("/", "").Substring(4, 2), MonthType.Current)
                End If
                msg.Text = "<script Language=javascript>"
                msg.Text = msg.Text & "alert('存檔成功');  "
                msg.Text = msg.Text & "<" & "/" & "script>"
            Catch err As Exception
                '=========================
                '顯示錯誤訊息
                '=========================
                PlaceHolder1.Controls.Clear()
                Dim l_dept As String = f_dept_cd.SelectedItem.Value
                If l_year <> "" And l_month <> "" And l_dept <> "" Then
                    Call ShowCalendar(calendar_Month.Value.Replace("/", "").Substring(0, 4), calendar_Month.Value.Replace("/", "").Substring(4, 2), MonthType.Current)
                End If
                msg.Text = "<script Language=javascript>"
                msg.Text = msg.Text & "alert('存檔失敗');  "
                msg.Text = msg.Text & "<" & "/" & "script>"
                Exit Sub
            Finally
            End Try
        End If
    End Sub
    Private Sub f_dept_cd_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles f_dept_cd.SelectedIndexChanged
        Call Build_Body(MonthType.Current)
    End Sub

    Sub Build_Body(ByVal mt As MonthType)
        PlaceHolder1.Controls.Clear()
        Dim l_year As String = calendar_Month.Value.Replace("/", "").Substring(0, 4)
        Dim l_month As String = calendar_Month.Value.Replace("/", "").Substring(4, 2)
        Dim l_dept As String = f_dept_cd.SelectedItem.Value
        If l_year <> "" And l_month <> "" And l_dept <> "" Then
            Call ShowCalendar(l_year, l_month, mt)
        Else
        End If
    End Sub
    Public Enum MonthType
        Current
        Last
    End Enum
    Public Enum TimePeriod
        AM
        PM
    End Enum
    Private Sub PrintmailList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintmailList.Click
    End Sub
    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
        Call Build_Body(MonthType.Last)
    End Sub
    Function GetDrId(ByVal mt As MonthType, ByVal tp As TimePeriod, ByVal year As String, ByVal month As String, ByVal day As String) As String
        Dim whichColumn As String = tp.ToString & "_Emp_No"
        If mt = MonthType.Last Then
            month = CStr((CInt(month) - 1)).PadLeft(2, "0")
        End If
        Return QueryGetValue(" select " & whichColumn & "  from Clinic_Schedule  where Clinic_Dept_Cd = '" & Me.f_dept_cd.SelectedValue & "' and Clinic_Dt = '" & year & month & day & "' ")
    End Function

    Function GetMcNo(ByVal mt As MonthType, ByVal tp As TimePeriod, ByVal year As String, ByVal month As String, ByVal day As String) As String
        Dim whichColumn As String = tp.ToString & "_Machine_No"
        If mt = MonthType.Last Then
            month = CStr((CInt(month) - 1)).PadLeft(2, "0")
        End If
        Return QueryGetValue(" select " & whichColumn & "  from Clinic_Schedule  where Clinic_Dept_Cd = '" & Me.f_dept_cd.SelectedValue & "' and Clinic_Dt = '" & year & month & day & "' ")
    End Function
End Class