• k_ogawa
  • NEWBIE
  • 135 Points
  • Member since 2014

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 10
    Questions
  • 31
    Replies
お世話になっております。

表題の件なのですが、現行ではチェックボックス付のリストが縦に並んでいるだけなのですが、
これをテーブルの形に変更したいです。
いろいろ調べるとラッパークラスを作成して・・・という風に出ているのですが、現行のロジックでは
ラッパークラスは使用しておらず、どのように対応させたらよいかがわかりません。

わかる方いらっしゃいましたらよろしくお願いいたします。
なるべく今のロジック(apex)を変えずにできたらな、と思います。


以下、ロジックです。
<apex>

<apex:pageBlockSection title="ブランド選択"/>
<apex:inputCheckbox value="{!CheckChange}" onchange="return allChecked();" id="checkChange" style="position: relative; left: 0px; top: 0px;"/>
<apex:outputText value=" 一括選択/解除" style="font-weight:900;" />
<apex:selectCheckboxes value="{!brands}" id="checkBoxes" layout="pageDirection" style="position: relative; left: 15px; top: 0px;">
<apex:selectOptions value="{!items}"/>
</apex:selectCheckboxes><br/>
<script type="text/javascript">
function allChecked() {
  /* 一括チェックボックスのID取得 */
  var targetCheckId = '{!$Component.theForm.checkChange}';
  var targetCheck = document.getElementById(targetCheckId);
  var itemCnt = '{!items.size}';
  var checkId = '{!$Component.theForm.checkBoxes}';
  for (var i = 0; i < itemCnt; i++) {
   / 一括チェックボックスと同じ値をセット */
   document.getElementById(checkId + ':' + i).checked = targetCheck.checked;
  }
  return false;  
}
</script>
<br/>




<visualforce>

public List<String> brands {get; set;}
public Boolean CheckChange {get; set;}
public List<SelectOption> items {get; set;}

public BrandInsertController () {
  this.id = Apexpages.currentPage().getParameters().get('id');
  this.StartDate = Datetime.now().format('yyyy/MM/dd', 'JST');
  this.EndDate = Datetime.now().format('yyyy/MM/dd', 'JST');
  this.items = getSelOptions();
  this.brands = new List<String>();
}
   
public List<SelectOption> seloptions;

/** ブランド一覧取得 */
public List<SelectOption> getSelOptions() {
  List<SelectOption> seloptions = new list<SelectOption>();
  Schema.DescribeFieldResult fieldResult = Event__c.brand__c.getDescribe();
  List<Schema.PicklistEntry> pickListEntry = fieldResult.getPicklistValues();
  for (Schema.PicklistEntry pick: pickListEntry) {
    seloptions.add(new selectOption(pick.getValue(), pick.getLabel()));
  }
  return seloptions;
}


完成イメージは以下になります。

User-added image
お世話になっております。

現在、Apexクラスの単体テストを行っているのですが、単体テストの法方が
理解できておらず、何をしたらよいのかわからない状態です。

テストクラスの作成はできたのですが、どのセンテンスについて何をやればよいのか、
またその記述方法など・・・
いろいろなサイトを探ってはいるものの、テストの基礎に関して紹介しているサイトが
発見できなかったので、皆様のアドバイスを聞きたく存じます。

もし、単体テストの方法について説明いただける、もしくはこのサイト見れば一通りできる等
ございましたら、よろしくお願い致します。
  • September 24, 2014
  • Like
  • 0
お世話になっております。
またまた質問させて頂きます。

VisualForceとapexを使って、チェックボックスで選ばれたデータを登録する。という
プログラムを作成しております。

そこで、チェックボックスの一括選択の処理を追加しようと思ったのですが、なかなかうまくいきません。

以下プログラムです。

<Apex>
public Boolean CheckChange {get; set;}
integer counter = 0;
// イベントオブジェクト内の選択リストをチェックボックスで表示
public List<SelectOption> getSelOptions() {
        List<SelectOption> seloptions = new list<SelectOption>();
        Schema.DescribeFieldResult fieldResult = Event__c.brand__c.getDescribe();
        List<Schema.PicklistEntry> pickListEntry = fieldResult.getPicklistValues();
        for (Schema.PicklistEntry pick: pickListEntry) {
            seloptions.add(new selectOption(pick.getValue(), pick.getLabel()));
            counter = counter +1;
        }
        return seloptions;
}

