报表使用小技巧(大家一起顶共同进步)

楼主
我是社区第131位番薯,欢迎点我头像关注我哦~
在开发中突然要使用一个小功能,但是忘记代码了是不是很急呀,其实只是小功能点,现在写出来方便大家一起用呀!高人牛人要回呀,知识共享才是。
当查询界面,有多个参数,有一些参数为空时的处理代码
  1. where bqcr.ck+bqcr.ct <> 0
  2. ${if(len(ck)==0,""," and bqcr.cangkuid="+ck)}
  3. ${if(bm=="true",""," and bqcr.ck+bqcr.ct=0")}
  4. ) order by cknumber,wlnumber,bmnumber
复制代码


新借鉴坛友的:

效果:
例如:2012-03-20;输出为:二〇一二日三月二十日

方法一:(适用于6.5、7.0版本)
设计器单元格:
  1. A1:=FORMAT(TODAY(),"yyyy-MM-dd")
  2. A2:=REPLACE(NUMTO(YEAR(A1),true),"零","〇")+"年"+NUMTO(MONTH(A1),false)+"月"+NUMTO(DAY(A1),false)+"日"
复制代码

PS:使用中文日期,直接调用A2单元格即可,或者在A1单元格的公式形态里设置A2的公式。

方法二:(适用于6.2等老版本)
设计器单元格:
  1. A1:=FORMAT(TODAY(),"yyyy-MM-dd")
  2. A2:=if(LEN(MID(A1,1,1))>0,if(MID(A1,1,1)!=0,NUMTO(TOINTEGER(MID(A1,1,1))),"〇"),"〇")
  3. A3:=if(LEN(MID(A1,2,1))>0,if(MID(A1,2,1)!=0,NUMTO(TOINTEGER(MID(A1,2,1))),"〇"),"〇")
  4. A4:=if(LEN(MID(A1,3,1))>0,if(MID(A1,3,1)!=0,NUMTO(TOINTEGER(MID(A1,3,1))),"〇"),"〇")
  5. A5:=if(LEN(MID(A1,4,1))>0,if(MID(A1,4,1)!=0,NUMTO(TOINTEGER(MID(A1,4,1))),"〇"),"〇")
  6. A6:=if(LEN(MID(A1,6,1))>0,if(MID(A1,6,1)==0,"",if(MID(A1,6,1)==1,"十",if(MID(A1,6,1)==2,"二十",if(MID(A1,6,1)==3,"三十","")))),"")
  7. A7:=if(LEN(MID(A1,7,1))>0,NUMTO(TOINTEGER(MID(A1,7,1))),"")
  8. A8:=if(LEN(MID(A1,9,1))>0,if(MID(A1,9,1)==0,"",if(MID(A1,9,1)==1,"十",if(MID(A1,9,1)==2,"二十",if(MID(A1,9,1)==3,"三十","")))),"")
  9. A9:=if(LEN(MID(A1,10,1))>0,NUMTO(TOINTEGER(MID(A1,10,1))),"")
  10. A10:=CONCATENATE(A2,A3,A4,A5,"年",A6,A7,"月",A8,A9,"日")
复制代码

PS:使用中文日期时,直接调用A10单元格就可以了,小小技巧,免费共享,希望能减少大家在设计过程中的小麻烦,期望得到大家的分享,共同提高。

  1. select to_char(last_day(to_date('2012-02-01','yyyy-mm-dd')), 'yyyy-mm-dd') "本月第一天" from dual;
  2. select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天" from dual;
  3. select to_char(last_day(to_date('${qj}'+"-01",'yyyy-mm-dd')), 'yyyy-mm-dd') from dual
复制代码



分享扩散:

沙发
发表于 2012-1-10 10:04:25
我不是高人牛人。。。表示帖子很有用,受教了~
板凳
发表于 2012-1-10 10:51:37
本帖最后由 nageqd 于 2012-1-13 18:04 编辑

多参数时可不选的数据源查询条件:  
地板
发表于 2012-1-10 18:45:30
不错,顶一个,这些经验是需要不断积累增长的。
5楼
发表于 2012-1-11 19:22:01
可是没有人共享呀,只有一个人不成气候,:'(
6楼
发表于 2012-1-16 08:30:20
{:soso_e179:}
7楼
发表于 2012-2-3 12:23:08
才开始学习,无法共享,以后努力
8楼
发表于 2012-2-3 13:44:34
{:soso_e179:}
9楼
发表于 2012-2-4 21:10:30
其实不一定要求是什么好的东西,只要个人感觉有常用就行了,要有人供现呀
10楼
发表于 2012-2-6 23:34:00
回帖留档,以备后查
11楼
发表于 2012-2-7 13:37:26
select to_date(mon,'yyyymmdd'),LAST_DAY(to_date(mon,'yyyymmdd'))
from (
select '2012'||to_char(aa,'09')||'01' mon from (
select 1 aa from dual union
select 2 aa from dual union
select 3 aa from dual union
select 4 aa from dual union
select 5 aa from dual union
select 6 aa from dual union
select 7 aa from dual union
select 8 aa from dual union
select 9 aa from dual union
select 10 aa from dual union
select 11 aa from dual union
select 12 aa from dual));

用于得到每个月的第一天和最后一天的日期。oracle版的
12楼
发表于 2012-2-8 16:00:06
一点水的悲哀
13楼
发表于 2012-2-9 17:13:33
我是来学习的。。。
14楼
发表于 2012-2-9 21:51:13
每天顶一下,希望大家都发表,得意之作呀
15楼
发表于 2012-2-11 09:55:45
好用,谢谢啦
16楼
发表于 2012-2-11 12:04:43
:D:D:D:lol:lol:lol
17楼
发表于 2012-2-11 12:05:15
:lol:lol:lol:lol:lol顶
18楼
发表于 2012-2-11 12:06:36
:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol
19楼
发表于 2012-2-13 21:14:31
学习~~~~~~
20楼
发表于 2012-2-17 09:26:20
路过,留个恋像
21楼
发表于 2012-2-22 09:20:44
当年可是遇见过参数为空的,看文档了当时
22楼
发表于 2012-2-29 20:24:24
从头学起
23楼
发表于 2012-3-4 17:13:08
支持,大家多多分享噢:loveliness:
24楼
发表于 2012-3-14 17:09:14
确实 ,我也是新手 赞一个........多多分享啊!
25楼
发表于 2012-3-20 09:29:22
没想到在查询界面还可以这样使用,以前都在页面传参时控制,很麻烦,谢谢分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表