If e.Node.Name > \
wb.Address = \End If
自定义函数
全局代码
菜单事件
======================================= =====基本功能演示.Foxdb=====
项目事件
AfterOpenProject '''
Forms(\导航\
Tables(\员工\MainTable = Tables(\订单\MessageBox.Show(\提示:\& vbcrlf & vbcrlf & \、请通过左侧窗口的任务栏, 选择要演示的功能。\vbcrlf & _
\、每个演示都会在底端打开一个窗口,介绍正在演示的功能。\& vbcrlf & \、本文件专用于演示,所以默认不保存修改。\功能演示\
BeforeLoadInnerTable
If e.DataTableName = \动态加载\ e.Filter = \End If
MainTableChanging
If e.NewTableName <> \员工\ MarkModifedCell = False End If
If e.OldTableName = \统计表1\ Forms(\返回\End If
MainTableChanged
If MainTable.Name <> \级联列表\
Tables(\级联列表\省\行政区域\省\End If
BeforeCloseProject
e.SkipSave = True
计划管理
表事件
41
单元格绘图_DrawCell
If e.Col.Name = \进度\进度\ e.StartDraw()
Dim Width As Integer = (e.Width - 2 ) * e.Row(\进度\
e.Graphics.FillRectangle(Brushes.Red,e.x + 1,e.y + 1, Width, e.Height - 2) If e.Row.IsNull(\进度\ e.Text = e.Row(\进度\ End If
If e.Row(\进度\ e.Style = \ End If
e.EndDraw() End If
学生成绩_DrawCell
If MarkCell Then
Select Case e.Col.Name Case \语文\数学\
Dim v As Double = Val(e.Text) If v < 90 Then
e.Style = \不及格\ End If
Case \英语\化学\物理\
Dim v As Double = Val(e.Text) If v < 60 Then
e.Style = \不及格\ End If Case \总分\
Dim v As Double = Val(e.Text) If v < 400 Then
e.Style = \总分不及格\ End If End Select End If
成绩分布_DataColChanged
Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables(\学生成绩\
If e.DataCol.Name = \科目\科目\ dr(\最高分\科目\ dr(\最低分\科目\ dr(\平均分\科目\
dr(\分布_60分以下\姓名)\科目\
dr(\分布_60分以上\姓名)\科目\科目\70\
dr(\分布_70分以上\姓名)\科目\科目\80\
dr(\分布_80分以上\姓名)\科目\科目\90\
dr(\分布_90分以上\姓名)\科目\科目\100\
dr(\分布_100分以上\姓名)\科目\科目\
42
< 110\
dr(\分布_110分以上\姓名)\科目\科目\< 120\
dr(\分布_120分以上\姓名)\科目\科目\< 130\
dr(\分布_130分以上\姓名)\科目\ Select Case dr(\科目\
Case \语文\数学\英语\
dr(\优秀率\= dt.Compute(\姓名)\dr(\科目\& \>= 140\/ dt.Compute(\姓名)\
dr(\及格率\姓名)\科目\姓名)\
Case \物理\化学\
dr(\优秀率\姓名)\科目\姓名)\
dr(\及格率\姓名)\科目\姓名)\
End Select End If
流水账一_DataColChanged
Select Case e.DataCol.Name Case \收入\支出\ Dim dr As DataRow
Dim drs As List(of DataRow)
dr = e.DataTable.Find(\找出上一行
If dr Is Nothing Then '如果没有上一行,说明本行就是第一行
e.DataRow(\余额\收入\支出\ dr = e.DataRow End If
drs = e.DataTable.Select(\ For i As Integer = 1 To drs.Count - 1 '重算余下行的余额
drs(i)(\余额\余额\收入\支出\ Next End Select
流水账一_AfterMoveRow
Dim Key As Decimal Dim Index As Integer Dim dc As DataCol
Index = Math.Min(e.OldIndex, e.NewIndex) Key = e.Table.Rows(Index)(\dc = e.Table.datatable.DataCols(\收入\
dc.RaiseDataColChanged(\
流水账二_DataColChanged
Select Case e.DataCol.Name Case \产品\入库\出库\ Dim dr As DataRow
Dim mr As DataRow = e.DataRow Dim drs As List(of DataRow)
43
dr = e.DataTable.Find(\产品] = '\产品\\
If dr Is Nothing Then '如果没有上一行,说明本行就是同产品的第一行 mr(\库存\入库\出库\ dr = mr End If
drs = e.DataTable.Select(\产品] = '\产品\
For i As Integer = 1 To drs.Count - 1 '重算余下行的余额
drs(i)(\库存\库存\入库\出库\ Next End Select
流水账二_AfterMoveRow
Dim Key As Decimal Dim Index As Integer Dim Filter As String Dim r As Row
Index = Math.Min(e.OldIndex, e.NewIndex) Key = e.Table.Rows(Index)(\r = e.Table.Rows(e.NewIndex)
Filter = \产品] = '\产品\e.Table.DataTable.DataCols(\入库\
级联列表_PrepareEdit
If e.IsFocusCell AndAlso e.Col.Name = \县市\
e.Col.Combolist = DataTables(\行政区域\县市\\省] = '\e.Row(\省\& \End If
级联列表_DataColChanged
'如果刚刚输入的是省市或县市列
If e.DataCol.Name = \省\县市\ Dim dr As DataRow Dim Filter As String
Filter = \省] = '\省\县市] = '\县市\ dr = DataTables(\行政区域\在行政区域表查找所输入省市和县市的行 If dr IsNot Nothing Then '如果找到
'将找到行的区号和邮编内容填入到正在输入的行中 e.DataRow(\区号\区号\ e.DataRow(\邮编\邮编\ Else
'否则清除区号和邮编两列的内容 e.DataRow(\区号\ e.DataRow(\邮编\ End If End If
窗口表事件
_Table1_PositionChanged
44
Dim r As Row = e.Table.Current
Dim pbx As WinForm.PictureBox = Forms(\下拉窗口\Dim tbx As WinForm.TextBox = Forms(\下拉窗口\pbx.Image = GetImage(r(\照片\tbx.value = r(\备注\
_Table1_DoubleClick
Dim dr As Row = Tables(\下拉窗口_Table1\With Forms(\下拉窗口\ If dr IsNot Nothing Then .Value = dr(\姓名\ End If
.CloseDropDown() End With
窗口与控件事件
A多种统计_AfterLoad
For Each frm As WinForm.Form In Forms '关闭本表其他窗口
If frm.TableName = e.Form.TableName Andalso frm.Opened Then If frm.Name <> e.Form.Name Then frm.Close End If End If Next
Dim t As Table = Tables(\学生成绩\t.StopRedraw() t.ClearSubtotal() t.ResumeRedraw()
A多种统计_Button1_Click '''
Dim g As New GroupTableBuilder(\统计表1\学生成绩\g.Groups.AddDef(\班级\
g.Totals.AddDef(\语文\语文_平均分\g.Totals.AddDef(\语文\语文_最高分\g.Totals.AddDef(\语文\语文_最低分\g.Totals.AddDef(\数学\数学_平均分\g.Totals.AddDef(\数学\数学_最高分\g.Totals.AddDef(\数学\数学_最低分\g.Totals.AddDef(\英语\英语_平均分\g.Totals.AddDef(\英语\英语_最高分\g.Totals.AddDef(\英语\英语_最低分\g.Totals.AddDef(\化学\化学_平均分\g.Totals.AddDef(\化学\化学_最高分\g.Totals.AddDef(\化学\化学_最低分\g.Totals.AddDef(\物理\物理_平均分\g.Totals.AddDef(\物理\物理_最高分\g.Totals.AddDef(\物理\物理_最低分\g.Totals.AddDef(\总分\总分_平均分\g.Totals.AddDef(\总分\总分_最高分\g.Totals.AddDef(\总分\总分_最低分\
45