以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  每次升级后,用户保存的列宽与列次序要重新设置,如何处理?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=134922)

--  作者:ZJZK2018
--  发布时间:2019/5/13 10:13:00
--  每次升级后,用户保存的列宽与列次序要重新设置,如何处理?
每次升级后,用户原先保存的列宽与列次序要重新设置,如何处理?
1、窗口AfterLoad
\'\'======窗口表及控件数据设置提取=====
Dim e As Object = Args(0)
Dim pth As String = ProjectPath & "Syscm\\用户设置\\"   \'设置保存路径
If FileSys.DirectoryExists(pth)  = False Then
    FileSys.CreateDirectory(pth)
Else
    Dim pthtxt As String = pth & e.Form.Name & ".txt"
    If FileSys.FileExists(pthtxt) Then    \'判断指定的文件是否存在
        Dim csts() As String = FileSys.ReadAllText(pthtxt,Encoding.Default).Split(chr(11))  \'读取文本文件的内容
        For Each st As String In csts
            Dim stt() As String = st.Split("@")
            If stt.Length >= 2 Then
                If stt(0).Contains("Table") Then
                    e.Form.Controls(stt(0)).Table.SetColVisibleWidth(stt(1))
                Else
                    e.Form.Controls(stt(0)).Value = stt(1)
                    \'Vars("Chebox_sxs") = stt(1)
                    e.Form.Controls(stt(0)).WriteValue()
                End If
            End If
        Next
    End If
End If

2、AfterClose
\'\'======窗口表及控件数据设置保存=====
Dim e As Object = Args(0)
Dim pth As String = ProjectPath & "Syscm\\用户设置\\"
If FileSys.DirectoryExists(pth) = False Then
    FileSys.CreateDirectory(pth)
Else
    Dim str As String = ""
    Dim tbstr As String = ""
    Dim txtstr As String = ""
    For Each ctb As Object In e.Form.Controls
        If Typeof ctb Is WinForm.Table Then   \'判断控件是否是Table
            tbstr &= ctb.Name & "@" & e.Form.Controls(ctb.Name).Table.GetColVisibleWidth & chr(11)    \'返回一个字符串,包括显示的列及列宽信息
        End If
    Next
    For Each ctb As Object In e.Form.Controls
        If Typeof ctb Is WinForm.CheckedComboBox Then   \'判断控件是否是Table
            If ctb.Name = "Chebox_sxs" Then
                txtstr = "Chebox_sxs" & "@" & e.Form.Controls("Chebox_sxs").Value & chr(11)
            Else
                txtstr = ""
            End If
        End If
    Next
    str = tbstr & txtstr
    Dim pthtxt As String = pth & e.Form.Name & ".txt"
    FileSys.WriteAllText(pthtxt, str.Trim(chr(11)), False, Encoding.Default)    \'向文本文件中写入内容
End If
[此贴子已经被作者于2019/5/13 10:13:29编辑过]

--  作者:有点甜
--  发布时间:2019/5/13 10:30:00
--  

 

你的升级包那里,不要包含【pth & e.Form.Name & ".txt"】这些文件。

 

 


--  作者:ZJZK2018
--  发布时间:2019/5/13 10:34:00
--  
如何在升级包里不要包含【pth & e.Form.Name & ".txt"】这些文件?代码怎么写


--  作者:有点甜
--  发布时间:2019/5/13 10:40:00
--  
以下是引用ZJZK2018在2019/5/13 10:34:00的发言:
如何在升级包里不要包含【pth & e.Form.Name & ".txt"】这些文件?代码怎么写
 

 

把你update1.zip、update2.zip里面的对应txt文件,删除,即可。


--  作者:ZJZK2018
--  发布时间:2019/5/27 12:02:00
--  

我在update1.zip、update2.zip里面找不到对应txt文件?

Dim pth As String = ProjectPath & "Syscm\\用户设置\\"   \'设置保存路径
Dim pthtxt As String = pth & e.Form.Name & ".txt"

上面文件升级一般会放在哪个文件夹里?


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


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

[此贴子已经被作者于2019/5/27 12:06:48编辑过]

--  作者:有点甜
--  发布时间:2019/5/27 12:03:00
--  
以下是引用ZJZK2018在2019/5/27 12:02:00的发言:
我在update1.zip、update2.zip里面找不到对应txt文件?

 

找不到就没问题。如果要替换,就在zip里面对应文件夹加入你的txt文件。


--  作者:ZJZK2018
--  发布时间:2019/5/27 12:09:00
--  
甜版:
关键是升级后,原用户保存的列宽与列次序要重新设置?

--  作者:有点甜
--  发布时间:2019/5/27 12:11:00
--  
以下是引用ZJZK2018在2019/5/27 12:09:00的发言:
甜版:
关键是升级后,原用户保存的列宽与列次序要重新设置?

 

你升级包没有配置文件txt就不会重置啊。