Tôi đang cố gắng lấy tham số tên người dùng và thay thế giá trị bằng tên người dùng của phiên để tôi có thể chuyển đến thủ tục được lưu trữ bên trong DRL để tạo dấu thời gian bảng với tên người dùng này . Tham số "tên người dùng" là một trong các tham số của RDL đi kèm với giá trị mặc định và tôi đang cố thay đổi nó bằng mã sau.SSRS Đặt tham số theo lập trình gây ra trạng thái ValidValueMissing
Thay thế một trong những ReportParameters:
var userParameter = GetUserParameter();
if (userParameter != null)
{
newParameters.Remove(newParameters.FirstOrDefault(param => param.Name.Contains(CurrentUserParameterName)));
newParameters.Add(userParameter);
}
Tìm ReportParameters username:
var paremeters = ReportViewer.ServerReport.GetEditableHiddenParameters();
//finds parameter by its name, pelase view const value in CurrentUserParameterName
var userParameter = paremeters.FirstOrDefault(param => param.Name.Contains(CurrentUserParameterName));
if (userParameter != null)
{
userParameter.Values.Clear();
userParameter.Values.Add(Utils.GetUserName());
}
return userParameter;
Set thông số để ServerReport:
ReportViewer.ServerReport.SetParameters(parameters);
Sau khi chạy báo cáo, tôi nhận được thông báo " Thông số 'tên người dùng' thiếu giá trị "
Khi tôi gỡ lỗi và tìm trong ServerReport.GetParameters()
Tôi có thể thấy rằng tôi có ReportParameter "tên người dùng", tôi có giá trị (giá trị mới), nhưng trạng thái của nó là "MissingValidValue".
Tôi đang làm gì sai? Cảm ơn trước, Eddie
có vẻ như có một thành viên có tên ValidValues với giá trị tên người dùng hiện tại và một thành viên khác có tên giá trị trống. –