默认情况下,当SSRS中文本框的内容溢出文本框的宽度时,文本框将垂直增长以容纳其内容.通过将文本框的"CanGrow"属性设置为"False",可以关闭此功能.
然而,这突然切断了内容,这是不理想的.
我正在寻找一种方法来清楚地向用户显示文本太宽而不适合文本框.在过去,我一直在使用一个简单的表达式来添加省略号"...",当文本字符串的长度高于某个固定数字时:
=Iif(Len(Fields!CustomerName.Value) > 25,
Left(Fields!CustomerName.Value,23) + "...",
Fields!CustomerName.Value)
Run Code Online (Sandbox Code Playgroud)
但是当客户名称包含大写字母,小写字母,标点符号和其他使得单个字符像素宽度变化很大的东西时,这种方法效果不佳.
理想情况下,文本框控件的某些属性允许报表开发人员在文本不适合文本框时添加省略号.
有没有人对这个更优雅的方法有任何建议?
在SQL Server Management Studio中使用视图时,我更喜欢将视图编写为ALTER语句,进行更改,正确格式化代码然后执行语句.但是,有时当我编写一个我之前使用过的视图时,我的格式化会丢失,并且我看到我的视图中添加了大量扩展属性.
从此我收集到,其他人一直在使用SSMS查询编辑器(设计者)来编辑视图,这很烦人,因为它完全破坏了我的格式.
有没有办法阻止用户使用设计器来改变SSMS中的视图?理想情况下,某些数据库设置,但也可能是一些阻止设计者打开视图的黑客攻击.
实用的方法只是与用户交谈,让他们停止使用设计师,但我担心老习惯会很难,我不想再花一分钟重新格式化我已经多次格式化的代码...
根据这篇文章,在SQL Server中生成随机值的正确方法是:
ABS(CHECKSUM(NewId())) % 14 -- Returns a value between 0 and 13
Run Code Online (Sandbox Code Playgroud)
但是,在case语句中使用此表达式时,例如:
SELECT
CASE ABS(CHECKSUM(NEWID())) % 4
WHEN 0 THEN 'String A'
WHEN 1 THEN 'String B'
WHEN 2 THEN 'String C'
WHEN 3 THEN 'String D'
END AS RandomString -- Returns String A, B, C, D and NULLs.
FROM sys.all_objects
Run Code Online (Sandbox Code Playgroud)
outputtet RandomString列包含一些NULL,可以在这个SQL小提琴中看到.我发现我可以在CTE中包装随机化表达式以避免输出中的NULL,但我仍然想知道为什么上面的代码返回NULL?
WITH RandomNumber AS (
SELECT ABS(CHECKSUM(NEWID())) % 4 AS N FROM sys.all_objects
)
SELECT TOP 100
CASE N
WHEN 0 THEN …Run Code Online (Sandbox Code Playgroud)