文档库 最新最全的文档下载
当前位置:文档库 › Foxtable常用代码汇总

Foxtable常用代码汇总

Foxtable常用代码汇总
Foxtable常用代码汇总

Foxtable常用代码汇总

1 Col 打开列窗口With Tables("员工")

.Cols("照片").OpenWindow()

.Cols("备注").CloseWindow()

End With 按钮或菜单

2 Col 关闭列窗口With Tables("员工")

.Cols("照片").OpenWindow()

.Cols("备注").CloseWindow()

End With 按钮或菜单

3 Col 移动列到指定位置With Tables("订单")

.Cols("日期").Move(0)

.Cols("客户").Move(1)

.Cols("产品").Move(2)

End With 按钮或菜单将日期、客户、产品移到前三列的位置

4 Col 冻结列CurrentTable.Cols.Frozen = 2 按钮或菜单冻结前两列

5 Col 取消冻结列CurrentTable.Cols.Frozen = 0 按钮或菜单

6 Col 从Table中移除指定的列If Tables("订单").Cols.Contains("折扣") Then

Tables("订单").Cols.Remove("折扣")

End If 按钮或菜单在订单表中移除折扣列

7 Col 一次移除多列Tables("订单").Cols.Remove("折扣","金额") 按钮或菜单

8 DataCol 锁定某表某列DataTables("订单").DataCols("折扣").AllowEdit = False

按钮或菜单

9 DataCol 取消锁定某表某列DataTables("订单").DataCols("折扣").AllowEdit = True

按钮或菜单

10 DataCol 动态地修改表达式列的计算公式

DataTables("订单").DataCols("金额").Expression = "数量 * 单价"

DataTables("订单").DataCols("金额").Expression = "数量 * 单价 * (1 - 折扣)" 按钮或菜单

Expression属性只对表达式列有效

