2016-05-23 5 views
0

現在、アカウントの設定をプルするレポートを作成中ですが、これには少しの裏話が必要です。Crystal Reports XIデータベース内のレコードの最も早いデータ

ユーザーはアカウントでセットアップを行うことができますが、別のユーザーが来て「編集」アクションコードを使用して以前の設定を取り消し、別の有料オプション、新しいアカウントセットアップでは、何か本当に。私たちが事務所に支払う方法は、誰が元の設定をしていたかに基づいています。

私が作成している報告書は、設定の元の作成者を引き出す必要がありますが、最新の設定情報が必要です。

accountNumber、oldUser、oldUserSupervisor、newSetUpDate、newSetUpAmtは集められた列になります。

これらの列は、テーブルを照会するときは、いずれかの制限を持っていない場合、それは過去のすべての設定を表示し、現在のだろう「セットアップ」と呼ばれる一つのテーブルから

を来るが、非アクティブフラグと、のisActive = "N"の場合は非アクティブ、isActive = "Y"の場合は...

私が行う必要があるのは、元のセットアップユーザーを取得し、新しいセットアップに関する情報を引き出し、上記に列挙した。

各レコードを調べるために変数を使用しようとしましたが、常に最新の情報を返します。

この

は私の変数は、式ワークショップで使用されている(私は前にそれらを初期化したヘッダにはい、)各レコードをスキャンすることになっている

Shared DateVar createDate; 
Shared BooleanVar countNext; 
Shared StringVar previousRehab; 
Shared StringVar cUser; 

// Checking for the correct create date 
If (countNext = true) Then 
    createDate := {CreateDate} 
Else 
    createDate := createDate; 

// Checking for the correct user 
If (countNext = true) Then 
    cUser := {User} 
Else 
    cUser := cUser; 

//Checking for the correct cancel code 
If ({cancelReason} = "EDIT") Then 
    countNext := False 
Else 
    countNext := True; 

それが、その後停止一致する場合、その情報を保存しますレコードを検索して印刷します。現在は、常に最新の情報を表示し、過去には触れません。

答えて

1

このようにすると、混乱の中で立ち往生します。

以下のプロセスに従います。

アカウントは古いものと新しいものがあります。

  1. 詳細セクションで、これらの列がoldUser, oldUserSupervisor, newSetUpDate, newSetUpAmtaccount number

  2. 場所を使用してグループを作成します。

  3. すべての列について、すべてのデータを格納してアレイをグループヘッダーにリセットする配列を作成します。以下の手順に従ってください。グループヘッダにおいて

@Reset

Shared Stringvar Array olduser=""; 
Shared Stringvar Array oldUserSupervisor=""; 
Shared Srtingvar array newSetUpDate=""; 
Shared Stringvar Array newSetUpAmt=""; 

を作成した4列の4つの異なる式を作成し、以下のように書いて詳述します。4列

ための4式を作成する式このよう @storeolduser

olduser:=olduser+databasefield; 
1 

を作成

:私は1つの列配列に格納する前に、文字列に変換することを確認した日付と金額の4列に拡張するために示していますレポートフッターエキス、すべての4、古い情報や配列の最後の要素として、配列の最初の要素で

は、最新の情報を持っている

olduser[1] //will give first user access 
olduser[Ubound[olduser]] //will give last user accessed 

グループのフッターですべてを抽出し、あなたの要件に応じて表示

+0

ステップ3では、@storeolduser数式を作成するときに「残りのテキストが数式に含まれていないようです」というメッセージが表示されます。次のような式: 共有文字列配列oldUser oldUser:= oldUser + {Table.name} .oldUser – NWcis

+0

変数を宣言した後にセミコロンを使用します。次のコードが続行されます – Siva

+0

これは1つの問題を解決したようですが、databasefield.oldUserはまだ動作しません。 .oldUserは数式の一部ではないとフラグを付けます。それを削除すると、データベースフィールドを配列の一部にすることはできません。私の構文は:oldUser:= oldUser + {Table.userName} .oldUser;私はセミコロンの有無を問わず試しましたが、違いはありません。 – NWcis

関連する問題