2017-12-27 7 views
2

yesNoFormat()の出力をマスクする方法はありますか?yesとnoの代わりに 'active'と 'inactive'を表示します。ColdFusionの使用時にyes/noをマスクする方法

<cfset currstatus = YesNoFormat(usrStatus)> //Returns Yes. I want this to return active 

私はif/elseチェックを行うことができます: "はい"が表示されている場合は "アクティブ"、それ以外の場合は "非アクティブ"と表示されます。多くの場所でこれをやらなければならないので、私はこれを避けたいと思っています。そのため、この機能に利用可能なマスキング機能/テクニックがあれば、コミュニティに手を差し伸べたいだけです。そうでない場合は、何もできません。あなたが詳細を必要としたらコメントしてください。

+0

CFのバージョンは? – Shawn

+1

そして、usrStatusはどこから来たのですか?それがここでしか使われていなければ、そこに置くことができますか? @Shawn - CF10。 – Shawn

+0

userstatus/ledgerstatus/accountstatus cfcのdbクエリーから来て、datable(datacolヘッダー)に表示されている多くの変数があります。私はロードされたページに基づいてアクティブ/非アクティブ、ブロック/ブロック解除、クレジット/デビットなど様々なステータスを表示する必要があります。下で受け取った答えに基づいて、私自身の関数(Sebastian Zartnerの示唆しているように)を作成し、私のコードをリファクタリングするのが最善であると思う。ありがとう – valueweaver

答えて

1

私が見ることができる唯一の方法はif文を使うことです。

<cfif usrStatus> 
    <cfset currstatus = "active"> 
<cfelse> 
    <cfset currstatus = "inactive"> 
</cfif> 

これが役に立ちます。もし/ else文の

+0

私はすでにこれを持っています。 YesNoFormat(value、[maskvalue1、maskvalue2])> – valueweaver

+0

のようなものがあることを願っています。アクティブ/非アクティブ文字列を外部化しようとしていると思います。私は 'css-content'を使い、ちょうどhtmlクラスを追加したくなるかもしれません。あるいは、 'currstatus'がcfcから来ている場合は、そのクラスに関数を追加したくなるかもしれません。 'doFormattedStatus()'のようなものです。私はそれらのどちらかについて本当に強く感じていません。私は全体の関心事についてもっと知る必要があります。 –

+0

userstatus/ledgerstatus/accountstatus cfcのdbクエリーから来て、datable(datacolヘッダー)に表示される多くの変数があります。私はロードされたページに基づいてアクティブ/非アクティブ、ブロック/ブロック解除、クレジット/デビットなど様々なステータスを表示する必要があります。私はセバスチャンのアプローチにショットとリファクタを私のコードに与えるだろう。ありがとう – valueweaver

7

シングルラインバージョン:

<cfset currstatus = usrStatus ? "active" : "inactive"> 
+0

+1。 'usrStatus'がCF値をtrue/falseに変換する限り、YesNoFormat()は必要ありません。ちょうど簡単な三項演算。 – Ageax

3

YesNoFormat() unfortuantely doesn't allow to output different strings。 あなたは多くの場所でその機能が必要な場合、あなたはそのため、このように独自の関数を作成する必要があります。

<cffunction name="boolToString" returntype="string"> 
    <cfargument name="boolVar" type="boolean" required="yes"> 
    <cfreturn boolVar ? "active" : "inactive"> 
</cffunction> 
+1

柔軟性を高めるために、関数の引数である "active"/"inactive"の2つの値を作成することもできます。 – Ageax

3

あなたはYesNoFormat(value, [maskvalue1, maskvalue2])

を行うことはできませんが、あなたはYesNoFormat(value) ? "maskvalue1" : "maskvalue2"

を行うと、以降のことができますvalueあなたが

あなたのケースで((value) ? "maskvalue1" : "maskvalue2")

で終わる番号またはブール値でなければなりません

<cfset currStatus = ((usrStatus) ? "active" : "inactive") />

関連する問題