以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  怎么避免重复保存  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=162209)

--  作者:lisangyu
--  发布时间:2021/4/8 23:06:00
--  怎么避免重复保存
Dim wb As New weui
Select Case e.Path
    Case "gh.htm"
        If e.PostValues.Count = 0 Then
            wb.AddForm("","线上报装","gh.htm")
            With wb.AddInputGroup("线上报装","ipg1","线上报装")
                .AddInput("申报人手机号","申报人手机号","text")
                .AddInput("申报人姓名","申报人姓名","text")
                .AddSelect("接入方式","接入方式","地上|地下|[]")
                .AddSelect("客户类型","客户类型","|商业客户|工业客户|学校客户|相关政府单位|其他")
                .AddSelect("建设方式","建设方式","|代建|自建")
                .AddSelect("项目类型","项目类型","|老城区改造项目|新建项目|其他")
                .AddInput("填报时间","填报时间","datetime-local").Value=Format(Date.now,"yyyy-MM-ddTHH:mm")
            End With
            With wb.AddInputGroup("线上报装","ipg2","工程基本资料")
                .AddInput("工程名称","工程名称","text")
                .AddTextArea("工程地址",2).Placeholder = "请输入详细地址(楼号\\单元\\门牌号)"
                .AddInput("建设单位","建设单位","text")
                .AddInput("联系人","联系人","text")
                .AddInput("联系电话","联系电话","text")
                .AddInput("计划用气时间","计划用气时间","datetime-local")
                .AddInput("装表容量","装表容量","text").Placeholder = "m3/h"
                .AddUploader("相关材料附件","相关材料附件",True) \'True表示允许上传多个文件
            End With
            With wb.AddInputGroup("线上报装","ipg3","申请单位意见")
                .AddTextArea("申请单位意见",3).Placeholder = "请将控制在输入200字以内"
                .AddUploader("其他附件","其他附件",True) \'True表示允许上传多个文件
            End With
            With wb.AddButtonGroup("线上报装","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
            nms = New String() {"申报人手机号","申报人姓名","接入方式","客户类型","建设方式","项目类型","填报时间","工程名称","工程地址","建设单位","联系人","联系电话","计划用气时间","装表容量","相关材料附件","申请单位意见","其他附件"}  \'重新定义了nms数组,增加了两列.
            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
            For Each key As String In e.Files.Keys
                If key = "相关材料附件" Then
                    For Each fln As String In e.Files(key)
                        e.SaveFile(key, fln, ProjectPath & "Attachments\\" & fln)
                    Next
                    dr.Lines("相关材料附件") = e.Files(key)
                    
                ElseIf key = "其他附件" Then
                    For Each f2n As String In e.Files(key)
                        e.SaveFile(key, f2n, ProjectPath & "Attachments\\" & f2n)
                    Next
                    dr.Lines("其他附件") = e.Files(key)
                End If
            Next
            \'保存并生成增加成功提示页面
            dr.save()
            With wb.AddMsgPage("","msgpage","操作完成",  "查询编号为:" & dr("编号") & ",请截图留存,以便查询项目进度") \'生成成功提示页
                .AddButton("btn1","退出","gh.htm")
            End With
            e.WriteString(wb.Build)
        End If
End Select


蓝总:多点了几次,就重复保存了,怎么避免?


--  作者:有点蓝
--  发布时间:2021/4/8 23:16:00
--  
方法1、保存前判断一个是否已经有同样的数据,比如相同的手机号、姓名等
2、参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=139284&skin=0