Foxtable(狐表)用户栏目专家坐堂 → 初始不加载表数据


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

主题:初始不加载表数据

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
初始不加载表数据  发帖心情 Post By:2022/3/22 2:02:00 [只看该作者]

销售订单表和销售明细表初始不加载任何表数据,BeforeLoadOuterTable设置如下:

If e.DataTableName = "销售订单" Then
    e.SelectString = "Select * F rom {销售订单} Where 
[_Identify] Is Null"
End If


If e.DataTableName = "销售明细表" Then
    e.SelectString = "Select * F rom {销售明细表} Where 
[_Identify] Is Null"
End If


设置以后新增订单添加销售明细的时候程序无响应

添加明细按钮代码:


Dim sts() As String = {"dropbox3","DropBox1","DropBox2","NumericComboBox2"}

For Each st As String In sts

    If e.Form.Controls(st).value Is Nothing Then

        MessageBox.show("Please enter the name,phone number,Model and quantity !","Remind")

        Return

    End If

Next


Dim tbl As Table = Tables("销售明细表")

Dim r As Row = tbl.AddNew()

r("订单号") = e.Form.Controls("TextBox2").Text

r("日期") = e.Form.Controls("datetimepicker1").Text

r("客户名称") = e.Form.Controls("DropBox3").Text

r("客户电话") = e.Form.Controls("DropBox1").Text

r("产品型号") = e.Form.Controls("dropbox2").Text

r("销售单价") = e.Form.Controls("TextBox5").Text

r("数量") = e.Form.Controls("NumericComboBox2").Text


If e.Form.Controls("NumericComboBox1").Value <> 0 Then

    Dim r1 As Row = Tables("订单出库明细表").AddNew

    r1("提货日期") = e.Form.Controls("datetimepicker1").Text

    r1("订单号") = e.Form.Controls("TextBox2").Text

    r1("产品型号") = e.Form.Controls("dropbox2").Text

    r1("数量") = e.Form.Controls("NumericComboBox2").Text

    r1("已提数量") = e.Form.Controls("NumericComboBox1").Text

    'r1.Save

End If


e.Form.Controls("DropBox2").Text = ""

e.Form.Controls("textbox5").Text = ""

e.Form.Controls("NumericComboBox2").Value = Nothing

e.Form.Controls("未提数量").Text = ""


窗口Afterload代码:

If User.Group <> "经理" Then

    e.Form.Controls("订单修改").Visible = False

    e.Form.Controls("Receipt").Visible = False

    e.Form.Controls("Delivery").Visible = False

    e.Form.Controls("Receipt").Visible = False

    e.Form.Controls("textbox9").Enabled = False

End If


Dim xzcp As WinForm.Button = e.Form.Controls("新增产品")

xzcp.Enabled = False


Dim bc As WinForm.Button = e.Form.Controls("保存")

bc.Enabled = False


e.Form.Controls("Table3").Visible = False

e.Form.Controls("单价成本").Visible = False

e.Form.Controls("Position").Visible = False


DataTables("销售明细表").AddUserStyle("a", Color.Red, Color.White)

DataTables("销售订单").AddUserStyle("a", Color.Red, Color.White)


Tables("销售主界面_Table2").Filter =  "1=2"

Tables("销售主界面_table2").Sort = "订单号 DESC,日期 DESC"


With Tables("销售明细表")

    Tables("销售明细表").Filter = "1=2"

    For Each r As Row In Tables("销售明细表").Rows

        If r IsNot Nothing Then

            .Cols("数量").GrandTotal = True

            .Cols("金额").GrandTotal = True

            .GrandTotal = True

        Else

            .Cols("数量").GrandTotal = True

            .Cols("金额").GrandTotal = True

            .GrandTotal = False

        End If

    Next

End With


Tables("销售明细表").Cols("单价成本").Visible = False

Tables("销售明细表").Cols("合计成本").Visible = False


Tables("销售主界面_Table2").ExtendLastCol = True

Tables("销售明细表").ExtendLastCol = True


之前不设置BeforeLoadOuterTable的时候正常,什么原因会引起这个问题?

[此贴子已经被作者于2022/3/22 2:03:41编辑过]

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/22 8:40:00 [只看该作者]

按钮可以点击吗?下面提示框能不能弹出来?

msgbox(1)

Dim sts() As String = {"dropbox3","DropBox1","DropBox2","NumericComboBox2"}

For Each st As String In sts

    If e.Form.Controls(st).value Is Nothing Then

        MessageBox.show("Please enter the name,phone number,Model and quantity !","Remind")

        Return

    End If

Next

msgbox(2)

Dim tbl As Table = Tables("销售明细表")

Dim r As Row = tbl.AddNew()

magbox(3)


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2022/3/23 4:03:00 [只看该作者]

可以弹出来,我今天没有改任何东西重新测试又可以了,真奇怪!
 但是增加行数据的时候感觉速度还是不够快,以下afterload中蓝底的代码是不是改去掉?

With Tables("销售明细表")

    Tables("销售明细表").Filter = "1=2"

    For Each r As Row In Tables("销售明细表").Rows

        If r IsNot Nothing Then

            .Cols("数量").GrandTotal = True

            .Cols("金额").GrandTotal = True

            .GrandTotal = True

        Else

            .Cols("数量").GrandTotal = True

            .Cols("金额").GrandTotal = True

            .GrandTotal = False

        End If

    Next

End With


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2022/3/23 4:17:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:屏幕截图 2022-03-22 220646.png
图片点击可在新窗口打开查看

另外一个问题是在不加载订单数据的情况下,如何实现如上图所示在输入客户信息的时候右侧表中能出现客户购买记录。
我开始想通过控件的valuechanged筛选后加载销售明细表的方式来实现,但每输入一个客户都得加载一次效率太低。

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/23 8:41:00 [只看该作者]

以下是引用whx007在2022/3/23 4:03:00的发言:
可以弹出来,我今天没有改任何东西重新测试又可以了,真奇怪!
 但是增加行数据的时候感觉速度还是不够快,以下afterload中蓝底的代码是不是改去掉?

With Tables("销售明细表")

    Tables("销售明细表").Filter = "1=2"

    For Each r As Row In Tables("销售明细表").Rows

这个筛选表示不显示任何数据,也就是这个表一行数据都没有,下面还遍历有何意义?

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/23 8:42:00 [只看该作者]

以下是引用whx007在2022/3/23 4:17:00的发言:

图片点击可在新窗口打开查看此主题相关图片如下:屏幕截图 2022-03-22 220646.png

另外一个问题是在不加载订单数据的情况下,如何实现如上图所示在输入客户信息的时候右侧表中能出现客户购买记录。
我开始想通过控件的valuechanged筛选后加载销售明细表的方式来实现,但每输入一个客户都得加载一次效率太低。

您想怎么处理?

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2022/3/23 16:13:00 [只看该作者]

我想有没有效率更高的方法
如果afterload 一次加载销售明细表又会影响新增订单的速度,所以有没有折中的办法
[此贴子已经被作者于2022/3/23 16:15:48编辑过]

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/23 16:21:00 [只看该作者]

最合适的做法就是需要操作什么数据就加载什么数据,按需加载

 回到顶部