2012-02-14 7 views
0

私の重要な他のものは、彼女の任務の遂行中にCrystal Reportsを使用し、私に助けを求めました。彼女は以下のようなマッピング関数を書いており、クライアントが複数のカードを持っているときに落ちる値を得ることに驚いています(図参照)。このモデルではマッピング関数からの予期しない結果

diagram

、クライアントはケアの訪問を持っている場合、クライアントのカードは、政府の報告の目的のために、クライアントの訪問レコードに示されることになっています。カードIDは概念的にオプションではありませんが、訪問の詳細がログに記録されているときにカードがファイルにない可能性が高いため、システムでは一時的に残しておくことができます。この状態は、以下のマッピング機能では「カードなし」の条件で表されます。

私の回答では、これは条件が満たされていないことを意味していますが、彼女は私に彼女の訴えを提出するように依頼しています。

以下は、彼女のマッピング機能のCrystal Basicコードです。彼女は最後の条件で未処理のケースがあることを認識しており、その場合は、ブランクが表示されますが、これは観測された動作ではありません。ダイアグラムのコードは、レポートから直接貼り付けられ、実際のフィールド名が含まれていますが、ダイアグラムの名前はマッピング関数コードの名前と一致しません。

if ({awt_temp.Service_code} = "DOM") and ({Card_Type.Card_Type_ID} = 21) then 
    {Card_Holder.Card_No} 
else if ({awt_temp.Service_code} = "MANT") and ({Card_Type.Card_Type_ID} = 25) then 
    {Card_Holder.Card_No} 
else if ({awt_temp.Service_code} = "PC") and ({Card_Type.Card_Type_ID} = 22) then 
    {Card_Holder.Card_No} 
else if ({awt_temp.Service_code} = "RES") and ({Card_Type.Card_Type_ID} = 24) then 
    {Card_Holder.Card_No} 
else if ({awt_temp.Service_code} = "SOC") and ({Card_Type.Card_Type_ID} = 23) then 
    {Card_Holder.Card_No} 
else if not ({Card_Type.Description} startswith "vhc") then 
    "no card" 

マッピング機能がルックアップテーブルへの結合で最も適切に処理されることには言及していません。彼女はスキーマを再設計する立場にいません。

+0

レポート整数またはvarcharでCard_Type_IDのタイプがある:あなたは、常に式の開始時にヌルのためにテストする必要がありますか?これはよく問題である可能性があります –

答えて

0

おそらくNULL値に関連しています。

if Isnull({awt_temp.Service_code}) OR Isnull({Card_Type.Card_Type_ID}) then 
    ... 
+0

あなたの返信をありがとう。これは "重要な"ものです。私は役に立たない試みを提案しました。私が思っていたことは単純だと思ったが、解決策はサブレポートを使うことだった。それは完全に動作します。 –

関連する問題