以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态列表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170909)

--  作者:aidimeng
--  发布时间:2021/8/11 10:38:00
--  动态列表问题

Dim fl As String = "d:\\web\\" & e.path
If filesys.FileExists(fl)
    Dim idx As Integer = fl.LastIndexOf(".")
    Dim ext As String  = fl.SubString(idx)
    Select Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar"
            e.WriteFile(fl)
            Return \'这里必须返回
    End Select
End If
Select Case e.Path
    Case "test.htm"
        Dim wb As New weui
        wb.AddForm("","form1","test.htm")
        With wb.AddInputGroup("form1","ipg1","查询条件")
              .AddInput("scrq","生产日期","date")

          
                .Attribute = """
            
            With .AddSelect("cpmc","产品名称","")
                .Attribute = """
            End With
            .AddSelect("gg","规格","")
        End With
        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btn1", "确定", "submit")
        End With
        e.WriteString(wb.Build) \'生成网页
    Case  "getProducts.htm"
        Dim vals As String
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText=" elect t1.产品名称,t2.生产日期_开始,t2.规格 f  rom 质检报告主表 t2 inner join 成品有出厂检验 t1 on t1.编号=t2.编号 where t2.生产日期_开始= \'"& e.PostValues("scrq") &"\'"

 \'MessageBox.Show(cmd.CommandText)
Dim dt As DataTable= cmd.ExecuteReader
        If e.PostValues.Count = 1 Then
            vals  = "|" & dt.GetComboListString("产品名称","生产日期_开始=\'" & e.PostValues("scrq") & "\'")
        ElseIf e.PostValues.Count = 2 Then
            Dim Filter As String = "生产日期_开始=\'" & e.PostValues("scrq") & "\' And 产品名称=\'" & e.PostValues("cpmc") & "\'"
            vals = "|" & Dt.GetComboListString("规格", Filter)
        End If
        e.WriteString(vals)
End Select

 

上述代码在执行的时候  选择好了 生产日期后,在产品名称的下拉列表中可以有值,但不能选中


--  作者:有点蓝
--  发布时间:2021/8/11 10:45:00
--  
请上传实例测试
--  作者:aidimeng
--  发布时间:2021/8/11 14:18:00
--  

谢谢,问题已经找到

现在遇到 怎么把生成的pdf 推送给客户端

 


If r("单据状态")<>"" Then
    If r("报告类型")="包装油出厂检验报告" Then

Dim Book As New XLS.Book(drr("图章存储位置")& "Attachments\\"& r("报告类型") &".xlsx")
 
         Dim fl As String = "d:\\ "& "PDF"& format(now(),"yyMMdd")& Rand.Next(100) &".pdf"

        If r("质检员")="" Then
            MessageBox.Show("尚未制定质检员,请选择")
            Return 0
        End If
 
        book.AddDataTable("质检报告主表","pk","S   elect * from 质检报告主表 where 编号= \'"& r("编号")&"\'") \'添加父表
        book.AddDataTable("质检报告附表","pk","S    elect * from 质检报告附表 where 编号= \'"& r("编号") &"\'") \'添加子表
        book.AddDataTable("成品有出厂检验","pk","S    elect * from 成品有出厂检验 where 编号= \'"& r("编号") &"\'And 产品名称=\'"& Vars("pinming") &"\' and 规格=\'"&  Vars("guige") &"\'") \'添加子表
        book.AddRelation("质检报告主表","编号","质检报告附表","编号") \'建立关联
        book.AddRelation("质检报告主表","编号","成品有出厂检验","编号") \'建立关联
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
       
        Sheet(10,2).Value = New XLS.Picture(GetImage(r("质检员")))
        Sheet(10,7).Value =New XLS.Picture(GetImage(shqm))
        Book.Build() \'生成细节区
        Sheet = Book.Sheets(0)
       
       
        \'Dim dr As DataRow= DataTables("系统设置").Find("图章存储位置<>\'\'")
        Sheet(Sheet.Rows.Count-7, 4).Value  = New XLS.Picture(GetImage(drr("质检公章")))
        
        Dim str As String
        book.Savetopdf(fl)
       e.WriteBook(fl,"PDF"& format(now(),"yyMMdd")& Rand.Next(100) &".pdf",False)
 
        \'Proc.File = fl
        \'Proc.Start()
         \'
  
    End If
   
   
   
   
Else
   \' MessageBox.Show("请先审核单据在生成报告")
    Return 0
