📄 frmread.vb
字号:
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 + -