Foxtable(狐表)用户栏目专家坐堂 → [求助]多人操作---自动增加控件报错


  共有3325人关注过本帖树形打印复制链接

主题:[求助]多人操作---自动增加控件报错

帅哥哟,离线,有人找我吗?
huhu
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/17 18:14:00 [显示全部帖子]

afterload代码:
e.Form.Text = vars("BUGID") & "---- 要养成看帖要回帖的好习惯"
Dim drs As List(of DataRow) = DataTables("盖楼").SQLSelect("BUG_ID = '" & Vars("BUGID") & "'")
Vars("iii") = 0
Vars("yyy") = 20
For Each dr As DataRow In drs
    If dr.Isnull("BUG_ID") = False And dr.Isnull("备注") = False And dr.Isnull("回复者") = False And dr.Isnull("回复时间") = False Then
        Dim txt As WinForm.TextBox
        Dim Label1,label2 As WinForm.Label
        txt = e.Form.CreateControl("TextBox" & dr("_Identify"), ControlTypeEnum.TextBox)
        label1 = e.Form.CreateControl("label1" & dr("_Identify"), ControlTypeEnum.label)
        label2 = e.Form.CreateControl("label2" & dr("_Identify"), ControlTypeEnum.label)
        txt.Left = 150
        txt.Top = Vars("yyy")
        txt.height = 50
        txt.MultiLine = True
        txt.ScrollBars = Windows.Forms.ScrollBars.Vertical
        txt.SetBounds(150,Vars("yyy"),500,50)
        e.Form.AddControl(txt)
        label1.Left = 50
        label1.Top = Vars("yyy")
        e.Form.AddControl(label1)
        Dim str As String
        Dim id  As Integer
        id = user.name.IndexOf("@")
        str = user.name.SubString(0,id)
        label1.Text = Vars("iii") & "楼" & str
        label2.Left = 50
        label2.Top = Vars("yyy") + 20
        label2.Height =30
        e.Form.AddControl(label2)
        label2.Text = Date.now
        txt.text = dr("备注")
        label1.Text = dr("回复者")
        label2.Text = dr("回复时间")
        If dr("提交") = True Then
            txt.readonly = BooleanEnum.True
        Else
            txt.readonly = BooleanEnum.False
        End If
        Vars("iii") += 1
        Vars("yyy") += txt.height + 10
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/17 18:15:00 [显示全部帖子]

