⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmread.vb

📁 日報管理システム&#65407 &#65392 &#65405 です よろしくお願いします
💻 VB
📖 第 1 页 / 共 3 页
字号:
Imports System
Imports System.IO
Imports System.Xml
Imports System.Text
Imports System.Security.Cryptography


''' <summary>
''' レポート読み込む画面
''' </summary>
''' <remarks></remarks>
Public Class frmRead

#Region "■定数       ■"

    ''' <summary>
    ''' 社員名前のファイル
    ''' </summary>
    ''' <remarks></remarks>
    Const cStrShain As String = "SHAIN.xml"

    ''' <summary>
    ''' 部署名のファイル
    ''' </summary>
    ''' <remarks></remarks>
    Const cStrPost As String = "POST.xml"

    ''' <summary>
    ''' 職名のファイル
    ''' </summary>
    ''' <remarks></remarks>
    Const cStrPosition As String = "POSITION.xml"

#End Region

#Region "■変数          ■"

    ''' <summary>
    ''' 社員情報
    ''' </summary>
    ''' <remarks></remarks>
    Public Class cShain

        ''' <summary>
        ''' 名前
        ''' </summary>
        ''' <remarks></remarks>
        Public name As String

        ''' <summary>
        ''' コード
        ''' </summary>
        ''' <remarks></remarks>
        Public id As String

        ''' <summary>
        ''' パスワード
        ''' </summary>
        ''' <remarks></remarks>
        Public pws As String

    End Class

    ''' <summary>
    ''' 配置ファイルのバス
    ''' </summary>
    ''' <remarks></remarks>
    Public mStrPath As String

    ''' <summary>
    ''' レポート保存のバス
    ''' </summary>
    ''' <remarks></remarks>
    Public mStrRepPath As String

    ''' <summary>
    ''' 社員名前
    ''' </summary>
    ''' <remarks></remarks>
    Private mdsShain As New DataSet

    ''' <summary>
    ''' 部署名
    ''' </summary>
    ''' <remarks></remarks>
    Private mdsPost As New DataSet

    ''' <summary>
    ''' 職名
    ''' </summary>
    ''' <remarks></remarks>
    Private mdsPosition As New DataSet

    ''' <summary>
    ''' レポート
    ''' </summary>
    ''' <remarks></remarks>
    Private mdsReport As New DataSet

    ''' <summary>
    ''' 社員情報記録用
    ''' </summary>
    ''' <remarks></remarks>
    Private mliShain As New ArrayList

    ''' <summary>
    ''' パスワード記録用
    ''' </summary>
    ''' <remarks></remarks>
    Private mStrPWD As String = String.Empty

#End Region

#Region "■画面コントロルイベント■"

#Region "□画面のイベント        □"

    ''' <summary>
    ''' 画面のロード処理 
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Try

            '■社員情報の取得
            mdsShain.ReadXml(mStrPath & cStrShain)
            '■部署情報の取得
            mdsPost.ReadXml(mStrPath & cStrPost)
            '■職名情報の取得
            mdsPosition.ReadXml(mStrPath & cStrPosition)

            '■部署情報をComboBoxにセットする
            For i As Integer = 0 To mdsPost.Tables(1).Rows.Count - 1
                If (mdsPost.Tables(1).Rows(i).Item(2) = 1) Then
                    '□部署名の記録
                    Me.cobPostName.Items.Add(mdsPost.Tables(1).Rows(i).Item("部署名"))
                End If
                
            Next

            Me.cobPostName.SelectedIndex = -1

        Catch ex As Exception

            MsgBox(ex.ToString, , "ロード処理に失敗しました。")
        End Try
    End Sub

    ''' <summary>
    ''' フォーム閉じた
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub frmRead_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed

        Try
            '■解放処理
            mdsShain.Dispose()
            mdsPost.Dispose()
            mdsPosition.Dispose()
            mdsReport.Dispose()
            mliShain = Nothing

        Catch ex As Exception

        End Try
    End Sub

#End Region

