亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • oracle reports實(shí)現(xiàn)報(bào)表定長(zhǎng)與定寬輸出

    時(shí)間:2024-06-20 09:44:26 Oracle認(rèn)證 我要投稿
    • 相關(guān)推薦

    oracle reports實(shí)現(xiàn)報(bào)表定長(zhǎng)與定寬輸出

      oracle reports是oracle的數(shù)據(jù)統(tǒng)計(jì)及圖形化報(bào)表工具,它提供了六種風(fēng)格的報(bào)表格式,而我們通常使用的只有其中的兩種,即tabular和matrix,無(wú)論用哪種風(fēng)格生成的報(bào)表,打印出的表格數(shù)都是動(dòng)態(tài)變化的。其中tabular風(fēng)格的報(bào)表,列數(shù)固定,而行數(shù)不定;matrix風(fēng)格的報(bào)表,行數(shù)和列數(shù)均不定。那么在oracle reports中如何實(shí)現(xiàn)報(bào)表的定長(zhǎng)與定寬輸出呢?

      一、對(duì)于tabular風(fēng)格的報(bào)表,可用報(bào)表觸發(fā)子after parameter form和after report實(shí)現(xiàn)定長(zhǎng)輸出。其方法是:根據(jù)實(shí)際情況確定每頁(yè)打印的行數(shù),當(dāng)最后一頁(yè)的記錄數(shù)少于每頁(yè)打印的行數(shù)時(shí),則用空記錄補(bǔ)齊。在觸發(fā)子after parameter form插入空記錄,在觸發(fā)子after report中再將空記錄刪除,下面舉例說(shuō)明。

      假設(shè)有一數(shù)據(jù)基表wzdm:存放物資代碼信息,其數(shù)據(jù)結(jié)構(gòu)為:

    字段名 含義 長(zhǎng)度 類(lèi)型
    wzdm 物資代碼 9 c
    wzmc 物資名稱(chēng) 20 c
    xhgg 型號(hào)規(guī)格 20 c
    jldw 計(jì)量單位 6 c

      要求:按定長(zhǎng)輸出物資代碼表,并且每頁(yè)均輸出x行(x可根據(jù)實(shí)際情況而定)。

      1.啟動(dòng)oracle*reports,建立物資代碼打印報(bào)表(略),然后在報(bào)表觸發(fā)子after parameter form中加入以下代碼:

      declare

      v—jls number(2);

      i number(2):=1;

      begin

      select count(*) into v—jls from wzdm;

      if mod(v—jls,x)〈〉0 then

      loop

      exit when i〉=(x-mod(v—jls,x))+1;

      insert into wzdm(wzdm,wzmc,xhgg,jldw)

      values(′′,′′,′′,′′);

      i:=i+1;

      end loop;

      commit;

      end if;

      end;

      在報(bào)表觸發(fā)子after report中分別加入以下代碼:

      begin

      delete from wzdm where wzdm is null;

      commit;

      end;

      2.運(yùn)行報(bào)表后即可輸出定長(zhǎng)的物資代碼表。

      說(shuō)明:對(duì)于其它tabular風(fēng)格的報(bào)表,在編寫(xiě)上述兩個(gè)觸發(fā)子時(shí)只需將基表名與列名根據(jù)實(shí)際情況修改一下,并確定x的值即可。

      二、對(duì)于matrix風(fēng)格的報(bào)表,可利用視圖實(shí)現(xiàn)定長(zhǎng)與定寬輸出,其思路是:當(dāng)行記錄數(shù)和列記錄少于實(shí)際報(bào)表的行數(shù)和列數(shù)時(shí),均以空記錄補(bǔ)齊。下面舉例說(shuō)明。

      假設(shè)有一物資資金消耗去向統(tǒng)計(jì)月報(bào),該表橫向顯示本期消耗去向,縱向顯示物資類(lèi)別,由于每月物資消耗去向和消耗物資均不定,所以此類(lèi)報(bào)表即為一矩陣報(bào)表。該報(bào)表的數(shù)據(jù)存放在基表t—zjxhqx中,其數(shù)據(jù)結(jié)構(gòu)如下:

    字段名 含義 長(zhǎng)度 類(lèi)型
    lbmc 類(lèi)別名稱(chēng) 20 c
    dwmc 單位名稱(chēng) 20 c
    je 金額 14,2 n

      要求:按定長(zhǎng)定寬輸出物資資金消耗去向統(tǒng)計(jì)月報(bào),并且每頁(yè)均輸出x行y列(行數(shù)和列數(shù)可根據(jù)實(shí)際情況而定)。

      1.首先建一基表t—kjl,用來(lái)存放空記錄,其數(shù)據(jù)結(jié)構(gòu)為:

    字段名 含義 長(zhǎng)度 類(lèi)型
    no 序號(hào) 2 n

      建完該數(shù)據(jù)表后,再往其中插入記錄,記錄數(shù)可根據(jù)實(shí)際情況而定,一般為一頁(yè)所能打印的最大行數(shù),這里假設(shè)為z條,即no的值為1,2,3…z。

      2.建視圖,其過(guò)程如下:

      create view v—tjbb as

      select dwmc,lbmc,je from t—zjxhqx

      union

      select dwmc,null,to—number(null) from t—zjxhqx,t—kjl

      where no-(z-x)〉(select mod(count(distinct lbmc)-1,x)+1 from t—zjxhqx)

      union

      select null,lbmc,to—number(null) from t—zjxhqx,t—kjl

      where no-(z-y)〉(select mod(count(distinct dwmc)-1,y)+1 from t—zjxhqx);

      3. 啟動(dòng)oracle*reports,建立矩陣報(bào)表查詢(xún)時(shí)直接引用視圖v—tjbb即可。這樣運(yùn)行時(shí)輸出的報(bào)表每頁(yè)都是x行y列,即實(shí)現(xiàn)了定長(zhǎng)和定寬輸出。

    【oracle reports實(shí)現(xiàn)報(bào)表定長(zhǎng)與定寬輸出】相關(guān)文章:

    Oracle認(rèn)證:ORACLE綁定變量BINDPEEKING08-25

    Oracle認(rèn)證:Oracle控制件文件修復(fù)07-27

    Oracle認(rèn)證:Oracle避免全表掃描方式10-04

    Oracle認(rèn)證:Oracle內(nèi)存結(jié)構(gòu)研究-PGA篇09-22

    oracle的sql語(yǔ)句01-21

    Oracle認(rèn)證作用07-31

    Oracle最新認(rèn)證07-13

    Oracle認(rèn)證簡(jiǎn)介11-30

    Oracle常見(jiàn)產(chǎn)品10-14

    Oracle認(rèn)證途徑09-11