'---根据IBSB编号从豆瓣网图书api中自动查出图书信息
If e.DataCol.Name = "ISBN" Then '如果是已结帐列的内容变动
If e.DataRow("ISBN")<>"" Then
Dim obj_down As New System.Net.WebClient() '定义一个下载类
obj_down.Encoding = System.Text.Encoding.UTF8 '进行编码成utf8,不然下载后的数据是乱码.
Dim data As String= obj_down.DownloadString("http://api.douban.com/book/subject/isbn/" & e.DataRow("ISBN")) '豆瓣图书api接口,最后数字是ISBN,即扫描条码录入的信息.9787302308812
Dim data1 As String
data1= data.SubString(data.IndexOf("<db:attribute name="),data.LastIndexOf("</db:attribute>")-data.IndexOf("<db:attribute name="))
'MessageBox.Show(data1)
Dim nr As Row = Tables("图书信息").Current
Dim values() As String
values=data1.Split("</db:attribute>")
For Index As Integer = 0 To Values.Length - 1
If Values(Index).Contains("title") Then
nr("书名") = Values(Index).SubString(Values(Index).IndexOf(">")+1)
End If
If Values(Index).Contains("translator") Then
nr("译者") = Values(Index).SubString(Values(Index).IndexOf(">")+1)
End If
If Values(Index).Contains("author") And Values(Index).Contains("author-intro")=Nothing Then
nr("作者") = Values(Index).SubString(Values(Index).IndexOf(">")+1)
End If
If Values(Index).Contains("publisher") Then
nr("出版社") = Values(Index).SubString(Values(Index).IndexOf(">")+1)
End If
If Values(Index).Contains("pubdate") Then
nr("出版日期") = Values(Index).SubString(Values(Index).IndexOf(">")+1)
End If
If Values(Index).Contains("pages") Then
nr("页数") = Values(Index).SubString(Values(Index).IndexOf(">")+1)
End If
If Values(Index).Contains("price") Then
nr("价格") = Values(Index).SubString(Values(Index).IndexOf(">")+1)
End If
If Values(Index).Contains("binding") Then
nr("装订方式") = Values(Index).SubString(Values(Index).IndexOf(">")+1)
End If
If Values(Index).Contains("author-intro") Then
nr("作者简介") = Values(Index).SubString(Values(Index).IndexOf(">")+1)
End If
' Output.Show(Values(Index))
Next
'e.DataRow("序号") = e.DataTable.Compute("Max(序号)") + 1 '序号自增1
'Select e.DataCol.Name
' Case "ISBN"
If e.DataRow.IsNull("类别") Then
e.DataRow("序号") = Nothing
Else
Dim lb As String = e.DataRow("类别")
Dim xh As String = e. DataRow("序号")
If xh.StartsWith(lb) = False '如果单据序号前缀不符
Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(序号)","类别 = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大序号
If max > "" Then '如果存在最大序号
idx = CInt(max.Substring(0,4)) + 1 '获得最大序号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
e.DataRow("序号") = Format(idx,"0000")
End If
End If
'End Select
Tables("图书信息").Save()
Tables("图书信息").AddNew()
'Dim xmlDoc As New System.XML.XmlDocument
'xmlDoc.Loadxml(data) 'load方法是读取文件加载xml内容,loadxml方法是直接加载xml内容.如果用xmldoc.load(data)则要报路径非法的错误.
'Dim ndList As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("db:attribute")
'msgbox(ndList.count )
' Dim nr As Row = Tables("图书信息").AddNew
' nr("书名") = r.GetAttribute("title")
End If
End If