以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口中按钮代码错误提示  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94629)

--  作者:东方电子威斯顿
--  发布时间:2016/12/28 14:41:00
--  窗口中按钮代码错误提示
各位老师好:这个项目中遇到的问题有以下2个:
1.窗口查找按钮的只能显示一个材料代号,怎么样把所有相同名称的材料代号一块显示?
2.导出检验记录按钮一直提示错误,请老师帮忙查看是哪里出错了?谢谢
查找按钮代码:
Dim tbx As WinForm.TextBox = e.Form.Controls("txtFind")
Dim str As String =tbx.value
Dim dr As DataRow=DataTables("电池").Find("材料代号=\'" & str & "\'")
If dr IsNot Nothing Then
    Dim idx As Integer = Tables("电池").findrow(dr)
    If idx>=0 Then
        Tables("电池").Position=idx
    End If
End If
导出按钮代码:
If Tables("电池").Current Is Nothing Then Return
Dim count As Integer = Tables("电池").Current("零缺陷数量")
Dim count1 As Integer =10
Dim Book As New XLS.Book(ProjectPath & "Attachments\\电池检验记录.xls") \'打开模板
Dim fl As String = ProjectPath & "Reports\\电池检验记录.xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim nums1 As new List(Of String)
Dim nums2 As new List(Of String)
Dim nums3 As new List(Of String)
For Each dr As DataRow In DataTables("电池检验记录").Select("空载电压测试值 is not null")
    nums1.Add(dr("空载电压测试值"))
    nums2.add(dr("外形尺寸_本体长度"))
    nums3.add(dr("外形尺寸_本体直径"))
Next
For i As Integer = 1 To 30
If i > count Then Exit For
    sheet(62+i, 2).value = nums1(Rand.Next(count))
    Next
For i As Integer = 31 To 60
    If i > count Then Exit For
    sheet(32+i, 7).value = nums1(Rand.Next(count))
Next
For i As Integer = 61 To 90
    If i > count Then Exit For
    sheet(62+i, 14).value = nums1(Rand.Next(count))
Next
For i As Integer = 91 To 120
    If i > count Then Exit For
    sheet(32+i, 21).value = nums1(Rand.Next(count))
Next
For s As Integer =0 To 5
    sheet(56,6+4*s).value = nums2(Rand.Next(count))
    sheet(57,6+4*s).value = nums3(Rand.Next(count))
Next
For s As Integer = 6 To 10
    sheet(59,2+4*(s-5)).value = nums2(Rand.Next(count))
    sheet(60,2+4*(s-5)).value = nums3(Rand.Next(count))
Next
Book.Build() \'生成报表
Book.Save(fl)
\'book.save(dfile)

Dim proc As new Process
proc.File = fl
proc.Start

--  作者:东方电子威斯顿
--  发布时间:2016/12/28 14:42:00
--  
这是项目内容:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:有点色
--  发布时间:2016/12/28 14:54:00
--  
 请上传excel模板
--  作者:东方电子威斯顿
--  发布时间:2016/12/28 14:59:00
--  
第二个问题已经解决了,现在主要是查找按钮的代码编写,怎么样把所有相同名称的材料代号一块显示?谢谢


--  作者:有点色
--  发布时间:2016/12/28 14:59:00
--  

1、查找按钮的代码这样写

 

Tables("电池").Filter = "材料代号 like \'%" & e.Form.Controls("txtfind").Text & "%\'"

 

2、模板那里,要设置一下条件为All http://www.foxtable.com/webhelp/scr/0201.htm

 


--  作者:东方电子威斯顿
--  发布时间:2016/12/28 15:09:00
--  
老师,这样是能显示出来,但如果我查找其他的怎么又不显示了呢,只显示查找的第一个的内容?
--  作者:有点色
--  发布时间:2016/12/28 15:28:00
--  
以下是引用东方电子威斯顿在2016/12/28 15:09:00的发言:
老师,这样是能显示出来,但如果我查找其他的怎么又不显示了呢,只显示查找的第一个的内容?

 

这个查询代码,没有问题,显示的肯定是符合条件的数据

 

Tables("电池").Filter = "材料代号 like \'%" & e.Form.Controls("txtfind").Text & "%\'"