11 DataCol 返回列的名称For Each dc As DataCol In DataTables("订单").DataCols Output.Show(https://www.wendangku.net/doc/5716222204.html,)

Next 按钮或菜单列出订单表中所有列的名称

12 DataCol 增加临时列,并可给临时列设置表达式 DataTables("订单").DataCols.Add("金额", GetType(Double), "[数量] * [单价] * (1 - [折扣])") 按钮或菜单

通过代码增加的临时列,在重新打开项目文件后,将不复存在

13 DataCol 删除临时列If DataTables("订单").DataCols.Contains("金额") Then DataTables("订单").DataCols.Delete("金额")

End If 按钮或菜单通过Add方法增加的临时列,可以用Delete方法删除

14 DataCol 一列设公式,另列得结果If https://www.wendangku.net/doc/5716222204.html, = "第一列" Then

If e.DataRow.IsNull("第一列") Then

e.DataRow("第二列") = Nothing

Else

e.DataRow("第二列") = Eval(e.DataRow("第一列"),e.DataRow)

End If

End If

DataColChanged事件假定希望根据第一列输入的计算公式,在第二列得出计算结果

15 DataRow 删除行DataTables("订单").DataRows(0).Delete() 按钮或菜单

删除订单表中的第一行Delete会返回逻辑值,如果删除成功,则返回True,否则返回False

16 DataRow 重新加载行DataTables("订单").DataRows(1).Load() 按钮或菜单

重新加载订单表的第二行

17 DataRow 撤销修改DataTables("订单").DataRows(1).Load(False) 按钮或菜单

撤销对订单表第二行的修改

18 DataRow DataTable中增加一行With DataTables("订单").DataRows

.AddNew() '增加一行

End With 按钮或菜单

19 DataRow 删除指定位置的行With DataTables("订单").DataRows

.Delete(0) '删除第一行

End With 按钮或菜单

20 DataRow 清除所有行With DataTables("单").DataRows

.Delete(0) '删除第一行

End With 按钮或菜单

21 DataRow 按日期列求月份Dim dr As DataRow =e.DataRow

if https://www.wendangku.net/doc/5716222204.html, ="开始时间" Then

if dr.IsNull("开始时间") = false Then

dr("月") = dr("开始时间").Month

Else

dr("月") = Nothing

End If

End If 表DataColChanged事件

22 DataRow 新增行编号自动加1 e.DataRow("编号") = https://www.wendangku.net/doc/5716222204.html,pute("Max(编号)") + 1

DataRowAdding事件假定表中有一个编号列,希望新增行的时候,编号列能够自动加1

这个例子其实没有什么意义的,对于外部表使用自动增量主键列,对于内部表使用表达式列引用内部编号列“_Identidy”,是更好的选择。

23 DataTable 获得指定名称的DataTable Dim dt As DataTabledt = DataTables("订单")

按钮或菜单

24 DataTable 锁定表DataTables("订单").AllowEdit = False 按钮或菜单AllowEdit属性

25 DataTable 取消锁定表DataTables("订单").AllowEdit = True 按钮或菜单

AllowEdit属性

26 DataTable 按回车键向下移动光标DataTables("订单").EnterKeyActionDown = True 按钮或菜单

EnterKeyActionDown属性

27 DataTable 在DataTable中增加一行,Dim dr As DataRow 按钮或菜单

其实我们很少直接向DataTab

28 DataTable 保存数据DataTables("订单").Save() 按钮或菜单单保存数据

29 DataTable 同时保存数据和设置DataTables("订单").Save(True) 按钮或菜单

保存设置比较耗时,会影响保存速度。菜单中的保存命令是同时保存数据和设置的。

30 DataTable 自制保存按钮For Each dt As DataTable In DataTables 按钮或菜单

这个按钮就能保存所有表,但是不会保存设置;对于一个成熟的、已经交付使用的项目,有时是没有必要保存设置的。

31 DataTable 删除符合条件的行DataTables("订单").DeleteFor("[日期] < #2/1/2007#")

按钮或菜单删除订单表中2007年2月1日以前的行

32 DataTable 对新增行设置初始值Dim r As Row = CurrentTable.Rows.AddNew()

r("姓名") = https://www.wendangku.net/doc/5716222204.html,r("日期") = Date.Today 按钮或菜单

上述的代码首先在当前表增加一行,然后将新增行的姓名列设为当前用户名,日期列设为当天日期。User表示当前登录用户,我们会在后续章节介绍它。提示:此方法和Table的AddNew方法完全等效。

33 DataTable 在DataTable查找符合条件的行Dim dr As DataRowdr = DataTables("产品").Find("产品编号 = '03'") '找出编号为03的产品

With DataTables("订单")

dr = .Find("产品= 'PD01'","日期") '找出第一次订购PD01产品的记录dr = .Find("产品= 'PD01'","日期",1) '找出第二次订购PD01产品的记录End With 按钮或菜单

34 DataTable 以集合的形式,返回所有符合指定条件的行Dim drs As List(Of DataRow)

drs = DataTables("订单").Select("[产品] = 'PD01' And [日期]= #1/4/1999#")

For Each dr As Datarow In drs

dr("折扣") = 0.12

Next 按钮或菜单对于1999年1月4日订购PD01的订单,希望将其折扣统一设置为0.12

35 DataTable 班级自动生成总分排名 '获得所有班级名称,保存在集合中

Dim bjs As List(Of String) = DataTables("成绩表").GetUniqueValues("","班级")

For Each bj As String In bjs '获得该班级的全部行,按总分降序排序Dim drs As List(Of DataRow) = DataTables("成绩表").Select("[班级] = " & bj, "总分 DESC")

For n As integer = 0 To drs.Count - 1 '遍历所有行

If n > 0 AndAlso drs(n)("总分") = drs(n-1)("总分") Then '如果总分和上一行相同

drs(n)("总分排名") = drs(n-1)("总分排名") '则排名等于上一行

Else

drs(n)("总分排名") = n + 1 '设置排名

End If

Next

Next 按钮或菜单例子,可以参考CaseStudy目录下的文件:成绩排名.Table

36 DataTable 找出符合条件的行,并将指定列的内容替换为指定值

DataTables("订单").ReplaceFor("折扣", 0.15, "[数量] > 600") 按钮或菜单

将订单表中,订购数量大于600的订单的折扣设为0.15

37 DataTable 选定某一区域CurrentTable.Select(1,2,7,6) 按钮或菜单

选定当前表第二行第三列至第八行第7列之间的区域

38 DataTable 选定指定位置的单元格 CurrentTable.Select(0,0) 按钮或菜单

选定当前表的第1行第1列

39 DataTable 选定整个某列CurrentTable.Select(0, 1, CurrentTable.Rows.Count - 1, 1) 按钮或菜单

选定整个第二列

40 DataTable 保存并重新加载所有表 For Each dt As DataTable In DataTables

dt.Load

Next 按钮或菜单在多人同时编辑数据的时候,通过执行此方法,可以得到最新的数据

41 DataTable 设置加载条件重新加载 With DataTables("订单")

.LoadFilter = "[产品] = 'PD01'"

.Load()

End With 按钮或菜单加载产品为PD01的订单

42 DataTable 撤销对表A的修改DataTables("表A").RejectChanges() 按钮或菜单

撤销自打开文件或最近一次保存以来,对该表做出的修改

43 DataTable 移除符合条件的行DataTables("订单").RemoveFor("[产品] = 'PD01'")

按钮或菜单

44 DataTable 根据条件统计表中数据 Dim Total As Integer

Dim Amount As Double

With DataTables("订单")

Total = .Compute("Sum(数量)")

Amount = .Compute("Sum(金额)")

End With 按钮或菜单计算总的销售数量和金额

45 DataTable 根据条件统计表中数据 Dim Total As Long

Total = DataTables("订单").Compute("Sum(数量)", "产品 = 'PD01'") 按钮或菜单

计算产品PD01的销售数量

46 DataTable 根据条件统计表中数据 Dim Customers As List(Of String)

Dim Total As Integer

Customers = DataTables("订单").GetUniqueValues("", "客户")

For Each Customer As String In Customers

Total = DataTables("订单").Compute("Sum(数量)", "[客户] = '" & Customer & "'")

Output.Show(Customer & ":" & Total)

Next

按钮或菜单计算每个客户的订购数量

47 DataTable 删除表DataTables.Delete("统计表1") 按钮或菜单

删除通过代码增加的临时表。

48 DataTables 按条件填充并求和Dim d As Date = Date.Today

Dim m As Integer = d.Month

dim f As New Filler

f.SourceTable = DataTables("人员表") '指定数据来源

f.SourceCols = "姓名,性别" '指定数据来源列

f.DataTable = DataTables("发放记录") '指定数据接收表

f.DataCols = "姓名,性别" '指定数据接收列

f.Fill() '填充数据

For Each dr As DataRow In DataTables("发放记录").DataRows

dr("工资") = DataTables("人员表").Compute("Sum(工资)", "[姓名]= '" & dr("姓名") & "'And 月= '" & m

& "'")

if dr.IsNull("发放日期") = True Then

dr("发放日期") = d

End If

Next 按钮或菜单

49 DataTables 按条件重新加载数据DataTables("订单").LoadFilter = "[日期] = #" & Date.Today & "#"

DataTables("订单").Load()

50 DELETE语句删除指定条件的行DELETE FROM {订单} WHERE Year([日期]) = 1998

按钮或菜单表示删除1998年的订单

51 EXCEL报表Table保存为Excel文件中的一个工作表

CurrentTable.SaveExcel("C:\data\test.xls","订单",False) 按钮或菜单SaveExcel(, SheetName, SelectedRowsOnly):目标Excel文件名,含路径。SheetName: 工作表名。SelectedRowsOnly:逻辑型,设为True,只保存选定行,否则包括所有行。

52 EXCEL报表打印模板Dim Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls")Book.Build() '生成细节区

Book.Save("c:\reports\test.xls") '保存工作簿

Dim Proc As New Process '打开工作簿

Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单如果Book来自于一个模板文件,必须先调用方法,才能生成细节区。

53 EXCEL报表将DataList的内容保存为Excel文件中的一个工作表。

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")dst.SaveExcel("C:\data\test.xls","订单",False)按钮或菜单SaveExcel(, SheetName, SelectedRowsOnly):目标Excel文件名,含路径。SheetName:

工作表名。SelectedRowsOnly:逻辑型,设为True,只保存选定行,否则包括所有行。

54 EXCEL报表报表中插入一行Dim Book As New XLS.Book("c:\reports\test.xls") '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表Sheet.Rows.Insert(0) '在最前面插入一行Book.Save("c:\reports\test.xls")

Dim Proc As New Process Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单

55 EXCEL报表报表中插入一列Dim Book As New XLS.Book("c:\reports\test.xls") '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表Sheet.Cols.Insert(0) '在最前面插入一列Book.Save("c:\reports\test.xls")

Dim Proc As New Process Proc.File ="c:\reports\test.xls"

Proc.Start() 按钮或菜单

56 EXCEL报表代码生成报表(导出报表)Dim dt As Table = Tables("订单")

Dim Book As New XLS.Book '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

Dim Style As Xls.Style = Book.NewStyle '新建一个样式

Style.BackColor = Color.Red '样式的背景颜色设为红色

For c As Integer = 0 To dt.Cols.Count -1 '添加列标题

Sheet(0, c).Value = dt.Cols(c).Name

Next

For r As Integer = 0 To dt.Rows.Count - 1 '填入数据

For c As Integer = 0 To dt.Cols.Count -1

Sheet(r +1, c).Value = dt.rows(r)(c)

Next

If dt.rows(r)("折扣") >= 0.15 Then '如果折扣大于等于0.15

Sheet(r + 1,dt.Cols("折扣").Index).Style = Style '设置折扣单元格的样式

End If

Next

Dim St2 As XLS.Style = Book.NewStyle

St2.Format = "yyyy-MM-dd"

Sheet.Cols(dt.Cols("日期").Index).Style = st2

'打开工作簿

Book.Save("c:\reports\test.xls")

Dim Proc As New Process

Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单带样式导出

57 EXCEL报表设置行高、样式及强制换页Dim Book As New XLS.Book("c:\reports\test.xls") '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表Dim Style As XLS.Style = Book.NewStyle() '定义新样式

Style.ForeColor = Color.Red '设置样式的字体颜色

Sheet.Rows(0).Height = 40 '设置第1行的行高

Sheet.Rows(0).Style = Style '设置第1行的样式

Sheet.Rows(20).PageBreak = True '在第21行处强制换页

Book.Save("c:\reports\test.xls")

Dim Proc As New Process Proc.File ="c:\reports\test.xls"

Proc.Start() 按钮或菜单

58 EXCEL报表设置列宽、样式及分页 Dim Book As New XLS.Book("c:\reports\test.xls") '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

Dim Style As XLS.Style = Book.NewStyle() '定义新样式

Style.ForeColor = Color.Red '设置样式的字体颜色

Sheet.Cols(0).Width = 120 '设置第1列的宽度

Sheet.Cols(0).Style = Style '设置第1列的样式

Sheet.Cols(4).PageBreak = True '在第5列处强制分页

Book.Save("c:\reports\test.xls")

Dim Proc As New Process Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单

59 EXCEL报表单元格样式、超链接Dim Book As New XLS.Book() '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

Dim Style As XLS.Style = Book.NewStyle() '定义新样式

Style.ForeColor = Color.Red '设置样式的字体颜色

Sheet(0,0).Style = StyleSheet(0,0).Value = "邮件"

Sheet(0,0).Hyperlink = "Mailto:"

Book.Save("c:\reports\test.xls")

Dim Proc As New Process Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单

60 EXCEL报表缩放打印Dim Book As New XLS.Book '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

With Sheet.PrintSetting

.AutoScale = True '自动缩放

.FitPagesDown = 1 '垂直方向缩为1页

End With

For i As Integer = 0 To 50 '向工作表的单元格中设置值

Sheet(i, 0).Value = (i + 1) * 10

Sheet(i, 1).Value = (i + 1) * 100

Sheet(i, 2).Value = (i + 1) * 1000

NextBook.Save("c:\reports\test.xls") '保存工作簿

Dim Proc As New Process '打开工作簿

Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单

61 EXCEL报表页面设置Dim Book As New XLS.Book

Dim Sheet As XLS.Sheet = Book.Sheets(0)

With Sheet.PrintSetting

.PaperKind = 9 '设为A4纸

.LandScape = True '横向打印

.MarginLeft = 20 '左右边距设为20毫米

.MarginRight = 20

.MarginTop = 15 '上下边距设为15毫米

.MarginBottom = 15

End With 按钮或菜单

62 EXCEL报表页眉页脚Dim Book As New XLS.Book '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

With Sheet.PrintSetting '页眉左边为日期,中间为时间,右边为表名

.Header = "&L&D &C&T &R&A" '在页脚右边打印页号和总页数

.Footer = "&R第&P页,总&N页"

End With

For i As Integer = 0 To 100 '向工作表的单元格中设置值

Sheet(i, 0).Value = (i + 1) * 10

Sheet(i, 1).Value = (i + 1) * 100

Sheet(i, 2).Value = (i + 1) * 1000

Next

Book.Save("c:\reports\test.xls") '保存工作簿

Dim Proc As New Process '打开工作簿

Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单

63 EXCEL报表打印模式、页面居中、网络线、标题等 Dim Book As New XLS.Book '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

With Sheet.PrintSetting

.BlackAndWhite = True '用黑白模式打印,即使你安装的是彩色打印

.CenterHorizontal = True '表格水平方向页面居中

.CenterVertical = True '表格垂直方向页面居中

.PrintGridlines = True '打印网格线

.PrintHeaders = True '打印列标题

End With

For i As Integer = 0 To 100 '向工作表的单元格中设置值

Sheet(i, 0).Value = (i + 1) * 10

Sheet(i, 1).Value = (i + 1) * 100

Sheet(i, 2).Value = (i + 1) * 1000

Next

Book.Save("c:\reports\test.xls") '保存工作簿

Dim Proc As New Process '打开工作簿

Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单

64 EXCEL报表单元格对齐数据Dim Book As New XLS.Book() '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

Dim Style As XLS.Style = Book.NewStyle() '定义新样式

Style.ForeColor = Color.Red '设置样式的字体颜色

Style.AlignHorz = XLS.AlignHorzEnum.Center

Style.AlignVert = XLS.AlignVertEnum.Center

Sheet.Rows(0).Height = 50

Sheet.Cols(0).Width = 120

Sheet(0,0).Value = "邮件"

Sheet(0,0).Style = Style

Book.Save("c:\reports\test.xls")

Dim Proc As New Process Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单

下面两个属性用于对齐数据。AlignHorz设置水平对齐方式,XLS.AlignHorzEnum型枚举,主要可选值有:Center:居中General:默认Left:靠左Right:靠右AlignVert设置垂直对齐方式,XLS.AlignVertEnum,主要可选值有:Bottom:靠底Center:居中Top:靠上Undefined:默认

65 EXCEL报表单元格背景颜色和字体颜色Dim dt As Table = Tables("订单")

Dim Book As New XLS.Book '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表Dim Style As Xls.Style = Book.NewStyle '新建一个样式

Style.BackColor = Color.Red '样式的背景颜色设为红色

Dim Style1 As Xls.Style = Book.NewStyle '新建一个样式

Style1.ForeColor = Color.Blue '样式的字体颜色设为蓝色按钮或菜单

66 EXCEL报表单元格边框设置Dim Book As New XLS.Book() '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

Dim Style As XLS.Style = Book.NewStyle() '定义新样式

Style.BorderTop = XLS.LineStyleEnum.Thin

Style.BorderBottom = XLS.LineStyleEnum.Thin

Style.BorderLeft = XLS.LineStyleEnum.Thin

Style.BorderRight = XLS.LineStyleEnum.Thin

Style.BorderColorTop = Color.Red

Style.BorderColorBottom = Color.Red

Style.BorderColorLeft = Color.Red

Style.BorderColorRight = Color.Red

For r As Integer = 1 to 5

For c As Integer =1 To 5

Sheet(r,c).Style = Style

Next

Next

Book.Save("c:\reports\test.xls")

Dim Proc As New Process

Proc.File = "c:\reports\test.xls"

Proc.Start() 按钮或菜单属性说明备注BorderTop 返回或设置上边框的类型。XLS.LineStyleEnum型枚举,主要可选值有:Dashed:

虚线Dotted:点线Double:双实线Hair:头发丝一样的细线(一个像素)Medium:中等实线MediumDashDotDot ted:中等的(短线+点+点)MediumDashDotted: 中等的(短线+点)MediumDashed: 中等虚线None:无Thick:粗线Thin:细线ThinDashDotDotted:细(短线+点+点)ThinDashDotted:细(短线+点) BorderBottom 返回或设置下边框的类型。BorderLeft 返回或设置左边框类型。BorderRight

返回或设置右边框类型。BorderColorTop 返回或设置上边框颜色BorderColorBottom 返回或设置下边框颜色 BorderColorLeft 返回或设置左边框颜色 BorderColorRight 返回或设置上边框颜色

67 EXCEL报表单元格斜线设置Dim Book As New XLS.Book()

Dim Sheet As XLS.Sheet = Book.Sheets(0)

Dim Style As XLS.Style = Book.NewStyle()

Style.DiagonalStyle= XLS.LineStyleEnum.Thin

Style.DiagonalColor =Color.Red

Style.Diagonal = XLS.DiagonalEnum.Backward

For r As Integer = 1 to 2

For c As Integer =1 To 2

Sheet(r,c).Style = Style

Next

Next

Book.Save("c:\reports\test.xls")

Dim Proc As New Process

Proc.File = "c:\reports\test.xls"

Proc.Start()

按钮或菜单

和斜线设置有关的属性:Diagonal返回或设置斜线的方向,XLS.DiagonalEnum型枚举,可选值有:B ackward:反斜线Forward:斜线None:无DiagonalColor 返回或设置斜线颜色DiagonalStyle返回或设置斜线的类型,XLS.LineStyleEnum型枚举,主要可选值有:Dashed:

虚线Dotted:点线Double:双实线Hair:头发丝一样的细线(一个像素)Medium:中等实线MediumDashDotDot ted:中等的(短线+点+点)MediumDashDotted: 中等的(短线+点)MediumDashed: 中等虚线None:无Thick:粗线Thin:细线ThinDashDotDotted:细(短线+点+点)ThinDashDotted:细(短线+点) 68 EXCEL报表单元格内容自动换行Dim dt As Table = Tables("订单")

Dim Book As New XLS.Book '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表Dim Style As Xls.Style = Book.NewStyle '新建一个样式

Style.WordWrap = True '单元格内容自动换行按钮或菜单

69 EXCEL报表在Excel报表模板中插入一个标记Dim Book As New XLS.Book("c:\book5.xls") Book.Marks.Add("用户名",https://www.wendangku.net/doc/5716222204.html,)

Book.Build()

Book.Save("c:\reports\test.xls")

Dim Proc As New Process

Proc.File = "c:\reports\test.xls"

Proc.Start()

按钮或菜单

利用Marks集合,我们可以在报表模板中插入标记,然后在生成报表的时候,将标记替换为真正的值。

在Excel报表模板中插入一个标记的格式为:

<标记名称>

示例

假定报表中某个位置需要打印出当前登录用户的名称,我们可以在设计报表的时候,在该处插入标记:

<用户名>

标记的名称可以根据需要取。

然后在生成报表之前,利用Marks集合,将标记替换为真正的用户:

70 EXCEL报表插入图片Dim Book As New XLS.Book '定义一个Excel工作簿

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

For i As Integer = 0 To 9 '向工作表的单元格中设置值

Sheet(i, 0).Value = (i + 1) * 10

Sheet(i, 1).Value = (i + 1) * 100

Sheet(i, 2).Value = (i + 1) * 1000

Next

Sheet(10,2).Value = New XLS.Picture(GetImage("c:\Foxtable.Ico"))

Book.Save("c:\reports\test.xls") '保存工作簿

Dim Proc As New Process '打开工作簿

Proc.File = "c:\reports\test.xls"

Proc.Start()

按钮或菜单单元格的Value属性,不仅可以设置为数据,还可以设置为一个XLS.Picture对象。XLS.Picture用于定义一个可插入到Excel单元格的图片,语法为:

New XLS.Picture(Image)

New XLS.Picture(Image, Left, Top, Width, Height)

参数:

Image: 要插入的图片。

Left: 左边距,单位为像素。

Top: 上边距,单位为像素。

Width:宽度,单位为像素。

Height: 高度,单位为像素。

可用GetImage函数从指定的图标文件中获得图标,如果文件已经事先复制到管理项目的Images子目录下,则只需指定文件名即可,否则需要包括路径。

71 EXCEL报表在Excel报表模板中加上制单人信息Dim Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls") '打开模板

Dim Sheet As XLS.Sheet = Book.Sheets(0)

Sheet(6,6).Value = "制单人:" & https://www.wendangku.net/doc/5716222204.html, '修改模板,加入制单人信息

Book.Build() '生成细节区

Book.Save("c:\reports\test.xls") '保存工作簿

Dim Proc As New Process '打开工作簿

Proc.File = "c:\reports\test.xls"

Proc.Start()

按钮或菜单

72 Row 当前选定的行Dim dr As Row = Tables("订单").Current 按钮或菜单

73 Row 删除选定行Tables("订单").Current.Delete() 按钮或菜单

74 Row 克隆第一行Tables("订单").Rows(0).Clone() 按钮或菜单

75 Row 移除当前表的选定行CurrentTable.Current.Remove() 按钮或菜单

移除和删除是不同的,移除只是使得表中暂时不再包括该行,就像该行从来没有被加载过一样;不管你是否保存文件,下次打开后,被移除的行还会出现。

76 Row 序号列自动赋值With Tables("常用代码")

For i AS integer = 0 To .Rows.Count - 1

.Rows(i)("xh") = i + 1

Next

End With

按钮或菜单

77 Table 第一行CurrentTable.Position = 0 按钮或菜单

78 Table 最末行CurrentTable.Position = CurrentTable.Rows.Count - 1 按钮或菜单

79 Table 上一行CurrentTable.Position = CurrentTable.Position - 1 按钮或菜单

80 Table 下一行CurrentTable.Position = CurrentTable.Position + 1 按钮或菜单

81 Table 删除行CurrentTable.Current.Delete 按钮或菜单

82 Table 新增行CurrentTable.AddNew() 按钮或菜单

83 Table 隐藏指定行隐藏第五行:CurrentTable.Position= 4Syscmd.Row.HideSelectedRows()

按钮或菜单

84 Table 隐藏所有行with currentTable

.select(0,0,.rows.count - 1,0)

Syscmd.Row.HideSelectedRows()

End With

按钮或菜单

85 Table 显示所有行If CurrentTable Is Nothing Then

ReturnElse

CurrentTable.StateFilter = StateFilterEnum.None

End If 按钮或菜单

86 Table 选定整个表With Tables("订单")

.Select(0, 0, .Rows.Count - 1, .Cols.Count - 1)

End With

按钮或菜单

87 Table 选定数量列With Tables("订单")

Dim c As Integer= .Cols("数量").Index

.Select(0, c, .Rows.Count - 1, c)

End With 按钮或菜单

88 Table 重置当前表选定列With CurrentTable

.Cols(.ColSel).DataCol.RaiseDataColChanged()

End With

按钮或菜单

要重置当前表选定列,但是Col并没有重置列的方法,我们只能调用DataCol的RaiseDataColChanged 方法

89 Table 当前表增加一行CurrentTable.AddNew() 按钮或菜单

90 Table 在关联表“产品.订单”中增加10行Tables("产品.订单").AddNew(10) 按钮或菜单

和DataTable的AddNew方法相比,用Table的AddNew方法增加行有以下优点:1、光标会自动移到新增加的行。2、如果在关联子表中增加行,其关联列内容会自动填入。所以大多数时候,我们用Table的AddN ew方法增加行,因为这样更方便。

91 Table 条件筛选Tables("订单").Filter = "[客户] = 'CS01' And [日期] >= #1/1/2007# And [日期] <= #12/31/2007#" 按钮或菜单在订单表中需要筛选出客户为"CS01",订购日期为2007年的记录

92 Table 条件筛选Tables("订单").Filter = "[折扣] Is Null"按钮或菜单

筛选出折扣为空的记录

93 Table 根据日期排序Tables("订单").Sort = "日期" 按钮或菜单

94 Table 根据客户和日期排序,其中日期为降序 Tables("订单").Sort = "客户,日期 DESC" 按钮或菜单

根据客户和日期排序,其中日期为降序,也就是相同客户的订单,最新的订单排在前面

95 Table 取消排序Tables("订单").Sort = "" 按钮或菜单

96 Table 重新加载当前行Tables("订单").Current.DataRow.Load() 按钮或菜单

97 Table 条件设置当前行内容Tables("订单").Current("数量") = 100 按钮或菜单

将订单表选定行的数量列内容设为100

98 Table 选择指定行CurrentTable.Position = 2 '选择第三行按钮或菜单选择当前表第三行

99 Table 根据指定的表达式和条件进行计算Dim Sum As DoubleSum = Tables("订单").Compute("Sum(数量)", "产品 = 'PD01'") 按钮或菜单统计订单表中产品PD01的销售金额100 Table 在指定列中查找指定的字符内容With CurrentTable

Dim r As Integer

r = .Find("abc", .RowSel + 1, 0, False, False, True)

If r > - 1 Then '如果找到符合条件的行

.Select(r, 0) '则选择该行

End If

End With 按钮或菜单

在当前表的第一列输入一些内容(别忘记要输入一些“abc”),然后将上述代码复制到命令窗口,反复单击“执行”按钮,进行测试。

101 Table 用列名称来指定要查找的列With CurrentTable

Dim r As Integer

r = .Find("PD01", .RowSel + 1, "产品", False, False, True)

If r > - 1 Then '如果找到符合条件的行

.Select(r, .Colsel) '则选择该行

End If

End With 按钮或菜单

102 Table 根据指定的条件表达式查找行With CurrentTable

Dim r As Integer

r = .FindRow("[公司名称] Like '*湛江*'", .Position + 1, True ) '从当前行开始查找

If r >= 0 Then '如果找到的话

.Position = r '定位到找到的行。

End If

End With 按钮或菜单在当前表中的公司名称列中,查找包括“湛江”二字的单位

103 Table 返回指定的数据行在Table中的位置Dim dr As DataRowdr = DataTables("订单").Find("[产品] = 'PD01'", "日期 Desc")

If dr IsNot Nothing Then

Dim wz As Integer = Tables("订单").FindRow(dr)

If wz >= 0 Then

Tables("订单").Position = wz

End If

End If 按钮或菜单将光标定位到最后一次订购PD01产品的订单

104 Table 打开指定名称的表视图 Tables("订单").OpenView("视图一") 按钮或菜单开订单表中名为"视图一"的视图

105 Table 将Table保存为Excel文件CurrentTable.SaveExcel("C:\data\test.xls","订单",False)按钮或菜单

106 Table 统计指定区域的数据Dim Sum As DoubleWith CurrentTable

Sum = CurrentTable.Aggregate(AggregateEnum.Sum, .TopRow, .LeftCol, .BottomRow, .RightCol)

End With 按钮或菜单统计当前表选定区域的累积值

107 Table 打印预览表CurrentTable.Print(True,False) '打印预览当前表按钮或菜单

108 Table 设置标题行高度Tables("表名").SetHeaderRowHeight(20,25) 按钮或菜单表有两个标题行,希望将标题行的高度分别设为20和25

109 Table 直接打印表With CurrentTable.PrintInfo

.PaperKind = 0 '纸张类型设为自定义

.PaperWidth = 250 '宽度设为250毫米

.PaperHeight = 120 '高度设为120毫米

End With

CurrentTable.DirectPrint(True,False) '打印预览

按钮或菜单

110 Table 打开打印设置对话框CurrentTable.PrintSetting() 按钮或菜单

111 Table 输入焦点移到Table中If CurrentTable.Focus Then '将输入焦点移到当前表CurrentTable.StartEditing '如果成功,则开始编辑。

End If 按钮或菜单如果成功地将输入焦点移到Table中,则返回True,否则返回False。

112 Table 当前表当前行指定列的值: currenttable.current(CurrentTable.ColSel) 按钮或菜单

113 表事件某一列的内容发生变化前执行If https://www.wendangku.net/doc/5716222204.html, = "折扣" Then '如果是折扣列的内容发生变化。

If e.NewValue > 0.15 Then '如果输入的内容大于0.15。 e.NewValue = 0.15 '那么改为0.15。

End If

End If DataColChanging事件在订单表中折扣超出0.15后,自动改为0.15

114 表事件实现代码输入If https://www.wendangku.net/doc/5716222204.html, = "产品" Then '如果是产品列的内容发生变化。

If e.NewValue = "tv" Then '如果新值是"tv"。

e.NewValue = "电视机" '那么将"tv"替换为"电视机"

ElseIf e.NewValue = "tel" '如果新值是"tel"

e.NewValue = "电话机" '那么将"tel"替换为"电话机"

End If

End If DataColChanging事件产品列输入tv,将自动替换为电视机,如果输入tel,自动替换为电话机

115 表事件某一列的内容被更改后执行If https://www.wendangku.net/doc/5716222204.html, = "已结帐" Then '如果是已结帐列的内容变动

If e.NewValue = True Then '而且变动后的值是True(已勾选) e.DataRow.Locked = True '那么锁定此行

End If

End If DataColChanged事件对于已结帐的行,能够自动通过审核(锁定),以免被误编辑。

116 表事件某一列的内容被更改后执行If https://www.wendangku.net/doc/5716222204.html, = "身份证号码" Then '是身份证号码发生变化吗? If e.DataRow.IsNull("身份证号码") Then '身份证号码是否为空e.DataRow("出生日期") = Nothing '如果为空,则清除出生日期

Else '否则从身份证号码列中提取出生日期

e.DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号码")) End If

End If DataColChanged事件员工表中有身份证号码、出生日期列,出生日期根据身份证号码计算得出117 表事件某一列的内容被更改后执行Select Case https://www.wendangku.net/doc/5716222204.html,

Case "已结帐" '如果是已结帐列的内容变动

If e.NewV alue = True Then '而且变动后的值是True(已勾选)

e.DataRow.Locked = True '那么锁定此行

End If

Case "身份证号码"

If e.DataRow.IsNull("身份证号码") Then '身份证号码是否为空

e.DataRow("出生日期") = Nothing '如果为空,则清除出生日期

Else

'否则从身份证号码列中提取出生日期

e.DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号码"))

相关文档