none
Crystal Reportsで年月日を表示させない RRS feed

  • 質問

  • お世話になります。

    VS2010にバンドルされるダウンロード版のCrystal Reportsですが

    レポートのデータソースであるDBのデータがDateTime without timezone で

    '04:33:45'というデータが格納されている場合でも、レポートのテキストボックスの表示が

    '1899/12/30 04:33:45' と 'yyyy/mm/dd HH:MM:SS' となってしまいます。表示したいのは

    '04:33:45' という形で 'HH:MM:SS'という形式です。

    レポートのテキストボックスのプロパティで

    DayType を crNoDay

    MonthType を crNoMonth

    YearType を crNoYear

    にしてもyyyy/mm/ddも表示されてしまうのですが

    やり方が間違っているのでしょうか?

    どなたかご教示お願いいたします。

     

     

    2010年9月14日 12:19

回答

  • Crystal Reports では、[日付] [時刻] [日時] の3つの型があります。フィールドオブジェクトでは、[日付] の場合日付だけが表示され、[時刻] の場合には時刻のみが表示されます。[日時] では両方が表示されます。

    [日時] 型のフィールドに対して、時刻のみを表示する方法で簡単なのは、

    1. 式を作成し、[日時] から [時刻] へ変換する

    2. [日時] のフィールドを作成しておいて、[時刻] に書式を変更する

    あたりです。

    前者は、式を作成してレポートに配置するだけです。式は Time(フィールド) でよいでしょう。

    後者は、レポートに張り付けた [日付・時刻] の型のフィールドオブジェクトを選択して、[オブジェクトの書式設定] → [ユーザ設定] → [日付と時刻] → [順序] の値を [時刻] 変更します。

    • 回答としてマーク oira3ryu 2010年9月15日 9:42
    2010年9月15日 0:06
  • 新規作成して、"Time();" と入力して () の内側にカーソルを置いてから該当するフィールドを選択です。

    フィールドが source の UPDATETIME なら Time({source.UPDATETIME}); になるかと思います。

    • 回答としてマーク oira3ryu 2010年9月15日 9:42
    2010年9月15日 7:15

すべての返信

  • Crystal Reports では、[日付] [時刻] [日時] の3つの型があります。フィールドオブジェクトでは、[日付] の場合日付だけが表示され、[時刻] の場合には時刻のみが表示されます。[日時] では両方が表示されます。

    [日時] 型のフィールドに対して、時刻のみを表示する方法で簡単なのは、

    1. 式を作成し、[日時] から [時刻] へ変換する

    2. [日時] のフィールドを作成しておいて、[時刻] に書式を変更する

    あたりです。

    前者は、式を作成してレポートに配置するだけです。式は Time(フィールド) でよいでしょう。

    後者は、レポートに張り付けた [日付・時刻] の型のフィールドオブジェクトを選択して、[オブジェクトの書式設定] → [ユーザ設定] → [日付と時刻] → [順序] の値を [時刻] 変更します。

    • 回答としてマーク oira3ryu 2010年9月15日 9:42
    2010年9月15日 0:06
  •  K.Takaokaさん、こんにちは

    1. 式を作成し、[日時] から [時刻] へ変換する

    というのは、Formula Workshopから該当するフィールドを選択し、Time(フィールド)を入力するということでしょうか?

    現在、職場のため自宅に戻ってから試してみたいと思います。

     

    2010年9月15日 6:13
  • 新規作成して、"Time();" と入力して () の内側にカーソルを置いてから該当するフィールドを選択です。

    フィールドが source の UPDATETIME なら Time({source.UPDATETIME}); になるかと思います。

    • 回答としてマーク oira3ryu 2010年9月15日 9:42
    2010年9月15日 7:15
  • K. Takaokaさま、ありがとうございます。

     

    > 新規作成して、"Time();" と入力して () の内側にカーソルを置いてから該当するフィールドを選択です。

    上記で掲示していただいた方法そのままでできました。

     

    備忘録として、一応細かい部分まで書いておきます。


    レポートの詳細部分の白紙の部分で右クリック

    [Field Explorer] - [Unbound Fields] - [Time]

    [Field Explorer]から[Time]を詳細の表示させたい場所にドラッグ&ドロップ

    そしたら@Unbound Fields(Time)というフィールドが出来るので、

    その上で右クリックすると[Formula Workshop]のフォームが表示されるので

    その中のTime(0, 0, 0)の()の中身を選択状態にしたうえで、その上のフィールドに表示されている

    表示させたいフィールドを選択しダブルクリックすると

    Time({表示したいフィールド})という風に置き換わるので[Save and Close]で保存してフォームを閉じ

    デバッグしてみると表示されるはずです。

    2010年9月15日 10:05