- PR -

CrystalReportの式エディタについて

1
投稿者投稿内容
DH
会議室デビュー日: 2005/03/05
投稿数: 15
投稿日時: 2005-03-05 17:49
はじめましてDHと申します。
以前からこちらの掲示板で勉強させて頂いています。
掲示板の情報より解決策を見出せなかったので投稿させて頂きます。
(見落としていたならば、申し訳ありません)

<現象>
CrystalReport帳票を作成しています。数値型の8桁の値に(例20050212)"0000/00/00"
のような形にしたいのですが式エディタを使い(Basic型)

Dim Date1 AS string
Date1 = Format(8桁の数値を保持しているDBの項目,"0000/00/00")
Formula = Date1

と入力すると
"ここには数値、通貨記号、論理値、日付、時刻、日時、文字列が入ります。"
というエラーになります。式エディタではFormatは使えないのでしょうか・・・?
また

Dim Date1 AS string
Date1 = Cstr(8桁の数値を保持しているDBの項目)
Date1 = Left(Date1,4)+"/"+Right(Date1,4)
Date1 = Left(Date1,6)+"/"+Right(Date1,2)
Formula = Date1

これは通るのですが8桁の数値が(例20050212が)"20,050,212.00"というようなstring
型になってしまい結果としてFormulaに帰ってくる値が"20,0/0,/2.00"というようなものになっていまうんです・・。『,』カンマが数えられてるみたいなんです。
文法等根本的に間違っていますでしょうか・・・?

8桁の数値を日付"0000/00/00"の形にできる何か良い方法がございましたらご教授お願いしたします。

<開発環境>
・開発言語:Visual Studio .NET 2003 (C#.net)
・付属のCrystal Report
・データベース:アクセス2003


[ メッセージ編集済み 編集者: DH 編集日時 2005-03-05 17:49 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-03-05 19:35
こんにちは、じゃんぬねっと です。

引用:

"ここには数値、通貨記号、論理値、日付、時刻、日時、文字列が入ります。"
というエラーになります。式エディタではFormatは使えないのでしょうか・・・?



そういうわけではありません。
式エディタでは、最終的な値を返すように組まなくてはならないからです。
ですので、代入などの式を含めることができないのです。

if 〜 then
  ここで返す値を書く
else
  ここで返す値を書く

のようにはできますが、

if 〜 then
  ここで何やら整形するために変数を使う
  ここで整形したのを返したいけど、返す術がない
else
  ここで何やら整形するために変数を使う
  ここで整形したのを返したいけど、返す術がない

にはできません。
_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
DH
会議室デビュー日: 2005/03/05
投稿数: 15
投稿日時: 2005-03-07 14:10
じゃんぬねっとさんご返答ありがとうございます。

Formula = 値

の形で最終的な値を返すように作っていたのですがそこが間違いでしょうか?
IF分の場合
IF 値 = 0 Then
値 = "正"
ElseIF 値 = 1 Then
値 = "誤"
Formula = 値

といったコードで通っていたもので・・・。
本当に勉強不足で申し訳ない・・・。
1

スキルアップ/キャリアアップ(JOB@IT)