以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  报表生成问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=136587)

--  作者:gudao123456
--  发布时间:2019/6/16 21:13:00
--  报表生成问题
在生成报表时,如果打印的不是整个字段的值,而是其中的部分字符,如在户籍所在地字段中有“省市县乡村”,但打印时仅希望打印其中的“省市县”,能直接在模板中设定吗?如果不能,要代码,请问这段代码:
Dim dr As DataRow
dr = DataTables("dxxsrxbzmxb").Find("sfygs = \'false\'")   \'-----查找符合条件的行
Dim hj As String=dr("hjszd")
Dim xx As Integer=hj.Indexof("县")
If xx=-1
xx=hj.Indexof("区")
End If
hj=hj.substring(0,xx+1)          \' 截取符合条件的字符    

如何把变量hj的值,添加到报表中呢?谢谢
[此贴子已经被作者于2019/6/16 21:15:21编辑过]

--  作者:有点甜
--  发布时间:2019/6/17 9:42:00
--  

用表达式,比如

 

<left([hjszd], InStr([hjszd], "县"))>

 

 


--  作者:gudao123456
--  发布时间:2019/6/17 20:37:00
--  
谢谢!
这些函数我怎么查不到呢?
[此贴子已经被作者于2019/6/17 20:50:27编辑过]

--  作者:有点蓝
--  发布时间:2019/6/17 21:05:00
--  
http://www.foxtable.com/webhelp/topics/1388.htm
--  作者:gudao123456
--  发布时间:2019/6/17 23:53:00
--  
谢谢!
--  作者:gudao123456
--  发布时间:2019/7/9 20:44:00
--  
上次在你的指导下我用<left([hjszd], InStr([hjszd], "县") or InStr([hjszd], "区") )>  打印成功“户籍所在县区”  但是又出现了新的问题,如果一个户籍地址里不出现县或区,只出现市无法打印出来,如:广西桂平市紫荆镇深水村新村屯 就打印不出来。 如果地址中出现了两个“区”,打印就打印到第二个“区”字。如:广西武宣县禄新乡地有村民委地有村九区1队,就打印出来的是:广西武宣县禄新乡地有村民委地有村九区。显然这两种情况都不符合“户籍所在的县区”这个要求,如何设置呢?谢谢!
--  作者:有点蓝
--  发布时间:2019/7/9 20:59:00
--  
试试:<left([hjszd], IIF(InStr([hjszd], "县") > 0,InStr([hjszd], "县"),IIF(InStr([hjszd], "区") > 0,InStr([hjszd], "区"),InStr([hjszd], "市")) ))>

至于“地有村九区1队”这种情况无法处理,程序无法判断是真的区还是假的区。

--  作者:gudao123456
--  发布时间:2019/7/9 21:23:00
--  
谢谢!能判断第一个“区”吗?
[此贴子已经被作者于2019/7/9 21:23:56编辑过]

--  作者:有点蓝
--  发布时间:2019/7/9 21:25:00
--  
InStr函数取的就是第一个
--  作者:gudao123456
--  发布时间:2019/7/9 21:38:00
--  
你上面提供的公式管用!谢谢!

[此贴子已经被作者于2019/7/9 21:41:59编辑过]