以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  筛选问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=121609)

--  作者:有点甜
--  发布时间:2018/7/10 12:31:00
--  
Dim v As Integer = 0
Dim Filter = "去订单后实际库存 < " & v
Dim khmc As WinForm.ComboBox = e.Form.Controls("客户名称")
If khmc.text > "" Then
    filter &= " and 客户名称 = \'" & khmc.Text & "\'"
End If
Dim cbx = e.Form.Controls("xxx")
If cbx.Checked Then
    Filter = Filter & " and 加工工艺_加工中心 = true"
Else
    Filter = Filter & " and (加工工艺_加工中心 = false or 加工工艺_加工中心 is null)"
End If
Tables("入库主表").Filter = Filter

--  作者:有点甜
--  发布时间:2018/7/10 14:41:00
--  
贴出你所写代码。
--  作者:有点甜
--  发布时间:2018/7/10 15:34:00
--  

Dim v As Integer = 0
Dim Filter = "去订单后实际库存 < " & v
Dim khmc As WinForm.ComboBox = e.Form.Controls("客户名称")
If khmc.text > "" Then
    filter &= " and 客户名称 = \'" & khmc.Text & "\'"
End If
Dim cbx = e.Form.Controls("加工中心")
If cbx.Checked Then
    Filter = Filter & " and 加工工艺_加工中心 = true"
Else
    Filter = Filter & " and (加工工艺_加工中心 = false or 加工工艺_加工中心 is null)"
End If
Tables("入库主表").Filter = Filter

For Each r1 As Row In Tables("入库主表")
    Dim r2 As Row = Tables("欠料明细表").AddNew
    r2("物料编号") = r1("物料编号")
    r2("物料图号") = r1("物料图号")
    r2("客户名称") = r1("客户名称")
    r2("物料实际尺寸") = r1("物料实际尺寸")
    r2("整料生产数量") = r1("整料生产数量")
    r2("材质") = r1("材质")
    r2("材料规格") = r1("材料规格")
    r2("物料名称") = r1("物料名称")
    r2("版本号") = r1("版本号")
    r2("单价") = r1("单价")
    r2("订单欠数") = -1 * r1("去订单后实际库存")
    r2("金额") = r1("金额")
Next

 

 


Dim cnc As WinForm.CheckBox = e.Form.Controls("加工中心")
If cnc.Checked  Then
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\生产指令单加工中心.xls")
    Dim fl As String = ProjectPath & "Reports\\生产指令单加工中心.xls"
    Book.Build() \'生成细节区
    Book.Save(fl) \'保存工作簿
    Dim Proc As New Process \'打开工作簿
    Proc.File = fl
    Proc.Start()
End If
Dim sc As WinForm.CheckBox = e.Form.Controls("数控车")
If sc.Checked  Then
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\生产指令单数控车.xls")
    Dim fl As String = ProjectPath & "Reports\\生产指令单数控车.xls"
    Book.Build() \'生成细节区
    Book.Save(fl) \'保存工作簿
    Dim Proc As New Process \'打开工作簿
    Proc.File = fl
    Proc.Start()
End If


--  作者:有点甜
--  发布时间:2018/7/10 16:10:00
--  

1、执行哪段代码有问题?

 

2、具体项目方法上了测试。


--  作者:有点甜
--  发布时间:2018/7/10 16:59:00
--  
以下是引用min1979在2018/7/10 16:53:00的发言:
可以单独的勾选,但是一生成生产指令单是,它就自动全选生成了(没任何报错)是不是要在生成报表的代码加个条件?

 

你的报表那里,引用的是哪个表的数据?模板发上来看看。

 

你对表格筛选了没有?

 


--  作者:有点甜
--  发布时间:2018/7/10 17:39:00
--  

1、你给的例子没有数据;

 

2、你没有把excel模板一起发上来;

 

3、你需要执行以后达到什么效果?结合例子说明。


--  作者:有点蓝
--  发布时间:2018/7/10 20:12:00
--  
1、没看到你有把物料图号及单价赋值于入库主表的代码,在什么地方?

2、窗口设计属性你把这个窗口表“允许编辑”设置为false了


For Each r1 As Row In Tables("入库主表")
改为
For Each r1 As Row In Tables("入库主表").GetCheckedRows


--  作者:有点蓝
--  发布时间:2018/7/10 20:28:00
--  
测试没有问题。你的逻辑本来就是这样的。没有对应的旧物料编号的时候才会新增行赋值
--  作者:有点蓝
--  发布时间:2018/7/10 20:55:00
--  
在什么地方新增物料?写了什么代码赋值?
--  作者:有点蓝
--  发布时间:2018/7/10 21:04:00
--  
16楼已经说了,你的逻辑本身就是这样的。先搞清楚自己要做什么