以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [原创]关于窗口表加载的一个思路给新手  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63830)

--  作者:baicaocao
--  发布时间:2015/1/29 17:08:00
--  [原创]关于窗口表加载的一个思路给新手
目的:
1.不进入窗口设计界面,就可以设置显示的表的列以及列宽。
2.可以直接在窗口加载的时候,加载表,不用在窗口设计的表设计那里进行绑定。
方法:
1.全局代码中添加:
Public _cfg As String \'配置文件,此文件丢失,不能登录系统!
Public _book As New XLS.Book \'实例化Excel表格
Public _sheet As XLS.Sheet \'实例化首页
2.项目管理-项目属性-BeforeOpenProject
_cfg = FileSys.GetParentPath(e.File) & "\\config.xls"
If FileSys.FileExists(_cfg) = False Then \'首先判断根目录是否存在.
  
    e.Cancel = True 
    e.HideSplashForm = True
    MessageBox.show("没有找到配置文件,配置文件为:" & _cfg & ",请重新安装或咨询管理员!")
    \'End If
End If
_book = new XLS.Book(_cfg) \'加载这个文件
_sheet = _book.Sheets(0)
目的是为了把sql加载语句放到xls文件里面。
2.窗口设计中:窗口的afterload事件:
Dim tb As Table = Tables(e.Form.name & "_Table1") \'表名
DataTables(tb.Name).Fill(_sheet(10,Asc("B")-65).value,datas,False) \'datas是数据源的名称
DataTables(tb.Name).AllowEdit = True
3.新建一个全局参数的表:参数名称,值,参数类型
4.新建一个自定义函数设置列宽
\'调用方式:
Functions.Execute("设置列宽","表名")
Dim fl As String = args(0) \'表名
Dim dr As DataRow = DataTables("全局参数").Find("参数名称 = \'" & fl & "_列显示\'")
If dr IsNot Nothing Then
    Tables(fl).SetColVisibleWidth(dr("值"))
End If


这样的话,都放到项目外面,就可以改变了。

--  作者:Bin
--  发布时间:2015/1/29 17:10:00
--  
不错
--  作者:有点甜
--  发布时间:2015/1/29 17:11:00
--  
 看完,顶一个
--  作者:lsy
--  发布时间:2015/1/29 17:23:00
--  
不错。

但是Fill不是个好东西,已经刻意避免这种加载表的方式。

--  作者:游
--  发布时间:2015/1/29 20:24:00
--  
没想明白,狐表可以直接用Access,而Excel必须安装才能使用,为什么不用前者,速度还快。
--  作者:jspta
--  发布时间:2015/1/29 20:52:00
--  
以下是引用lsy在2015-1-29 17:23:00的发言:
不错。

但是Fill不是个好东西,已经刻意避免这种加载表的方式。

fill很好用加载速度也很快,我整个项目都是这么加载的,不知道为什么这么说?


--  作者:baicaocao
--  发布时间:2015/1/30 9:21:00
--  
用xls文件,是个人爱好,不过用access也挺好。。。呵呵。
另外,请问为什么要避免FILL加载?那么请问,窗口设计的那个sqltable的加载的命令 是什么?