2

SugarCRM 6.5.20 CE を使用しています

問題: 通貨を含むフィールドの前に「$」記号を追加します。

解決:$this->bean->final_sale_amount_c = '$' . $this->bean->final_sale_amount_c;

このソリューションは、テキスト フィールドであるすべてのフィールドで機能します。「75.00」が「$75.00」に変更されます。しかし、たまたま通貨フィールドであるフィールドでは、DetailView の出力は単純に「0.00」です。

<span>また、クラスを持たない通貨フィールドを除くすべてのクラスが「sugar_field」と等しいことにも気付きました。

やった

var_dump($this->bean->final_sale_amount_c);

そして戻ってきました:

文字列(12) "75000.000000"

final_sale_amount_cinitial_deposit_c、およびを除くすべてのフィールドは正常にamount機能します。

以下の完全なコード:

<?php 
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); 

require_once('include/MVC/View/views/view.detail.php'); 
require_once('custom/include/utilities.php');

class OpportunitiesViewDetail extends ViewDetail {

    // function displaySubPanels() {
    //  return '';
    // }


    function display(){

        var_dump($this->bean->final_sale_amount_c);

        $this->bean->initial_deposit_c = '$' . $this->bean->initial_deposit_c;
        $this->bean->fees_escrowed_c = '$' . $this->bean->fees_escrowed_c;
        $this->bean->amount = '$' . $this->bean->amount;

        $this->bean->final_sale_amount_c = '$' . $this->bean->final_sale_amount_c;
        $this->bean->a_deposit_c = ($this->bean->a_deposit_c * 100) . '%';
        $this->bean->b_deposit_c = ($this->bean->b_deposit_c * 100) . '%';
        $this->bean->c_deposit_c = ($this->bean->c_deposit_c * 100) . '%';

        $this->bean->a_quarterly_hosting_fees_c = '$' . $this->bean->a_quarterly_hosting_fees_c;
        $this->bean->b_quarterly_hosting_fees_c = '$' . $this->bean->b_quarterly_hosting_fees_c;
        $this->bean->c_quarterly_hosting_fees_c = '$' . $this->bean->c_quarterly_hosting_fees_c;

        $js = <<<JS

                <script src="custom/include/javascript/js.cookie.js?version=1" type="text/javascript"></script>
                <script src="custom/include/javascript/utilities.js" type="text/javascript"></script>
                <script type="text/javascript">
                var \$ = jQuery.noConflict();




                </script>


JS;
        parent::display();
        echo $js;

    }

}
?>
4

2 に答える 2

1

詳細ビューにカスタム フィールドを表示する別のオプションがあります。

カスタム モジュールの detailviewdefs.php が次のようになっていると考えてみましょう。

'panels' =>
   array (
     'default' =>
     array (
       0 =>
       array (
         0 => 'name',
         1 =>
         array (
           'name' => 'status',
           'studio' => 'visible',
           'label' => 'LBL_STATUS',
           'customCode' => '{$custom_value}',
         ),
       ),
       1 =>

次のようにカスタム値を割り当てます。

ファイルパス: custom/modules/YOUR_MODULE/view.detail.php

function display(){
    $this->dv->process();
    $this->ss->assign('custom_value', '$'.$this->bean->amount);
    echo $this->dv->display();
}
于 2016-04-22T07:24:13.160 に答える
0

代わりにjqueryを使用するだけになりました。

$js = <<<JS

<script src="custom/include/javascript/js.cookie.js?version=1" type="text/javascript"></script>
<script src="custom/include/javascript/utilities.js" type="text/javascript"></script>
<script type="text/javascript">

   $("#final_sale_amount_c").prepend("$ ");


</script>

JS;
    parent::display();
    echo $js;
于 2016-05-03T15:06:06.243 に答える