beforeclose代码
Dim str As String
Dim id As Integer
id = user.name.IndexOf("@")
str = user.name.SubString(0,id)
Dim lts As List(of DataRow) = DataTables("盖楼").SQLSelect("回复者 like '%" & str & "%'  And 提交 = 0 ")
If lts.Count > 0 Then
    If (MessageBox.show("你的帖子尚未发送,点击(是)自动发送帖子(只发送有内容的帖子),点击(否)自动删除未发送(包括无内容的)的帖子","关闭前请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Information) = DialogResult.Yes) Then
        For Each lt As DataRow In lts
            If lt.Isnull("备注") = False Then
                lt("提交") = True
                e.Form.Controls("TextBox" & lt("_Identify")).ReadOnly = BooleanEnum.True
                e.Form.Controls("label2" & lt("_Identify")).text = Date.now
                lt.save
                lt.Locked = True
            Else
                e.Form.RemoveControl("TextBox" & lt("_Identify"))
                e.Form.RemoveControl("label1" & lt("_Identify"))
                e.Form.RemoveControl("label2" & lt("_Identify"))
                lt.Delete
            End If
        Next
    Else
        For Each lt As DataRow In lts
            If lt.Isnull("提交") = True Then
                e.Form.RemoveControl("TextBox" & lt("_Identify"))
                e.Form.RemoveControl("label1" & lt("_Identify"))
                e.Form.RemoveControl("label2" & lt("_Identify"))
                lt.Delete
            End If
        Next
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/17 18:16:00 [显示全部帖子]

就是类似一个普通的论坛,发帖和回帖的业务。


 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/18 11:17:00 [显示全部帖子]

afterload代码:
e.Form.Text = vars("BUGID") & "---- 看帖不回帖下一句是什么?"
DataTables("盖楼").LoadFilter =""
DataTables("盖楼").load
Tables("盖楼").Sort = "回复时间"
Dim drs As List(of DataRow) = DataTables("盖楼").Select("BUG_ID = '" & Vars("BUGID") & "'","回复时间")
Vars("iii") = 0
Vars("yyy") = 20
If drs.Count > 0 Then
    For Each dr As DataRow In drs
        If dr("提交") = True Then
            Dim txt As WinForm.TextBox
            Dim Label1,label2 As WinForm.Label
            txt = e.Form.CreateControl("TextBox" & dr("_Identify"), ControlTypeEnum.TextBox)
            label1 = e.Form.CreateControl("label1" & dr("_Identify"), ControlTypeEnum.label)
            label2 = e.Form.CreateControl("label2" & dr("_Identify"), ControlTypeEnum.label)
            txt.Left = 150
            txt.Top = Vars("yyy")
            txt.height = 50
            txt.MultiLine = True
            txt.ScrollBars = Windows.Forms.ScrollBars.Vertical
            txt.SetBounds(150,Vars("yyy"),500,50)
            e.Form.AddControl(txt)
            label1.Left = 50
            label1.Top = Vars("yyy")
            e.Form.AddControl(label1)
            label2.Left = 50
            label2.Top = Vars("yyy") + 20
            label2.Height =30
            e.Form.AddControl(label2)
            txt.text = dr("备注")
            label1.Text = dr("回复者")
            label2.Text = dr("回复时间")
            If dr("提交") = True Then
                txt.readonly = BooleanEnum.True
            Else
                txt.readonly = BooleanEnum.False
            End If
            Vars("iii") += 1
            Vars("yyy") += txt.height + 10
        Else
            dr.Delete
        End If
    Next
End If
DataTables("盖楼").Save()

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/18 11:17:00 [显示全部帖子]

盖楼click代码:
Dim r As Row = Tables("盖楼").AddNew()
Tables("盖楼").Sort = "回复时间"
r("BUG_ID") = Vars("BUGID")
Dim txt As WinForm.TextBox
Dim Label1,label2 As WinForm.Label
txt = e.Form.CreateControl("TextBox" & r("_Identify"), ControlTypeEnum.TextBox)
label1 = e.Form.CreateControl("label1" & r("_Identify"), ControlTypeEnum.label)
label2 = e.Form.CreateControl("label2" & r("_Identify"), ControlTypeEnum.label)
txt.Left = 150
txt.Top = Vars("yyy")
txt.height = 50
txt.MultiLine = True
txt.ScrollBars = Windows.Forms.ScrollBars.Vertical
txt.SetBounds(150,Vars("yyy"),500,50)
e.Form.AddControl(txt)
label1.Left = 50
label1.Top = Vars("yyy")
e.Form.AddControl(label1)
Dim str As String
Dim id  As Integer
id = user.name.IndexOf("@")
str = user.name.SubString(0,id)
label1.Text = Vars("iii") & "楼" & str
r("回复者") = label1.Text
label2.Left = 50
label2.Top = Vars("yyy") + 15
label2.Height = 30
e.Form.AddControl(label2)
label2.Text = Date.now
r("回复时间") = label2.Text
Vars("iii") += 1
Vars("yyy") += txt.height + 10
DataTables("盖楼").save

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/18 11:18:00 [显示全部帖子]

刷新click
DataTables("盖楼").LoadFilter = ""
DataTables("盖楼").load
Tables("盖楼").Sort = "回复时间"
Dim str As String
Dim id As Integer
id = user.name.IndexOf("@")
str = user.name.SubString(0,id)
Dim drs As List(of DataRow) = DataTables("盖楼").Select("BUG_ID = '" & Vars("BUGID") & "'","回复时间")
Vars("iii") = 0
Vars("yyy") = 20
If drs.count > 0 Then
    For Each dr As DataRow In drs
        If dr("提交") = True Then
            Dim txt1 As WinForm.TextBox
            Dim Label11,label22 As WinForm.Label
            txt1 = e.Form.CreateControl("TextBox" & dr("_Identify"), ControlTypeEnum.TextBox)
            label11 = e.Form.CreateControl("label11" & dr("_Identify"), ControlTypeEnum.label)
            label22 = e.Form.CreateControl("label22" & dr("_Identify"), ControlTypeEnum.label)
            txt1.Left = 150
            txt1.Top = Vars("yyy")
            txt1.height = 50
            txt1.MultiLine = True
            txt1.ScrollBars = Windows.Forms.ScrollBars.Vertical
            txt1.SetBounds(150,Vars("yyy"),500,50)
            e.Form.AddControl(txt1)
            label11.Left = 50
            label11.Top = Vars("yyy")
            e.Form.AddControl(label11)
            label22.Left = 50
            label22.Top = Vars("yyy") + 20
            label22.Height =30
            e.Form.AddControl(label22)
            txt1.text = dr("备注")
            label11.Text = dr("回复者")
            label22.Text = dr("回复时间")
            If dr("提交") = True Then
                txt1.readonly = BooleanEnum.True
            Else
                txt1.readonly = BooleanEnum.False
            End If
            Vars("iii") += 1
            Vars("yyy") += txt1.height + 10
        'ElseIf (dr("提交") = False And dr("回复者") Like '% str %') Then
            'dr.Delete
        End If
    Next
End If
DataTables("盖楼").save()

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/18 11:19:00 [显示全部帖子]

现在的情况是2个人同时操作1先2后没有问题。点击刷新正常显示。
出现的情况是当2人都点击盖楼,就会出现后面的覆盖前面的内容。

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/18 11:32:00 [显示全部帖子]

出现楼层和时间相等的情况。

图片点击可在新窗口打开查看此主题相关图片如下:时间楼层.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/18 11:42:00 [显示全部帖子]

都是保存过的。

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/18 15:19:00 [显示全部帖子]

自己顶一下。引起注意。

 回到顶部
总数 22 上一页 1 2 3 下一页