以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- XML多次循环查找并给表赋值 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102925) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:huhu -- 发布时间:2017/6/27 18:12:00 -- XML多次循环查找并给表赋值 这是对方的XML <?xml version="1.0" encoding="utf-8"?> <ufinterface efdebug="0" efserverid="321" eftype="EFSQL" ddate="2016-10-08" sqlstr="s elect * from Rdrecord32 where dnmaketime > \'2017-04-26\' and dnmaketime < \'2017-04-27\' " proc="Query" succeed="1" dsc="EFSQL处理成功"> <voucher cardnumber="EFSQL" ccardname="" xmlns:z="EF"> <head> <z:row xmlns:z="#RowsetSchema" AutoID="1003699447" ID="1000729735" cInvCode="CBNNN-JHJ0005A" iQuantity="10.0000000000" iFlag="0" cDefine23="2017-04-26T00:00:00" cDefine25="同博达" iDLsID="1000341212" iNQuantity="10.0000000000" strC strCode="030702CBNNN-JHJ0005A" bLPUseFree="False" iRSRowNO="0" iOriTrackID="0" bCosting="True" bVMIUsed="False" cbdlcode="KJ1704C87" corufts="" strC iExpiratDateCalcu="0" iorderdid="1000161766" iordertype="1" iordercode="0117040E4" iorderseq="1" ipesodid="1000161766" ipesotype="1" cpesocode="0117040E4" ipesoseq="1" isotype="0" irowno="1" rowufts="0000000281bd4607" /> </head> <body /> </voucher> </ufinterface> 我有2个时间控件。想通过选择起始时间start和截止时间ed。dnmaketime > \'2017-04-26\' and dnmaketime < \'2017-04-27\'。 Dim start As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1") Dim Ed As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2") 然后解析XML。对应的值填写到销售出库单。sqlstr应该是查2个表rdrecord32和rdrecords32.当在rdrecord32查到id和rdrecords32的id相等。如附件图。 那么销售出库单就需要新增加1行,csocode,cInvCode,ccusinvname,iQuantity从rdrecords32获取值。 对应关系
这个怎么做呢? [此贴子已经被作者于2017/6/27 18:13:50编辑过]
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点色 -- 发布时间:2017/6/27 18:38:00 -- 之前告诉过你怎么操作xml,请自行补充知识
https://www.baidu.com/baidu?wd=xmldocument&tn=monline_dg&ie=utf-8
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:huhu -- 发布时间:2017/6/28 9:20:00 -- 单独解析一个XML没有问题----这个之前告诉我了。 现在是有2个问题困扰我。 1.起始start和截止ed控件的值如何传递到sqlstr里? sqlstr="s elect * from Rdrecord32 where dnmaketime > \'2017-04-26\' and dnmaketime < \'2017-04-27\' " dnmaketime > \'2017-04-26\' 为dnmaketime > start.value dnmaketime < \'2017-04-27\' 为dnmaketime < ed.value。 2.在Rdrecord32表解析出ID,还要在Rdrecords32在查询一次。这个怎么做? |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点色 -- 发布时间:2017/6/28 10:14:00 -- 1、
Dim xmlDoc As New System.Xml.XmlDocument Dim ndList = xmlDoc.GetElementsByTagName("sz") For i As Integer = 0 To ndList.count - 1 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点色 -- 发布时间:2017/6/28 10:19:00 -- 2、没看懂你什么问题,如何查询Rdrecords32?
解析出id后,你想怎么查就怎么查啊。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:huhu -- 发布时间:2017/6/28 15:36:00 -- 老师,我没看懂4楼代码,哪里和时间时间控件有关系。还有XML是我提供的那个吗? 附件是我根据之前的帖子,有2个按钮,1查询,2解析。请帮忙看看怎么改。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点色 -- 发布时间:2017/6/28 16:05:00 -- 如果是查找,你要传递什么参数过去查找?对方的文档如何说明?
如果是获取值,参考
Dim xmlDoc As New System.XML.XmlDocument |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:huhu -- 发布时间:2017/6/28 16:15:00 -- <?xml version="1.0" encoding="utf-8"?> <ufinterface efdebug="0" efserverid="321" eftype="EFSQL" ddate="2016-10-08" sqlstr="se lect * from Rdrecord32 where dnmaketime > \'2017-04-26\' and dnmaketime < \'2017-04-27\' " proc="Query" succeed="1" dsc="EFSQL处理成功"> </ufinterface> xml就是上面这个。dnmaketime大于起始时间小于截止时间。 把xml的内容复制到context里面。点击调用就返回了结果。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点色 -- 发布时间:2017/6/28 16:26:00 -- 那你就不能合成字符串?合成字符串之后查询?
Dim msg As String = "context=" & 这里写你合成的字符串 [此贴子已经被作者于2017/6/28 16:26:24编辑过]
|