/** チェックボックス全選択処理 */
    public void ToggleChange(){
   // 選択リストの数分チェックボックスにCheckChangeの結果を反映する
        for(Integer i = 0; i < counter; i++){
//            seloptions.add(new selectOption(CheckChange));   ←ここの処理がわかりません。
        }
    }

<Visualforce>
<apex:pageBlockSection title="ブランド選択">

          <apex:inputCheckbox value="{!CheckChange}">
               <apex:actionSupport action="{!ToggleChange}" event="onchange" rerender="theForm"/>
          </apex:inputCheckbox>

          <apex:selectCheckboxes value="{!selections}" layout="pageDirection">
              <apex:selectOptions value="{!seloptions}"/>
          </apex:selectCheckboxes>
   </apex:pageBlockSection>



このように記述しているのですが、一括でチェックのON/OFFをすることが出来ません。
間違っているところやアドバイスなどありましたらよろしくお願い致します。
  • September 17, 2014
  • Like
  • 0
いつもお世話になっております。
小川です。

度々のご質問大変恐縮なのですが、お答えいただけると幸いです。

標題の通り重複チェックについてです。

visualforceで情報の登録画面を作っており、登録ボタンを押下した際に重複チェックの処理が流れるのですが、
処理仕様としては、
登録名、開始日をキーにSOQL文を走らせ、同一の内容があればカウントを取り、
1以上の場合は警告文を出すようにしています。

問題はここからで、登録名はテキストタイプになっているので、全角、半角自由に記入できてしまいます。
その結果、同じ名称を全角、半角それぞれ登録するとエラーとなって『予期せぬエラーが発生しました。』が表示されてしまいます。
IDで判断できれば一番いいのですが、IDが採番されるのはINSERT時?なのでチェックは難しいのかなと思っています。

SOQLでキーチェックをすることしか今のところ思い浮かばないので、何か打開策を与えて頂けたらと思います。
どうぞよろしくお願い致します。
  • September 16, 2014
  • Like
  • 0
お世話になっております。

ApexとVisualforceで日付の入力項目を作成しているのですが、
登録ボタンを押下した際に入力チェックを行いたいと考えております。

チェック項目としては
・日付が存在する日付か
・YYYY/MM/DDの形で入力されているか
・半角数字か
です。

必須項目なので、
if(this.StartDateText == null)とすることで入力されているか否かの判断はできたのですが、
上記3つの処理の判定法方がわかりません。

ご存知の方、ご教授いただけないでしょうか。
よろしくお願い致します。
  • September 12, 2014
  • Like
  • 0
いつもお世話になっております。


apex:inputtextの項目下にエラーメッセージを表示させたいのですが、何か良い方法はありますか?
また、必須項目には項目横に赤い縦線を表示したいです。

ご存知の方がいらっしゃいましたら、ご連絡お待ちしております。

  • September 09, 2014
  • Like
  • 0
お世話になっております。

Visualforceで開始日の入力項目(カレンダー付き)を作成したいのですが、なかなかうまくいきませんのでアドバイスをお願いいたします。

<Visualforce>

    <dt>開始日<span class="required">*</span></dt>
    <apex:inputField value="{!StartDate}" id="startdate"/>

<Apex>

    private Date StartDate {get; set;}
    /** 開始日 */
    public void setStartDate(Date d){
       this.StartDate = d;
    }
    public Date getStartDate(){
       return this.StartDate;
    }

Apexは他の項目を見よう見まねで書いているのでそこが違うのかな?とは思うのですが、解決方法が良くわかりません。
どなたかよろしくお願い致します。

  • September 03, 2014
  • Like
  • 0
お世話になっております。

現在、visualforce、apexを使用し、画面開発中なのですが、
カスタム項目で設定している選択リストの内容をチェックボックスで画面表示して、
チェックされたものを基にデータを作成しようとしています。

