以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]移动开发 怎么根据输入的值生成多个动态列表  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=100992)

--  作者:shenyl0211
--  发布时间:2017/5/23 10:01:00
--  [求助]移动开发 怎么根据输入的值生成多个动态列表
1、已有数据:“字典管理”表中有“部门名称”及对应的“部门领导”(有2人)、“分管领导”(有2人)、“财务人员”(有2人)等列(人员姓名已用|分割),“人员管理”表中有“部门名称”及对应的“员工姓名”(有30人)列。
2、编程目标:在网上审批时,申请人在立项申请表中输入“申请部门”,就可以根据“申请部门”的值得出“部门领导”、“分管领导”、“财务人员”、“员工姓名”的动态选项(目的是让“部门领导”复核、“分管领导”审批、“财务人员”受理、“员工姓名”为指定借款人)。
3、征求方法:帮助文档的方法是1个输入生成1个选项,而现在是1个输入要生成4个选项,求方法。
谢谢!
[此贴子已经被作者于2017/5/23 10:03:53编辑过]

--  作者:有点色
--  发布时间:2017/5/23 11:44:00
--  

 调用ajax函数sendAjaxTextsendAjaxJSON

 

 把申请部门的值传递过去。服务器处理以后,合并生成一个字符串(包含全部信息)

 

 在js那里接收字符串后,分割或者json,取出值,赋值给各个下拉控件

[此贴子已经被作者于2017/5/23 11:44:15编辑过]

--  作者:shenyl0211
--  发布时间:2017/5/23 11:56:00
--  
按照该方法为何不行?问题出在哪儿?求指教。
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100104&skin=0

