以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于EXCEL报表和固定截取  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131650)

--  作者:工匠
--  发布时间:2019/3/4 7:45:00
--  [求助]关于EXCEL报表和固定截取
老师好
请教2个问题:
1.打印EXCEL报表时,如何将数据表的A列、B列、C列内容中间用/隔开,并一起打印在报表一个单元格内
2.当数据表D列发生变化,如何把D列开头3个字符截取到E列,把D列最后2个字符截取到F列

谢谢!
[此贴子已经被作者于2019/3/4 8:45:56编辑过]

--  作者:有点甜
--  发布时间:2019/3/4 9:04:00
--  

1、 <[A] & "/" & [B] & "/" & [C]>

 

2、datacolchanged事件

 

If e.datacol.name = "D" Andalso e.datarow("D").length >= 5 Then

    e.datarow("E") = e.datarow("D").Substring(0, 3)

    e.datarow("F") = Right(e.datarow("D"), 2)

End If


--  作者:工匠
--  发布时间:2019/3/5 22:31:00
--  
谢谢老师,问题已解决


--  作者:工匠
--  发布时间:2019/3/20 23:51:00
--  
老师好,请帮看看完善下这种表达式引用,目前好像EXCEL打印带不出来,(A-B-C有时候会有空值)
<IIF(*[A+1]* Is null,"",*[A+1]*) &"/"& IIF(*[B+1]* Is null,"",*[B+1]*) & "/"&  IIF(*[C+1]* Is null,"",*[C+1]*) >

谢谢!
[此贴子已经被作者于2019/3/21 14:50:05编辑过]

--  作者:有点甜
--  发布时间:2019/3/21 15:48:00
--  

直接这样就可以了吧?

 

<*[A+1]* & "/" & *[B+1]* & "/" &  *[C+1]* >

 

如果要判断,不能用 is null,要用比如 <iif(cstr(*[A+1]*)="", "空", "不空")>