ネットで仕様に沿った処理方法を探しながら作成しているのですが、なかなか見つからず
こちらに頼ることにしました。
どなたか、ご教授よろしくお願い致します。
  • September 01, 2014
  • Like
  • 0
お世話になっております。

カスタムオブジェクトタブのホーム画面にレポートを表示させたいのですが、方法はありますでしょうか?

ホームタブでのレポート表示は「ホームページのコンポーネント」にカスタムコンポーネントを作成する事でできたのですが。
同じような方法で作成できればと思うのですが同じような項目が見当たらず、先へ進めない状況です。

皆様のお知恵をお借りできたらと思います。
よろしくお願い致します。
初めて質問させて頂きます。

カスタムオブジェクトタブのホーム画面に「最近参照したデータ」がデフォルトで表示されているかと思いますが、
「最近作成したデータ」をデフォルト表示に変える方法はありますでしょうか?

最近Salesforceの勉強を始めたばかりで解決策が浮かばないのでご教授いただけたらと思います。
よろしくお願い致します。

お世話になっております。

表題の件なのですが、現行ではチェックボックス付のリストが縦に並んでいるだけなのですが、
これをテーブルの形に変更したいです。
いろいろ調べるとラッパークラスを作成して・・・という風に出ているのですが、現行のロジックでは
ラッパークラスは使用しておらず、どのように対応させたらよいかがわかりません。

わかる方いらっしゃいましたらよろしくお願いいたします。
なるべく今のロジック(apex)を変えずにできたらな、と思います。


以下、ロジックです。
<apex>

<apex:pageBlockSection title="ブランド選択"/>
<apex:inputCheckbox value="{!CheckChange}" onchange="return allChecked();" id="checkChange" style="position: relative; left: 0px; top: 0px;"/>
<apex:outputText value=" 一括選択/解除" style="font-weight:900;" />
<apex:selectCheckboxes value="{!brands}" id="checkBoxes" layout="pageDirection" style="position: relative; left: 15px; top: 0px;">
<apex:selectOptions value="{!items}"/>
</apex:selectCheckboxes><br/>
<script type="text/javascript">
function allChecked() {
  /* 一括チェックボックスのID取得 */
  var targetCheckId = '{!$Component.theForm.checkChange}';
  var targetCheck = document.getElementById(targetCheckId);
  var itemCnt = '{!items.size}';
  var checkId = '{!$Component.theForm.checkBoxes}';
  for (var i = 0; i < itemCnt; i++) {
   / 一括チェックボックスと同じ値をセット */
   document.getElementById(checkId + ':' + i).checked = targetCheck.checked;
  }
  return false;  
}
</script>
<br/>




<visualforce>

public List<String> brands {get; set;}
public Boolean CheckChange {get; set;}
public List<SelectOption> items {get; set;}

public BrandInsertController () {
  this.id = Apexpages.currentPage().getParameters().get('id');
  this.StartDate = Datetime.now().format('yyyy/MM/dd', 'JST');
  this.EndDate = Datetime.now().format('yyyy/MM/dd', 'JST');
  this.items = getSelOptions();
  this.brands = new List<String>();
}
   
public List<SelectOption> seloptions;

/** ブランド一覧取得 */
public List<SelectOption> getSelOptions() {
  List<SelectOption> seloptions = new list<SelectOption>();
  Schema.DescribeFieldResult fieldResult = Event__c.brand__c.getDescribe();
  List<Schema.PicklistEntry> pickListEntry = fieldResult.getPicklistValues();
  for (Schema.PicklistEntry pick: pickListEntry) {
    seloptions.add(new selectOption(pick.getValue(), pick.getLabel()));
  }
  return seloptions;
}


完成イメージは以下になります。

User-added image
お世話になっております。

現在、Apexクラスの単体テストを行っているのですが、単体テストの法方が
理解できておらず、何をしたらよいのかわからない状態です。

テストクラスの作成はできたのですが、どのセンテンスについて何をやればよいのか、
またその記述方法など・・・
いろいろなサイトを探ってはいるものの、テストの基礎に関して紹介しているサイトが
発見できなかったので、皆様のアドバイスを聞きたく存じます。

