《Foxtable常用代码汇总.doc》由会员分享,可在线阅读,更多相关《Foxtable常用代码汇总.doc(19页珍藏版)》请在三一办公上搜索。
1、Foxtable常用代码汇总1Col打开列窗口With Tables(员工) .Cols(照片).OpenWindow() .Cols(备注).CloseWindow()End With按钮或菜单2Col关闭列窗口With Tables(员工) .Cols(照片).OpenWindow() .Cols(备注).CloseWindow()End With按钮或菜单3Col移动列到指定位置With Tables(订单) .Cols(日期).Move(0) .Cols(客户).Move(1) .Cols(产品).Move(2)End With按钮或菜单将日期、客户、产品移到前三列的位置4Col冻结列
2、CurrentTable.Cols.Frozen = 2按钮或菜单冻结前两列5Col取消冻结列CurrentTable.Cols.Frozen = 0按钮或菜单6Col从Table中移除指定的列If Tables(订单).Cols.Contains(折扣) Then Tables(订单).Cols.Remove(折扣)End If按钮或菜单在订单表中移除折扣列7Col一次移除多列Tables(订单).Cols.Remove(折扣,金额)按钮或菜单8DataCol锁定某表某列DataTables(订单).DataCols(折扣).AllowEdit = False 按钮或菜单9DataCol取消
3、锁定某表某列DataTables(订单).DataCols(折扣).AllowEdit = True按钮或菜单10DataCol动态地修改表达式列的计算公式DataTables(订单).DataCols(金额).Expression = 数量 * 单价DataTables(订单).DataCols(金额).Expression = 数量 * 单价 * (1 - 折扣)按钮或菜单Expression属性只对表达式列有效11DataCol返回列的名称For Each dc As DataCol In DataTables(订单).DataCols Output.Show(dc.Name)Next按
4、钮或菜单列出订单表中所有列的名称12DataCol增加临时列,并可给临时列设置表达式DataTables(订单).DataCols.Add(金额, GetType(Double), 数量 * 单价 * (1 - 折扣)按钮或菜单通过代码增加的临时列,在重新打开项目文件后,将不复存在13DataCol删除临时列If DataTables(订单).DataCols.Contains(金额) Then DataTables(订单).DataCols.Delete(金额)End If按钮或菜单通过Add方法增加的临时列,可以用Delete方法删除14DataCol一列设公式,另列得结果If e.Dat
5、aCol.Name = 第一列 Then If e.DataRow.IsNull(第一列) Then e.DataRow(第二列) = Nothing Else e.DataRow(第二列) = Eval(e.DataRow(第一列),e.DataRow) End IfEnd IfDataColChanged事件假定希望根据第一列输入的计算公式,在第二列得出计算结果15DataRow删除行DataTables(订单).DataRows(0).Delete() 按钮或菜单删除订单表中的第一行Delete会返回逻辑值,如果删除成功,则返回True,否则返回False16DataRow重新加载行Da
6、taTables(订单).DataRows(1).Load()按钮或菜单重新加载订单表的第二行17DataRow撤销修改DataTables(订单).DataRows(1).Load(False)按钮或菜单撤销对订单表第二行的修改18DataRowDataTable中增加一行With DataTables(订单).DataRows .AddNew() 增加一行 End With按钮或菜单19DataRow删除指定位置的行With DataTables(订单).DataRows .Delete(0) 删除第一行 End With按钮或菜单20DataRow清除所有行With DataTables
7、(单).DataRows .Delete(0) 删除第一行 End With按钮或菜单21DataRow按日期列求月份Dim dr As DataRow =e.DataRowif e.DataCol.Name =开始时间 Then if dr.IsNull(开始时间) = false Then dr(月) = dr(开始时间).Month Else dr(月) = Nothing End IfEnd If表DataColChanged事件22DataRow新增行编号自动加e.DataRow(编号) = e.DataTable.Compute(Max(编号) + 1DataRowAdding事件
8、假定表中有一个编号列,希望新增行的时候,编号列能够自动加这个例子其实没有什么意义的,对于外部表使用自动增量主键列,对于内部表使用表达式列引用内部编号列“_Identidy”,是更好的选择。23DataTable获得指定名称的DataTableDim dt As DataTabledt = DataTables(订单)按钮或菜单24DataTable锁定表DataTables(订单).AllowEdit = False按钮或菜单AllowEdit属性25DataTable取消锁定表DataTables(订单).AllowEdit = True按钮或菜单AllowEdit属性26DataTable
9、按回车键向下移动光标DataTables(订单).EnterKeyActionDown = True按钮或菜单EnterKeyActionDown属性27DataTable在DataTable中增加一行,Dim dr As DataRow按钮或菜单其实我们很少直接向DataTab28DataTable保存数据DataTables(订单).Save()按钮或菜单单保存数据29DataTable同时保存数据和设置DataTables(订单).Save(True)按钮或菜单保存设置比较耗时,会影响保存速度。菜单中的保存命令是同时保存数据和设置的。30DataTable自制保存按钮For Each d
10、t As DataTable In DataTables按钮或菜单这个按钮就能保存所有表,但是不会保存设置;对于一个成熟的、已经交付使用的项目,有时是没有必要保存设置的。31DataTable删除符合条件的行DataTables(订单).DeleteFor(日期 0 AndAlso drs(n)(总分) = drs(n-1)(总分) Then 如果总分和上一行相同 drs(n)(总分排名) = drs(n-1)(总分排名) 则排名等于上一行 Else drs(n)(总分排名) = n + 1 设置排名 End If Next Next按钮或菜单例子,可以参考CaseStudy目录下的文件:成绩
11、排名.Table36DataTable找出符合条件的行,并将指定列的内容替换为指定值DataTables(订单).ReplaceFor(折扣, 0.15, 数量 600)按钮或菜单将订单表中,订购数量大于600的订单的折扣设为0.1537DataTable选定某一区域CurrentTable.Select(1,2,7,6)按钮或菜单选定当前表第二行第三列至第八行第7列之间的区域38DataTable选定指定位置的单元格CurrentTable.Select(0,0)按钮或菜单选定当前表的第1行第1列39DataTable选定整个某列CurrentTable.Select(0, 1, Curre
12、ntTable.Rows.Count - 1, 1)按钮或菜单选定整个第二列40DataTable保存并重新加载所有表For Each dt As DataTable In DataTables dt.LoadNext按钮或菜单在多人同时编辑数据的时候,通过执行此方法,可以得到最新的数据41DataTable设置加载条件重新加载With DataTables(订单) .LoadFilter = 产品 = PD01 .Load()End With按钮或菜单加载产品为PD01的订单42DataTable撤销对表A的修改DataTables(表A).RejectChanges()按钮或菜单撤销自打开
13、文件或最近一次保存以来,对该表做出的修改43DataTable移除符合条件的行DataTables(订单).RemoveFor(产品 = PD01)按钮或菜单44DataTable根据条件统计表中数据Dim Total As IntegerDim Amount As DoubleWith DataTables(订单) Total = .Compute(Sum(数量) Amount = .Compute(Sum(金额)End With按钮或菜单计算总的销售数量和金额45DataTable根据条件统计表中数据Dim Total As LongTotal = DataTables(订单).Compu
14、te(Sum(数量), 产品 = PD01)按钮或菜单计算产品PD01的销售数量46DataTable根据条件统计表中数据Dim Customers As List(Of String)Dim Total As IntegerCustomers = DataTables(订单).GetUniqueValues(, 客户)For Each Customer As String In Customers Total = DataTables(订单).Compute(Sum(数量), 客户 = & Customer & ) Output.Show(Customer & : & Total)Next按
15、钮或菜单计算每个客户的订购数量47DataTable删除表DataTables.Delete(统计表1)按钮或菜单删除通过代码增加的临时表。48DataTables按条件填充并求和Dim d As Date = Date.TodayDim m As Integer = d.Monthdim f As New Filler f.SourceTable = DataTables(人员表) 指定数据来源 f.SourceCols = 姓名,性别 指定数据来源列 f.DataTable = DataTables(发放记录) 指定数据接收表 f.DataCols = 姓名,性别 指定数据接收列 f.Fi
16、ll() 填充数据 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按钮或菜单49DataTables按条件重新加载数据DataTables(订单).LoadFilter = 日期 = # & Date.Today & #DataTables(订单).Load()50DELETE语句删除指
17、定条件的行DELETE FROM 订单 WHERE Year(日期) = 1998按钮或菜单表示删除1998年的订单51EXCEL报表Table保存为Excel文件中的一个工作表CurrentTable.SaveExcel(C:datatest.xls,订单,False)按钮或菜单SaveExcel(FileName, SheetName, SelectedRowsOnly)FileName: 目标Excel文件名,含路径。SheetName: 工作表名。SelectedRowsOnly:逻辑型,设为True,只保存选定行,否则包括所有行。52EXCEL报表打印模板Dim Book As Ne
18、w XLS.Book(ProjectPath & Attachments出库单.xls)Book.Build() 生成细节区Book.Save(c:reportstest.xls) 保存工作簿Dim Proc As New Process 打开工作簿Proc.File = c:reportstest.xlsProc.Start()按钮或菜单如果Book来自于一个模板文件,必须先调用方法,才能生成细节区。53EXCEL报表将DataList的内容保存为Excel文件中的一个工作表。Dim dst As WinForm.DataList = e.Form.Controls(DataList1)ds
19、t.SaveExcel(C:datatest.xls,订单,False)按钮或菜单SaveExcel(FileName, SheetName, SelectedRowsOnly)FileName: 目标Excel文件名,含路径。SheetName: 工作表名。SelectedRowsOnly:逻辑型,设为True,只保存选定行,否则包括所有行。54EXCEL报表报表中插入一行Dim Book As New XLS.Book(c:reportstest.xls) 定义一个Excel工作簿Dim Sheet As XLS.Sheet = Book.Sheets(0) 引用工作簿的第一个工作表She
20、et.Rows.Insert(0) 在最前面插入一行Book.Save(c:reportstest.xls)Dim Proc As New Process Proc.File = c:reportstest.xlsProc.Start()按钮或菜单55EXCEL报表报表中插入一列Dim Book As New XLS.Book(c:reportstest.xls) 定义一个Excel工作簿Dim Sheet As XLS.Sheet = Book.Sheets(0) 引用工作簿的第一个工作表Sheet.Cols.Insert(0) 在最前面插入一列Book.Save(c:reportstest
21、.xls)Dim Proc As New Process Proc.File =c:reportstest.xlsProc.Start()按钮或菜单56EXCEL报表代码生成报表(导出报表)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
22、c As Integer = 0 To dt.Cols.Count -1 添加列标题 Sheet(0, c).Value = dt.Cols(c).NameNextFor 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
23、设置折扣单元格的样式 End IfNextDim St2 As XLS.Style = Book.NewStyleSt2.Format = yyyy-MM-ddSheet.Cols(dt.Cols(日期).Index).Style = st2打开工作簿Book.Save(c:reportstest.xls)Dim Proc As New Process Proc.File = c:reportstest.xlsProc.Start()按钮或菜单带样式导出57EXCEL报表设置行高、样式及强制换页Dim Book As New XLS.Book(c:reportstest.xls) 定义一个Ex
24、cel工作簿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:reportstest.xls)Dim Proc As New Pro
25、cess Proc.File =c:reportstest.xlsProc.Start()按钮或菜单58EXCEL报表设置列宽、样式及分页Dim Book As New XLS.Book(c:reportstest.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.
26、Cols(0).Style = Style 设置第1列的样式Sheet.Cols(4).PageBreak = True 在第5列处强制分页Book.Save(c:reportstest.xls)Dim Proc As New Process Proc.File = c:reportstest.xlsProc.Start()按钮或菜单59EXCEL报表单元格样式、超链接Dim Book As New XLS.Book() 定义一个Excel工作簿Dim Sheet As XLS.Sheet = Book.Sheets(0) 引用工作簿的第一个工作表Dim Style As XLS.Style
27、= Book.NewStyle() 定义新样式Style.ForeColor = Color.Red 设置样式的字体颜色Sheet(0,0).Style = StyleSheet(0,0).Value = 邮件Sheet(0,0).Hyperlink = Mailto:zjtdrBook.Save(c:reportstest.xls)Dim Proc As New Process Proc.File = c:reportstest.xlsProc.Start()按钮或菜单60EXCEL报表缩放打印Dim Book As New XLS.Book 定义一个Excel工作簿Dim Sheet As
28、 XLS.Sheet = Book.Sheets(0) 引用工作簿的第一个工作表With Sheet.PrintSetting .AutoScale = True 自动缩放 .FitPagesDown = 1 垂直方向缩为1页 End WithFor 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) * 1000NextBook.Save(c:reportstest.xls) 保存工作
29、簿Dim Proc As New Process 打开工作簿Proc.File = c:reportstest.xlsProc.Start()按钮或菜单61EXCEL报表页面设置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毫米 .Margi
30、nBottom = 15End With按钮或菜单62EXCEL报表页眉页脚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 WithFor i As Integer = 0 To 100 向工作表的单元格中设置值 Sheet(i, 0).Value =
31、(i + 1) * 10 Sheet(i, 1).Value = (i + 1) * 100 Sheet(i, 2).Value = (i + 1) * 1000NextBook.Save(c:reportstest.xls) 保存工作簿Dim Proc As New Process 打开工作簿Proc.File = c:reportstest.xlsProc.Start()按钮或菜单63EXCEL报表打印模式、页面居中、网络线、标题等Dim Book As New XLS.Book 定义一个Excel工作簿Dim Sheet As XLS.Sheet = Book.Sheets(0) 引用工
32、作簿的第一个工作表With Sheet.PrintSetting .BlackAndWhite = True 用黑白模式打印,即使你安装的是彩色打印 .CenterHorizontal = True 表格水平方向页面居中 .CenterVertical = True 表格垂直方向页面居中 .PrintGridlines = True 打印网格线 .PrintHeaders = True 打印列标题End WithFor i As Integer = 0 To 100 向工作表的单元格中设置值 Sheet(i, 0).Value = (i + 1) * 10 Sheet(i, 1).Value
33、= (i + 1) * 100 Sheet(i, 2).Value = (i + 1) * 1000NextBook.Save(c:reportstest.xls) 保存工作簿Dim Proc As New Process 打开工作簿Proc.File = c:reportstest.xlsProc.Start()按钮或菜单64EXCEL报表单元格对齐数据Dim Book As New XLS.Book() 定义一个Excel工作簿Dim Sheet As XLS.Sheet = Book.Sheets(0) 引用工作簿的第一个工作表Dim Style As XLS.Style = Book.
34、NewStyle() 定义新样式Style.ForeColor = Color.Red 设置样式的字体颜色Style.AlignHorz = XLS.AlignHorzEnum.CenterStyle.AlignVert = XLS.AlignVertEnum.CenterSheet.Rows(0).Height = 50 Sheet.Cols(0).Width = 120Sheet(0,0).Value = 邮件Sheet(0,0).Style = StyleBook.Save(c:reportstest.xls)Dim Proc As New Process Proc.File = c:r
35、eportstest.xlsProc.Start()按钮或菜单下面两个属性用于对齐数据。AlignHorz设置水平对齐方式,XLS.AlignHorzEnum型枚举,主要可选值有:Center: 居中General:默认Left: 靠左Right: 靠右AlignVert设置垂直对齐方式,XLS.AlignVertEnum,主要可选值有:Bottom: 靠底Center: 居中Top: 靠上Undefined:默认65EXCEL报表单元格背景颜色和字体颜色Dim dt As Table = Tables(订单)Dim Book As New XLS.Book 定义一个Excel工作簿Dim S
36、heet 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 样式的字体颜色设为蓝色按钮或菜单66EXCEL报表单元格边框设置Dim Book As New XLS.Book() 定义一个Excel工作簿Dim Sheet As XLS.Sheet
37、 = Book.Sheets(0) 引用工作簿的第一个工作表Dim Style As XLS.Style = Book.NewStyle() 定义新样式Style.BorderTop = XLS.LineStyleEnum.ThinStyle.BorderBottom = XLS.LineStyleEnum.ThinStyle.BorderLeft = XLS.LineStyleEnum.ThinStyle.BorderRight = XLS.LineStyleEnum.ThinStyle.BorderColorTop = Color.RedStyle.BorderColorBottom =
38、Color.RedStyle.BorderColorLeft = Color.RedStyle.BorderColorRight = Color.RedFor r As Integer = 1 to 5 For c As Integer =1 To 5 Sheet(r,c).Style = Style NextNextBook.Save(c:reportstest.xls) Dim Proc As New Process Proc.File = c:reportstest.xlsProc.Start()按钮或菜单属性 说明 备注 BorderTop 返回或设置上边框的类型。 XLS.LineS
39、tyleEnum型枚举,主要可选值有:Dashed: 虚线Dotted:点线Double:双实线Hair:头发丝一样的细线(一个像素)Medium:中等实线MediumDashDotDotted:中等的(短线+点+点)MediumDashDotted: 中等的(短线+点)MediumDashed: 中等虚线None:无Thick:粗线Thin:细线ThinDashDotDotted:细(短线+点+点)ThinDashDotted:细(短线+点) BorderBottom 返回或设置下边框的类型。 BorderLeft 返回或设置左边框类型。 BorderRight 返回或设置右边框类型。 Bo
40、rderColorTop 返回或设置上边框颜色 BorderColorBottom 返回或设置下边框颜色 BorderColorLeft 返回或设置左边框颜色 BorderColorRight 返回或设置上边框颜色 67EXCEL报表单元格斜线设置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.ThinStyle.DiagonalColor =Color.RedStyle.Diagonal = XLS.DiagonalEnum.BackwardFor r As Integer = 1 to 2 For c As Integer =1 To 2 Sheet(r,c).Style = Style NextNextBook.Save(c:reportstest.xls)