Có gợi ý câu trả lời cho câu hỏi này ở đây và trên trang này, nhưng tôi hỏi một câu hỏi hơi khác.Công thức báo cáo tinh thể: IsNull + Iif
Báo cáo Crystal ở đâu tài liệu cú pháp này không hoạt động?
Trim({PatientProfile.First}) + " "
+ Trim(Iif(
IsNull({PatientProfile.Middle})
, Trim({PatientProfile.Middle}) + " "
, " "
)
)
+ Trim({PatientProfile.Last})
tôi biết giải pháp là
If IsNull({PatientProfile.Middle}) Then
Trim({PatientProfile.First})
+ " " + Trim({PatientProfile.Last})
Else
Trim({PatientProfile.First})
+ " " + Trim({PatientProfile.Middle})
+ " " + Trim({PatientProfile.Last})
nhưng làm thế nào chúng ta phải tìm ra chúng ta không thể sử dụng phiên bản đầu tiên?
Các tài liệu cho IsNull nói
- Ước lượng các lĩnh vực quy định trong hồ sơ hiện tại và trả về TRUE nếu trường có chứa một giá trị null
và IIF cho
- [Returns truePart nếu expression là True và falsePart nếu expression là False. Loại giá trị trả về giống với loại truePart và falsePart.
Tôi cho rằng nếu bạn nhìn chằm chằm vào dòng về "loại giá trị trả về" bạn có thể nhận được nó, nhưng ...
Tôi không có CRXI tiện dụng ngày hôm nay, nhưng những gì không làm việc về người đầu tiên? Liệu nó chỉ nhận được khoảng cách sai (mà là một lỗi logic trong mã - bạn có thêm một Trim() trong đó) hay không nó theo một cách khác? – Stobor
Đối với các bản ghi .Middle là NULL, CR không thể đánh giá giá trị chuỗi trong Trim (.Middle) và quyết định giá trị của Iif là NULL, mặc dù tôi có kiểm tra rõ ràng trong đó. – SarekOfVulcan