// You will have to apply your own logic on how you pick data for the link
Account acc = [SELECT Id FROM Account LIMIT 1];
Case c = [SELECT IsClosed FROM Case LIMIT 1];
Pagereference pr = new PageReference('/00O70000001SOsa');
pr.getParameters().putAll(new Map<String, String>{
'pv0' => acc.Id,
'pv1' => c.isClosed ? 'true' : 'false'
});
System.debug(pr.getUrl());
// outputs something like /00O70000001SOsa?pv0=0017000001TSmKmAAL&pv1=false
Параметры, которые вы передаете в URL, должны быть Strings (или что-то, что легко приводится к String).Так что ваша задача - конвертировать логические значения, отображать даты в формате, который будет нравиться другой странице (для отчетов нужны даты в том же формате, который будет использовать пользователь, поэтому в соответствии с его / ее локалью, посмотрите на метод format
в Date и DateTimeкласс).
Но это все.Вам не нужно беспокоиться о "?"знак или любое необычное экранирование специальных символов, это будет сделано для вас:
Pagereference pr = new PageReference('/home/home.jsp');
pr.getParameters().putAll(new Map<String, String>{
'spaces' => 'spa ce',
'html-entities' => '& < >',
'percents' => '1 / 4 = 25%'
});
System.debug(pr.getUrl());
// /home/home.jsp?html-entities=%26+%3C+%3E&percents=1+%2F+4+%3D+25%25&spaces=spa+ce