End If
e.Handled = True

[此贴子已经被作者于2021/8/11 14:23:48编辑过]

--  作者:有点蓝
--  发布时间:2021/8/11 14:54:00
--  
参考:http://www.foxtable.com/mobilehelp/topics/0288.htm,看示例三
--  作者:aidimeng
--  发布时间:2021/8/12 11:13:00
--  

 

代码在附件中

遇到问题如下

1、规格的值获取不到  Vars("gg") = e.PostValues("gg")

2、生成报告是否可以写在内  部函数中

3、生成的报告 能否下载

 4、

我做了简单的测试,excel可以生成网页,但不能下载,将生成报告语句在内部函数中调用 总是报错

 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.txt

[此贴子已经被作者于2021/8/12 11:20:43编辑过]

--  作者:有点蓝
--  发布时间:2021/8/12 11:37:00
--  

[此贴子已经被作者于2021/8/12 11:37:04编辑过]

--  作者:有点蓝
--  发布时间:2021/8/12 11:41:00
--  
1、要提交数据,请使用普通按钮:http://www.foxtable.com/mobilehelp/topics/0008.htm
2、可以用到内部函数,
函数
Dim e As RequestEventArgs = args(0)
    e.ResponseEncoding = "gb2312"
    
    Select Case e.Path
        Case "Reports\\bg"
            Vars("gg") = e.PostValues("gg")
            cmd.CommandText="select t1.编号,t1.单据状态,t1.报告类型,t2.产品名称,t2.规格,t1.生产日期_开始 as 生产日期,t1.批次,t1.结论,t1.质检员,t1.制单,t1.审核,t1.批准 from 质检报告主表 t1  ,成品有出厂检验 t2  where   t1.编号= t2.编号 and t1.生产日期_开始=\'"& Vars("scrq") &"\' And t2.产品名称=\'"& Vars("cpmc") &"\' And t2.规格=\'"& Vars("gg") &"\'"
            MessageBox.Show(cmd.CommandText)
            \'Dim ddt As DataTable= cmd.ExecuteReader
            \'If ddt.DataRows.count>=1 Then
            \'
            \'Dim r As DataRow= ddt.DataRows(0)
            \'e.AsyncExecute = True
            \'\'Functions.AsyncExecute("baogao",e,r)
            \'End If
            
            
            \' e.WriteBookAsHTML(Book)
        Case Else
            e.AsReportServer("Reports/")
    End Select

httprequest调用
……
    Case  "getProducts.htm"
        Dim vals As String
        
        cmd.CommandText="select t1.产品名称,t2.生产日期_开始,t1.规格 from 质检报告主表 t2 inner join 成品有出厂检验 t1 on t1.编号=t2.编号 where t2.生产日期_开始= \'"& e.PostValues("scrq") &"\'"
        
        Dim dt As DataTable= cmd.ExecuteReader
        If e.PostValues.Count = 1 Then
            vals  = "|" & dt.GetComboListString("产品名称","生产日期_开始=\'" & e.PostValues("scrq") & "\'")
            Vars("scrq") = e.PostValues("scrq")
        ElseIf e.PostValues.Count = 2 Then
            Dim Filter As String = "生产日期_开始=\'" & e.PostValues("scrq") & "\' And 产品名称=\'" & e.PostValues("cpmc") & "\'"
            Vars("cpmc") = e.PostValues("cpmc")
            vals = "|" & Dt.GetComboListString("规格", Filter)
            \'MessageBox.Show(filter)
        End If
 
        e.WriteString(vals)
        
End Select
If e.Path.StartsWith("Reports\\")
Functions.Execute("xx函数",e)
endif
3、要下载不能使用网页格式,要发送xls或者pdf文件
[此贴子已经被作者于2021/8/12 11:41:35编辑过]

--  作者:aidimeng
--  发布时间:2021/8/12 13:23:00
--  

十分感谢,程序可以执行了,但最大的问题就是在生成excel转网页的时候特别慢,好像是一笔一笔画出来一样,等两分钟的样子页面打开了,有些地方还不显示

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:httprequest.txt

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:函数.txt

 

想着实现 可以网页查看 也可以下载,

[此贴子已经被作者于2021/8/12 13:25:04编辑过]

--  作者:有点蓝
--  发布时间:2021/8/12 13:51:00
--  
上传网页,和下载报表建议分开处理。上面代码相当于一次生成了2个报表,在加上有图片,也就这样了