home *** CD-ROM | disk | FTP | other *** search
/ 66.142.0.142 / 66.142.0.142.tar / 66.142.0.142 / viewScheduleedit.aspx.vb < prev    next >
Text File  |  2014-12-14  |  58KB  |  1,246 lines

  1. Imports System.Data
  2. Imports System.Data.Common
  3. Imports System.Xml
  4. Imports System.IO
  5. Imports System.Data.OleDb
  6. Imports Microsoft.Exchange.WebServices.Data
  7. Imports Microsoft.Exchange.WebServices.Autodiscover
  8. Imports System.Net
  9. Imports System.Net.Security
  10. Imports System.Security.Cryptography.X509Certificates
  11.  
  12. '
  13. ' ASP.NET code-behind class (Page)
  14. '
  15.  
  16. Partial Class viewScheduleedit
  17.     Inherits AspNetMaker7_tfpssnet
  18.  
  19.     ' Page object
  20.     Public viewSchedule_edit As cviewSchedule_edit
  21.  
  22.     '
  23.     ' Page Class
  24.     '
  25.     Class cviewSchedule_edit
  26.         Inherits AspNetMakerPage
  27.         Implements IDisposable        
  28.  
  29.         ' Used by system generated functions
  30.         Private RsWrk As Object, sSqlWrk As String, sWhereWrk As String
  31.  
  32.         Private arwrk As Object
  33.  
  34.         Private armultiwrk() As String        
  35.  
  36.         ' Page URL
  37.         Public ReadOnly Property PageUrl() As String
  38.             Get
  39.                 Dim Url As String = ew_CurrentPage() & "?"
  40.                 If viewSchedule.UseTokenInUrl Then Url = Url & "t=" & viewSchedule.TableVar & "&" ' Add page token
  41.                 Return Url    
  42.             End Get
  43.         End Property
  44.  
  45.         ' Validate page request
  46.         Public Function IsPageRequest() As Boolean
  47.             Dim Result As Boolean
  48.             If viewSchedule.UseTokenInUrl Then
  49.                 Result = False
  50.                 If ObjForm IsNot Nothing Then
  51.                     Result = (viewSchedule.TableVar = ObjForm.GetValue("t"))
  52.                 End If
  53.                 If ew_Get("t") <> "" Then
  54.                     Result = (viewSchedule.TableVar = ew_Get("t"))
  55.                 End If
  56.                 Return Result
  57.             End If
  58.             Return True            
  59.         End Function    
  60.  
  61.         ' viewSchedule
  62.         Public Property viewSchedule() As cviewSchedule
  63.             Get                
  64.                 Return ParentPage.viewSchedule
  65.             End Get
  66.             Set(ByVal v As cviewSchedule)
  67.                 ParentPage.viewSchedule = v    
  68.             End Set    
  69.         End Property
  70.  
  71.         ' viewSchedule
  72.         Public Property tblEmployees() As ctblEmployees
  73.             Get                
  74.                 Return ParentPage.tblEmployees
  75.             End Get
  76.             Set(ByVal v As ctblEmployees)
  77.                 ParentPage.tblEmployees = v    
  78.             End Set    
  79.         End Property
  80.  
  81.         '
  82.         '  Constructor
  83.         '  - init objects
  84.         '  - open connection
  85.         '
  86.         Public Sub New(ByRef APage As AspNetMaker7_tfpssnet)                
  87.             m_ParentPage = APage
  88.             m_Page = Me    
  89.             m_PageID = "edit"
  90.             m_PageObjName = "viewSchedule_edit"
  91.             m_PageObjTypeName = "cviewSchedule_edit"
  92.  
  93.             ' Table Name
  94.             m_TableName = "viewSchedule"
  95.  
  96.             ' Initialize table object
  97.             viewSchedule = New cviewSchedule(Me)
  98.             tblEmployees = New ctblEmployees(Me)
  99.  
  100.             ' Connect to database
  101.             Conn = New cConnection()
  102.         End Sub
  103.  
  104.         '
  105.         '  Subroutine Page_Init
  106.         '  - called before page main
  107.         '  - check Security
  108.         '  - set up response header
  109.         '  - call page load events
  110.         '
  111.         Public Sub Page_Init()
  112.             Security = New cAdvancedSecurity(Me)
  113.             If Not Security.IsLoggedIn() Then Security.AutoLogin()
  114.             If Not Security.IsLoggedIn() Then
  115.                 Security.SaveLastUrl()
  116.                 Page_Terminate("login.aspx")
  117.             End If
  118.  
  119.             ' Table Permission loading event
  120.             Security.TablePermission_Loading()
  121.             Security.LoadCurrentUserLevel(TableName)
  122.  
  123.             ' Table Permission loaded event
  124.             Security.TablePermission_Loaded()
  125.             If Not Security.CanEdit Then
  126.                 Security.SaveLastUrl()
  127.                 Page_Terminate("viewSchedulelist.aspx")
  128.             End If
  129.  
  130.             ' User ID loading event
  131.             Security.UserID_Loading()
  132.             If Security.IsLoggedIn() Then Call Security.LoadUserID()
  133.  
  134.             ' User ID loaded event
  135.             Security.UserID_Loaded()
  136.             If Security.IsLoggedIn() And ew_Empty(Security.CurrentUserID) Then
  137.                 Message = "You do not have the right permission to view the page"
  138.                 Page_Terminate("viewSchedulelist.aspx")
  139.             End If
  140.  
  141.             ' Global page loading event (in ewglobal*.vb)
  142.             ParentPage.Page_Loading()
  143.  
  144.             ' Page load event, used in current page
  145.             Page_Load()
  146.         End Sub
  147.  
  148.         '
  149.         '  Class terminate
  150.         '  - clean up page object
  151.         '
  152.         Public Sub Dispose() Implements IDisposable.Dispose
  153.             Page_Terminate("")
  154.         End Sub
  155.  
  156.         '
  157.         '  Sub Page_Terminate
  158.         '  - called when exit page
  159.         '  - clean up connection and objects
  160.         '  - if URL specified, redirect to URL
  161.         '
  162.         Sub Page_Terminate(url As String)
  163.  
  164.             ' Page unload event, used in current page
  165.             Page_Unload()
  166.  
  167.             ' Global page unloaded event (in ewglobal*.vb)
  168.             ParentPage.Page_Unloaded()
  169.  
  170.             ' Close connection
  171.             Conn.Dispose()
  172.             Security = Nothing
  173.             viewSchedule.Dispose()
  174.             tblEmployees.Dispose()
  175.  
  176.             ' Go to URL if specified
  177.             If url <> "" Then
  178.                 HttpContext.Current.Response.Clear()
  179.                 HttpContext.Current.Response.Redirect(url)
  180.             End If
  181.         End Sub
  182.  
  183.     '
  184.     ' Page main processing
  185.     '
  186.         Public PSSSendEmailConfirmation As Boolean
  187.  
  188.         Public PSSSyncExchangeCalendar As Boolean
  189.         Sub Page_Main()
  190.             Dim tlcsub As New AspNetMaker7_tfpssnet
  191.             PSSSendEmailConfirmation = tlcsub.tlcGetPSSEmailConfirmation()
  192.             PSSSyncExchangeCalendar = tlcsub.tlcGetPSSUpdateExchangeCalendar()
  193.  
  194.             ' Load key from QueryString
  195.             If ew_Get("schSchID") <> "" Then
  196.                 viewSchedule.schSchID.QueryStringValue = ew_Get("schSchID")
  197.             End If
  198.  
  199.             ' Create form object
  200.             ObjForm = New cFormObj
  201.             If ObjForm.GetValue("a_edit") <> "" Then
  202.                 viewSchedule.CurrentAction = ObjForm.GetValue("a_edit") ' Get action code
  203.                 LoadFormValues() ' Get form values
  204.  
  205.                 ' Validate Form
  206.                 If Not ValidateForm() Then
  207.                     viewSchedule.CurrentAction = "" ' Form error, reset action
  208.                     Message = ParentPage.gsFormError
  209.                     LoadRow() ' Restore row
  210.                     RestoreFormValues() ' Restore form values if validate failed
  211.                 End If
  212.             Else
  213.                 viewSchedule.CurrentAction = "I" ' Default action is display
  214.             End If
  215.  
  216.             ' Check if valid key
  217.             If ew_Empty(viewSchedule.schSchID.CurrentValue) Then Page_Terminate("viewSchedulelist.aspx") ' Invalid key, return to list
  218.             Select Case viewSchedule.CurrentAction
  219.                 Case "I" ' Get a record to display
  220.                     If Not LoadRow() Then ' Load Record based on key
  221.                         Message = "No records found" ' No record found
  222.                         Page_Terminate("viewSchedulelist.aspx") ' No matching record, return to list
  223.                     End If
  224.                 Case "U" ' Update
  225.                     viewSchedule.SendEmail = False ' Send email on update success
  226.                     If EditRow() Then ' Update Record based on key
  227.                         Message = "Update succeeded" ' Update success
  228.                         UpdateCalendar()
  229.                         Dim sReturnUrl As String = viewSchedule.ReturnUrl
  230.                         Page_Terminate(sReturnUrl) ' Return to caller
  231.                     Else
  232.                         LoadRow() ' Restore row
  233.                         RestoreFormValues() ' Restore form values if update failed
  234.                     End If
  235.             End Select
  236.  
  237.             ' Render the record
  238.             viewSchedule.RowType = EW_ROWTYPE_EDIT ' Render as edit
  239.  
  240.             ' Render row
  241.             RenderRow()
  242.         End Sub
  243.  
  244.         Sub UpdateCalendar()
  245.             'Dim service As New ExchangeService(requestedServerVersion:=ExchangeVersion.Exchange2010)
  246.             Dim service As New ExchangeService(ExchangeVersion.Exchange2010_SP1)
  247.             Dim tmpSchDate As Date, tmpEvtDescription As String, tmpPrtDescription As String, tmpCallTime As Date
  248.             Dim tmpStartTime As Date, tmpEndTime As Date, tmpOutTime As Date, tmpLocDescription As String, tmpPosDescription As String, tmpStDescription As String
  249.             Dim tmpTypDescription As String, tmpEmpName As String, tmpEmail As String, tmpBody As String, tmpAction As String = "", tmpStatus As String, tmpType As String, tmpNotes As String
  250.             Dim intResult As Integer, tmpMessage As String, tmpNewStatus As String, smtpStatus As Boolean, smtpMessage As String
  251.             Dim tlcsub As New AspNetMaker7_tfpssnet
  252.             intResult = tlcsub.tlcGetEventInfo(viewSchedule.schSchID.CurrentValue, tmpSchDate, tmpEvtDescription, tmpPrtDescription, tmpCallTime, tmpStartTime, tmpEndTime, tmpOutTime, tmpLocDescription, tmpPosDescription, tmpStDescription, tmpTypDescription, tmpEmpName, tmpEmail, tmpStatus, tmpNotes)
  253.             If intResult = True Then
  254.                 Select Case viewSchedule.schStatus.CurrentValue
  255.                     Case 1
  256.                         tmpAction = "A"
  257.                         tmpStatus = "BUSY"
  258.                         tmpType = "C"
  259.                         tmpNewStatus = "Confirmed"
  260.                     Case 2
  261.                         tmpAction = "D"
  262.                         tmpType = "U"
  263.                         tmpNewStatus = "Un-confirmed"
  264.                     Case 3
  265.                         tmpAction = "D"
  266.                         tmpType = "X"
  267.                         tmpNewStatus = "Cannot Work"
  268.                     Case 4
  269.                         tmpAction = "A"
  270.                         tmpStatus = "TENTATIVE"
  271.                         tmpType = "T"
  272.                         tmpNewStatus = "Tentative"
  273.                 End Select
  274.                 'intResult = tlcsub.tlcSendEventInfo(key, tmpSchDate, tmpEvtDescription, tmpPrtDescription, tmpCallTime, tmpStartTime, tmpEndTime, tmpOutTime, tmpLocDescription, tmpPosDescription, tmpStDescription, tmpTypDescription, tmpEmpName, tmpEmail, tmpAction, tmpStatus, tmpType, smtpStatus, smtpMessage)
  275.                 '                                    Message = smtpMessage
  276.  
  277.                 If PSSSendEmailConfirmation = True Or PSSSyncExchangeCalendar = True Then
  278.                     'Add a valid EWS service end point here or user Autodiscover
  279.                     'service.Url = New Uri("https://server14/ews/exchange.asmx")
  280.                     service.Url = New Uri("https://outlook.office365.com/EWS/Exchange.asmx")
  281.  
  282.                     'Add a valid user credentials
  283.                     'service.Credentials = New WebCredentials("prodservices", "production88", "Business")
  284.                     service.Credentials = New WebCredentials("productionservices@tfc.org", "production88")
  285.                     service.AutodiscoverUrl("productionservices@tfc.org", AddressOf RedirectionUrlValaditionCallBack)
  286.  
  287.                     'To address the SSL challenge
  288.                     ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateCertificate)
  289.                 End If
  290.  
  291.                 If PSSSendEmailConfirmation = True Then
  292.                     tmpMessage = " for the following event:<br><br>"
  293.                     tmpMessage = tmpMessage & "<b>Employee:</b> " & tmpEmpName & "<br> "
  294.                     tmpMessage = tmpMessage & "<b>Date:</b> " & ew_FormatDateTime(tmpSchDate, 2) & "<br> "
  295.                     tmpMessage = tmpMessage & "<b>Event:</b> " & tmpEvtDescription & "<br> "
  296.                     tmpMessage = tmpMessage & "<b>Part:</b> " & tmpPrtDescription & "<br>"
  297.                     tmpMessage = tmpMessage & "<b>Call Time:</b> " & ew_FormatDateTime(tmpCallTime, 14) & "<br>"
  298.                     tmpMessage = tmpMessage & "<b>Start Time:</b> " & ew_FormatDateTime(tmpStartTime, 14) & "<br>"
  299.                     'tmpMessage = tmpMessage & "<b>End Time:</b> " & ew_FormatDateTime(tmpEndTime, 14) & "<br>"
  300.                     'tmpMessage = tmpMessage & "<b>Out Time:</b> " & ew_FormatDateTime(tmpOutTime, 14) & "<br>"
  301.                     tmpMessage = tmpMessage & "<b>Location:</b> " & tmpLocDescription & "<br>"
  302.                     tmpMessage = tmpMessage & "<b>Position:</b> " & tmpPosDescription & "<br>"
  303.                     tmpMessage = tmpMessage & "<b>Status:</b> " & tmpNewStatus & "<br>"
  304.                     tmpMessage = tmpMessage & "<b>Type:</b> " & tmpTypDescription & "<br>"
  305.                     tmpMessage = tmpMessage & "<b>Notes:</b> " & tmpNotes & "<br><br>"
  306.                     tmpMessage = tmpMessage & "sent from PSS viewScheduleedit."
  307.                     'ew_SendEmail("prodservices@tfchurch.org", "kirkmanton@tfchurch.org", "", "", "PSS Event status change for " & ew_Session("tfpssnet_Status_UserName"), tmpMessage, "html")
  308.                     Try
  309.                         'Create new message object and set properties required to send a mail
  310.                         Dim msg As EmailMessage = New EmailMessage(service)
  311.                         msg.Subject = "PSS Event status change by " & ew_Session("tfpssnet_Status_UserName")
  312.                         msg.Body = tmpMessage
  313.                         'msg.ToRecipients.Add("tony.clayton@suddenlink.net")
  314.                         'msg.ToRecipients.Add("tonyc@tfchurch.org")
  315.                         msg.ToRecipients.Add("kirkmanton@tfc.org")
  316.                         msg.From = "productionservices@tfc.org"
  317.                         msg.SendAndSaveCopy()
  318.                         '                                            Message = "Email sent."
  319.                     Catch ex As Exception
  320.                         Message = ex.Message
  321.                     End Try
  322.                 End If
  323.  
  324.                 If PSSSendEmailConfirmation = True Or PSSSyncExchangeCalendar = True Then
  325.                     service.ImpersonatedUserId = New ImpersonatedUserId(ConnectingIdType.SmtpAddress, tmpEmail)
  326.                 End If
  327.                 Try
  328.                     If InStr(tmpEmail, "@tfc.org") > 0 And PSSSyncExchangeCalendar = True Then
  329.                         'Create appointment object and set properties as required
  330.                         Dim appt As Appointment = New Appointment(service)
  331.                         appt.Subject = tmpEvtDescription & " - " & tmpPrtDescription
  332.                         'tmpBody += "Event: " & tmpEvtDescription & ", Part: " & tmpPrtDescription & ", Call Time: " & tmpCallTime & _
  333.                         '            ", Start Time: " & tmpStartTime & ", End Time: " & tmpEndTime & ", Out Time: " & tmpOutTime & ", Location: " & tmpLocDescription & _
  334.                         '            ", Position: " & tmpPosDescription & ", Type: " & tmpTypDescription & ", Status: " & tmpStDescription & ", Notes: " & tmpNotes
  335.                         tmpBody += "Position: " & tmpPosDescription & vbCrLf & "Notes: " & tmpNotes
  336.                         appt.Body = tmpBody
  337.                         appt.Location = tmpLocDescription
  338.                         appt.Start = tmpSchDate & " " & tmpCallTime
  339.                         If tmpOutTime = Nothing Then
  340.                             appt.End = tmpSchDate & " " & tmpStartTime.AddHours(1)
  341.                         Else
  342.                             appt.End = tmpSchDate & " " & tmpOutTime
  343.                         End If
  344.                         appt.IsReminderSet = False
  345.                         'see if it already exists - if so, delete and re-add
  346.                         Dim findResults As FindItemsResults(Of Appointment) = service.FindAppointments(WellKnownFolderName.Calendar, New CalendarView(tmpSchDate, tmpSchDate.AddHours(24)))
  347.                         Dim items As New List(Of Item)()
  348.                         For Each appointment As Appointment In findResults
  349.                             items.Add(appointment)
  350.                         Next
  351.                         If items.Count <> 0 Then
  352.                             service.LoadPropertiesForItems(items, PropertySet.FirstClassProperties)
  353.                             For Each Appointment As Appointment In items
  354.                                 If Not Appointment.IsCancelled Then
  355.                                     If Appointment.Subject = tmpEvtDescription & " - " & tmpPrtDescription Or Appointment.Subject = tmpEvtDescription Then
  356.                                         Appointment.Delete(DeleteMode.HardDelete)
  357.                                         Message = "EWS Appointment deleted from Outlook calendar."
  358.                                     End If
  359.                                 End If
  360.                             Next
  361.                         End If
  362.                         If tmpNewStatus = "Confirmed" Or tmpNewStatus = "Tentative" Then
  363.                             If tmpNewStatus = "Tentative" Then
  364.                                 appt.LegacyFreeBusyStatus = LegacyFreeBusyStatus.Tentative
  365.                             End If
  366.                             appt.Save(WellKnownFolderName.Calendar, SendInvitationsMode.SendToNone)
  367.                             Message = "EWS Appointment added to Outlook calendar."
  368.                         End If
  369.                     End If
  370.                 Catch ex As Exception
  371.                     Message = ex.Message
  372.                 End Try
  373.  
  374.             End If
  375.         End Sub
  376.  
  377.         Private Function ValidateCertificate(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
  378.             'Return True to force the certificate to be accepted.
  379.             Return True
  380.         End Function
  381.  
  382.         Private Shared Function RedirectionUrlValaditionCallBack(ByVal redirectionURL As String) As Boolean
  383.             Dim result As Boolean = False
  384.             Dim redirectionuri As New Uri(redirectionURL)
  385.             If redirectionuri.Scheme = "https" Then
  386.                 result = True
  387.             End If
  388.             Return result
  389.         End Function
  390.  
  391.         '
  392.         ' Get upload file
  393.         '
  394.         Sub GetUploadFiles()
  395.  
  396.             ' Get upload data
  397.         End Sub
  398.  
  399.         '
  400.         ' Load default values
  401.         '
  402.         Sub LoadDefaultValues()
  403.         End Sub
  404.  
  405.         '
  406.         ' Load form values
  407.         '
  408.         Sub LoadFormValues()
  409.             viewSchedule.schDate.FormValue = ObjForm.GetValue("x_schDate")
  410.             viewSchedule.schDate.CurrentValue = ew_UnFormatDateTime(viewSchedule.schDate.CurrentValue, 6)
  411.             viewSchedule.schDate.OldValue = ObjForm.GetValue("o_schDate")
  412.             viewSchedule.schEvtID.FormValue = ObjForm.GetValue("x_schEvtID")
  413.             viewSchedule.schEvtID.OldValue = ObjForm.GetValue("o_schEvtID")
  414.             viewSchedule.schPartsID.FormValue = ObjForm.GetValue("x_schPartsID")
  415.             viewSchedule.schPartsID.OldValue = ObjForm.GetValue("o_schPartsID")
  416.             viewSchedule.schCallTime.FormValue = ObjForm.GetValue("x_schCallTime")
  417.             viewSchedule.schCallTime.CurrentValue = ew_UnFormatDateTime(viewSchedule.schCallTime.CurrentValue, 4)
  418.             viewSchedule.schCallTime.OldValue = ObjForm.GetValue("o_schCallTime")
  419.             viewSchedule.schStartTime.FormValue = ObjForm.GetValue("x_schStartTime")
  420.             viewSchedule.schStartTime.CurrentValue = ew_UnFormatDateTime(viewSchedule.schStartTime.CurrentValue, 4)
  421.             viewSchedule.schStartTime.OldValue = ObjForm.GetValue("o_schStartTime")
  422.             viewSchedule.schEndTime.FormValue = ObjForm.GetValue("x_schEndTime")
  423.             viewSchedule.schEndTime.CurrentValue = ew_UnFormatDateTime(viewSchedule.schEndTime.CurrentValue, 4)
  424.             viewSchedule.schEndTime.OldValue = ObjForm.GetValue("o_schEndTime")
  425.             viewSchedule.schOutTime.FormValue = ObjForm.GetValue("x_schOutTime")
  426.             viewSchedule.schOutTime.CurrentValue = ew_UnFormatDateTime(viewSchedule.schOutTime.CurrentValue, 4)
  427.             viewSchedule.schOutTime.OldValue = ObjForm.GetValue("o_schOutTime")
  428.             viewSchedule.schLocID.FormValue = ObjForm.GetValue("x_schLocID")
  429.             viewSchedule.schLocID.OldValue = ObjForm.GetValue("o_schLocID")
  430.             viewSchedule.schEmpID.FormValue = ObjForm.GetValue("x_schEmpID")
  431.             viewSchedule.schEmpID.OldValue = ObjForm.GetValue("o_schEmpID")
  432.             viewSchedule.schPosID.FormValue = ObjForm.GetValue("x_schPosID")
  433.             viewSchedule.schPosID.OldValue = ObjForm.GetValue("o_schPosID")
  434.             viewSchedule.schTypID.FormValue = ObjForm.GetValue("x_schTypID")
  435.             viewSchedule.schTypID.OldValue = ObjForm.GetValue("o_schTypID")
  436.             viewSchedule.schNotes.FormValue = ObjForm.GetValue("x_schNotes")
  437.             viewSchedule.schNotes.OldValue = ObjForm.GetValue("o_schNotes")
  438.             viewSchedule.schActualStart.FormValue = ObjForm.GetValue("x_schActualStart")
  439.             viewSchedule.schActualStart.CurrentValue = ew_UnFormatDateTime(viewSchedule.schActualStart.CurrentValue, 4)
  440.             viewSchedule.schActualStart.OldValue = ObjForm.GetValue("o_schActualStart")
  441.             viewSchedule.schActualEnd.FormValue = ObjForm.GetValue("x_schActualEnd")
  442.             viewSchedule.schActualEnd.CurrentValue = ew_UnFormatDateTime(viewSchedule.schActualEnd.CurrentValue, 4)
  443.             viewSchedule.schActualEnd.OldValue = ObjForm.GetValue("o_schActualEnd")
  444.             viewSchedule.schDateCreated.FormValue = ObjForm.GetValue("x_schDateCreated")
  445.             viewSchedule.schDateCreated.CurrentValue = ew_UnFormatDateTime(viewSchedule.schDateCreated.CurrentValue, 6)
  446.             viewSchedule.schDateCreated.OldValue = ObjForm.GetValue("o_schDateCreated")
  447.             viewSchedule.schStatus.FormValue = ObjForm.GetValue("x_schStatus")
  448.             viewSchedule.schStatus.OldValue = ObjForm.GetValue("o_schStatus")
  449.             viewSchedule.schSchID.FormValue = ObjForm.GetValue("x_schSchID")
  450.         End Sub
  451.  
  452.         '
  453.         ' Restore form values
  454.         '
  455.         Sub RestoreFormValues()
  456.             viewSchedule.schDate.CurrentValue = viewSchedule.schDate.FormValue
  457.             viewSchedule.schDate.CurrentValue = ew_UnFormatDateTime(viewSchedule.schDate.CurrentValue, 6)
  458.             viewSchedule.schEvtID.CurrentValue = viewSchedule.schEvtID.FormValue
  459.             viewSchedule.schPartsID.CurrentValue = viewSchedule.schPartsID.FormValue
  460.             viewSchedule.schCallTime.CurrentValue = viewSchedule.schCallTime.FormValue
  461.             viewSchedule.schCallTime.CurrentValue = ew_UnFormatDateTime(viewSchedule.schCallTime.CurrentValue, 4)
  462.             viewSchedule.schStartTime.CurrentValue = viewSchedule.schStartTime.FormValue
  463.             viewSchedule.schStartTime.CurrentValue = ew_UnFormatDateTime(viewSchedule.schStartTime.CurrentValue, 4)
  464.             viewSchedule.schEndTime.CurrentValue = viewSchedule.schEndTime.FormValue
  465.             viewSchedule.schEndTime.CurrentValue = ew_UnFormatDateTime(viewSchedule.schEndTime.CurrentValue, 4)
  466.             viewSchedule.schOutTime.CurrentValue = viewSchedule.schOutTime.FormValue
  467.             viewSchedule.schOutTime.CurrentValue = ew_UnFormatDateTime(viewSchedule.schOutTime.CurrentValue, 4)
  468.             viewSchedule.schLocID.CurrentValue = viewSchedule.schLocID.FormValue
  469.             viewSchedule.schEmpID.CurrentValue = viewSchedule.schEmpID.FormValue
  470.             viewSchedule.schPosID.CurrentValue = viewSchedule.schPosID.FormValue
  471.             viewSchedule.schTypID.CurrentValue = viewSchedule.schTypID.FormValue
  472.             viewSchedule.schNotes.CurrentValue = viewSchedule.schNotes.FormValue
  473.             viewSchedule.schActualStart.CurrentValue = viewSchedule.schActualStart.FormValue
  474.             viewSchedule.schActualStart.CurrentValue = ew_UnFormatDateTime(viewSchedule.schActualStart.CurrentValue, 4)
  475.             viewSchedule.schActualEnd.CurrentValue = viewSchedule.schActualEnd.FormValue
  476.             viewSchedule.schActualEnd.CurrentValue = ew_UnFormatDateTime(viewSchedule.schActualEnd.CurrentValue, 4)
  477.             viewSchedule.schDateCreated.CurrentValue = viewSchedule.schDateCreated.FormValue
  478.             viewSchedule.schDateCreated.CurrentValue = ew_UnFormatDateTime(viewSchedule.schDateCreated.CurrentValue, 6)
  479.             viewSchedule.schStatus.CurrentValue = viewSchedule.schStatus.FormValue
  480.             viewSchedule.schSchID.CurrentValue = viewSchedule.schSchID.FormValue
  481.         End Sub
  482.  
  483.         '
  484.         ' Load row based on key values
  485.         '
  486.         Function LoadRow() As Boolean
  487.             Dim RsRow As OleDbDataReader
  488.             Dim sFilter As String = viewSchedule.KeyFilter
  489.  
  490.             ' Row Selecting event
  491.             viewSchedule.Row_Selecting(sFilter)
  492.  
  493.             ' Load SQL based on filter
  494.             viewSchedule.CurrentFilter = sFilter
  495.             Dim sSql As String = viewSchedule.SQL
  496.  
  497.             ' Write SQL for debug
  498.             If EW_DEBUG_ENABLED Then ew_Write(sSql)
  499.             Try
  500.                 RsRow = Conn.GetTempDataReader(sSql)
  501.                 If Not RsRow.Read() Then
  502.                     Return False
  503.                 Else
  504.                     LoadRowValues(RsRow) ' Load row values
  505.  
  506.                     ' Row Selected event
  507.                     viewSchedule.Row_Selected(RsRow)
  508.                     Return True
  509.                 End If
  510.             Catch
  511.                 If EW_DEBUG_ENABLED Then Throw
  512.                 Return False
  513.             Finally
  514.                 Conn.CloseTempDataReader()
  515.             End Try
  516.         End Function
  517.  
  518.         '
  519.         ' Load row values from recordset
  520.         '
  521.         Sub LoadRowValues(ByRef RsRow As OleDbDataReader)
  522.             viewSchedule.schSchID.DbValue = RsRow("schSchID")
  523.             viewSchedule.schDate.DbValue = RsRow("schDate")
  524.             viewSchedule.schEvtID.DbValue = RsRow("schEvtID")
  525.             viewSchedule.schPartsID.DbValue = RsRow("schPartsID")
  526.             viewSchedule.schCallTime.DbValue = RsRow("schCallTime")
  527.             viewSchedule.schStartTime.DbValue = RsRow("schStartTime")
  528.             viewSchedule.schEndTime.DbValue = RsRow("schEndTime")
  529.             viewSchedule.schOutTime.DbValue = RsRow("schOutTime")
  530.             viewSchedule.schLocID.DbValue = RsRow("schLocID")
  531.             viewSchedule.schEmpID.DbValue = RsRow("schEmpID")
  532.             viewSchedule.schPosID.DbValue = RsRow("schPosID")
  533.             viewSchedule.schTypID.DbValue = RsRow("schTypID")
  534.             viewSchedule.schNotes.DbValue = RsRow("schNotes")
  535.             viewSchedule.schActualStart.DbValue = RsRow("schActualStart")
  536.             viewSchedule.schActualEnd.DbValue = RsRow("schActualEnd")
  537.             viewSchedule.schDateCreated.DbValue = RsRow("schDateCreated")
  538.             viewSchedule.schStatus.DbValue = RsRow("schStatus")
  539.         End Sub
  540.  
  541.         '
  542.         ' Render row values based on field settings
  543.         '
  544.         Sub RenderRow()
  545.  
  546.             ' Row Rendering event
  547.             viewSchedule.Row_Rendering()
  548.  
  549.             '
  550.             '  Common render codes for all row types
  551.             '
  552.             ' schDate
  553.  
  554.             viewSchedule.schDate.CellCssStyle = ""
  555.             viewSchedule.schDate.CellCssClass = ""
  556.  
  557.             ' schEvtID
  558.             viewSchedule.schEvtID.CellCssStyle = ""
  559.             viewSchedule.schEvtID.CellCssClass = ""
  560.  
  561.             ' schPartsID
  562.             viewSchedule.schPartsID.CellCssStyle = ""
  563.             viewSchedule.schPartsID.CellCssClass = ""
  564.  
  565.             ' schCallTime
  566.             viewSchedule.schCallTime.CellCssStyle = ""
  567.             viewSchedule.schCallTime.CellCssClass = ""
  568.  
  569.             ' schStartTime
  570.             viewSchedule.schStartTime.CellCssStyle = ""
  571.             viewSchedule.schStartTime.CellCssClass = ""
  572.  
  573.             ' schEndTime
  574.             viewSchedule.schEndTime.CellCssStyle = ""
  575.             viewSchedule.schEndTime.CellCssClass = ""
  576.  
  577.             ' schOutTime
  578.             viewSchedule.schOutTime.CellCssStyle = ""
  579.             viewSchedule.schOutTime.CellCssClass = ""
  580.  
  581.             ' schLocID
  582.             viewSchedule.schLocID.CellCssStyle = ""
  583.             viewSchedule.schLocID.CellCssClass = ""
  584.  
  585.             ' schEmpID
  586.             viewSchedule.schEmpID.CellCssStyle = ""
  587.             viewSchedule.schEmpID.CellCssClass = ""
  588.  
  589.             ' schPosID
  590.             viewSchedule.schPosID.CellCssStyle = ""
  591.             viewSchedule.schPosID.CellCssClass = ""
  592.  
  593.             ' schTypID
  594.             viewSchedule.schTypID.CellCssStyle = ""
  595.             viewSchedule.schTypID.CellCssClass = ""
  596.  
  597.             ' schNotes
  598.             viewSchedule.schNotes.CellCssStyle = ""
  599.             viewSchedule.schNotes.CellCssClass = ""
  600.  
  601.             ' schActualStart
  602.             viewSchedule.schActualStart.CellCssStyle = ""
  603.             viewSchedule.schActualStart.CellCssClass = ""
  604.  
  605.             ' schActualEnd
  606.             viewSchedule.schActualEnd.CellCssStyle = ""
  607.             viewSchedule.schActualEnd.CellCssClass = ""
  608.  
  609.             ' schDateCreated
  610.             viewSchedule.schDateCreated.CellCssStyle = ""
  611.             viewSchedule.schDateCreated.CellCssClass = ""
  612.  
  613.             ' schStatus
  614.             viewSchedule.schStatus.CellCssStyle = ""
  615.             viewSchedule.schStatus.CellCssClass = ""
  616.  
  617.             '
  618.             '  View  Row
  619.             '
  620.  
  621.             If viewSchedule.RowType = EW_ROWTYPE_VIEW Then ' View row
  622.  
  623.                 ' schDate
  624.                 viewSchedule.schDate.ViewValue = viewSchedule.schDate.CurrentValue
  625.                 viewSchedule.schDate.ViewValue = ew_FormatDateTime(viewSchedule.schDate.ViewValue, 6)
  626.                 viewSchedule.schDate.CssStyle = ""
  627.                 viewSchedule.schDate.CssClass = ""
  628.                 viewSchedule.schDate.ViewCustomAttributes = ""
  629.  
  630.                 ' schEvtID
  631.                 If ew_NotEmpty(viewSchedule.schEvtID.CurrentValue) Then
  632.                     sSqlWrk = "SELECT [evtDescription] FROM [tblEvents] WHERE [evtID] = " & ew_AdjustSql(viewSchedule.schEvtID.CurrentValue) & ""
  633.                     sSqlWrk = sSqlWrk & " ORDER BY [evtDescription] "
  634.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  635.                     If RsWrk.Read() Then
  636.                         viewSchedule.schEvtID.ViewValue = RsWrk("evtDescription")
  637.                     Else
  638.                         viewSchedule.schEvtID.ViewValue = viewSchedule.schEvtID.CurrentValue
  639.                     End If
  640.                     Conn.CloseTempDataReader()
  641.                 Else
  642.                     viewSchedule.schEvtID.ViewValue = System.DBNull.Value
  643.                 End If
  644.                 viewSchedule.schEvtID.CssStyle = ""
  645.                 viewSchedule.schEvtID.CssClass = ""
  646.                 viewSchedule.schEvtID.ViewCustomAttributes = ""
  647.  
  648.                 ' schPartsID
  649.                 If ew_NotEmpty(viewSchedule.schPartsID.CurrentValue) Then
  650.                     sSqlWrk = "SELECT [prtDescription] FROM [tblParts] WHERE [prtID] = " & ew_AdjustSql(viewSchedule.schPartsID.CurrentValue) & ""
  651.                     sSqlWrk = sSqlWrk & " ORDER BY [prtDescription] "
  652.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  653.                     If RsWrk.Read() Then
  654.                         viewSchedule.schPartsID.ViewValue = RsWrk("prtDescription")
  655.                     Else
  656.                         viewSchedule.schPartsID.ViewValue = viewSchedule.schPartsID.CurrentValue
  657.                     End If
  658.                     Conn.CloseTempDataReader()
  659.                 Else
  660.                     viewSchedule.schPartsID.ViewValue = System.DBNull.Value
  661.                 End If
  662.                 viewSchedule.schPartsID.CssStyle = ""
  663.                 viewSchedule.schPartsID.CssClass = ""
  664.                 viewSchedule.schPartsID.ViewCustomAttributes = ""
  665.  
  666.                 ' schCallTime
  667.                 viewSchedule.schCallTime.ViewValue = viewSchedule.schCallTime.CurrentValue
  668.                 viewSchedule.schCallTime.ViewValue = ew_FormatDateTime(viewSchedule.schCallTime.ViewValue, 14)
  669.                 viewSchedule.schCallTime.CssStyle = ""
  670.                 viewSchedule.schCallTime.CssClass = ""
  671.                 viewSchedule.schCallTime.ViewCustomAttributes = ""
  672.  
  673.                 ' schStartTime
  674.                 viewSchedule.schStartTime.ViewValue = viewSchedule.schStartTime.CurrentValue
  675.                 viewSchedule.schStartTime.ViewValue = ew_FormatDateTime(viewSchedule.schStartTime.ViewValue, 14)
  676.                 viewSchedule.schStartTime.CssStyle = ""
  677.                 viewSchedule.schStartTime.CssClass = ""
  678.                 viewSchedule.schStartTime.ViewCustomAttributes = ""
  679.  
  680.                 ' schEndTime
  681.                 viewSchedule.schEndTime.ViewValue = viewSchedule.schEndTime.CurrentValue
  682.                 viewSchedule.schEndTime.ViewValue = ew_FormatDateTime(viewSchedule.schEndTime.ViewValue, 14)
  683.                 viewSchedule.schEndTime.CssStyle = ""
  684.                 viewSchedule.schEndTime.CssClass = ""
  685.                 viewSchedule.schEndTime.ViewCustomAttributes = ""
  686.  
  687.                 ' schOutTime
  688.                 viewSchedule.schOutTime.ViewValue = viewSchedule.schOutTime.CurrentValue
  689.                 viewSchedule.schOutTime.ViewValue = ew_FormatDateTime(viewSchedule.schOutTime.ViewValue, 14)
  690.                 viewSchedule.schOutTime.CssStyle = ""
  691.                 viewSchedule.schOutTime.CssClass = ""
  692.                 viewSchedule.schOutTime.ViewCustomAttributes = ""
  693.  
  694.                 ' schLocID
  695.                 If ew_NotEmpty(viewSchedule.schLocID.CurrentValue) Then
  696.                     sSqlWrk = "SELECT [locDescription] FROM [tblLocations] WHERE [locID] = " & ew_AdjustSql(viewSchedule.schLocID.CurrentValue) & ""
  697.                     sSqlWrk = sSqlWrk & " ORDER BY [locDescription] "
  698.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  699.                     If RsWrk.Read() Then
  700.                         viewSchedule.schLocID.ViewValue = RsWrk("locDescription")
  701.                     Else
  702.                         viewSchedule.schLocID.ViewValue = viewSchedule.schLocID.CurrentValue
  703.                     End If
  704.                     Conn.CloseTempDataReader()
  705.                 Else
  706.                     viewSchedule.schLocID.ViewValue = System.DBNull.Value
  707.                 End If
  708.                 viewSchedule.schLocID.CssStyle = ""
  709.                 viewSchedule.schLocID.CssClass = ""
  710.                 viewSchedule.schLocID.ViewCustomAttributes = ""
  711.  
  712.                 ' schEmpID
  713.                 If ew_NotEmpty(viewSchedule.schEmpID.CurrentValue) Then
  714.                     sSqlWrk = "SELECT [empName] FROM [tblEmployees] WHERE [empID] = " & ew_AdjustSql(viewSchedule.schEmpID.CurrentValue) & ""
  715.                     sSqlWrk = sSqlWrk & " ORDER BY [empFirstName] "
  716.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  717.                     If RsWrk.Read() Then
  718.                         viewSchedule.schEmpID.ViewValue = RsWrk("empName")
  719.                     Else
  720.                         viewSchedule.schEmpID.ViewValue = viewSchedule.schEmpID.CurrentValue
  721.                     End If
  722.                     Conn.CloseTempDataReader()
  723.                 Else
  724.                     viewSchedule.schEmpID.ViewValue = System.DBNull.Value
  725.                 End If
  726.                 viewSchedule.schEmpID.CssStyle = ""
  727.                 viewSchedule.schEmpID.CssClass = ""
  728.                 viewSchedule.schEmpID.ViewCustomAttributes = ""
  729.  
  730.                 ' schPosID
  731.                 If ew_NotEmpty(viewSchedule.schPosID.CurrentValue) Then
  732.                     sSqlWrk = "SELECT [posDescription] FROM [tblPositions] WHERE [posID] = " & ew_AdjustSql(viewSchedule.schPosID.CurrentValue) & ""
  733.                     sSqlWrk = sSqlWrk & " ORDER BY [posDescription] "
  734.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  735.                     If RsWrk.Read() Then
  736.                         viewSchedule.schPosID.ViewValue = RsWrk("posDescription")
  737.                     Else
  738.                         viewSchedule.schPosID.ViewValue = viewSchedule.schPosID.CurrentValue
  739.                     End If
  740.                     Conn.CloseTempDataReader()
  741.                 Else
  742.                     viewSchedule.schPosID.ViewValue = System.DBNull.Value
  743.                 End If
  744.                 viewSchedule.schPosID.CssStyle = ""
  745.                 viewSchedule.schPosID.CssClass = ""
  746.                 viewSchedule.schPosID.ViewCustomAttributes = ""
  747.  
  748.                 ' schTypID
  749.                 If ew_NotEmpty(viewSchedule.schTypID.CurrentValue) Then
  750.                     sSqlWrk = "SELECT [typDescription] FROM [tblTypes] WHERE [typID] = " & ew_AdjustSql(viewSchedule.schTypID.CurrentValue) & ""
  751.                     sSqlWrk = sSqlWrk & " ORDER BY [typDescription] "
  752.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  753.                     If RsWrk.Read() Then
  754.                         viewSchedule.schTypID.ViewValue = RsWrk("typDescription")
  755.                     Else
  756.                         viewSchedule.schTypID.ViewValue = viewSchedule.schTypID.CurrentValue
  757.                     End If
  758.                     Conn.CloseTempDataReader()
  759.                 Else
  760.                     viewSchedule.schTypID.ViewValue = System.DBNull.Value
  761.                 End If
  762.                 viewSchedule.schTypID.CssStyle = ""
  763.                 viewSchedule.schTypID.CssClass = ""
  764.                 viewSchedule.schTypID.ViewCustomAttributes = ""
  765.  
  766.                 ' schNotes
  767.                 viewSchedule.schNotes.ViewValue = viewSchedule.schNotes.CurrentValue
  768.                 viewSchedule.schNotes.CssStyle = ""
  769.                 viewSchedule.schNotes.CssClass = ""
  770.                 viewSchedule.schNotes.ViewCustomAttributes = ""
  771.  
  772.                 ' schActualStart
  773.                 viewSchedule.schActualStart.ViewValue = viewSchedule.schActualStart.CurrentValue
  774.                 viewSchedule.schActualStart.ViewValue = ew_FormatDateTime(viewSchedule.schActualStart.ViewValue, 14)
  775.                 viewSchedule.schActualStart.CssStyle = ""
  776.                 viewSchedule.schActualStart.CssClass = ""
  777.                 viewSchedule.schActualStart.ViewCustomAttributes = ""
  778.  
  779.                 ' schActualEnd
  780.                 viewSchedule.schActualEnd.ViewValue = viewSchedule.schActualEnd.CurrentValue
  781.                 viewSchedule.schActualEnd.ViewValue = ew_FormatDateTime(viewSchedule.schActualEnd.ViewValue, 14)
  782.                 viewSchedule.schActualEnd.CssStyle = ""
  783.                 viewSchedule.schActualEnd.CssClass = ""
  784.                 viewSchedule.schActualEnd.ViewCustomAttributes = ""
  785.  
  786.                 ' schDateCreated
  787.                 viewSchedule.schDateCreated.ViewValue = viewSchedule.schDateCreated.CurrentValue
  788.                 viewSchedule.schDateCreated.ViewValue = ew_FormatDateTime(viewSchedule.schDateCreated.ViewValue, 6)
  789.                 viewSchedule.schDateCreated.CssStyle = ""
  790.                 viewSchedule.schDateCreated.CssClass = ""
  791.                 viewSchedule.schDateCreated.ViewCustomAttributes = ""
  792.  
  793.                 ' schStatus
  794.                 If ew_NotEmpty(viewSchedule.schStatus.CurrentValue) Then
  795.                     sSqlWrk = "SELECT [stDescription] FROM [tblScheduleStatus] WHERE [stID] = " & ew_AdjustSql(viewSchedule.schStatus.CurrentValue) & ""
  796.                     sSqlWrk = sSqlWrk & " ORDER BY [stDescription] "
  797.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  798.                     If RsWrk.Read() Then
  799.                         viewSchedule.schStatus.ViewValue = RsWrk("stDescription")
  800.                     Else
  801.                         viewSchedule.schStatus.ViewValue = viewSchedule.schStatus.CurrentValue
  802.                     End If
  803.                     Conn.CloseTempDataReader()
  804.                 Else
  805.                     viewSchedule.schStatus.ViewValue = System.DBNull.Value
  806.                 End If
  807.                 viewSchedule.schStatus.CssStyle = ""
  808.                 viewSchedule.schStatus.CssClass = ""
  809.                 viewSchedule.schStatus.ViewCustomAttributes = ""
  810.  
  811.                 ' View refer script
  812.                 ' schDate
  813.  
  814.                 viewSchedule.schDate.HrefValue = ""
  815.  
  816.                 ' schEvtID
  817.                 viewSchedule.schEvtID.HrefValue = ""
  818.  
  819.                 ' schPartsID
  820.                 viewSchedule.schPartsID.HrefValue = ""
  821.  
  822.                 ' schCallTime
  823.                 viewSchedule.schCallTime.HrefValue = ""
  824.  
  825.                 ' schStartTime
  826.                 viewSchedule.schStartTime.HrefValue = ""
  827.  
  828.                 ' schEndTime
  829.                 viewSchedule.schEndTime.HrefValue = ""
  830.  
  831.                 ' schOutTime
  832.                 viewSchedule.schOutTime.HrefValue = ""
  833.  
  834.                 ' schLocID
  835.                 viewSchedule.schLocID.HrefValue = ""
  836.  
  837.                 ' schEmpID
  838.                 viewSchedule.schEmpID.HrefValue = ""
  839.  
  840.                 ' schPosID
  841.                 viewSchedule.schPosID.HrefValue = ""
  842.  
  843.                 ' schTypID
  844.                 viewSchedule.schTypID.HrefValue = ""
  845.  
  846.                 ' schNotes
  847.                 viewSchedule.schNotes.HrefValue = ""
  848.  
  849.                 ' schActualStart
  850.                 viewSchedule.schActualStart.HrefValue = ""
  851.  
  852.                 ' schActualEnd
  853.                 viewSchedule.schActualEnd.HrefValue = ""
  854.  
  855.                 ' schDateCreated
  856.                 viewSchedule.schDateCreated.HrefValue = ""
  857.  
  858.                 ' schStatus
  859.                 viewSchedule.schStatus.HrefValue = ""
  860.  
  861.                 '
  862.                 '  Edit Row
  863.                 '
  864.  
  865.             ElseIf viewSchedule.RowType = EW_ROWTYPE_EDIT Then ' Edit row
  866.  
  867.                 ' schDate
  868.                 viewSchedule.schDate.EditCustomAttributes = ""
  869.                 viewSchedule.schDate.EditValue = viewSchedule.schDate.CurrentValue
  870.                 viewSchedule.schDate.EditValue = ew_FormatDateTime(viewSchedule.schDate.EditValue, 6)
  871.                 viewSchedule.schDate.CssStyle = ""
  872.                 viewSchedule.schDate.CssClass = ""
  873.                 viewSchedule.schDate.ViewCustomAttributes = ""
  874.  
  875.                 ' schEvtID
  876.                 viewSchedule.schEvtID.EditCustomAttributes = ""
  877.                 If ew_NotEmpty(viewSchedule.schEvtID.CurrentValue) Then
  878.                     sSqlWrk = "SELECT [evtDescription] FROM [tblEvents] WHERE [evtID] = " & ew_AdjustSql(viewSchedule.schEvtID.CurrentValue) & ""
  879.                     sSqlWrk = sSqlWrk & " ORDER BY [evtDescription] "
  880.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  881.                     If RsWrk.Read() Then
  882.                         viewSchedule.schEvtID.EditValue = RsWrk("evtDescription")
  883.                     Else
  884.                         viewSchedule.schEvtID.EditValue = viewSchedule.schEvtID.CurrentValue
  885.                     End If
  886.                     Conn.CloseTempDataReader()
  887.                 Else
  888.                     viewSchedule.schEvtID.EditValue = System.DBNull.Value
  889.                 End If
  890.                 viewSchedule.schEvtID.CssStyle = ""
  891.                 viewSchedule.schEvtID.CssClass = ""
  892.                 viewSchedule.schEvtID.ViewCustomAttributes = ""
  893.  
  894.                 ' schPartsID
  895.                 viewSchedule.schPartsID.EditCustomAttributes = ""
  896.                 If ew_NotEmpty(viewSchedule.schPartsID.CurrentValue) Then
  897.                     sSqlWrk = "SELECT [prtDescription] FROM [tblParts] WHERE [prtID] = " & ew_AdjustSql(viewSchedule.schPartsID.CurrentValue) & ""
  898.                     sSqlWrk = sSqlWrk & " ORDER BY [prtDescription] "
  899.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  900.                     If RsWrk.Read() Then
  901.                         viewSchedule.schPartsID.EditValue = RsWrk("prtDescription")
  902.                     Else
  903.                         viewSchedule.schPartsID.EditValue = viewSchedule.schPartsID.CurrentValue
  904.                     End If
  905.                     Conn.CloseTempDataReader()
  906.                 Else
  907.                     viewSchedule.schPartsID.EditValue = System.DBNull.Value
  908.                 End If
  909.                 viewSchedule.schPartsID.CssStyle = ""
  910.                 viewSchedule.schPartsID.CssClass = ""
  911.                 viewSchedule.schPartsID.ViewCustomAttributes = ""
  912.  
  913.                 ' schCallTime
  914.                 viewSchedule.schCallTime.EditCustomAttributes = ""
  915.                 viewSchedule.schCallTime.EditValue = viewSchedule.schCallTime.CurrentValue
  916.                 viewSchedule.schCallTime.EditValue = ew_FormatDateTime(viewSchedule.schCallTime.EditValue, 14)
  917.                 viewSchedule.schCallTime.CssStyle = ""
  918.                 viewSchedule.schCallTime.CssClass = ""
  919.                 viewSchedule.schCallTime.ViewCustomAttributes = ""
  920.  
  921.                 ' schStartTime
  922.                 viewSchedule.schStartTime.EditCustomAttributes = ""
  923.                 viewSchedule.schStartTime.EditValue = viewSchedule.schStartTime.CurrentValue
  924.                 viewSchedule.schStartTime.EditValue = ew_FormatDateTime(viewSchedule.schStartTime.EditValue, 14)
  925.                 viewSchedule.schStartTime.CssStyle = ""
  926.                 viewSchedule.schStartTime.CssClass = ""
  927.                 viewSchedule.schStartTime.ViewCustomAttributes = ""
  928.  
  929.                 ' schEndTime
  930.                 viewSchedule.schEndTime.EditCustomAttributes = ""
  931.                 viewSchedule.schEndTime.EditValue = viewSchedule.schEndTime.CurrentValue
  932.                 viewSchedule.schEndTime.EditValue = ew_FormatDateTime(viewSchedule.schEndTime.EditValue, 14)
  933.                 viewSchedule.schEndTime.CssStyle = ""
  934.                 viewSchedule.schEndTime.CssClass = ""
  935.                 viewSchedule.schEndTime.ViewCustomAttributes = ""
  936.  
  937.                 ' schOutTime
  938.                 viewSchedule.schOutTime.EditCustomAttributes = ""
  939.                 viewSchedule.schOutTime.EditValue = viewSchedule.schOutTime.CurrentValue
  940.                 viewSchedule.schOutTime.EditValue = ew_FormatDateTime(viewSchedule.schOutTime.EditValue, 14)
  941.                 viewSchedule.schOutTime.CssStyle = ""
  942.                 viewSchedule.schOutTime.CssClass = ""
  943.                 viewSchedule.schOutTime.ViewCustomAttributes = ""
  944.  
  945.                 ' schLocID
  946.                 viewSchedule.schLocID.EditCustomAttributes = ""
  947.                 If ew_NotEmpty(viewSchedule.schLocID.CurrentValue) Then
  948.                     sSqlWrk = "SELECT [locDescription] FROM [tblLocations] WHERE [locID] = " & ew_AdjustSql(viewSchedule.schLocID.CurrentValue) & ""
  949.                     sSqlWrk = sSqlWrk & " ORDER BY [locDescription] "
  950.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  951.                     If RsWrk.Read() Then
  952.                         viewSchedule.schLocID.EditValue = RsWrk("locDescription")
  953.                     Else
  954.                         viewSchedule.schLocID.EditValue = viewSchedule.schLocID.CurrentValue
  955.                     End If
  956.                     Conn.CloseTempDataReader()
  957.                 Else
  958.                     viewSchedule.schLocID.EditValue = System.DBNull.Value
  959.                 End If
  960.                 viewSchedule.schLocID.CssStyle = ""
  961.                 viewSchedule.schLocID.CssClass = ""
  962.                 viewSchedule.schLocID.ViewCustomAttributes = ""
  963.  
  964.                 ' schEmpID
  965.                 viewSchedule.schEmpID.EditCustomAttributes = ""
  966.                 If ew_NotEmpty(viewSchedule.schEmpID.CurrentValue) Then
  967.                     sSqlWrk = "SELECT [empName] FROM [tblEmployees] WHERE [empID] = " & ew_AdjustSql(viewSchedule.schEmpID.CurrentValue) & ""
  968.                     sSqlWrk = sSqlWrk & " ORDER BY [empFirstName] "
  969.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  970.                     If RsWrk.Read() Then
  971.                         viewSchedule.schEmpID.EditValue = RsWrk("empName")
  972.                     Else
  973.                         viewSchedule.schEmpID.EditValue = viewSchedule.schEmpID.CurrentValue
  974.                     End If
  975.                     Conn.CloseTempDataReader()
  976.                 Else
  977.                     viewSchedule.schEmpID.EditValue = System.DBNull.Value
  978.                 End If
  979.                 viewSchedule.schEmpID.CssStyle = ""
  980.                 viewSchedule.schEmpID.CssClass = ""
  981.                 viewSchedule.schEmpID.ViewCustomAttributes = ""
  982.  
  983.                 ' schPosID
  984.                 viewSchedule.schPosID.EditCustomAttributes = ""
  985.                 If ew_NotEmpty(viewSchedule.schPosID.CurrentValue) Then
  986.                     sSqlWrk = "SELECT [posDescription] FROM [tblPositions] WHERE [posID] = " & ew_AdjustSql(viewSchedule.schPosID.CurrentValue) & ""
  987.                     sSqlWrk = sSqlWrk & " ORDER BY [posDescription] "
  988.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  989.                     If RsWrk.Read() Then
  990.                         viewSchedule.schPosID.EditValue = RsWrk("posDescription")
  991.                     Else
  992.                         viewSchedule.schPosID.EditValue = viewSchedule.schPosID.CurrentValue
  993.                     End If
  994.                     Conn.CloseTempDataReader()
  995.                 Else
  996.                     viewSchedule.schPosID.EditValue = System.DBNull.Value
  997.                 End If
  998.                 viewSchedule.schPosID.CssStyle = ""
  999.                 viewSchedule.schPosID.CssClass = ""
  1000.                 viewSchedule.schPosID.ViewCustomAttributes = ""
  1001.  
  1002.                 ' schTypID
  1003.                 viewSchedule.schTypID.EditCustomAttributes = ""
  1004.                 If ew_NotEmpty(viewSchedule.schTypID.CurrentValue) Then
  1005.                     sSqlWrk = "SELECT [typDescription] FROM [tblTypes] WHERE [typID] = " & ew_AdjustSql(viewSchedule.schTypID.CurrentValue) & ""
  1006.                     sSqlWrk = sSqlWrk & " ORDER BY [typDescription] "
  1007.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  1008.                     If RsWrk.Read() Then
  1009.                         viewSchedule.schTypID.EditValue = RsWrk("typDescription")
  1010.                     Else
  1011.                         viewSchedule.schTypID.EditValue = viewSchedule.schTypID.CurrentValue
  1012.                     End If
  1013.                     Conn.CloseTempDataReader()
  1014.                 Else
  1015.                     viewSchedule.schTypID.EditValue = System.DBNull.Value
  1016.                 End If
  1017.                 viewSchedule.schTypID.CssStyle = ""
  1018.                 viewSchedule.schTypID.CssClass = ""
  1019.                 viewSchedule.schTypID.ViewCustomAttributes = ""
  1020.  
  1021.                 ' schNotes
  1022.                 viewSchedule.schNotes.EditCustomAttributes = ""
  1023.                 viewSchedule.schNotes.EditValue = viewSchedule.schNotes.CurrentValue
  1024.                 viewSchedule.schNotes.CssStyle = ""
  1025.                 viewSchedule.schNotes.CssClass = ""
  1026.                 viewSchedule.schNotes.ViewCustomAttributes = ""
  1027.  
  1028.                 ' schActualStart
  1029.                 viewSchedule.schActualStart.EditCustomAttributes = ""
  1030.                 viewSchedule.schActualStart.EditValue = viewSchedule.schActualStart.CurrentValue
  1031.                 viewSchedule.schActualStart.EditValue = ew_FormatDateTime(viewSchedule.schActualStart.EditValue, 14)
  1032.                 viewSchedule.schActualStart.CssStyle = ""
  1033.                 viewSchedule.schActualStart.CssClass = ""
  1034.                 viewSchedule.schActualStart.ViewCustomAttributes = ""
  1035.  
  1036.                 ' schActualEnd
  1037.                 viewSchedule.schActualEnd.EditCustomAttributes = ""
  1038.                 viewSchedule.schActualEnd.EditValue = viewSchedule.schActualEnd.CurrentValue
  1039.                 viewSchedule.schActualEnd.EditValue = ew_FormatDateTime(viewSchedule.schActualEnd.EditValue, 14)
  1040.                 viewSchedule.schActualEnd.CssStyle = ""
  1041.                 viewSchedule.schActualEnd.CssClass = ""
  1042.                 viewSchedule.schActualEnd.ViewCustomAttributes = ""
  1043.  
  1044.                 ' schDateCreated
  1045.                 ' schStatus
  1046.  
  1047.                 viewSchedule.schStatus.EditCustomAttributes = ""
  1048.                 sSqlWrk = "SELECT [stID], [stDescription], '' AS Disp2Fld, '' AS SelectFilterFld FROM [tblScheduleStatus]"
  1049.                 sWhereWrk = ""
  1050.                 If sWhereWrk <> "" Then sSqlWrk = sSqlWrk & " WHERE " & sWhereWrk
  1051.                 sSqlWrk = sSqlWrk & " ORDER BY [stDescription] "
  1052.                 arwrk = Conn.GetRows(sSqlWrk)
  1053.                 arwrk.Insert(0, New Object() {"", "Please Select"})
  1054.                 viewSchedule.schStatus.EditValue = arwrk
  1055.  
  1056.                 ' Edit refer script
  1057.                 ' schDate
  1058.  
  1059.                 viewSchedule.schDate.HrefValue = ""
  1060.  
  1061.                 ' schEvtID
  1062.                 viewSchedule.schEvtID.HrefValue = ""
  1063.  
  1064.                 ' schPartsID
  1065.                 viewSchedule.schPartsID.HrefValue = ""
  1066.  
  1067.                 ' schCallTime
  1068.                 viewSchedule.schCallTime.HrefValue = ""
  1069.  
  1070.                 ' schStartTime
  1071.                 viewSchedule.schStartTime.HrefValue = ""
  1072.  
  1073.                 ' schEndTime
  1074.                 viewSchedule.schEndTime.HrefValue = ""
  1075.  
  1076.                 ' schOutTime
  1077.                 viewSchedule.schOutTime.HrefValue = ""
  1078.  
  1079.                 ' schLocID
  1080.                 viewSchedule.schLocID.HrefValue = ""
  1081.  
  1082.                 ' schEmpID
  1083.                 viewSchedule.schEmpID.HrefValue = ""
  1084.  
  1085.                 ' schPosID
  1086.                 viewSchedule.schPosID.HrefValue = ""
  1087.  
  1088.                 ' schTypID
  1089.                 viewSchedule.schTypID.HrefValue = ""
  1090.  
  1091.                 ' schNotes
  1092.                 viewSchedule.schNotes.HrefValue = ""
  1093.  
  1094.                 ' schActualStart
  1095.                 viewSchedule.schActualStart.HrefValue = ""
  1096.  
  1097.                 ' schActualEnd
  1098.                 viewSchedule.schActualEnd.HrefValue = ""
  1099.  
  1100.                 ' schDateCreated
  1101.                 viewSchedule.schDateCreated.HrefValue = ""
  1102.  
  1103.                 ' schStatus
  1104.                 viewSchedule.schStatus.HrefValue = ""
  1105.             End If
  1106.  
  1107.             ' Row Rendered event
  1108.             viewSchedule.Row_Rendered()
  1109.         End Sub
  1110.  
  1111.         '
  1112.         ' Validate form
  1113.         '
  1114.         Function ValidateForm() As Boolean
  1115.  
  1116.             ' Initialize
  1117.             ParentPage.gsFormError = ""
  1118.  
  1119.             ' Check if validation required
  1120.             If Not EW_SERVER_VALIDATE Then Return (ParentPage.gsFormError = "")
  1121.             If ew_Empty(viewSchedule.schStatus.FormValue) Then
  1122.                 If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1123.                 ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Status"
  1124.             End If
  1125.  
  1126.             ' Return validate result
  1127.             Dim Valid As Boolean = (ParentPage.gsFormError = "")
  1128.  
  1129.             ' Form_CustomValidate event
  1130.             Dim sFormCustomError As String = ""
  1131.             Valid = Valid And Form_CustomValidate(sFormCustomError)
  1132.             If sFormCustomError <> "" Then
  1133.                 If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1134.                 ParentPage.gsFormError = ParentPage.gsFormError & sFormCustomError
  1135.             End If
  1136.             Return Valid
  1137.         End Function
  1138.  
  1139.         '
  1140.         ' Update record based on key values
  1141.         '
  1142.         Function EditRow() As Boolean
  1143.             Dim RsEdit As OleDbDataReader, RsChk As OleDbDataReader
  1144.             Dim sSql As String, sFilter As String
  1145.             Dim sSqlChk As String, sFilterChk As String
  1146.             Dim bUpdateRow As Boolean
  1147.             Dim RsOld As OrderedDictionary
  1148.             Dim sIdxErrMsg As String
  1149.             Dim Rs As New OrderedDictionary
  1150.             sFilter = viewSchedule.KeyFilter
  1151.             viewSchedule.CurrentFilter = sFilter
  1152.             sSql = viewSchedule.SQL
  1153.             Try
  1154.                 RsEdit = Conn.GetDataReader(sSql)
  1155.             Catch e As Exception
  1156.                 If EW_DEBUG_ENABLED Then Throw
  1157.                 Message = e.Message
  1158.                 RsEdit.Close()
  1159.                 EditRow = False
  1160.             End Try
  1161.             If Not RsEdit.Read() Then
  1162.                 RsEdit.Close()
  1163.                 EditRow = False ' Update Failed
  1164.             Else
  1165.                 RsOld = Conn.GetRow(RsEdit)
  1166.                 RsEdit.Close()
  1167.  
  1168.                 ' schStatus
  1169.                 viewSchedule.schStatus.SetDbValue(viewSchedule.schStatus.CurrentValue, System.DBNull.Value)
  1170.                 Rs("schStatus") = viewSchedule.schStatus.DbValue
  1171.  
  1172.                 ' Row Updating event
  1173.                 bUpdateRow = viewSchedule.Row_Updating(RsOld, Rs)
  1174.                 If bUpdateRow Then
  1175.                     Try
  1176.                         viewSchedule.Update(Rs)
  1177.                         EditRow = True
  1178.                     Catch e As Exception
  1179.                         If EW_DEBUG_ENABLED Then Throw
  1180.                         Message = e.Message
  1181.                         EditRow = False
  1182.                     End Try
  1183.                 Else
  1184.                     If viewSchedule.CancelMessage <> "" Then
  1185.                         Message = viewSchedule.CancelMessage
  1186.                         viewSchedule.CancelMessage = ""
  1187.                     Else
  1188.                         Message = "Update cancelled"
  1189.                     End If
  1190.                     EditRow = False
  1191.                 End If
  1192.             End If
  1193.  
  1194.             ' Row Updated event
  1195.             If EditRow Then
  1196.                 viewSchedule.Row_Updated(RsOld, Rs)
  1197.             End If
  1198.         End Function
  1199.  
  1200.         ' Page Load event
  1201.         Public Sub Page_Load()
  1202.  
  1203.             'HttpContext.Current.Response.Write("Page Load")
  1204.         End Sub
  1205.  
  1206.         ' Page Unload event
  1207.         Public Sub Page_Unload()
  1208.  
  1209.             'HttpContext.Current.Response.Write("Page Unload")
  1210.         End Sub
  1211.  
  1212.         ' Form Custom Validate event
  1213.         Public Function Form_CustomValidate(ByRef CustomError As String) As Boolean
  1214.  
  1215.             'Return error message in CustomError
  1216.             Return True
  1217.         End Function
  1218.     End Class
  1219.  
  1220.     '
  1221.     ' ASP.NET Page_Load event
  1222.     '
  1223.  
  1224.     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  1225.         Response.Buffer = EW_RESPONSE_BUFFER
  1226.         Response.Cache.SetCacheability(HttpCacheability.NoCache)
  1227.  
  1228.         ' Page init
  1229.         viewSchedule_edit = New cviewSchedule_edit(Me)        
  1230.         viewSchedule_edit.Page_Init()
  1231.  
  1232.         ' Page main processing
  1233.         viewSchedule_edit.Page_Main()
  1234.     End Sub
  1235.  
  1236.     '
  1237.     ' ASP.NET Page_Unload event
  1238.     '
  1239.  
  1240.     Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload
  1241.  
  1242.         ' Dispose page object
  1243.         If viewSchedule_edit IsNot Nothing Then viewSchedule_edit.Dispose()
  1244.     End Sub
  1245. End Class
  1246.