Dim Name As String = e.Form.Controls("工程数量分表名称").Value
If Name = "" Then
MessageBox.Show("分表名称不能为空!","提示")
Return
End If
For Each dt As DataTable In DataTables
If dt.Name.Contains(Name) Then
MessageBox.Show(name & "数据库中已存在","提示")
Else
If MessageBox.Show("是否创建工程数量分表?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then
Dim Builder As New ADOXBuilder
Dim fb As ADOXTable
Builder.Open()
fb = Builder.NewTable(name) '创建表
With fb
.AddColumn("分部工程" ,ADOXType.String, 12)
.AddColumn("分项工程" ,ADOXType.String, 12)
.AddColumn("施工部位_主部位" ,ADOXType.String, 8)
.AddColumn("施工部位_辅部位" ,ADOXType.String, 8)
.AddColumn("细目号" ,ADOXType.String, 8)
.AddColumn("材料类别" ,ADOXType.String, 12)
.AddColumn("材料规格" ,ADOXType.String, 8)
.AddColumn("单位" ,ADOXType.String, 8)
.AddColumn("设计数量" ,ADOXType.Single)
.AddColumn("变更数量" ,ADOXType.Single)
End With
Builder.AddTable(fb) '增加表
Builder.Close()
Else
Return
End If
End If
Next
DataTables(name).DataCols.Add("有效数量", Gettype(Single), "isnull([设计数量],0) + isnull([变更数量],0)")
Dim dmp1 As New TableDataMap
dmp1.DataTable = "主合同清单" '指定数据来源表
dmp1.ValueCol = "细目号" '指定取值列
dmp1.DisplayCol = "细目号" '指定显示列
dmp1.ListCols = "细目号,名称" '指定下拉列表时显示哪些列的数据
dmp1.Sort = "细目号" '指定排序方式
Tables(name).Cols("细目号").DataMap = dmp1.CreateDataMap() '生成并设置DataMap
Dim dmp2 As New TableDataMap
dmp2.DataTable = "材料信息表" '指定数据来源表
dmp2.ValueCol = "规格型号" '指定取值列
dmp2.DisplayCol = "规格型号" '指定显示列
dmp2.ListCols = "材料类别,规格型号" '指定下拉列表时显示哪些列的数据
dmp2.Sort = "材料类别" '指定排序方式
Tables(name).Cols("材料规格").DataMap = dmp2.CreateDataMap() '生成并设置DataMap
Dim dmp3 As New TableDataMap
dmp3.DataTable = "材料信息表" '指定数据来源表
dmp3.ValueCol = "材料类别" '指定取值列
dmp3.DisplayCol = "材料类别" '指定显示列
dmp3.ListCols = "材料名称,材料类别" '指定下拉列表时显示哪些列的数据
dmp3.Sort = "材料名称" '指定排序方式
Tables(name).Cols("材料类别").DataMap = dmp3.CreateDataMap() '生成并设置DataMap
Relations.Add(e.Form.Controls("工程数量分表编号").value,DataTables("工程数量总表").DataCols("细目号"),DataTables(name).DataCols("细目号"))
If MessageBox.Show(Name & "已经创建,是否重启系统","请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question) =DialogResult.Yes Then
syscmd.Project.Open(ProjectFile) '打开表
MainTable = Tables(Name)
forms("创建工程数量分表").close()
Else
Return
End If
出现错误如附件:
此主题相关图片如下:未命名.jpg