以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]菜鸟求助生成XML  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=139585)

--  作者:keli0917
--  发布时间:2019/8/16 12:35:00
--  [求助]菜鸟求助生成XML

把两个表里的所有行,根据提供的XMLsample.XML生成一个XML。

麻烦给具体代码,不要让我看示例了。我已经研究了很久,看不懂。特别是那个嵌套加数组,真的不会。谢谢。

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

[此贴子已经被作者于2019/8/16 16:46:47编辑过]

--  作者:有点蓝
--  发布时间:2019/8/16 14:15:00
--  
Dim tb As Table = Tables("开票信息表头")
Dim xo As New Foxtable.XObject
Dim xja As New JArray
xo("Fp") = xja
For Each rb As Row In tb.Rows
    
    If rb.IsNull("购方名称") = False Then
        Dim jo As New Foxtable.XObject
        jo("Gfmc") = rb("购方名称").Tostring()
        jo("Gfsh") = rb("购方税号").Tostring()
        jo("Gfyhzh") = rb("购方银行账号").Tostring()
        jo("Gfdzdh") = rb("购方地址电话").Tostring()
        jo("Bz") = rb("备注").Tostring()
        jo("Fhr") = rb("复核人").Tostring()
        jo("Skr") = rb("收款人").Tostring()
        jo("Spbmbbh") = rb("商品编码版本号").Tostring()
        jo("Hsbz") = rb("含税标志").Tostring()
        jo("Djh") = rb("Djh").Tostring()
        
        jo("spxx") = New jObject
        Dim ja As New JArray
        \'jo("ink")=ja
        jo("spxx")("sph")=ja
        Dim lst As List(of DataRow)=DataTables("开票信息商品").Select("工作号=\'" & rb("工作号") & "\'")
        For i As Integer=0 To lst.count-1
            Dim kr As DataRow=lst(i)
            ja.Add(New JObject)
            ja(i)("Xh")=kr("序号").Tostring()
            ja(i)("Spmc")=kr("商品名称").Tostring()
            ja(i)("Ggxh")=kr("规格型号").Tostring()
            ja(i)("Jldw")=kr("计量单位").Tostring()
            ja(i)("Spbm")=kr("商品编码").Tostring()
            ja(i)("Qyspbm")=kr("企业商品编码").Tostring()
            ja(i)("Syyhzcbz")=kr("优惠政策标识").Tostring()
            ja(i)("Lslbz")=kr("零税率标识").Tostring()
            ja(i)("Yhzcsm")=kr("优惠政策说明").Tostring()
            ja(i)("Dj")=kr("单价").Tostring()
            ja(i)("Sl")=kr("数量").Tostring()
            ja(i)("Je")=kr("金额").Tostring()
            ja(i)("Slv")=kr("税率").Tostring()
            ja(i)("Kce")=kr("扣除额").Tostring()
            ja(i)("Se")=kr("税额").Tostring()
            
        Next
        xja.add(jo)
    End If
    
Next
Dim str As String = xo.ToXML

str = str.SubString(5,str.Length - 11)

str = "<?xml version=""1.0"" encoding=""GBK"" ?> <Kp><Version>2.0</Version><Fpxx><Zsl>2</Zsl><Fpsj>" & str & "</Fpsj></Fpxx></Kp>"
Output.Show(str)

--  作者:keli0917
--  发布时间:2019/8/16 15:44:00
--  
点击生成XML后没有任何输出。。。。麻烦再看一下
--  作者:有点蓝
--  发布时间:2019/8/16 15:48:00
--  
学会看懂代码,不要只会抄。我只是把结果显示到命令窗口:Output.Show(str)

保存到文件的用法请用回原先的用法自行处理