Foxtable(狐表)用户栏目专家坐堂 → vars变量


  共有4061人关注过本帖树形打印复制链接

主题:vars变量

帅哥哟,离线,有人找我吗?
cd_tdh
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
vars变量  发帖心情 Post By:2020/4/3 14:44:00 [显示全部帖子]

老师,我独立窗口(添加到页签的),窗口打开后都定义变量了变量 vars("editTable") =e.Form.TableName

后面录入窗口(或是审核窗口-通用的)用的模式窗口,可以直接用vars("editTable")

当我打开多个页签时,vars("editTable") 变量会出现混淆情况,这种有什么方法解决呢?

[此贴子已经被作者于2020/4/3 14:44:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/3 15:13:00 [显示全部帖子]

请老师指导一下具体怎么定义,怎么用?

 


 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/3 15:43:00 [显示全部帖子]

老师,比如我全局代码定义:

Dim ty As New  Dictionary(Of String, String)

后面怎么来用呢?


 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/3 17:29:00 [显示全部帖子]

老师,还是没用来,来个实际的用法指导一下:比如我要分页加载:改怎么调用这个字典?

With DataTables( )
.LoadFilter = ""
.LoadPage = 0  '加载第一页
.LoadTop = e.Form.Controls("ComboBox1").Value   '每页20行
.LoadOver =  "序号" '加载依据列
.Load()
.LoadPage = .TotalPages -1  '加载最后一页数据
.Load()
e.Form.Controls("TextBox1").Value = .TotalPages & "/" & .TotalPages
End  With

[此贴子已经被作者于2020/4/3 17:29:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/7 9:04:00 [显示全部帖子]

老师,窗口的afterload事件代码如下:

 

ty.add(e.Form.Name,e.Form.TableName)
msgbox(ty(e.Form.Name))
With DataTables(ty(e.Form.Name))
    .LoadFilter = ""

 

会报错提示:

 

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:窗口,日常费用支付管理,AfterLoad
详细错误信息:
已添加了具有相同键的项。

 

 

窗口打开后,在另一个独立窗口调用代码如下:

Dim r As Row =Tables(ty(e.Form.Name)).Current
With Tables("审核意见表")
    .Filter = "[ID] = '"& r("ID") &"'"
    .Sort = "审核日期"

会报错提示:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:窗口,审核窗口,AfterLoad
详细错误信息:
给定关键字不在字典中。

[此贴子已经被作者于2020/4/7 9:16:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/7 11:21:00 [显示全部帖子]

老师,如果用:With DataTables(e.Form.TableName),和我开始使用的:

窗口打开后都定义变量了变量 vars("editTable") =e.Form.TableName,是一样啊,现在有个问题是切换不同页签后,提示的是前面窗口表的名称:

 


问题是我打开了审核流程设置窗口,当前的是,审核流程表,我在切换到:日常费用支付管理,当前表提示还是(审核流程表)

 

 


图片点击可在新窗口打开查看此主题相关图片如下:999999.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/4/7 11:27:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/7 13:05:00 [显示全部帖子]

这种也试过,也有以下问题:

问题一:页签名,和表名必须一致,修改内容太多;

问题二:我打开的委托书管理,但是弹出来的名称是前面页签的名称

 


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

前面加入数据字典的方式,判断e.form.name,是正确的 ,但是打开公用的审核窗口是:报错如下:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:窗口,审核窗口,AfterLoad
详细错误信息:
给定关键字不在字典中。

审核窗口,AfterLoad事件代码如下:msgbox(ty(e.form.name))弹出来结果正确后,后面开始报错。

Dim r As Row = Tables(ty(e.form.name)).Current
msgbox(ty(e.form.name))
With Tables("审核意见表")
msgbox(1)
    .Filter = "[ID] = '"& r("ID") &"'"
msgbox(2)
    .Sort = "审核日期"
    .AutoSizeRows() '自动行高
    .ExtendLastCol = True '补充空白列
    .SetHeaderRowHeight(30,30)  '标题栏行高
    .DataTable.SysStyles("EmptyArea").BackColor = Color.White '空白区背景色
    .DataTable.SysStyles("Alternate").BackColor = Color.Azure '交替行颜色
    .grid.Styles("EmptyArea").Border.Color = Color.White  '表格边框颜色
End  With
msgbox(3)
If r("审批状态") = "审批完成" Then
    MessageBox.Show("该单据已审批完成,请勿重复操作!","提示",MessageBoxButtons.OK,MessageBoxIcon.Question)
    e.Form.Controls("TextBox1").Enabled =False
    e.Form.Controls("Button1").Enabled =False
    e.Form.Controls("Button2").Enabled =False
End If
msgbox(4)

 

 

[此贴子已经被作者于2020/4/7 13:48:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/7 14:12:00 [显示全部帖子]

采用字典方式:打开审核窗口报错?这是什么问题呢?

 


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

 

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:窗口,审核窗口,AfterLoad
详细错误信息:
给定关键字不在字典中。

审核窗口,AfterLoad事件代码如下:msgbox(ty(e.form.name))弹出来结果正确后,后面开始报错。

Dim r As Row = Tables(ty(e.form.name)).Current
msgbox(ty(e.form.name))
With Tables("审核意见表")
msgbox(1)
    .Filter = "[ID] = '"& r("ID") &"'"
msgbox(2)
    .Sort = "审核日期"
    .AutoSizeRows() '自动行高
    .ExtendLastCol = True '补充空白列
    .SetHeaderRowHeight(30,30)  '标题栏行高
    .DataTable.SysStyles("EmptyArea").BackColor = Color.White '空白区背景色
    .DataTable.SysStyles("Alternate").BackColor = Color.Azure '交替行颜色
    .grid.Styles("EmptyArea").Border.Color = Color.White  '表格边框颜色
End  With
msgbox(3)
If r("审批状态") = "审批完成" Then
    MessageBox.Show("该单据已审批完成,请勿重复操作!","提示",MessageBoxButtons.OK,MessageBoxIcon.Question)
    e.Form.Controls("TextBox1").Enabled =False
    e.Form.Controls("Button1").Enabled =False
    e.Form.Controls("Button2").Enabled =False
End If
msgbox(4)


 


 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/7 15:24:00 [显示全部帖子]

不能,msgbox(ty(e.form.name))也不能弹出,开始能弹出是,我在审核按钮中弹出来的,弹出后打开:审核窗口,相当于审核窗口中的afterload事件用ty(e.form.name)调用不对

Dim r As Row = Tables(ty(e.form.name)).Current
msgbox(ty(e.form.name))

[此贴子已经被作者于2020/4/7 15:25:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3144 积分:20951 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/7 16:35:00 [显示全部帖子]

看来用字典这个方式也行不通,只能这样变通处理了:

 

打开页签的窗口定义变量:

vars("editTable") =e.Form.TableName

 

 

审核窗口在定义一个变量,弊端就是 页签名称 必须和 表名一样。不过算是解决了。

Vars("text") = Forms("主窗口").Controls("TabControl1").SelectedPage.text
Dim r As Row = Tables(Vars("text")).Current
msgbox(Vars("text"))
With Tables(“审核意见表”)
.Filter = "[ID] = '"& r("ID") &"'"

 

 

[此贴子已经被作者于2020/4/7 16:36:08编辑过]

 回到顶部
总数 12 1 2 下一页