dim bmmc as string
    Case "立项申请-申请.htm"
        wb.AddForm("","form1","立项申请-申请.htm")
        With wb.AddInputGroup("form1","ipg1","基本信息")
            .AddInput("合同甲方","合同甲方","text")
            .AddInput("项目名称","项目名称","text")
            With .AddSelect("申请部门","申请部门","|" & DataTables("字典管理").SqlGetComboListString("部门名称"))
            .Attribute = """
            End With
            .AddSelect("合同乙方","合同乙方","|" & DataTables("字典管理").SqlGetComboListString("合同乙方"))
            .AddSelect("会计核算部门","会计核算部门","|" & DataTables("字典管理").SqlGetComboListString("部门名称"))
            .AddSelect("立项依据","立项依据","书面委托|中标通知|合同协议")
            .AddInput("已签合同额","已签合同额","number")
            .AddInput("未签合同额","未签合同额","number")
            .AddSelect("指定借款人","指定借款人",DataTables("人员管理").SqlGetComboListString("员工姓名","部门名称=\'" & bmmc & "\'"))
            .AddInput("开工日期","开工日期","date")
            .AddInput("合同工期","合同工期","date")
            .AddSelect("项目地区","项目地区","|" & DataTables("字典管理").SqlGetComboListString("项目地区"))
            .AddSelect("行业类别","行业类别","|" & DataTables("字典管理").SqlGetComboListString("行业类别"))
            .AddSelect("业务类型","业务类型","|" & DataTables("字典管理").SqlGetComboListString("业务类型"))
            .AddInput("备注","备注","text")
        End With
        With wb.AddInputGroup("form1","ipg2","审批信息")
            With .AddInput("申请人","申请人","text")
                .Value = _username
                .Readonly= True
            End With
            With .AddInput("申请日期","申请日期","date")
                .value=Date.Now
                .readonly=True
            End With
            .AddSelect("申请部门领导","申请部门领导",DataTables("字典管理").SqlGetComboListString("部门领导","部门名称=\'" & bmmc & "\'"))
            .AddInput("复核日期","复核日期","date").readonly=True
            .AddSelect("成本科领导","成本科领导","|" & DataTables("字典管理").SqlGetComboListString("部门领导","部门名称=\'财务部\'"))
            .AddInput("审核日期","审核日期","date").readonly=True
            .AddSelect("财务部领导","财务部领导",DataTables("字典管理").SqlGetComboListString("部门领导","部门名称=\'财务部\'"))
            .AddInput("审批日期","审批日期","date").readonly=True
            .AddSelect("公司分管领导","公司分管领导",DataTables("字典管理").SqlGetComboListString("分管领导","部门名称=\'" & bmmc & "\'"))
            .AddInput("批转日期","批转日期","date").readonly=True
            .AddSelect("财务部受理","财务部受理",DataTables("字典管理").SqlGetComboListString("财务人员","部门名称=\'" & bmmc & "\'"))
            .AddInput("受理日期","受理日期","date").readonly=True
        End With
        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btnok","确定")
        End With
    Case "部门名称.htm"
        bmmc = e.PostValues("申请部门")

--  作者:有点色
--  发布时间:2017/5/23 12:27:00
--  
 你理解有误。必须用js获取才行,你上面写的代码,是写死的,不能变换的。因为你的htm只触发执行一次。
--  作者:shenyl0211
--  发布时间:2017/5/24 22:56:00
--  
参照帮助文档级联列表的例子解决了动态列表,根本不需要js
--  作者:有点色
--  发布时间:2017/5/24 23:02:00
--  
以下是引用shenyl0211在2017/5/24 22:56:00的发言:
参照帮助文档级联列表的例子解决了动态列表,根本不需要js

 

不用js,就根本不能实现动态的设置下拉列表。

 

如果你能做,说说你怎么做到的。


--  作者:shenyl0211
--  发布时间:2017/5/26 9:53:00
--  
  级联列表有个致命的缺点,就是必须选择,如果只有一个选项而无需选择,就无法进行下去。因此,选项前面必须加"|" & 。
(前面代码同帮助文档的“设计首页和登录页面”一节,包括Dim wb As New weui)
Dim bmmc As String \'部门名称、申请部门
    Case "立项申请表单.htm"
        wb.AddForm("","form1","立项申请表单.htm")
        With wb.AddInputGroup("form1","ipg1","基本信息") \'定义输入框组
            .AddInput("合同甲方","合同甲方","text").Required=True \'必须输入
            .AddInput("项目名称","项目名称","text").Required=True
            With .AddSelect("申请部门","申请部门","|" & DataTables("字典管理").SqlGetComboListString("部门名称")) \'《字典管理》表中有“部门名称”及其对应的(每个部门的)“部门领导”、“分管领导”、“财务人员”
                .Required=True
                .Attribute = """ ’参考帮助文档中汽车品牌的例子
            End With
            .AddSelect("合同乙方","合同乙方","|" & DataTables("字典管理").SqlGetComboListString("合同乙方")).Required=True
            .AddSelect("会计核算部门","会计核算部门","|" & DataTables("字典管理").SqlGetComboListString("合同乙方")).Required=True
            .AddSelect("立项依据","立项依据","书面委托|中标通知|合同协议").Required=True
            .AddInput("已签合同额","已签合同额","number") \'.Step = "0.01" 不用step就是整数
            .AddInput("未签合同额","未签合同额","number")
            With .AddSelect("指定借款人","指定借款人","") ’列表选项为空,参考帮助文档中汽车品牌的例子
                .Required=True
                .Attribute = """  ’级联列表,参考帮助文档中型号、规格、颜色的例子
            End With
            .AddInput("开工日期","开工日期","date").Required=True
            .AddInput("合同工期","合同工期","date").Required=True
            .AddSelect("项目地区","项目地区","|" & DataTables("字典管理").SqlGetComboListString("项目地区")).Required=True
            .AddSelect("行业类别","行业类别","|" & DataTables("字典管理").SqlGetComboListString("行业类别")).Required=True
            .AddSelect("业务类型","业务类型","|" & DataTables("字典管理").SqlGetComboListString("业务类型")).Required=True
            .AddInput("备注","备注","text")
            With .AddInput("申请人","申请人","text")
                .Value = _username \'初始值
                .Readonly= True \'只读
            End With
            With .AddInput("申请日期","申请日期","datetime-local")
                .value= Format(Date.Now,"yyyy-MM-ddTHH:mm") \'日期和时间之间用字母T隔开
                .readonly=True
            End With
        End With
        With wb.AddInputGroup("form1","ipg2","审批信息")
            With .AddSelect("申请部门领导","申请部门领导","") \'选项为空
                .Required=True
                .Attribute = """ \'级联列表
            End With
            .AddInput("复核日期","复核日期","datetime-local").readonly=True
            .AddSelect("成本科领导","成本科领导","|" & DataTables("字典管理").SqlGetComboListString("部门领导","部门名称=\'财务部\'")).Required=True
            .AddInput("审核日期","审核日期","datetime-local").readonly=True
            .AddSelect("财务部领导","财务部领导",DataTables("字典管理").SqlGetComboListString("部门领导","部门名称=\'财务部\'")).Required=True
            .AddInput("审批日期","审批日期","datetime-local").readonly=True
            With .AddSelect("公司分管领导","公司分管领导","") \'选项为空
                 .Required=True
                 .Attribute = """ ’级联列表
            End With
            .AddInput("批转日期","批转日期","datetime-local").readonly=True
            .AddSelect("财务部受理","财务部受理","").Required=True ’选项为空
            .AddInput("受理日期","受理日期","datetime-local").readonly=True
        End With
        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btnok","确定")
        End With
    Case "部门名称.htm"
        \'bmmc = e.PostValues("申请部门") \'用这句能获得bmmc(部门名称)可以免去级联列表并省略本网页的后续代码,但为何这样获得的bmmc用在“立项申请表单.htm”的后续代码中是无效的,只是“指定借款人”的选项为“申请部门”的值)?
        Select Case e.PostValues.Count
            Case 1
                bmmc = "|" & DataTables("人员管理").SQLGetComboListString("员工姓名","部门名称=\'" & e.PostValues("申请部门") & "\'") ’《人员管理》表有“部门名称”、“员工姓名”列
            Case 2
                bmmc = "|" & DataTables("字典管理").SqlGetComboListString("部门领导","部门名称=\'" & e.PostValues("申请部门") & "\'")
            Case 3
                bmmc = "|" & DataTables("字典管理").SqlGetComboListString("分管领导","部门名称=\'" & e.PostValues("申请部门") & "\'")
            Case 4
                bmmc = "|" & DataTables("字典管理").SQlGetComboListString("财务人员","部门名称=\'" & e.PostValues("申请部门") & "\'")
        End Select
        e.WriteString(bmmc)
End Select
e.WriteString(wb.Build)
[此贴子已经被作者于2017/5/26 15:45:33编辑过]