Dim e As RequestEventArgs = args(0)
Dim wb As New weui
'删除订单明细
If e.GetValues.ContainsKey("deldid") Then
DataTables("嫌疑人基本信息").SQLDeleteFor("[_Identify] = " & e.GetValues("deldid"))
DataTables("承办人信息").SQLDeleteFor("[_Identify] = " & e.GetValues("deldid"))
End If
'订单编辑
Dim pr As DataRow '订单
Dim srs As List(of DataRow) '订单明细集合
Dim srs1 As List(of DataRow) '订单明细集合
Dim Page As Integer '页码变量
If e.GetValues.ContainsKey("page") Then '如果地址中有page参数
Integer.TryParse(e.GetValues("page"), page) '提取page参数
End If
If e.GetValues.ContainsKey("oid") = False Then '如果没有传递编号,则新增与一个订单
pr = DataTables("订单").SQLAddNew() '
pr("编号") = Functions.Execute("GetOrderID") '利用自定义函数GetOrderID为新增订单生成编号.
pr("申请时间") = Date.Today()
Else '如果传递了编号,则找出此订单进行编辑
pr = DataTables("订单").SQLFind("编号='" & e.GetValues("oid") & "'")
If pr Is Nothing Then '多用户情况下,必须考虑其他用户删除订单的可能.
wb.InSertHtml("此订单已被其他用户删除!")
e.WriteString(wb.Build)
Return "" '必须返回
End If
srs = DataTables("嫌疑人基本信息").SQLSelect("编号='" & pr("编号") & "'") '获取订单明细
srs1 = DataTables("承办人信息").SQLSelect("编号='" & pr("编号") & "'") '获取订单明细
End If
Dim url As String = "edit.htm?page=" & page & "&oid=" & pr("编号") '传递页码和编号
wb.AddForm("","form1",url)
With wb.AddInputGroup("form1","ipg1",iif(e.GetValues.ContainsKey("oid"),"编辑订单","新增订单"))
With .AddInput("编号","编号","text")
.Value = pr("编号")
.Readonly = True
End With
With .AddInput("申请时间","申请时间","date")
.Value = pr("申请时间")
.Readonly = True
End With
With .AddInput("单位","所在单位","text")
.Value = pr("单位")
'.Placeholder="请填写申请人所在单位"
End With
With .AddInput("申请部门","所在部门","text")
.Value = pr("申请部门")
' .Placeholder="请填写申请人所在部门"
End With
With .AddInput("申请人","申请人名","text")
.Value = pr("申请人")
End With
With .AddInput("预约日期","预约日期","datetime-local")
If pr("预约日期")= Nothing
.value=""
Else
.Value = Format(pr("预约日期"),"yyyy-MM-ddTHH:mm")
End If
End With
'With .AddInput("预约时间","预约时间","time")
'.Value = Format(Date.Now,"HH:mm")
'End With
Dim s As String = "|远程提审支持|其它事项|".replace("|" & pr("预约事项") & "|","|[" & pr("预约事项") & "]|").trimend("|")
With.AddSelect("预约事项","预约事项",s)
End With
.AddInput("备注","备注说明","text").Readonly=True
With.AddTextArea("yj",1)
.Value = pr("备注")
End With
.AddHiddenValue("编号",Functions.Execute("GetOrderID"))
End With
'订单明细编辑
Dim mr As DataRow '要编辑的订单明细
Dim mr1 As DataRow '要编辑的订单明细
Dim IsNew As Boolean '此变量用于标记是否要新增明细
If e.GetValues.ContainsKey("oid") = False OrElse e.GetValues.ContainsKey("addnext") '如果是新增订单,或这包括addnext参数
IsNew = True '将IsNew参数设置为True,表明需要新增订单明细
ElseIf e.GetValues.ContainsKey("did") Then '如果传递了订单明细主键
mr = DataTables("嫌疑人基本信息").SQLFind("[_Identify]=" & e.GetValues("did")) '找出此订单明细进行编辑
mr1 = DataTables("承办人信息").SQLFind("[_Identify]=" & e.GetValues("did")) '找出此订单明细进行编辑
End If
If IsNew OrElse mr IsNot Nothing Then
With wb.AddInputGroup("form1","ipg2",iif(IsNew,"新增承办人明细","编辑承办人明细"))
If IsNew Then '如果是新增订单明细
.AddInput("部门","部门","text")
.AddInput("姓名","姓名","text")
.AddSelect("职务","职务","|男|女")
Else
.AddHiddenValue("DetailID",mr1("_Identify")) '插入一个隐藏的订单明细主键,此值将随表单数据一并提交到服务器.
.AddInput("部门","部门","text").Value = mr1("部门")
.AddInput("姓名","姓名","text").value = mr1("姓名")
.AddInput("职务","职务","text").value = mr1("职务")
End If
End With
With wb.AddInputGroup("form1","ipg22",iif(IsNew,"新增嫌疑人明细","编辑嫌疑人明细"))
If IsNew Then '如果是新增订单明细
.AddInput("涉嫌罪名","涉嫌罪名","text")
.AddInput("嫌疑人姓名","嫌疑人姓名","text")
.AddSelect("性别","性别","|男|女")
Else
.AddHiddenValue("DetailID",mr("_Identify")) '插入一个隐藏的订单明细主键,此值将随表单数据一并提交到服务器.
.AddInput("涉嫌罪名","涉嫌罪名","text").Value = mr("涉嫌罪名")
.AddInput("嫌疑人姓名","嫌疑人姓名","text").value = mr("嫌疑人姓名")
.AddInput("性别","性别","text").value = mr("性别")
End If
End With
End If
'生成订单明细表格
If e.GetValues.ContainsKey("oid") AndAlso srs.count > 0 Then '如果不是新增订单,且订单明细行数大于0,则生成订单明细表格.
With wb.AddTable("form1","detailTable") '为了区分,明细表的名字设为detailTable
.head.AddRow("涉嫌罪名","嫌疑人姓名","性别")
.ActiveSheet = "menu" '指定菜单
For Each sr As DataRow In srs
With .Body.AddRow(sr("涉嫌罪名"),sr("嫌疑人姓名"),sr("性别"))
.Primarykey = sr("_Identify") '为此行指定主键值
End With
Next
End With
'设计菜单
Else If e.GetValues.ContainsKey("oid") AndAlso srs1.count > 0 Then '如果不是新增订单,且订单明细行数大于0,则生成订单明细表格.
With wb.AddTable("form1","detailTable1") '为了区分,明细表的名字设为detailTable
.head.AddRow("部门","姓名","职务")
.ActiveSheet = "menu" '指定菜单
For Each sr As DataRow In srs
With .Body.AddRow(sr("部门"),sr("姓名"),sr("职务"))
.Primarykey = sr("_Identify") '为此行指定主键值
End With
Next
End With
With wb.AddActionSheet("","menu")
.Add("mnudAdd", "增加明细").Attribute="" '调用js函数
.Add("mnuEdit", "编辑明细").Attribute =""
.Add("mnuDelete", "删除明细").Attribute ="""
.Add("mnuCancel","取消","",True)
End With
End If
With wb.AddDialog("","dlg1", "删除确认","您确定要删除当前明细吗?")
.AddButton("btnCancel","取消").Kind = 1
.AddButton("btnOK","确定").Attribute = ""
End With
With wb.AddButtonGroup("form1","btg1",False)
.Add("btn1", "增加嫌疑人", "submit").FormAction = url & "&addnext=true" '加上addnext参数,表示保存后进入增加明细状态
.Add("btn11", "增加承办人", "submit").FormAction = url & "&addnext=true" '加上addnext参数,表示保存后进入增加明细状态
.Add("btn2", "保存", "submit") '正常提交,保存后进入编辑状态
If e.GetValues.ContainsKey("oid") = False Then '如过是新增订单
.Add("btn3", "取消", "button","list.htm?page=" & page & "&deloid=" & pr("编号")) '删除新增订单后返回列表
ElseIf IsNew OrElse mr IsNot Nothing Then '如果在给旧订单新增或修改明细,则直接返回编辑状态
.Add("btn3", "取消", "button",url) '返回编辑状态
Else
.Add("btn3", "返回", "button","list.htm?page=" & page) '返回列表
End If
End With
pr.Save() '必须保存,而且必须在最后保存,因为SQLAddNew增加的行,保存之后就会销毁,无法再调用
If e.PostValues.Count > 0 Then '如果是通过提交按钮访问,则给一个已经保存的提示给用户,时长500毫秒
wb.AddToast("","t1", "已经保存",0).Msec= 500
End If
wb.AppendHTML("<script>" & vars("order") & "</script>") '引入脚本文件
e.WriteString(wb.Build) '生成网页
Dim e As RequestEventArgs = args(0)
'保存订单
Dim dr As DataRow = DataTables("订单").SQLFind("编号='" & e.PostValues("编号") & "'")
Dim nms() As String = {"编号","申请时间","单位","申请人","预约日期","预约事项","申请部门","备注"} '""
If dr IsNot Nothing Then
For Each nm As String In nms
If e.PostValues.ContainsKey(nm) Then
dr(nm)= e.PostValues(nm)
dr("备注")= e.PostValues("yj")
dr("状态")="新建"
End If
Next
End If
dr.Save()
'保存明细
Dim valid As Boolean '用于判断用户是否 输入了订单明细数据
nms = New String() {"涉嫌罪名","嫌疑人姓名","性别"}
For Each nm As String In nms
If e.PostValues.ContainsKey(nm) Then
valid = True '如果 输入了订单明细数据,将valid变量设置为True
End If
Next
If valid Then '如果提交了订单明细数据
Dim sr As DataRow
If e.PostValues.ContainsKey("DetailID") Then '如果传递了订单明细主键
sr = DataTables("嫌疑人基本信息").SQLFind("[_Identify]=" & e.PostValues("DetailID"))
If sr Is Nothing Then '多用户环境,必须考虑其他用户删除此明细的可能,避免程序报错
Return ""
End If
Else
sr = DataTables("嫌疑人基本信息").SQLAddNew() '增加一个订单明细
sr("编号") = dr("编号")
End If
For Each nm As String In nms
sr(nm) = e.PostValues(nm)
Next
sr.Save() '必须保存,而且必须在最后保存,因为用SQLAddNew增加的行,一旦保存,就不能再引用此行
End If
'保存明细
Dim valid1 As Boolean '用于判断用户是否 输入了订单明细数据
nms = New String() {"部门","姓名","职务"}
For Each nm1 As String In nms
If e.PostValues.ContainsKey(nm1) Then
valid1 = True '如果 输入了订单明细数据,将valid变量设置为True
End If
Next
If valid1 Then '如果提交了订单明细数据
Dim sr1 As DataRow
If e.PostValues.ContainsKey("DetailID") Then '如果传递了订单明细主键
sr1 = DataTables("承办人信息").SQLFind("[_Identify]=" & e.PostValues("DetailID"))
If sr1 Is Nothing Then '多用户环境,必须考虑其他用户删除此明细的可能,避免程序报错
Return ""
End If
Else
sr1 = DataTables("承办人信息").SQLAddNew() '增加一个订单明细
sr1("编号") = dr("编号")
End If
For Each nm1 As String In nms
sr1(nm1) = e.PostValues(nm1)
sr1("操作单位")=e.PostValues("单位")
sr1("电话")="123"
Next
sr1.Save() '必须保存,而且必须在最后保存,因为用SQLAddNew增加的行,一旦保存,就不能再引用此行
End If