0

計算フィールドを作成しました。私の vardefs では、フィールドはデータベースではなく、ソート可能で、varchar 型です。検索のロジック フックと計算機能があり、編集ビューとリスト ビューで魅力的に機能します。しかし、列名の計算フィールド (リストビュー) をクリックすると、クエリは 0 レコードを返します。

私はいくつかのことを試しましたが、成功しませんでした。何かが欠けています。

計算列 (field = 'difference_c') をクリックしたときのクエリ:

SELECT aos_quotes.id , aos_quotes.number , aos_quotes.name , aos_quotes.stage , aos_quotes.billing_contact_id, LTRIM(RTRIM(CONCAT(IFNULL(jt0.first_name,''),' ',IFNULL(jt0.last_name,'')))) billing_contact , aos_quotes.billing_account_id, jt1.name billing_account , aos_quotes.total_amount , aos_quotes.currency_id , aos_quotes.expiration , LTRIM(RTRIM(CONCAT(IFNULL(jt2.first_name,''),' ',IFNULL(jt2.last_name,'')))) assigned_user_name , jt2.created_by assigned_user_name_owner , 'Users' assigned_user_name_mod, aos_quotes.date_entered , aos_quotes.enddate_c , aos_quotes.startdate_c , aos_quotes.assigned_user_id FROM aos_quotes LEFT JOIN contacts jt0 ON aos_quotes.billing_contact_id = jt0.id AND jt0.deleted=0 LEFT JOIN accounts jt1 ON aos_quotes.billing_account_id = jt1.id AND jt1.deleted=0 LEFT JOIN users jt2 ON aos_quotes.assigned_user_id=jt2.id AND jt2.deleted=0 AND jt2.deleted=0 where aos_quotes.deleted=0 ORDER BY difference_c ASC
4

1 に答える 1

2

残念ながら、非 db フィールドで ListView レコードを並べ替えることはできません。ユーザーがそうするのを禁止するには、次のように listviewdefs.php ファイルのフィールド定義で「sortable」キーを false に設定する必要があります。

'MY_CUSTOM_NON-DB_FIELD' => 
  array (
    'type' => 'char',
    'label' => 'LBL_MY_CUSTOM_NON-DB_FIELD',
    'width' => '15%',
    'sortable' => false,
  ),
于 2013-09-02T12:50:56.070 に答える