以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 发布项目后,如何保存多个文件?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178448)

--  作者:moseser
--  发布时间:2022/7/5 12:37:00
--  [求助] 发布项目后,如何保存多个文件?
我现在做好程序了,也发布了,我每做一个工程想保持为一个文件,请问如何操作?
ps:如excel 似的,  文件1.xlsx   文件2.xlsx    ?不知道我讲清楚了没

--  作者:有点蓝
--  发布时间:2022/7/5 13:37:00
--  
一个项目不就是一个文件(.foxdb文件)吗。

如果是指发布多个程序,发布后把publish目录复制到其它地方不就是一个独立的程序了吗

--  作者:moseser
--  发布时间:2022/7/5 13:50:00
--  回复:(有点蓝)一个项目不就是一个文件(.foxdb文件...
不是这个意思
我是这个意思,比如,我设计了一个软件,叫成本测算软件
用户拿到这个软件后,用这个软件新建了一个  工程:叫    工程A成本测算,测算完成后可以保持为工程A成本测算文件; 过了一段时间,又有一个新的工程B,还是要用这个软件,就可以再新建一个 工程B成本测算文件了

简单说,就好比咱们的excel ,使用主程序,我可以新建很多文件,单独保存

--  作者:有点蓝
--  发布时间:2022/7/5 13:57:00
--  
简单的,把需要的工程数据按照一定的规则,保存到表格里,然后导出excel,自己定义一个扩展名保存就行了。其实就相当于是一个配置文件
[此贴子已经被作者于2022/7/5 13:57:37编辑过]

--  作者:moseser
--  发布时间:2022/7/5 14:05:00
--  回复:(有点蓝)简单的,把需要的工程数据按照一定的...
有相关教程不?
--  作者:有点蓝
--  发布时间:2022/7/5 14:13:00
--  
没有的哦
--  作者:tongliaozyr
--  发布时间:2022/7/5 14:25:00
--  
需要用到动态链接   

基本思路是你有一个母表,生成不同表时实际是复制这个母表,打开不同表时是动态链接。如果改变数据库结构,会非常麻烦,要有版本判断,自动更改表结构的一系列神操作。。。仅共参考   


Dim lx  As WinForm.ComboBox = e.Form.Controls("ComboBox1")    \'数据库类型
Dim k   As WinForm.ComboBox = e.Form.Controls("ComboBox2")    \'数据库
RibbonTabs("ljsj").Groups("功能组_logo").Items("文本框_数据年度").text = e.Form.Controls("ComboBox2").value
Dim value1,name1 As String
If lx.Value = "Access 2000/2003" Then
    If k.value = "默认" Then
        name1 =  "data.mdb"
    Else
        name1 =  "data" & val(k.value) &  ".mdb"
    End If
    
    If FileSys.FileExists(ProjectPath  &  name1) Then
        
        For Each frm As WinForm.Form In forms            \'关闭主窗口以外的所有窗口,确保没有其他窗口打开
            If frm.Name <> "主窗口" And frm.Opened Then
                frm.close()
            End If
        Next     
  
       value1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ProjectPath  &  name1  &  ";Persist Security Info=False"
        SaveConfigValue("数据源",value1)
        SaveConfigValue("数据源文件名",name1)
        
        Dim s As String =""
        \'遍历当前属于此数据源的表
        For Each dt As DataTable In DataTables
            If dt.C  Then
                s += "|" & dt.name
            End If
        Next
        s = s.Trim("|")
        
        \'卸载表
        DataTables.Unload(s)
        If Connections.Contains("data") Then
            Connections.Delete("data")
        End If
        
        Connections.add("data",value1)
        DataTables.load(s)
        
        e.Form.Close()
        
        \'Forms("数据分析").open()
        \'MainTable = Tables("院校信息")
        \'\'Syscmd.Project.Open(FileName)
        \'  Application.Restart()            \'系统重新启动
        
    Else
        MessageBox.Show("没有该年度数据,请与开发者联系!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
Else If  lx.Value = "Access 2007/2010" Then
    \'name1 = ProjectPath  & "data" & val(k.value) &  ".accdb"
    \'If FileSys.FileExists(name1) Then
    \'value1 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ProjectPath & "data" & val(k.value)  & ".accdb;Persist Security Info=True"
    \'SaveConfigValue("数据源",value1)
    \'\'Syscmd.Project.Open(FileName)
    \'Application.Restart()            \'系统重新启动
    \'Else
    \'MessageBox.Show("没有该年度数据,请与开发者联系!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    \'End If
End If
Forms("主窗口").open()
MainTable = Tables("sys")

--  作者:moseser
--  发布时间:2022/7/5 15:06:00
--  回复:(有点蓝)没有的哦
其实我的数据都保存在外部数据库,mx.mdb,  有没有方法,我可以单独再将这个文件保存一下,比如:工程1.cdx   (后缀名是自己命名的)?然后我双击点开 工程1.cdx 时,自动打开相应的程序,读取数据
--  作者:有点蓝
--  发布时间:2022/7/5 15:26:00
--  
可以在电脑系统里把某个扩展名关联到Foxtable发布的程序。但是Foxtable发布的程序没有办法获取双击打开的是哪一个文件,没有这种功能。
--  作者:tongliaozyr
--  发布时间:2022/7/5 15:42:00
--  

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


新建项目  相当于  复制 mx.mdb =>  mx******.mdb

打开项目  =  动态链接   mx******.mdb
[此贴子已经被作者于2022/7/5 15:44:24编辑过]