日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Oracle > Oracle EBS 報表輸出字符字段前部"0"被Excel自動去掉問題

Oracle EBS 報表輸出字符字段前部"0"被Excel自動去掉問題

來源:程序員人生   發布時間:2014-05-23 14:04:17 閱讀次數:3500次

Oracle  EBS 提供多種報表的開發和輸出形式,由于MS Excel在處理數據方面的優勢明顯,報表輸出用Excel打開是很常見的開發項。

但是正是由于Excel的“過于智能而不智能”,導致有時輸出字段會被Excel自動處理,導致數據錯誤。

例如: 系統內部字段,物料編碼/訂單標號 等等字段在數據庫內存儲的格式為 varchar, 在某些業務或者需求下,編碼方式為全數字的形式,如"100230001","100230002",... 這樣的字段在系統中沒問題,報表輸出到Excel也無問題;而有情況可能是,編號為 "000031001", "000031002","000031003",.... 這樣的情況,系統中是存儲了9位數的字符,而報表輸出到Excel之后,Excel就會認為他是一個數字,而非字符串,從而出現字符串前的"0"被截取,變成 "31001", "31002","31003",.... 這樣的錯誤不易被發覺,但是是一個很不友好的錯誤。

解決辦法:

1. 并發程序輸出 html 報表

這種類型的報表輸出的是html標簽(或者XML標簽),這種報表被截位的修復方法是在輸出的時候,把這個字段放在 =" "  內,例如,PLSQL代碼片段為:

fnd_file.put_line(fnd_file.output, '<div>000031001</div>');

變成:

fnd_file.put_line(fnd_file.output, '<div>="000031001"</div>');

或者

fnd_file.put_line(fnd_file.output, '<div>''000031001</div>');

解釋:

前一種方法,在Excel中,= 代表公式,而用雙引號括起來之后就是字符串的意思,就是說設置當前單元格為等于當前的值轉換為字符串的意思,類似于 oracle的 to_char() ;后一種方法,Excel中,在單元格值最前面加一個單引號表示這個單元格為“壞公式”,就是不自動計算的意思,Excel單元格要顯示公式,也是這種方法。

          

2. XML Publisher 報表

 XML publisher 報表除了用上面的兩種方法以外,還可以設置XML Publisher屬性來解決這個問題,直接看屬性截圖:

 

屬性設置為 “強制LTR” ,強制為數據格式,在Excel中就不會轉化為數字了,對應的 XML publisher 腳本代碼為:

<fo:bidi-override direction="ltr" unicode-bidi="bidi-override"><?ASSEMBLY?></fo:bidi-override>

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 无码精品一区二区三区免费视频 | 热久久久 | 成人亚洲一区 | 99精品欧美一区二区蜜桃免费 | 黄色一级视频免费看 | 亚洲免费影院 | www视频在线观看 | 日韩精品在线播放 | 亚洲日本va中文字幕久久 | 亚洲精品久久久久久下一站 | 国产日韩一区二区 | 天天干夜夜操视频 | 欧美精品一区二 | 亚洲欧美色图片 | 夜夜摸夜夜操 | av在线资源| 成人国产精品久久久 | 日本久久久一区二区三区 | 日韩在线电影 | 一区二区三区四区日韩 | 国产精品一区二区三区免费视频 | 国产三级三级三级精品8ⅰ区 | 手机看片国产日韩 | 日韩视频二区 | 国产香蕉在线观看 | 欧美精品国产精品 | 成人免费大片黄在线播放 | 久久99国产精品久久99果冻传媒 | av一区二区三区 | 久久精品电影 | 在线不卡一区 | 99精品久久99久久久久 | 国产原创视频 | 亚洲综合在线播放 | 亚洲国产一区二区a毛片 | 国产欧美精品一区 | 亚洲精品久久久久久国产 | 综合视频在线 | 中文字幕福利 | 亚洲综合日韩欧美 | 日本中文字幕在线播放 |