0

以下のコードがあります。各バーに複数のデータポイントが含まれるGoogle視覚化カラムチャートを作成しようとしています。しかし、視覚化チャートが表示されていません。ReferenceError: convertToISO is not defined Is the error のようなエラーが発生しています。私を助けてください。

<script type="text/javascript" src="http://google.com/jsapi"></script>    
<script src="/soap/ajax/19.0/connection.js" type="text/javascript" />  
<script type="text/javascript">      
formatCurrencyLabel = function( value )    
{  
    return "$" +     String(value); 
}
google.load("visualization" , "1" , {package:["ColumnChart"]});
google.setOnLoadCallback(Chart); 

function Chart() 
{
     data.addColumn(‘string’, ‘Timeframe’);        
     data.addColumn(‘number’, ‘Gold’);   
     data.addColumn(‘number’, ‘Platinum’); 
     data.addColumn(‘number’, ‘Millinium’);                         
     sforce.connection.sessionId = ‘{!$Api.Session_ID}’;  
     var date = new Date();
     var dateMin = date.setMonth(date.getMonth() -13);                  
     var  date = new Date();                  
     var dateMax = date.setMonth(date.getMonth() +1);                 
     var soql = "Select id,name,GOLD_Policies_InForce__c, MNS_Policies_InForce__c, 
         PLAT_Policies_InForce__c, Producer_Name__c, Type__c, Producer_Code__c  from
         Analytics__c where Producer_Name__c ='TestABC2' and Period__c ='21' and CreatedDate <"
       + convertToISO(dateMax) + " and convertToISO(CreatedDate) > " + dateMin + " Order by   
        CreatedDate asc ";                  //console.log(soql);         

  result = sforce.connection.query(soql);                
  var it = new sforce.QueryResultIterator(result);        
      while(it.hasNext())
  {                 
   var record = it.next();   
           data.addRow(['record.CreatedDate',
   {v:parseFloat(record.PLAT_Policies_InForce__c), f:
  formatCurrencyLabel(record.PLAT_Policies_InForce__c)},    
 {v:parseFloat(record.PLAT_Policies_InForce__c), f: 
 formatCurrencyLabel(record.PLAT_Policies_InForce__c)},         
 {v:parseFloat(record.GOLD_Policies_InForce__c), f:
 formatCurrencyLabel(record.GOLD_Policies_InForce__c)}         ]);                                    
  }   
  var options = {'title':'Policies Inforce Rolling 13 Months' , legend: 'left' ,                         
 'width':560,                       'height':228,                       'colors' :  
   ['green','orange','#B5C5D7']                  
 }; 
    var chart = new google.visualization.ColumnChart(document.getElementById('chart'));
     chart.draw(data , options);  
};    
</script>       
  <body><div id="chart"></div></body>   
4

1 に答える 1

0

convertToISO(dateMax)問題は、次のコード行で、SQL クエリの一部ではなく、javascript 関数呼び出しとして実行しようとしていることです。そのような関数を定義していないため、JavaScript エンジンは、定義されていない関数を実行しようとしていると不平を言っています

var soql = "Select id,name,GOLD_Policies_InForce__c, MNS_Policies_InForce__c, 
     PLAT_Policies_InForce__c, Producer_Name__c, Type__c, Producer_Code__c  from
     Analytics__c where Producer_Name__c ='TestABC2' and Period__c ='21' and CreatedDate <"
   + convertToISO(dateMax) + " and convertToISO(CreatedDate) > " + dateMin + " Order by   
    CreatedDate asc ";

次のようにする必要があります。

var soql = "Select id,name,GOLD_Policies_InForce__c, MNS_Policies_InForce__c, 
     PLAT_Policies_InForce__c, Producer_Name__c, Type__c, Producer_Code__c  from
     Analytics__c where Producer_Name__c ='TestABC2' and Period__c ='21' and CreatedDate < 
     convertToISO(" + dateMax + ") and convertToISO(CreatedDate) > " + dateMin + " Order by       
     CreatedDate asc ";
于 2013-04-01T13:48:57.187 に答える