📄 frmread.vb
字号:
MsgBox(ex.ToString, , "読み込む処理の失敗")
Finally
'■解放処理
strSonzai = Nothing
Erase listPaths
End Try
End Sub
''' <summary>
''' 更新ボタン
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub tsbUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbUpdate.Click
'■変数
Dim strSonzai As String 'ファイルバス記録用
Dim intResult As Integer '確認処理用
Try
'■確認ウィンドウの表示
intResult = MessageBox.Show("全部の変更を書込みますが" _
, "確認" _
, MessageBoxButtons.OKCancel _
, MessageBoxIcon.Asterisk _
, MessageBoxDefaultButton.Button1)
'□キャンセルの処理
If intResult = DialogResult.Cancel Then
Return
End If
'■ファイルバスの生成
strSonzai = mStrRepPath & _
Me.DateTimePicker1.Value.Year & _
"\" & Me.DateTimePicker1.Value.Month & _
"\" & Me.DateTimePicker1.Value.Day & _
"\" & 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 & _
".xml"
'■レポートの更新
Call Me.MakeNewXml(strSonzai)
Catch ex As Exception
MsgBox(ex.ToString, , "更新失敗")
Finally
'■解放処理
strSonzai = Nothing
intResult = Nothing
End Try
End Sub
''' <summary>
''' 削除ボタン
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub tsbDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbDelete.Click
'■変数
Dim strSonzai As String 'ファイルバス記録用
Dim intResult As Integer '確認処理用
Try
'■選択しているタブ存在の判断
If Me.tabReport.TabPages.Count = 0 Then
MessageBox.Show("選択しているタブがありません")
Return
End If
'■確認ウィンドウの表示
intResult = MessageBox.Show("選択しているタブを削除しますが" _
, "確認" _
, MessageBoxButtons.OKCancel _
, MessageBoxIcon.Asterisk _
, MessageBoxDefaultButton.Button1)
'□キャンセルの処理
If intResult = DialogResult.Cancel Then
Return
End If
'■画面のフォーカスを持っているTabPageを削除する
If Me.tabReport.TabPages.Count > 0 Then
Me.tabReport.TabPages.Remove(Me.tabReport.SelectedTab)
End If
Catch ex As Exception
MsgBox(ex.ToString, , "削除失敗")
Finally
'■解放処理
strSonzai = Nothing
intResult = Nothing
End Try
End Sub
''' <summary>
''' 追加ボタン
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
'■変数
Dim strTitle As String
Dim intCount As Integer = Me.tabReport.TabPages.Count
Dim tbPage As TabPage
Dim txtB As TextBox
Try
'■入力タイトルの判断
If (Not (Me.txtTitle.Text = Nothing)) Then
strTitle = Me.txtTitle.Text
Else
MsgBox("タイトルが入力されていません。")
Me.txtTitle.Focus()
Exit Sub
End If
'■入力タイトル同名存在の判断
If (tabReport.TabPages.Count >= 0) Then
For i As Integer = 0 To tabReport.TabPages.Count - 1
If (Me.tabReport.TabPages.Item(i).Text = strTitle) Then
MsgBox("同名の報告が存在します。")
Me.txtTitle.Focus()
Exit Sub
End If
Next
End If
'■レポートの生成
tbPage = New TabPage
tbPage.Name = "tbPage" & Me.tabReport.TabCount.ToString
tbPage.Text = Me.txtTitle.Text
Me.tabReport.TabPages.Add(tbPage)
If (Not (tabReport.TabPages.Count.Equals(0))) Then Me.tabReport.SelectTab(tabReport.TabCount - 1)
'訪問部署ボックス生成(パネル上)
txtB = New TextBox
txtB.Name = "txtBusyo0"
tbPage.Controls.Add(txtB)
txtB.Location = New Point(30, 0)
txtB.Size = New Size(250, 25)
'報告内容2ボックス生成(予備)
txtB = New TextBox
txtB.Name = "txtBusyo1"
tbPage.Controls.Add(txtB)
txtB.Location = New Point(350, 0)
txtB.Size = New Size(250, 25)
'報告内容ボックス生成(パネル上)
txtB = New TextBox
txtB.Name = "txtReport"
txtB.Multiline = True
txtB.Font = New Font("MS P Gothic", 12, FontStyle.Regular)
txtB.Size = New Size(Me.tabReport.Width - 5, Me.tabReport.Height - 50)
txtB.Location = New Point(0, 35)
txtB.Dock = DockStyle.Bottom
Me.tabReport.TabPages(Me.tabReport.TabCount - 1).Controls.Add(txtB)
Catch ex As Exception
MsgBox(ex.ToString, , "ページ追加処理の失敗")
Finally
'■解放処理
strTitle = Nothing
tbPage = Nothing
txtB = Nothing
End Try
End Sub
#End Region
#Region "□画面のTEXTBOXイベント □"
''' <summary>
''' パスワードの確認
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub MaskedTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPW.TextChanged
Try
'■入力したパスワードの判断
If txtPW.Text.Equals(CType(mliShain(Me.cobEmployeeName.SelectedIndex), cShain).pws) Then
'□更新に関するコントロールの設定
Me.tsbDelete.Enabled = True
Me.tsbUpdate.Enabled = True
Me.txtTitle.Enabled = True
Me.btnAdd.Enabled = True
Me.txtKensuu1.Enabled = True
Me.txtKensuu2.Enabled = True
For Each tp As TabPage In Me.tabReport.TabPages
CType(tp.Controls("txtReport"), TextBox).ReadOnly = False
CType(tp.Controls("txtBusyo0"), TextBox).ReadOnly = False
CType(tp.Controls("txtBusyo1"), TextBox).ReadOnly = False
Next
End If
Catch ex As Exception
MsgBox(ex.ToString, , "パスワードの確認の失敗")
End Try
End Sub
#End Region
#End Region
#Region "■ユーザメソッド ■"
''' <summary>
''' 画面の初期化
''' </summary>
''' <remarks></remarks>
Private Sub SetFrom()
Try
'■画面の初期化
Me.tabReport.TabPages.Clear()
Me.tsbUpdate.Enabled = False
Me.tsbDelete.Enabled = False
Me.txtKensuu1.Text = String.Empty
Me.txtKensuu2.Text = String.Empty
Me.btnAdd.Enabled = False
Me.txtTitle.Enabled = False
Me.txtTitle.Text = String.Empty
Me.txtPW.Text = String.Empty
Catch ex As Exception
End Try
End Sub
''' <summary>
''' レポート読み込む処理
''' </summary>
''' <remarks></remarks>
Private Sub ReadRep(ByVal path As String)
'■変数
Dim xmlDoc As XmlDocument 'XMLファイル読み取り用
Try
'■暗号化ファイルの解凍
xmlDoc = FromBinary(path)
For Each xmlNo As XmlNode In xmlDoc.ChildNodes
'■レポートタイトルの判断
If xmlNo.Name.Length >= 5 AndAlso _
xmlNo.Name.Substring(0, 5).Equals("Title") AndAlso _
xmlNo.NodeType = XmlNodeType.Element Then
'□レポートパターンの生成
Call SetReport(xmlNo.NamespaceURI)
'■レポート内容の判断
ElseIf xmlNo.Name.Length >= 6 AndAlso _
xmlNo.Name.Substring(0, 6).Equals("Naiyou") AndAlso _
xmlNo.NodeType = XmlNodeType.Element Then
'□レポート内容を画面に表示する
Me.tabReport.TabPages("tbPage" & (Me.tabReport.TabCount - 1).ToString). _
Controls("txtReport").Text &= _
xmlNo.NamespaceURI & Constants.vbCrLf
'■件数1の判断
ElseIf xmlNo.Name.Equals("Count1") AndAlso _
xmlNo.NodeType = XmlNodeType.Element Then
'□件数1の表示
txtKensuu1.Text = xmlNo.NamespaceURI
'■件数2の判断
ElseIf xmlNo.Name.Equals("Count2") AndAlso _
xmlNo.NodeType = XmlNodeType.Element Then
'□件数2の表示
txtKensuu2.Text = xmlNo.NamespaceURI
'■サッバタイトル1の判断
ElseIf xmlNo.Name.Equals("SubTitle1") AndAlso _
xmlNo.NodeType = XmlNodeType.Element Then
'□サッバタイトル1の表示
Me.tabReport.TabPages("tbPage" & (Me.tabReport.TabCount - 1).ToString). _
Controls("txtBusyo0").Text &= _
xmlNo.NamespaceURI
'■サッバタイトル2の判断
ElseIf xmlNo.Name.Equals("SubTitle2") AndAlso _
xmlNo.NodeType = XmlNodeType.Element Then
'□サッバタイトル2の表示
Me.tabReport.TabPages("tbPage" & (Me.tabReport.TabCount - 1).ToString). _
Controls("txtBusyo1").Text &= _
xmlNo.NamespaceURI
End If
'■XMLファイルにより日報の表示
Call SetNode(xmlNo)
Next
Catch ex As Exception
MsgBox(ex.ToString, , "ReadRep()失敗")
Finally
xmlDoc = Nothing
End Try
End Sub
''' <summary>
''' XMLファイルノードの遍歴
''' </summary>
''' <param name="pXmlNo"></param>
''' <remarks></remarks>
Private Sub SetNode(ByVal pXmlNo As XmlNode)
Try
For Each xmlNo As XmlNode In pXmlNo.ChildNodes
'■レポートタイトルの判断
If xmlNo.Name.Length >= 5 AndAlso _
xmlNo.Name.Substring(0, 5).Equals("Title") AndAlso _
xmlNo.NodeType = XmlNodeType.Element Then
'□レポートパターンの生成
Call SetReport(xmlNo.NamespaceURI)
'■レポート内容の判断
ElseIf xmlNo.Name.Length >= 6 AndAlso _
xmlNo.Name.Substring(0, 6).Equals("Naiyou") AndAlso _
xmlNo.NodeType = XmlNodeType.Element Then
'□レポート内容を画面に表示する
Me.tabReport.TabPages("tbPage" & (Me.tabReport.TabCount - 1).ToString). _
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -