Q&A集[?]

分類メニュー

サイト内検索

関連サイト

質問コーナー

質問・回答の前に

質問・不具合要望を
新たに書く

最新の20件

2010-09-03

2010-09-02

2010-09-01

2010-08-31

2010-08-30

2010-08-29

2010-08-28

2010-08-27

2010-08-24

2010-08-21

2010-08-20

more...


本日:3
昨日:2
総数:1046
現在:21


Sun Report Builderで表示されないフィールドがある

ページOpenOffice.org FAQの登録ページ
投稿者GAKU
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2009-07-01 01:38:37 (水)
OSWindows XP
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

イベントの出展者情報を管理しています。

出展者情報テーブルの設定
フィールド名    タイプ
ID             INTEGER(整数)
氏名           VARCHAR(テキスト)
住所           VARCHAR(テキスト)
電話番号        VARCHAR(テキスト)
出展区分        VARCHAR(テキスト)
メッセージ        VARCHAR(テキスト) 長さ200
(関係のないフィールドは省略しています)

このテーブルから、出展区分(一般・後援者、etc.)を指定して抽出するクエリー1を作成し、そのクエリーを元に、レポート作成を試みています。
クエリー1をSQLで表示すると以下の通りで、抽出も正しく行われます。

(クエリー1)
SELECT "出展者情報テーブル"."id" , "出展者情報テーブル"."氏名" , "出展者情報テーブル"."住所","出展者情報テーブル"."電話番号", "出展者情報テーブル"."メッセージ" FROM "出展者情報テーブル" WHERE "出展者情報テーブル"."出展区分" = :区分

Sun Report Builderでレポートを作成すると、レポートを表示するためのウィンドウは開くのですが、レポートは全く表示されません。

そこで、"メッセージ"のフィールドを抽出しないクエリー2を作成し、"メッセージ"を表示しないレポートを作成すると、正しいレポートが表示されます。

(クエリー2)
SELECT "出展者情報テーブル"."id" , "出展者情報テーブル"."氏名" , "出展者情報テーブル"."住所","出展者情報テーブル"."電話番号" FROM "出展者情報テーブル" WHERE "出展者情報テーブル"."出展区分" = :区分

また、以下のように"メッセージ"を抽出するクエリーで、エイリアスを指定し、そのエイリアスを表示するレポートを作成すると、レポートは表示されるのですが、エイリアス"コメント"の内容は表示されません。

(クエリー3)
SELECT "出展者情報テーブル"."id" , "出展者情報テーブル"."氏名" , "出展者情報テーブル"."住所","出展者情報テーブル"."電話番号", "出展者情報テーブル"."メッセージ" AS "コメント" FROM "出展者情報テーブル" WHERE "出展者情報テーブル"."出展区分" = :区分

これらの現象は、出展者情報テーブルの"メッセージ"フィールドのが長さが200と長いことに起因しているのでしょうか?
また、正しくレポート出力する方法があれば、教えて下さい。
よろしくお願いします。


サンプルの提供は可能でしょうか

M.Kamataki (2009-07-01 07:10:32 (水))

問題の再現のためにサンプルを作成することは可能でしょうか。テーブルの内容を公開可能なものに変更していただき、本ページに添付してください。添付方法は「当サイトの使い方/高度な使い方」をご覧ください。

p.s.1752は削除しておきました。

サンプル作成してみました。

GAKU (2009-07-03 00:41:44 (金))

M.Kamatakiさま

サンプル作成してみました。
クエリー1・2・3それぞれを使ったレポート1・2・3を作ってます。
レポート1は当初の質問通り、「レポートのウィンドウが開くだけでレポートが表示されない状態」が再現されました。
ただ、レポート3は、「レポートは表示されるが、エイリアス"コメント"の内容は表示されない状態」は再現せず、レポート1と同じ状況となりました。

お手数ですが、よろしくお願いします。

メッセージの内容

ike@九州 (2009-07-03 10:21:33 (金))

新規に作成した場合問題ありませんでした。
けれど、サンプルだと再現してしまいます。のでメッセージの内容に不具合があるようなのでWriterにメーッセージをコピペして見てみると、メーッセージの中に 0B(Vertical Tabulation(垂直タブ)) 制御コードが含まれていました。
Writer 上では"#"として表示され、Calcにコピーして =code(文字列)でコード取得。
id = 1、5 のメッセージの内容を方向キーで移動していると見た目移動しない部分にコードが含まれます。それを削除すると無事に表示されました。

どのようにして、その制御コードを入れる事が出来るのかは分かりませんでした。

原因はデータ側にありました

M.Kamataki (2009-07-03 11:12:32 (金))

ike@九州さんとかぶって書き込みがキャンセルされましたが、わたしも同じ結論に。せっかく書いたコメントですので、以下に貼っておきます。

「レポート1」「レポート3」でパラメータクエリーの入力ダイアログで「後援者」を指定するとレポートがちゃんと表示されました。

ということで、データ側に原因があると思われたので、調べるとidが「1」と「5」のメッセージ欄に「0x0b」(垂直タブ)のコントロールコードが紛れ込んでいました。

エディタのxyzzyに文字列を貼り付けると以下のように問題の箇所がわかりました。
id=1のメッセージ欄

植物タンニンでなめした革を使い、彫り、染色、縫製すべて手作業で行っています。^Kすてきな出会いがあります様、楽しみにしています。

id=5のメッセージ欄

木のぬくもりを感じると、やさしい気持ちになれる気がします。いつものくらしに“木のもの”ひとついかがですか。^K今年も、たくさんの出会いを楽しみにしています。

それぞれのレコードで表示されていない「^K」(垂直タブ)を削除してください。表示されていないのですが、カーソルを動かしてみるとわかると思います。

データに垂直タブが紛れ込んだ理由は考えられるでしょうか。

p.s. SUN Report Builderが垂直タブのようなコントロールコードを無視してくれないというのも問題がある気はします。

ありがとうございました

GAKU (2009-07-03 15:01:31 (金))

ike@九州さん、M.Kamatakiさん、ありがとうございます。

確かにid=1とid=5のデータから「^K」を削除すると、正しいレポートが作成されました。
サンプルデータを作る時、メッセージフィールドだけは本物を流用したので、再現したのだと思います。
このデータは、元々ファイルメーカーで入力管理していたものを、csv形式にエクスポートし、それをBASEにインポートしたものです。
どこの段階で、「^K」が紛れ込んだのかはわかりませんが、本物の方も「^K」を削除してトライしてみます。
データ件数が多いため、時間がかかると思いますので、これで完了としてください。

ありがとうございました。

やはり元のデータはファイルメーカーでしたか

M.Kamataki (2009-07-03 15:17:24 (金))

ファイルメーカーのフィールドのデータ内に「改行」が含まれていると、CSV出力時に「垂直タブ」に変換されるようですね。もし、ファイルメーカーを利用できるなら、以下のページに垂直タブを扱う方法が書かれていました。

ファイルメーカーのデータをcsvに書き出すと・・・
http://oshiete1.goo.ne.jp/qa1965455.html

csvの状態なら、コントロールコードを扱えるエディタで置換元を「垂直タブ」、置換先を文字列なしで全置換すれば、いっぺんに「垂直タブ」を全削除できます。上記で紹介したxyzzyでもできました。

ありがとうございます

GAKU (2009-07-09 00:36:31 (木))

M.Kamatakiさま

いろいろご指導ありがとうございます。
データの方は、BASEにインポートしたあとに、既に色々と入力したり、変更したりしているので、地道に1レコードずつ確認して、垂直タブを削除しました。
時間かかりましたが、無事に求めていたリストを出力できました。
ありがとうございました。

Re: ありがとうございます

M.Kamataki (2009-07-10 10:18:57 (金))

>データの方は、BASEにインポートしたあとに、既に色々と入力したり、変更した
>りしているので、地道に1レコードずつ確認して、垂直タブを削除しました。

お疲れ様です。

なお、Calcの表形式データからBaseのテーブルカテゴリにDrag&Dropすると簡単にテーブルへのインポートができます(テーブルコピー用のウィザードが起動します)。データの加工は、加工しやすい形式にして加工しやすいツールを使うのが、結局は早道だと思います。以後、参考にしてください。

お名前:
題名:


添付ファイル: filesample.odb 101件 [詳細]