1

以下のコードは機能しますが、その値のレコードがない場合は「レコードがありません」というメッセージを表示したいと思い <cfif GetResults2.csedept_id eq aFieldValue> ます。カウンターを付けようとしましたが、「レコードがありません」と表示されず、 <thead> <th>Name</th> <th>Positive Comment</th> <th>Negative Comment</th></thead>レコードがない場合はテーブルの見出しも表示されません。

結果が空に戻った場合、「No Records」を表示してテーブル ヘッドを非表示にするにはどうすればよいですか

現在、結果が空に戻った場合、「結果がありません」(正しい) と表示され、ヘッダーが表示されます (正しくない)。

<cfset counter3= 0>

<table cellpadding="0" cellspacing="0" class="tablecolors">
<h2> Comments </h2>
 <thead> <th>Name</th> <th>Positive Comment</th> <th>Negative Comment</th></thead>
  <cfloop  query="GetResults2">
    <cfif GetResults2.csedept_id eq aFieldValue>     

      <tr>
        <td nowrap="nowrap">#emp_namefirst# #Left(emp_namelast, 1)#  </td>
        <td>#Replace(commentpositive, emp_namefirst, "<B>" & emp_namefirst & "</B>")#</td>
        <td>#Replace(commentnegative, emp_namefirst, "<B>" & emp_namefirst & "</B>")#</td>
      </tr>
<cfelse><p>no records</p>

    </cfif>
  </cfloop>    
    </table>

更新:追加するために、@ FRANKが言ったように、上記の別のクエリがあり、たとえば、ほぼ同じことを行います:

'<cfloop query="GetEmployeeTotals3">
        <cfif GetEmployeeTotals3.csedept_id eq aFieldValue> '

クエリは次のとおりです。

select GetResults.* , GetEmployees.emp_namefirst, GetEmployees.emp_namelast
    from GetResults, GetEmployees
    where employee = emp_id
    order by csedept_id

そのため、私が試した上記のすべてのソリューションは機能しません。

4

4 に答える 4

0

編集:質問が明確になった後、回答を更新しました

cfifレコードをチェックするときは、テーブル ヘッドを含めるように移動する必要があります。チェックでレコード数が返された場合は、テーブル ヘッドと結果が出力されます。それ以外の場合は、「結果なし」が出力されます。以下に 2 つのバージョンを書きました。1 つはcfoutputループの代わりに を使用しており (個人的な好みです)、もう 1 つは保持したい場合はループを使用しています。

私はダンのlistfind() valuelist()コンボを追加しました...だから彼の功績を認めてください。

編集編集して、これが「I-am-tired-of-editing-this-answer-50-times-to-get-OP-an-answer」を備えた超強力/超正確な素晴らしいソリューションであり、恥知らずなボーナスがあります上/下のダンの答えからの盗難。または、順序どおりに終わる場所はどこでも。

<table>
<cfif getresults2.recordcount AND ListFind(ValueList(GetResults2.csedept_id), aFieldValue)> 
<tr>
    <th>name</th> 
    <th>positive comment</th> 
    <th>negative comment</th>
</tr>

<cfoutput query="getresults2">
<tr>
    <td nowrap="nowrap">#emp_namefirst# #left(emp_namelast, 1)#  </td>
    <td>#replace(commentpositive, emp_namefirst, "<b>" & emp_namefirst & "</b>")#</td>
    <td>#replace(commentnegative, emp_namefirst, "<b>" & emp_namefirst & "</b>")#</td>
</tr>
</cfoutput> 

<cfelse>
<tr colspan="3">
    <td><p>no records</p></td>
</tr>
</cfif>
</table>

cfoutputコードのどこかに (見えない場所) がある場合、ここにあなたの背中があります。上のスニペットcfloopの場所を置き換えるだけです。cfoutput

<cfloop query="getresults2">
  <tr>
    <td nowrap="nowrap">#emp_namefirst# #left(emp_namelast, 1)#  </td>
    <td>#replace(commentpositive, emp_namefirst, "<b>" & emp_namefirst & "</b>")#</td>
    <td>#replace(commentnegative, emp_namefirst, "<b>" & emp_namefirst & "</b>")#</td>
  </tr>
</cfloop> 
于 2014-05-23T04:22:15.123 に答える
0

このようなものがうまくいくはずです。showRecordsヘッダーを表示するかどうかを決定するフラグを設定する必要があります。

<cfset showRecords = false>
<cfloop query="GetResults2">
  <cfif GetResults2.csedept_id eq aFieldValue> 
    <cfset showRecords = true>
    <cfbreak>
  </cfif>
</cfloop>

<h2> Comments </h2>
<cfif showRecords>
  <table cellpadding="0" cellspacing="0" class="tablecolors">
  <thead> <th>Name</th> <th>Positive Comment</th> <th>Negative Comment</th></thead>
  <cfloop query="GetResults2">
    <cfif GetResults2.csedept_id eq aFieldValue> 
      <tr>
        <td nowrap="nowrap">#emp_namefirst# #Left(emp_namelast, 1)#  </td>
        <td>#Replace(commentpositive, emp_namefirst, "<B>" & emp_namefirst & "</B>")#    </td>
        <td>#Replace(commentnegative, emp_namefirst, "<B>" & emp_namefirst & "</B>")#</td>
      </tr>
    </cfif>
  </cfloop>    
  </table>
<cfelse>
  <p>no records</p>
</cfif>
于 2014-05-23T13:03:13.710 に答える
0

あなたの質問はまだ不明確ですが、これはあなたが望むものかもしれません。

<cfif ListFind(ValueList(GetResults2.csedept_id), aFieldValue)> 
your existing code to display results in a table
<cfelse>
<p>No Records Found</p>

これに注意してください:

ListFind(ValueList(GetResults2.csedept_id), aFieldValue)

GetResults2 にレコードがまったくない場合でも、実行されて false が返されます。

ここから編集開始

このコメントに基づいて、「一部にしか表示されない場合は表示されますが、一致しない場合は無視されます」既存のコードを次のように変更します。

<cfquery name = "q3" dbtype = "query">
select * from GetResults2
where csedept_id = #aFieldValue#
<cfquery>

<table>
column header row
<cfoutput query="q3">
data rows
</cfoutput>
<table>

この回答の冒頭にある最初の構成は引き続き適用されます。

于 2014-05-23T16:42:57.943 に答える