以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于系统升级的一个问题(重复提示升级)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=186527)

--  作者:czy66ds
--  发布时间:2023/5/9 13:35:00
--  关于系统升级的一个问题(重复提示升级)
项目AfterOpenProject事件最后写有如下代码
[此贴子已经被作者于2023/5/9 13:35:29编辑过]

--  作者:czy66ds
--  发布时间:2023/5/9 13:40:00
--  
cmd.CommandText = " Sel ect count(*) from {升级控制表}"
If cmd.ExecuteScalar > 0 Then
    syscmd.project.update(False, True) \'如果没有发现新版本,则不提示用户.,实现静默
End If
update1文件下载了,项目关闭了
但是重启后还是询问是否升级?


--  作者:有点蓝
--  发布时间:2023/5/9 13:41:00
--  
贴出AfterOpenProject事件全部代码
--  作者:czy66ds
--  发布时间:2023/5/9 13:58:00
--  

For Each dt9 As DataTable In DataTables

    dt9.GlobalHandler.BeforeShowContextMenu = True

Next

 

If User.Type <> UserTypeEnum.Developer

    TableCaptionVisible = False

End If

 

\'将来还要加入地区导航 "地区"区分

If user.IsRole("品牌")  Or user.Type = UserTypeEnum.Developer  Or user.Type = UserTypeEnum.Administrator Then

    Forms("导航栏_按品牌").show

    \'//////将参数设置考虑进来 2021-12-12

    Forms("参数设置").show

ElseIf user.IsRole("店铺")   Then

    Forms("导航栏_按店铺").show

ElseIf user.IsRole("地区")   Then

    Forms("导航栏_按地区").show

End If

 

Forms("文字菜单").show

Forms("主窗口").show

MainTable = Tables("主表1")

ApplicationTitle = "管理信息系统"

 

\'---dt1用于生成店铺导航的目录树------------

Dim cmd As New SQLCommand

cmd.ConnectionName = conn

cmd.CommandText = "Sel ect  DISTINCT A,B,C,D  from {目录表B} where [A] = \'按店铺\'"

dt1 = cmd.ExecuteReader()

 

\'-----店铺登入时的地区值---------

If user.IsRole("店铺") Then

    Dim d1 As String = user.roles \'user.roles返回一个字符串,角色之间用逗号分隔

    Dim d2() As String = d1.Split(",") \'将上述字符串按逗号分隔转换成一个数组

    diqu = d2(1) \'取得角色数组的第二个元素值--地区

End If

 

\'+++++++生成积分地区集合++++++++++++

jfdqs.Clear

cmd.CommandText = "sel ect count(*) from {积分地区表}"

Dim dt4 As DataTable

If cmd.ExecuteScalar > 0 Then

    cmd.CommandText = "sele ct 地区 from {积分地区表}"

    dt4 = cmd.ExecuteReader

    For Each dr As DataRow In dt4.DataRows

        jfdqs.add(dr("地区"))

    Next

End If

 

\'++++++给多品牌店铺的品牌集合ppjh赋值+++++++

Dim dt2 As DataTable

\'\'\'取得当前店铺经营的品牌和公司经营品牌集合

ppjh.Clear \'全局变量,店铺标准品牌集合

ppjhF.Clear \'全局变量,店铺非标品牌集合

ppjhQ.Clear \'全局变量,店铺全品牌集合

ppjhc.Clear    \'全局变量,已撤销店铺的曾经营的品牌集合

ppjhs.clear \'全局变量,公司标准品牌集合

ppjhSF.clear \'全局变量,公司非标品牌集合

ppjhsq.clear \'全局变量,公司全品牌集合

 

\'+++++取得登入店铺的ppjh,此时已撤销店铺在店铺表中已无记录

 

