CREATE OR REPLACE FUNCTION SP_YJ_CFNRHB(PZXRQ00 in char,PCFID00 in number,PYPYF00 in char, PPX0000 in char) return varchar2 is -- MODIFICATION HISTORY -- Person Date Comments -- csf 20130517 create YJ-20130428-001 V_CFLSH0 YS_CFMX00.CFLSH0%type; V_ZB0000 YS_CFMX00.ZB0000%type; V_CFID00 YS_CFMX00.CFID00%type; V_YPMC00 YS_CFMX00.YPMC00%type; V_YPGG00 YS_CFMX00.YPGG00%type; V_CSL000 YS_CFMX00.CSL000%type; V_JLDW00 YS_CFMX00.JLDW00%type; V_YFID00 YS_CFMX00.YFID00%type; V_YPYFMC YF_MZCFMX.YPYFMC%type; V_PCMC00 YF_MZCFMX.PCMC00%type; V_PCID00 YS_CFMX00.PCID00%type; V_TSGS00 varchar2(10); V_CFNR00 varchar2(300); V_LENGTH number ; V_COUNT number;--处方明细总条数 V_COUNT1 number;--处方明细总条数 V_PCXH00 number; begin select CFLSH0,YPMC00,nvl(trim(YPGG00),''),nvl(trim(CSL000),''),nvl(trim(JLDW00),''),nvl(YFID00,''),nvl(PCID00,0) into V_CFLSH0,V_YPMC00,V_YPGG00,V_CSL000,V_JLDW00,V_YFID00,V_PCID00 from YS_CFMX00 where CFID00 = PCFID00; select NVL(max(YPYFMC),' '),nvl(max(PCMC00),' ') into V_YPYFMC,V_PCMC00 from YF_MZCFMX where CFID00 = PCFID00; select nvl(ZB0000,'Z') into V_ZB0000 from YS_CFMX00 where CFID00 = PCFID00; select COUNT(1) into V_COUNT from YS_CFMX00 where CFLSH0 = V_CFLSH0 and ZB0000=V_ZB0000 and CFID00 <= PCFID00; select COUNT(1) into V_COUNT1 from YS_CFMX00 where CFLSH0 = V_CFLSH0 and ZB0000=V_ZB0000 ; V_CFNR00:=rpad(trim(V_YPMC00)||'['||trim(V_YPGG00)||']',40,' ')||rpad(trim(V_CSL000)||trim(V_JLDW00),8,' '); --原30改40 if V_ZB0000= 'Z' then V_TSGS00:=' '; elsif v_Count1 = 1 then V_TSGS00:=' '; elsif v_Count=v_Count1 then V_TSGS00:='┛'; elsif v_Count=1 then V_TSGS00:='┓'; else V_TSGS00:='┃'; end if; V_CFNR00:=rpad(V_CFNR00,45,' ')||V_TSGS00; --原40改45 if pypyf00 is not null then if (V_TSGS00='┓') or (V_TSGS00=' ') then V_CFNR00:=rpad(V_CFNR00||' '||pypyf00,52,' '); end if; end if; if ppx0000 is not null then if (V_TSGS00='┓') or (V_TSGS00=' ') then V_CFNR00:=rpad(V_CFNR00||'/'||ppx0000,62,' '); end if; end if; if pZXRQ00 is not null then if (V_TSGS00='┓') or (V_TSGS00=' ') then V_CFNR00:=pZXRQ00||'┃'||V_CFNR00; else V_CFNR00:=' '||'┃'||V_CFNR00; end if; end if; return V_CFNR00; end; /