我修改了一下,测试后,可以正常提交没有重复日期的报餐,提交重复报餐的时候也会提示已经报餐不能重复提交,
可是当之前有提交过如日期为5.20早餐,现在提交日期为5.20日中餐会提示中餐已经报餐不能重复提交,看代码也不是这么回事啊
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
Select Case e.Path
Case "bc.htm"
''''执行验证函数,获取用户userid和name----20190423
Dim cs = Functions.Execute("钉钉验证",e)
''''执行验证函数,获取用户userid和name----20190423
If cs > "" Then
Dim userid ,name,gh
Dim Values() As String
Values = cs.split("|")
userid =Values(0)
name =Values(1)
gh= Values(2)
''''通过获取的cs分离得到userid和name----20190423
If userid > "" Then
'wb.AddPageTitle("","pageheader",userid & "我的工作台",gh & name & "欢迎您!")
wb.AddPageTitle("","pageheader", "欢迎使用报餐系统",gh & name & "欢迎您!")
If e.PostValues.Count = 0 Then
wb.AddForm("","form1","bc.htm")
With wb.AddInputGroup("form1","ipg1","报餐日期")
.AddInput("报餐日期","报餐日期","date")
End With
With wb.AddCheckGroup("form1","选择","选择报餐")
.Add("早餐","早餐")
.Add("中餐","中餐")
.Add("晚餐","晚餐")
End With
With wb.AddButtonGroup("form1","btg1",True)
.Add("btn1", "确定", "submit")
End With
e.WriteString(wb.Build)
Else
Dim nms() As String = {"报餐日期"} '不能为空的列名数组
For Each nm As String In nms
If e.PostValues.ContainsKey(nm) = False Then '生成错误提示页
With wb.AddMsgPage("","msgpage","增加失败", nm & "报餐日期不能为空!")
.icon = "Warn" '改变图标
.AddButton("btn1","返回").Attribute = ""
End With
e.WriteString(wb.Build)
'Return '必须返回
End If
Next
Dim hpr = DataTables("报餐").Find("[姓名] = '" & name & "' And [工号] = '" & gh & "' and [报餐日期] = '" & e.PostValues("报餐日期") & "'")
If hpr IsNot Nothing Then '在这里,再处理你网页提交过来的值
'If hpr IsNot Nothing And e.Postvalues("早餐") = "on" Then
If hpr("早餐") = "on" And e.Postvalues("早餐") = "on" Then
With wb.AddMsgPage("","msgpage2","提交失败", "早餐已经订过!")
.icon = "Warn" '改变图标
.AddButton("btn1","返回").Attribute = ""
End With
e.WriteString(wb.Build)
Return "" '必须返回
Else
hpr("早餐") = "on"
End If
'If hpr IsNot Nothing And e.Postvalues("中餐") = "on" Then
If hpr("中餐") = "on" And e.Postvalues("中餐") = "on" Then
With wb.AddMsgPage("","msgpage2","提交失败", "中餐已经订过!")
.icon = "Warn" '改变图标
.AddButton("btn1","返回").Attribute = ""
End With
e.WriteString(wb.Build)
Return "" '必须返回
Else
hpr("中餐") = "on"
End If
'End If
'If hpr IsNot Nothing And e.Postvalues("晚餐") = "on" Then
If hpr("晚餐") = "on" And e.Postvalues("晚餐") = "on" Then
With wb.AddMsgPage("","msgpage2","提交失败", "晚餐已经订过!")
.icon = "Warn" '改变图标
.AddButton("btn1","返回").Attribute = ""
End With
e.WriteString(wb.Build)
Return ""'必须返回
Else
hpr("晚餐") = "on"
End If
'End If
'If hpr Is Nothing Then
Else
Dim dr As DataRow = DataTables("报餐").AddNew() '新增一行,录入各列数据
For Each nm As String In nms
If e.PostValues.ContainsKey(nm) Then
dr(nm) = e.PostValues(nm)
End If
Next
dr("早餐") = e.PostValues("早餐")
dr("中餐") = e.PostValues("中餐")
dr("晚餐") = e.PostValues("晚餐")
dr("报餐时间") = Date.Today
dr("姓名") = name
dr("工号") = gh
Dim tp As TimeSpan = dr("报餐日期") - dr("报餐时间")
dr("报餐") = tp.TotalDays
If dr("报餐")> =1 Then
dr.save()
With wb.AddMsgPage("","msgpage","报餐增加成功", "请按提交的报餐消费") '生成成功提示页
.AddButton("btn1","继续报餐","bc.htm")
End With
Else
With wb.AddMsgPage("","msgpage","报餐不成功,您需要提前报餐", "请重新选择报餐日期") '生成成功提示页
.icon = "Warn"
.AddButton("btn1","继续报餐","bc.htm")
End With
End If
End If
e.WriteString(wb.Build)
End If
End If
End If
End Select