If user.IsRole("店铺") Then

    cmd.CommandText = " sel ect count(*) from {店铺表S} where 店铺 = \'" & user.Name & "\'"

    If cmd.ExecuteScalar > 0 Then

        cmd.CommandText = " sele ct 店铺,品牌 from {店铺表S} where 店铺 = \'" & user.Name & "\'"

        dt2 = cmd.ExecuteReader

        For Each dr As DataRow In dt2.DataRows

            ppjhQ.add(dr("品牌")) \'\'\'店铺全品牌集合

        Next

        cmd.CommandText = " sel ect 店铺,品牌 from {店铺表s} where 店铺 = \'" & user.Name & "\' and 是否非标 = 0"

        dt2 = cmd.ExecuteReader

        For Each dr As DataRow In dt2.DataRows

            ppjh.add(dr("品牌")) \'\'\'店铺标准品牌集合

        Next

        cmd.CommandText = " sel ect 店铺,品牌 from {店铺表s} where 店铺 = \'" & user.Name & "\' and 是否非标 = 1"

        dt2 = cmd.ExecuteReader

        For Each dr As DataRow In dt2.DataRows

            ppjhF.add(dr("品牌")) \'\'\'店铺非标品牌集合

        Next

    End If

   

   

    \'+++++提示登入店铺是否已经撤销+++++++++++++++

    If ppjhQ.count = 0 Then

        MessageBox.Show("该店铺已撤销!","提示") \'后续加上可以进行得操作

    End If

  

    \'++++++ppjhc 全局变量 已撤销店铺的品牌集合+++++++++++

    Dim dt3 As DataTable \'撤销店铺表

    cmd.CommandText = " selec  t count(*) from {撤销店铺表} where 店铺 = \'" & user.Name & "\'"

    If cmd.ExecuteScalar > 0 Then

        cmd.CommandText = " sele ct 店铺,品牌 from {撤销店铺表} where 店铺 = \'" & user.Name & "\'"

        dt3 = cmd.ExecuteReader

        For Each dr As DataRow In dt3.DataRows

            ppjhc.add(dr("品牌"))

        Next

    Else

    End If

End If

cmd.CommandText = " sele ct  distinct 品牌 from {品牌表S} WHERE 是否非标 = 0 " \'\'\'该品牌表为公司标准品牌表

dt2 = cmd.ExecuteReader

For Each dr As DataRow In dt2.DataRows

    ppjhs.add(dr("品牌")) \'\'\'公司标准品牌集合

Next

cmd.CommandText = " sele ct  distinct 品牌 from {品牌表S} WHERE 是否非标 = 1 " \'\'\'该品牌表为公司非标品牌表

dt2 = cmd.ExecuteReader

For Each dr As DataRow In dt2.DataRows

    ppjhSF.add(dr("品牌")) \'\'\'公司非标品牌集合

Next

cmd.CommandText = " sele ct distinct  品牌 from {品牌表S} " \'\'\'该品牌表Q为公司全品牌表

dt2 = cmd.ExecuteReader

For Each dr As DataRow In dt2.DataRows

    ppjhsq.add(dr("品牌")) \'\'\'公司全品牌集合

Next

 

 

\'++++取得系统时间+++++++

cmd.CommandText = "Sel ec t GetDate()" \'得到系统日期,含时间;来自SQL Server函数

dt = cmd.ExecuteScalar() \'返回单个值

XTSJ = cmd.ExecuteScalar() \'返回单个值 系统时间

XTrq = XTSJ.Date   \'返回日期时间值的日期部分

cmd.CommandText = "SEL ECT * from {临时表}"

cmd.ExecuteReader

Dim dt5 As DataTable

Dim dr5 As DataRow

dt5 = cmd.ExecuteReader(True)

If User.Type = UserTypeEnum.Developer Then

    dr5=dt5.AddNew

    dr5("时间") = dt

    dt5.Save

End If

\'----如果升级控制表的行数>0,则则运行命令syscmd.project.update(False,True)------

cmd.CommandText = " Sele ct count(*) from {升级控制表}"

If cmd.ExecuteScalar > 0 Then

    syscmd.project.upd ate(False, True) \'如果没有发现新版本,则不提示用户.,实现静默

End If


--  作者:czy66ds
--  发布时间:2023/5/9 14:02:00
--  
下载update1的对话框

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


--  作者:有点蓝
--  发布时间:2023/5/9 14:06:00
--  
Dim cmd As New SQLCommand
cmd.ConnectionName = conn
dim up as boolean = false

cmd.CommandText = " Sele ct count(*) from {升级控制表}"

If cmd.ExecuteScalar > 0 Then

    up = syscmd.project.upd ate(FalseTrue\'如果没有发现新版本,则不提示用户.,实现静默

End If

if up = false then

上面原有的其它代码

endif



--  作者:czy66ds
--  发布时间:2023/5/9 14:16:00
--  
1、以前一致这样升级都好用
2、在最后写syscmd.project.upd ate(FalseTrue) 不就相当于项目启动后,在菜单里运行syscmd.project.upd ate吗?

--  作者:有点蓝
--  发布时间:2023/5/9 14:21:00
--  

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

--  作者:czy66ds
--  发布时间:2023/5/15 13:27:00
--  
项目代码按照6楼改写了,为什么还是升级提示?
--  作者:有点蓝
--  发布时间:2023/5/15 13:32:00
--  
有没有改过项目名称?看看旧程序升级后的project目录是不是有多个foxex项目文件
[此贴子已经被作者于2023/5/15 13:33:09编辑过]