以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于快递地址截短的判断 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49608) |
-- 作者:yangcin -- 发布时间:2014/4/21 11:38:00 -- 关于快递地址截短的判断 打印快递面单时,需截短到县级城市为止,譬如:浙江省金华市义乌市望道路377号,这个地址在面单上有部分区域需要打印出“浙江金华义乌”,其中“省”“市”这些字要去掉 如何实现?参考代码如下: Din s As String = “ 浙江省金华市义乌市” If e.DataCol.Name="收件地址" Then If e.DataRow.IsNull("收件地址") Then Return Else Dim s As String = e.NewValue Dim str() As String = {"县","区","市","省"} For i As Integer = 0 To str.Length - 1 If s.Contains(str(i)) Then e.DataRow("收件省市") = s.Split(str(i))(0) Exit For End If Next End If End If 这个执行得到结果是:浙江省义乌 |
-- 作者:Bin -- 发布时间:2014/4/21 11:42:00 -- Dim s As String = " 浙江省金华市义乌市" s=s.Replace("省","").Replace("市","") MessageBox.show(s)
|
-- 作者:有点甜 -- 发布时间:2014/4/21 11:44:00 -- 简单,就这样改
Dim sp() As Char = {"县","区","市","省"} |
-- 作者:yangcin -- 发布时间:2014/4/21 12:17:00 -- 市后面的那些字如何去掉?我的条件写错了。地址比较长:浙江省金华市义乌市望道路377号,这样的,“市”之后的字符串,不要 |
-- 作者:lsy -- 发布时间:2014/4/21 13:07:00 -- If e.DataCol.Name = "收件地址" AndAlso e.DataRow.IsNull(e.DataCol) = False Then
Dim s As String = e.NewValue \'例如:"浙江省金华市义乌市望道路377号" Dim str() As String = {"县","区","市","省"} For i As Integer = 0 To str.Length - 1 If s.LastIndexOf(str(i)) > 0 Then s = s.SubString(0,s.LastIndexOf(str(i))) Exit For End If Next For i As Integer = 0 To str.Length - 1 s = s.Replace(str(i),"") \'浙江金华义乌 Next End If [此贴子已经被作者于2014-4-21 13:12:20编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/4/21 14:25:00 -- 或者这样
Dim sp() As Char = {"县","区","市","省"} |
-- 作者:yangcin -- 发布时间:2014/4/21 16:20:00 -- 感谢有点甜。这个很好用。我前面还加了点 Replace 空格的判断...很好用 |