高章伟
2022-02-24 2aa8da8af66aa8ae00f25831aed6bb0364176e7b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public with sharing class PersonalEvaluationCommentListController {
    public String userId { get; private set; }
    public String province { get; private set; }          // 省(複数)
    public String tabName { get; private set; }
    public String rptName { get; private set; }
 
    public PersonalEvaluationCommentListController() {
        userId = System.currentPageReference().getParameters().get('user');
        province = System.currentPageReference().getParameters().get('province');
        // tab
        String tabParam = System.currentPageReference().getParameters().get('tab');
        if (String.isBlank(tabParam)) {
            // Controllerの値をそのままつかう
        } else {
            tabName = tabParam;
        }
        // report
        String rptParam = System.currentPageReference().getParameters().get('rpt');
        if (String.isBlank(rptParam)) {
            // Controllerの値をそのままつかう
        } else {
            rptName = rptParam;
        }
        // INCLUDESを使うため、provinceは必ず 'xxx','yyy' の形式です
        if (String.isBlank(province) == false) {
            String tmpP1 = province.replace('\'', '');
            tmpP1 = tmpP1.replace(';', ',');
            String tmpP2 = '';
            for (String str : tmpP1.split(',')) {
                tmpP2 += '\'' + str + '\',';
            }
            province = tmpP2.substring(0, tmpP2.length() - 1);
        }
    }
 
    public List<PersonalEvaluation__c> getCommentList() {
        List<PersonalEvaluation__c> rtn = new List<PersonalEvaluation__c>();
        if (String.isBlank(tabName)) {
System.debug('rptName=' + rptName);
            if (String.isBlank(province)) {
                rtn = [Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c where OwnerId = :userId and ReportName__c <> null and ReportName__c = :rptName order by CreatedDate desc limit 5];
            } else {
                // INCLUDESのBINDができません、必ずこう使う
                String soql = 'Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c'
                            + ' where province__c INCLUDES (' + province + ')'
                            + ' and ReportName__c <> null and ReportName__c = :rptName order by CreatedDate desc limit 5';
                rtn = Database.query(soql);
                //rtn = [Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c where province__c INCLUDES (:province) and ReportName__c <> null and ReportName__c = :rptName order by CreatedDate desc limit 5];
            }
        } else {
System.debug('tabName=' + tabName);
            if (String.isBlank(province)) {
                rtn = [Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c where OwnerId = :userId and TabName__c <> null and TabName__c = :tabName order by CreatedDate desc limit 5];
            } else {
                // INCLUDESのBINDができません、必ずこう使う
                String soql = 'Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c'
                            + ' where province__c INCLUDES (' + province + ')'
                            + ' and TabName__c <> null and TabName__c = :tabName order by CreatedDate desc limit 5';
                rtn = Database.query(soql);
                //rtn = [Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c where province__c INCLUDES pstr and TabName__c <> null and TabName__c = :tabName order by CreatedDate desc limit 5];
            }
        }
        return rtn;
    }
}