#Region "□画面のComboBoxイベント□"

    ''' <summary>
    ''' 部署ComboBoxのSelectedIndex変更イベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub PostName_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cobPostName.SelectedIndexChanged

        '■■変数
        Dim strPost As String                                   '部署名記録用
        Dim strBusyo As String                                  '部署ID記録用
        Dim shain As cShain
        Try


            '■画面の初期化
            Call Me.SetFrom()

            '■既存社員の情報のクリア
            Me.cobEmployeeName.Items.Clear()
            If Not mliShain Is Nothing Then mliShain.Clear()

            '■選択された部署名の記録
            strPost = Me.cobPostName.SelectedItem

            '■選択された部署名により社員名の取得
            For i As Integer = 0 To Me.cobPostName.Items.Count - 1

                '■選択された部署名により部署IDの取得
                If (strPost.Equals(mdsPost.Tables(1).Rows(i).Item(1))) Then
                    strBusyo = mdsPost.Tables(1).Rows(i).Item(0)

                    '■選択された部署IDにより社員名の設定
                    For j As Integer = 0 To mdsShain.Tables(1).Rows.Count - 1

                        '□部署IDの判断
                        If (mdsShain.Tables(1).Rows(j).Item(3).Equals(strBusyo)) Then

                            '□社員名の設定
                            Me.cobEmployeeName.Items.Add(mdsShain.Tables(1).Rows(j).Item("NAME"))
                            '□ファイル名生成の為に社員情報の記録

                            shain = New cShain
                            shain.id = mdsShain.Tables(1).Rows(j).Item("ID")
                            shain.name = mdsShain.Tables(1).Rows(j).Item("ANAME")
                            shain.pws = mdsShain.Tables(1).Rows(j).Item("PW")
                            mliShain.Add(shain)

                        End If

                    Next

                End If
            Next

            '■選択された部署により表示パターンの設定
            If (Me.cobPostName.Text = "営業部") Then

                '□営業部の場合
                Me.lblKensuu1.Text = "新規"
                Me.lblKensuu2.Text = "再訪"
                Me.lblKensuu1.Visible = True
                Me.lblKensuu2.Visible = True
                Me.txtKensuu1.Visible = True
                Me.txtKensuu2.Visible = True
            ElseIf (Me.cobPostName.Text = "総務部") Then

                '□総務部の場合
                Me.lblKensuu1.Text = "面接"
                Me.lblKensuu2.Text = "採用"
                Me.lblKensuu1.Visible = True
                Me.lblKensuu2.Visible = True
                Me.txtKensuu1.Visible = True
                Me.txtKensuu2.Visible = True
            Else

                '□その他の場合
                Me.lblKensuu1.Visible = False
                Me.lblKensuu2.Visible = False
                Me.txtKensuu1.Visible = False
                Me.txtKensuu2.Visible = False
            End If

        Catch ex As Exception

            MsgBox(ex.ToString, , "部署の読み込み失敗")
        Finally
            '■解放処理
            strPost = Nothing
            strBusyo = Nothing

        End Try
    End Sub

    ''' <summary>
    ''' 社員名ComboBoxのSelectedIndex変更イベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub cobEmployeeName_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cobEmployeeName.SelectedIndexChanged

        Try

            '■画面の初期化
            Call Me.SetFrom()

        Catch ex As Exception

            MsgBox(ex.ToString, , "社員名選択失敗")
        End Try

    End Sub

#End Region

#Region "□画面のボタンイベント    □"

    ''' <summary>
    ''' 読み込むボタン
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRead.Click

        '■変数
        Dim strSonzai As String                                 'ファイルバス記録用
        Dim listPaths As String()                               '既存ファイルバス記録用

        Try

            '■画面の初期化
            Call Me.SetFrom()

            '■部署名条件のチェック処理
            If Me.cobPostName.Text.Trim().Equals(String.Empty) Then
                MsgBox("部署名を選択してください")
                Return
            End If

            '■社員名条件のチェック処理
            If Me.cobEmployeeName.Text.Trim().Equals(String.Empty) Then
                MsgBox("社員名を選択してください")
                Return
            End If

            '■日付バスのチェック
            '□日付バスの生成
            strSonzai = mStrRepPath & _
                         Me.DateTimePicker1.Value.Year & _
                         "\" & Me.DateTimePicker1.Value.Month & _
                         "\" & Me.DateTimePicker1.Value.Day & "\"

            '□バスの判断
            If Not Directory.Exists(strSonzai) Then

                '□エラーメッセージの表示
                MsgBox("選択されている日付のフォルダがないので選択直してください")
                Return

            End If

            '■最終バスのチェック
            '□既存ファイルバスの記録
            listPaths = Directory.GetFiles(strSonzai)
            '□最終ファイルバスの生成
            strSonzai &= DateTimePicker1.Value.Year & _
                         CType(Me.DateTimePicker1.Value.Month, String).PadLeft(2, "0") & _
                         CType(DateTimePicker1.Value.Day, String).PadLeft(2, "0") & _
                         "_" & _
                         CType(mliShain(Me.cobEmployeeName.SelectedIndex), cShain).name & _
                         CType(mliShain(Me.cobEmployeeName.SelectedIndex), cShain).id & _
                         ".bin"

            '□生成ファイルバスの判断
            If Not CheckPath(listPaths, strSonzai) Then

                '□エラーメッセージの表示
                MsgBox("当日のフォルダに" & Me.cobEmployeeName.Text & "の日報がないです")
                Return

            End If

            '■レポートの読み込む
            Call ReadRep(strSonzai)

            '■読む成功の時パスワード入力可の設定
            Me.txtPW.Enabled = True

        Catch ex As Exception

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -