以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  条件  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=135093)

--  作者:yetle
--  发布时间:2019/5/16 17:46:00
--  条件
                        Dim hpr = DataTables("报餐").Find("[姓名] = \'" & dr("姓名")  & "\' and [工号] = \'" & dr("工号")  & "\'and [报餐日期] = \'" & dr("报餐日期")  & "\' and [晚餐] = \'" & dr("晚餐")  & "\'")  假如我这里想要查找早餐或者中餐或者晚餐满足条件,是不是改为or [早餐] = \'" & dr("早餐")  & "\' or [中餐] = \'" & dr("中餐")  & "\' or [晚餐] = \'" & dr("晚餐")  & "\'         测试好像不行,该怎么写?
                        If hpr IsNot Nothing 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


--  作者:有点甜
--  发布时间:2019/5/16 19:29:00
--  
 Dim hpr = DataTables("报餐").Find("[姓名] = \'" & dr("姓名")  & "\' and [工号] = \'" & dr("工号")  & "\'and [报餐日期] = \'" & dr("报餐日期")  & "\' and ([早餐] = \'" & dr("早餐")  & "\' or [中餐] = \'" & dr("中餐")  & "\' or [晚餐] = \'" & dr("晚餐")  & "\')"
--  作者:yetle
--  发布时间:2019/5/17 17:37:00
--  
请教老师:
测试不是我想要的结果,需求是同一个员工新提交的报餐,
如提交的是25号早餐,假如报餐表里面存在25号报的早餐,则提示重复报餐
如提交的是25号早餐和中餐,假如报餐表里存在25号报的早餐,则提示25号早餐已报,请不要重复提交,25号中餐保存到报餐表里面



--  作者:有点甜
--  发布时间:2019/5/17 18:00:00
--  

1、先不要新增行,往里面填入数据。

 

2、先查找是否找到对应的行

 

Dim hpr = DataTables("报餐").Find("[姓名] = \'" & dr("姓名")  & "\' and [工号] = \'" & dr("工号")  & "\'and [报餐日期] = \'" & dr("报餐日期")  & "\'")

If hpr isnot Nothing Then \'在这里,再处理你网页提交过来的值

   If e.values("早餐控件名") = true Then

        if hpr("早餐") = true Then

            msgbox("早餐已经订过")

        else

             hpr("早餐") = true

        end If

    End If

   If e.values("午餐控件名") = true Then

        if hpr("午餐") = true Then

            msgbox("午餐已经订过")

        Else 

             hpr("午餐") = true

        end If

    End If

   If e.values("晚餐控件名") = true Then

        if hpr("晚餐") = true Then

            msgbox("晚餐已经订过")

        Else 

             hpr("晚餐") = true

        end If

    End If

Else

    \'新增一行,录入各列数据

End If


--  作者:yetle
--  发布时间:2019/5/18 9:26:00
--  
重复提交没有弹出提示,直接提交保存了
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
Select Case e.Path
    Case "bc.htm"             
                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("[姓名] = \'" & e.PostValues("姓名")  & "\' and [工号] = \'" & e.PostValues("工号")  & "\'and [报餐日期] = \'" & e.PostValues("报餐日期")  & "\'")
MessageBox.show(hpr)
                    If hpr IsNot Nothing Then \'在这里,再处理你网页提交过来的值
                        If e.values("早餐") = True Then
                            If hpr("早餐") = True Then
                                msgbox("早餐已经订过")
                            Else
                                hpr("早餐") = True
                            End If
                        End If
                        If e.values("午餐") = True Then
                            If hpr("午餐") = True Then
                                msgbox("午餐已经订过")
                            Else
                                hpr("午餐") = True
                            End If
                        End If
                        If e.values("晚餐") = True Then
                            If hpr("晚餐") = True Then
                                msgbox("晚餐已经订过")
                            Else
                                hpr("晚餐") = True
                            End If
                        End If
                    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

--  作者:有点蓝
--  发布时间:2019/5/18 9:34:00
--  
比如:
……
                If e.values("早餐") = True Then
                    If hpr("早餐") = True Then
                        With wb.AddMsgPage("","msgpage2","提交失败",  "早餐已经订过!")
                            .icon = "Warn" \'改变图标
                            .AddButton("btn1","返回").Attribute = ""
                        End With
                        e.WriteString(wb.Build)
                        Return \'必须返回
                    Else
                        hpr("早餐") = True
                    End If
                End If
                If e.values("午餐") = True Then
                    If hpr("午餐") = True Then
                        With wb.AddMsgPage("","msgpage2","提交失败",  "午餐已经订过!")
                            .icon = "Warn" \'改变图标
                            .AddButton("btn1","返回").Attribute = ""
                        End With
                        e.WriteString(wb.Build)
                        Return \'必须返回
                    Else
                        hpr("午餐") = True
                    End If
                End If

--  作者:yetle
--  发布时间:2019/5/18 11:54:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20190518115327.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/5/18 13:23:00
--  
Return ""

或者

Return nothing


If hpr("早餐") = True Then
                        With wb.AddMsgPage("","msgpage2","提交失败",  "早餐已经订过!")
                            .icon = "Warn" \'改变图标
                            .AddButton("btn1","返回").Attribute = ""
                        End With
                        e.WriteString(wb.Build)
                        Return "" \'必须返回
                    Else
                        hpr("早餐") = True
                    End If

--  作者:yetle
--  发布时间:2019/5/18 13:32:00
--  
return的错误提示没有了,可重复提交还是没有弹出提示,直接提交保存了

--  作者:有点蓝
--  发布时间:2019/5/18 13:46:00
--  
把完整代码放到txt文件上传上来