e-learning、オラクル研修、LMS(学習管理システム)のiStudy

e-learning、オラクル研修、LMS(学習管理システム)のiStudy

第132回「実用WEBアプリ 文書管理システム(13)コーヒーブレイク:このシステムにおけるPREタグとPタグ」

2015.06.11

こんにちは。インストラクターの蓑島です。梅雨の季節ですね。暑い夏はもうすぐです。

文書管理システムもほぼ基本機能(登録・更新・削除・検索)が揃い、使っていただいている方もいらしゃると思います。そこで、今回は知っていれば便利な、コーヒーブレイク的な短い話題を解説したいと思います。それはタイトルにある通り、PREタグとPタグについてです。

PREタグもPタグもHTMLタグです。HTMLタグは文書の表示のされ方を制御するものですね。

例えば、メモ帳などで、普段書いているような普通のテキスト文書を作ってそれをブラウザで読み込むと、改行されない状態で表示されます。理由はそのテキスト文書の中に、HTMLタグが記述されていないからです。このようにブラウザでは、HTMLタグを記述しないと、改行もされません。

しかし、本システムで文書を作成して、表示すると、書いたままにそのまま表示されます。それは表示プログラム(DOC_SHOWプロシージャ)の中で、自動的にPREタグで、本文全体を囲っているからです。バックナンバー第123回「実用WEBアプリ 文書管理システム(4)文書表示」を参照すると、DOC_SHOWプロシージャのソースコードの25行目に以下の記述があります。

(25行目) HTP.P('<PRE>' || REC1.HONBUN || '</PRE>');

この記述により、本文全体がPREタグで囲まれるので、本文に書いた通りに表示されるのです。
(<PRE>~~本文~~</PRE>)

このようにPREタグというのは書いたままに表示したいときに使うタグであり、本システムでは自動的にこのPREタグを使うようにしてあります。

しかしこのような対応は便利ではありますが、ときに邪魔な機能かもしれません。例えばブラウザの表示幅に合わせて自動的に行が折り返してほしいというニューズもよくあります。そのような場合、一般にPタグ(段落タグ)を使うのですが、その場合、自動的に生成されるPREタグが邪魔になります。そこでそのような場合、PREタグをうち消したい範囲の先頭にPREタグの終了タグを記述し、その範囲の最後にPREタグの開始タグを記述してください。このような逆の順番のPREタグにより、プログラムで自動生成するPREタグを打ち消すことができます。

<PRE></PRE>~~PREタグをうち消したい範囲~~<PRE></PRE>

これにより、その範囲内でPタグを使い段落を指定すればその段落の範囲は、ブラウザの画面幅で自動的に折り返すわけです。

実際にやってみましょう。

私の環境では、14番の文書がテスト用の文書なので、その文書でPタグを使うように更新します。バックナンバー 第103回「WEBアプリ作成(1) (Oracle DBとPL/SQLだけで、即、WEBアプリ)」と同等の設定ができていれば、以下のURLです。

http://localhost:8080/dad/doc_update?p_id=14
ログインを求められたら、スキーマユーザ(私の場合、SCOTT)でログインします。

更新画面が開いたら、以下のようにPタグ(段落タグ)で、大きなテキストデータを囲み、送信ボタンを押します。しかしこれではPREタグを打ち消していないので、段落の設定がうまくいきません。

ご覧のように、Pタグが働いていませんね。これは本文全体を自動的に囲っているPREタグが打ち消されていないからです。

では今度はPREタグを打ち消してみます。もういちど更新画面を開きます。URLのDOC_SHOWをDOC_UPDATEにします。

ご覧のように今度は、うまくいきましたね。

画面の幅を変えても、自動的に行の表示が折り返しされます。

このように、本システムで文章を作る場合、デフォルトではPREタグで自動的に本文を囲って表示しますので、書いた通りに表示されます。したがって、画面の幅で自動的に行が折り返されるような「段落」を作りたいときは、その範囲を逆の順番のPREタグで打ち消したうえで、Pタグを使えば対応できます。

それでは今回は短い話題でしたが、ここまでにいたします。また次回、ご期待ください。

先頭へ戻る