16,722
社区成员




Public Class 控件代码
'全局变量 - TrackBar1 改变图片大小使用
Dim l As Double
Dim t As Double
#Region "时间控件 标签控件 链接标签控件 日期控件 下拉菜单控件 "
'窗体的设置
Private Sub 控件代码_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'设置时间控件启用
Timer1.Enabled = True
'设置窗体不可改变大小
Me.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink
'设置窗体启动居中
Me.StartPosition = FormStartPosition.CenterScreen
'设置窗体启动最大/最小化
'Me.WindowState = FormWindowState.Maximized / FormWindowState.Minimized
'启动自动加载listbox1项目
'调用方法 加载listbox选项
SelectItems()
'設定DataGridView1滿屏
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
'加载树形菜单视图
LoadTreeView()
'ComboBox1 启动加载选项
'启动清空 ComboBox1
ComboBox1.Items.Clear()
Me.ComboBox1.Items.Add("ComboBox1启动加载选项")
Dim strSql As String = "SELECT EmpID FROM VWEmployees"
Dim ds As DataSet = GetDataSet(strSql)
If ds.Tables.Item(0).Rows.Count = 0 Then
MessageBox.Show("资料不存在")
Else
For i As Integer = 0 To ds.Tables.Item(0).Rows.Count - 1
Me.ComboBox1.Items.Add(ds.Tables.Item(0).Rows(i).Item(0))
Next
ComboBox1.SelectedIndex = 0
End If
'记录画面起始值 - 距左侧 顶部的距离
l = PictureBox1.Location.X.ToString()
t = PictureBox1.Location.Y.ToString()
End Sub
'时间控件的设置
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
TextBox1.Text = Now & " 系统时间"
End Sub
'链接标签的用法 - 两种打开方式
Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
'启动的是默认浏览器 - 推荐使用
System.Diagnostics.Process.Start("http://www.baidu.com/")
'Shell("explorer.exe http://www.baidu.com/")
End Sub
#End Region
Imports System.Text
Imports System.Collections.Specialized
Public Class 报表
#Region "报表"
Dim le() As Integer = {8, 6, 3, 18, 20, 3, 7, 10, 6} 'get各字段的MaxLength
'报表名 操作人
Dim title() As String = {"员工信息列表", "xunis"} '---- "xunis" 替换为 enterman
'数据表头名
Shadows top() As String = {"员工ID", "员工姓名", "性别", "身份证号", "出生年月", "年龄", "部门编号", "部门", "上级部门"}
'打印部分
Private Sub btnSa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelect.Click
'栏位名的字节长度与数据的最长长度做比较 取较大值 以保证数据不会溢出表格
For i = 0 To top.Length - 1
If System.Text.Encoding.Default.GetBytes(top(i)).Length > le(i) Then
le(i) = System.Text.Encoding.Default.GetBytes(top(i)).Length
End If
Next
'执行查询
Try
Dim p As Double = 0
' 用StringBuilder 拼SQL语句
Dim strStr As New StringBuilder("select")
strStr.Append(" top")
strStr.Append(" 10")
strStr.Append(" *")
strStr.Append(" from")
strStr.Append(" VWEmployees")
'等同于
'Dim strSql As String = "SELECT top 20 * FROM VWEmployees"
Dim ds As DataSet = GetDataSet(strStr.ToString)
If ds.Tables.Item(0).Rows.Count = 0 Then
MessageBox.Show("资料不存在")
Else
TextBox1.Text = ""
'打印标题
Dim c = 0
For i = 0 To le.Length - 1
c += le(i) + 3 '计算数据行总长度
Next
For i = 0 To CInt((c) / 2) '寻找打印标题的位置
TextBox1.Text = TextBox1.Text & " "
Next
TextBox1.Text = TextBox1.Text & (title(0)) & vbCrLf
'---------------------------------------------------------------------------------------------------------------------------------------
'--------主体数据部分
'---------------------------------------------------------------------------------------------------------------------------------------
'打印分割线
For k As Integer = 0 To top.Length - 1 '数据的列数
TextBox1.Text = TextBox1.Text & "___" & len2("_") '调用 len2()控制长度
Next
TextBox1.Text = TextBox1.Text & "_" & vbCrLf '每输完一行 回车
'打印表头
For k As Integer = 0 To top.Length - 1 '数据的列数
TextBox1.Text = TextBox1.Text & " | " & len1(top(k)) '调用 len1()控制输出栏位名
Next
TextBox1.Text = TextBox1.Text & " |"
TextBox1.Text = TextBox1.Text & vbCrLf '每输完一行 回车
'打印分割线
For k As Integer = 0 To top.Length - 1 '数据的列数
TextBox1.Text = TextBox1.Text & "_|_" & len2("_") '调用 len2()控制长度
Next
TextBox1.Text = TextBox1.Text & "_" & "|" & vbCrLf '每输完一行 回车
'打印主体数据
For j As Integer = 0 To ds.Tables(0).Rows.Count - 1 '数据的行数
For k As Integer = 0 To ds.Tables.Item(0).Columns.Count - 1 '数据的列数 ds.Tables(0).Columns.Count - 1
TextBox1.Text = TextBox1.Text & " | " & len1((ds.Tables(0).Rows(j)(k).ToString)) '调用 len1()控制输出长度方法
Next
TextBox1.Text = TextBox1.Text & " |"
TextBox1.Text = TextBox1.Text & vbCrLf '每输完一行 回车
Next
'打印分割线
For k As Integer = 0 To top.Length - 1 '数据的列数
TextBox1.Text = TextBox1.Text & "_|_" & len2("_") '调用 len2()控制长度
Next
TextBox1.Text = TextBox1.Text & "_" & "|" & vbCrLf '每输完一行 回车
'---------------------------------------------------------------------------------------------------------------------------------------
'--------主体数据部分结束
'---------------------------------------------------------------------------------------------------------------------------------------
'打印记录人
For i = 0 To c - Now.ToShortDateString.Length - 7
TextBox1.Text = TextBox1.Text & " "
Next
TextBox1.Text = TextBox1.Text & "制作人:" & (title(1)) & vbCrLf
For i = 0 To c - Now.ToShortDateString.Length - 7
TextBox1.Text = TextBox1.Text & " "
Next
TextBox1.Text = TextBox1.Text & "时间: " & Now.ToShortDateString.ToString & vbCrLf
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
'限制数据长度
Dim p As Double = -1
Public Function len1(ByVal e As String) As String
Try
p += 1
Dim x As Integer = p Mod 9 ' 读取长度
For i As Integer = 0 To le(x)
If System.Text.Encoding.Default.GetBytes(e).Length < le(x) Then '所有字符串转换成字节形式比较
e = e.ToString & " "
End If
Next
Return e
Catch ex As Exception
MsgBox(ex.ToString())
End Try
End Function
'限制表格线长度
Dim l As Double = -1
Public Function len2(ByVal e As String) As String
Try
l += 1
Dim x As Integer = l Mod 9 ' 读取长度
For i As Integer = 0 To le(x)
If System.Text.Encoding.Default.GetBytes(e).Length < le(x) Then
e = e.ToString & "_"
End If
Next
Return e
Catch ex As Exception
MsgBox(ex.ToString())
End Try
End Function
'修改txtRead 的东西保存
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
SaveFileDialog1.Filter = "文本文件(*.txt)|*.txt"
If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
System.IO.File.WriteAllText(SaveFileDialog1.FileName, Me.TextBox1.Text, System.Text.Encoding.GetEncoding("gb2312")) '如果要覆盖原有文件内容,就把AppendAllText换成WriteAllText
'如果要覆盖原有文件内容,就把AppendAllText换成WriteAllText
End If
End Sub
'回到起始页
Private Sub btnIncept_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncept.Click
'控件代码.Visible = True
控件代码.Show()
Me.Visible = False
End Sub
#End Region
End Class