機械室料金システムまとめのクローズフォーム

3354 ワード

システム開発では、通常、メインウィンドウを閉じるときに列を閉じる必要があるビジネス操作や、ポップアップ・プロンプト・ボックスがウィンドウを閉じるかどうかをユーザーに通知する場合があります.しかし、それらは具体的にどのように実現されていますか?以下、私が機械室の料金システムで出会ったこのような問題の具体的な解決策を共有します.これはVB 6です.0のコード:
'        
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    Dim strOnWork As String
    Dim strMsg As String
    Dim rstOnWork As ADODB.Recordset
    Dim rstWorkLog As ADODB.Recordset
    Static intSerial As Integer
    
    If MsgBox("      ?", vbOKCancel + vbExclamation, "    ") = vbOK Then
         
        '          
        strOnWork = "select * from Onwork_info where UserID='" & g_strUserName & "'"
        Set rstOnWork = ExecuteSQL(strOnWork, strMsg)
        
        '         ,     
        strOnWork = "select * from worklog_info "
        Set rstWorkLog = ExecuteSQL(strOnWork, strMsg)
        intSerial = rstWorkLog.RecordCount + 1
        
        '         
        strOnWork = "INSERT worklog_info VALUES(" & intSerial & ",'" & Trim(rstOnWork!UserID) & _
                    "','" & rstOnWork!UserLevel & "','" & rstOnWork!LoginDate & "','" & _
                    rstOnWork!LoginTime & "','" & Date & "','" & Time & "','" & _
                    rstOnWork!Computer & "','" & "true" & "')"
        Call ExecuteSQL(strOnWork, strMsg)
        
        '          
        rstOnWork.Delete
        
        rstOnWork.Close
        
        Cancel = 0
        
    Else
    
        Cancel = 1
          
    End If
    
End Sub

これはVBです.Netのコード:
'***          U       ,           ***

Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    Dim teacherWorkManageBLL As New BLL.TeacherWorkManageBLL
    Dim workLogEntity As New Entity.WorkLogEntity

    If MsgBox("      ?", vbOKCancel + vbExclamation, "    ") = vbOK Then
        '          
        workLogEntity.UserId = frmLogin.txtUser.Text.Trim
        workLogEntity.LogoutTime = Now
        '        
        teacherWorkManageBLL.ModifyWorkLog(workLogEntity)

        '***                  ***

        e.Cancel = False
        '            
        For Each ChildForm As Form In Me.MdiChildren
            ChildForm.Close()
        Next
        Me.Close()
        e.Cancel = False
    Else
        e.Cancel = True
    End If

End Sub

この2つの言語コードの同じ機能の実現を比較することで、プログラミングの世界では、言語が通じているのは、表現が異なるだけであることがわかります.私たちプログラマーが実際に学ぶのは言語ではなく、思想論理、システムアーキテクチャです.