You need to sign in to do that
Don't have an account?
徹 竹井
VISUALFORCEを使った日本語PDF出力での改行を行うコードのリリースができない
ネットの情報を参考にしながら、visualforceで日本語pdf出力で改行できない問題を改行コード<wbr />を入れて解決するクラスを作ってみたのですが、sandboxでは動くのですが、本番リリースでうまくいきません。IDに関連するeventの情報を取ってきて、時系列にpdf上に表示するvisualforcepageを別に用意しています。初心者なもので、何を修正したらカバー率が上がるかわからず、アドバイス頂けると助かります。
visualforce class ShowAllSObjectActivityKaig
visualforce class ShowAllSObjectActivityKaig
public class ShowAllSObjectActivityKaig { Id sObjectname= ApexPages.currentPage().getParameters().get('Id'); public list<Event> tasklist{get;set;} public list<Event> namae{get;set;} public ShowAllSobjectActivityKaig(){ if(sObjectname !=null ) namae= [select id,ActivityDateTime,StartDateTime,Field6__c,Field5__c,Field1__c,Subject,Type,Field2__c,Who.Name,What.Name,Description,LastModifiedDate,Owner.Name FROM Event WHERE WhatID=:sObjectname OR whoId=:sObjectname order by startdatetime asc LIMIT 1]; tasklist= [select id,ActivityDateTime,StartDateTime,Field6__c,Field5__c,Field1__c,Subject,Type,Field2__c,Who.Name,What.Name,Description,LastModifiedDate,Owner.Name FROM Event WHERE WhatID=:sObjectname OR whoId=:sObjectname order by startdatetime asc ]; //一文字ずつクラスを参照し、返す //参加者 for(Event a : tasklist){ a.Field1__c = kaigyo(a.Field1__C,1); } //内容 for(Event a : tasklist){ a.Description = kaigyo(a.Description,1); } } public PageReference cancel() { PageReference ldPage = new PageReference('/'+sObjectname); ldPage.setRedirect(true); return ldPage; } //指定位置にwbrコードを入れる public String kaigyo(String value, Integer posLength ) { if(value == null || value.length() <= posLength) return value; String rtnValue = value.substring(0, posLength ) + '<wbr/>'; for(Integer i = posLength; i < value.length(); i++) { if(Math.mod(i, posLength ) == 0) { if(value.length() > i + posLength) { rtnValue += value.substring(i, i + posLength ) + '<wbr/>'; } else { rtnValue += value.substring(i,value.length()); } // kaigyoCount[col]++; } } return rtnValue; } }visualforce page
<apex:page controller="ShowAllSObjectActivityKaig" standardStylesheets="false" showHeader="false" sidebar="false" applyHtmlTag="false" renderAs="pdf"> <head> <style> @page { size: 8.27in 11.69in; padding: 0; } body { font-family: Arial Unicode MS; font-size: 10pt; text-align: left; } table.type01 { width: 650px; table-layout:fixed; word-wrap: break-word; border-collapse: collapse; text-align: left; line-height: 1.2; margin-left:15px; } table.type01 th { width: 150px; padding: 2px; font-weight: bold; vertical-align: top; border: 1px solid #333; } table.type01 td { width: 500px; padding: 2px; vertical-align: top; border: 1px solid #333; } </style> </head> <h2> <center>相談支援記録</center></h2> <table class="type01" > <tbody> <tr> <th> <br></br> </th> <td><apex:repeat value="{!namae}" var="item"> (<apex:outputText value="{!item.Who.Name}"/>) [<apex:outputText value="{!item.What.Name}"/>] </apex:repeat> </td> </tr> <apex:repeat value="{!tasklist}" var="oSobject"> <tr> <th><apex:outputText value="{!oSobject.Field6__c}" /> <br> <apex:outputText value="{0,date,HH:mm}"> <apex:param value="{!oSobject.startdatetime}"/></apex:outputText> </br> <br><apex:outputText value="(種){!oSobject.Subject}" /></br> <br><apex:outputText value="(所){!oSobject.Field2__c}" /></br> <br><apex:outputText value="(参){!oSobject.Field1__c}" escape="false" /></br> </th> <td><apex:outputText value="{!oSobject.Description}" escape="false" /></td></tr> </apex:repeat> </tbody> </table> </apex:page>
あとはテストデータを用意した版の処理を用意して同じように処理を実行することでカバー率を増やしていけると思います。
All Answers
あとはテストデータを用意した版の処理を用意して同じように処理を実行することでカバー率を増やしていけると思います。
できそうです。感謝します。