以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  怎么根据会议议题表开始与结束状态来判断 当前所有议题都已经完成 然后更改会议状态表中的会议状态为true  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177041)

--  作者:cnsjroom
--  发布时间:2022/5/7 13:15:00
--  怎么根据会议议题表开始与结束状态来判断 当前所有议题都已经完成 然后更改会议状态表中的会议状态为true

怎么根据会议议题表开始与结束状态来判断 当前所有议题都已经完成  然后更改会议状态表中的会议状态为true

 

会议议题有   开始状态  结束状态   uuid  主题uuid(主题uuid是会议状态中的UUID值)等字段

会议状态有   会议状态  uuid 等字段

 

假定当前已经选择了会议议题中的某行  同步vars(“主题UUID”) vars(“议题UUID”) vars(“议题标题”)均正常赋值

 

下述代码依次运行之后,会在议题数据还没有全部完成的时候就更改了会议状态为true   麻烦老师帮忙看看   谢谢

 

 

 

开始议题按钮代码:【先判断议题uuid 的开始与结束状态  开始与结束都为false时 可开始议题  开始等于true 结束等于false  则可结束议题】

Dim cmd As New SQ LCommand
cmd.Conne cti
Dim dt As DataTable
cmd.Com mandText = "SEL ECT * Fr om 会议议题"
dt = cmd.ExecuteReader(True)

Dim bb As DataRow = dt.Find("开始状态=true and 结束状态 = false and uuid=\'" & vars("议题uuid") & "\'")
If bb IsNot Nothing Then
    e.Cancel=True
    MessageBox.Show(bb("议题标题") & "在开始状态,且尚未结束的,请先结束再开始","提示!")
Else
    If  Tables(e.form.name & "_table1").Current("uuid")<>"" Then
        Tables(e.form.name & "_table1").Current("开始状态")=True
        dt.dataCols("开始时间").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
        Tables(e.form.name & "_table1").Current("开始时间")=Date.now
        Tables(e.form.name & "_table1").Current.Save
    End If
End If

 

 

 

结束议题代码::【先判断议题uuid 的开始与结束状态  开始与结束都为false时 可开始议题  开始等于true 结束等于false  则可结束议题】

Dim cmd As New SQLCommand
cmd.Connection Name = "无纸化会议"
Dim dt As DataTable
cmd.Com mandText = "SELE CT * Fro m 会议议题"
dt = cmd.ExecuteReader(True)

Dim bb As DataRow = dt.Find("开始状态=false and 结束状态 = false and uuid=\'" & vars("议题uuid") & "\'and 议题标题=\'" & vars("议题标题") & "\'")
If bb IsNot Nothing Then
    e.Cancel=True
    MessageBox.Show(bb("议题标题") & "尚未开始,无须结束的,请核对!","提示!")
Else
   
    Dim bb1 As DataRow = dt.Find("开始状态=true and 结束状态 = false and uuid=\'" & vars("议题uuid") & "\'and 议题标题=\'" & vars("议题标题") & "\'")
    If bb1 IsNot Nothing Then
            bb1("结束状态")=True
            dt.dataCols("结束时间").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
            bb1("结束时间")=Date.now
            bb1.Save
    End If
    Functions.Execute("议题开始不等于结束=0则更改会议状态为true",vars("主题uuid"))
End If

 

议题开始不等于结束=0则更改会议状态为true  内部函数代码如下:

Dim 主题uuid As String = Args(0)

Dim cmd As New SQL Command
cmd.Connecti
cmd.Comman dText = "SEL ECT Count(*) Fr om 会议议题 where 主题uuid=\'" & 主题uuid & "\'and 开始状态 <> 结束状态" \' "

 \'判断会议议题有多少符合开始状态为true数据的行\'
If cmd.ExecuteScalar = 0 Then
    cmd.CommandText = "UPD ATE 会议状态 SET 会议状态 = \'true\' where uuid=\'" & 主题uuid & "\'"
    cmd.ExecuteNonQuery()
End If

 


--  作者:有点蓝
--  发布时间:2022/5/7 13:59:00
--  
请用示例数据举例,截图说明
--  作者:cnsjroom
--  发布时间:2022/5/7 14:34:00
--  回复:(有点蓝)请用示例数据举例,截图说明

会议状态  中的uuid   是会议议题中的主题uuid


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

会议状态中的uuid   对应会议议题主题uuid  中有三条数据

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
在点开始议题按钮与结束议题按钮后  只有一条数据的开始与结束状态为ture  其它的都是false

结果直接就去更新了会议状态表中的会议状态为true

 

想实现 议题中主题uuid一样的 数据行里  所有的开始 与结束都等于true的时候  采取更新会议状态中的会议状态为true 

只要开始与结束状态中   有一个是false 都不能让会议状态表中的会议状态为true

[此贴子已经被作者于2022/5/7 14:38:26编辑过]

--  作者:有点蓝
--  发布时间:2022/5/7 14:44:00
--  
什么数据库?access?

内部函数代码如下:

Dim 主题uuid As String = Args(0)

Dim cmd As New SQL Command
cmd.Connecti
cmd.Comman dText = "SELECT Count(*) From 会议议题 where 主题uuid=\'" & 主题uuid & "\' and (开始状态 =false or  结束状态
=false)"

 \'判断会议议题有多少符合开始状态为true数据的行\'
If cmd.ExecuteScalar = 0 Then
    cmd.CommandText = "UPD ATE 会议状态 SET 会议状态 = true where uuid=\'" & 主题uuid & "\'"
    cmd.ExecuteNonQuery()
End If