もし、単体テストの方法について説明いただける、もしくはこのサイト見れば一通りできる等
ございましたら、よろしくお願い致します。
  • September 24, 2014
  • Like
  • 0
お世話になっております。
またまた質問させて頂きます。

VisualForceとapexを使って、チェックボックスで選ばれたデータを登録する。という
プログラムを作成しております。

そこで、チェックボックスの一括選択の処理を追加しようと思ったのですが、なかなかうまくいきません。

以下プログラムです。

<Apex>
public Boolean CheckChange {get; set;}
integer counter = 0;
// イベントオブジェクト内の選択リストをチェックボックスで表示
public List<SelectOption> getSelOptions() {
        List<SelectOption> seloptions = new list<SelectOption>();
        Schema.DescribeFieldResult fieldResult = Event__c.brand__c.getDescribe();
        List<Schema.PicklistEntry> pickListEntry = fieldResult.getPicklistValues();
        for (Schema.PicklistEntry pick: pickListEntry) {
            seloptions.add(new selectOption(pick.getValue(), pick.getLabel()));
            counter = counter +1;
        }
        return seloptions;
}

/** チェックボックス全選択処理 */
    public void ToggleChange(){
   // 選択リストの数分チェックボックスにCheckChangeの結果を反映する
        for(Integer i = 0; i < counter; i++){
//            seloptions.add(new selectOption(CheckChange));   ←ここの処理がわかりません。
        }
    }

<Visualforce>
<apex:pageBlockSection title="ブランド選択">

          <apex:inputCheckbox value="{!CheckChange}">
               <apex:actionSupport action="{!ToggleChange}" event="onchange" rerender="theForm"/>
          </apex:inputCheckbox>

          <apex:selectCheckboxes value="{!selections}" layout="pageDirection">
              <apex:selectOptions value="{!seloptions}"/>
          </apex:selectCheckboxes>
   </apex:pageBlockSection>



このように記述しているのですが、一括でチェックのON/OFFをすることが出来ません。
間違っているところやアドバイスなどありましたらよろしくお願い致します。
  • September 17, 2014
  • Like
  • 0
いつもお世話になっております。
小川です。

度々のご質問大変恐縮なのですが、お答えいただけると幸いです。

標題の通り重複チェックについてです。

visualforceで情報の登録画面を作っており、登録ボタンを押下した際に重複チェックの処理が流れるのですが、
処理仕様としては、
登録名、開始日をキーにSOQL文を走らせ、同一の内容があればカウントを取り、
1以上の場合は警告文を出すようにしています。

問題はここからで、登録名はテキストタイプになっているので、全角、半角自由に記入できてしまいます。
その結果、同じ名称を全角、半角それぞれ登録するとエラーとなって『予期せぬエラーが発生しました。』が表示されてしまいます。
IDで判断できれば一番いいのですが、IDが採番されるのはINSERT時?なのでチェックは難しいのかなと思っています。

SOQLでキーチェックをすることしか今のところ思い浮かばないので、何か打開策を与えて頂けたらと思います。
どうぞよろしくお願い致します。
  • September 16, 2014
  • Like
  • 0
お世話になっております。

ApexとVisualforceで日付の入力項目を作成しているのですが、
登録ボタンを押下した際に入力チェックを行いたいと考えております。

チェック項目としては
・日付が存在する日付か
・YYYY/MM/DDの形で入力されているか
・半角数字か
です。

必須項目なので、
if(this.StartDateText == null)とすることで入力されているか否かの判断はできたのですが、
上記3つの処理の判定法方がわかりません。

ご存知の方、ご教授いただけないでしょうか。
よろしくお願い致します。
  • September 12, 2014
  • Like
  • 0
いつもお世話になっております。


apex:inputtextの項目下にエラーメッセージを表示させたいのですが、何か良い方法はありますか?
また、必須項目には項目横に赤い縦線を表示したいです。

ご存知の方がいらっしゃいましたら、ご連絡お待ちしております。

  • September 09, 2014
  • Like
  • 0