RDLC在太空报道
本文关键字:报道 太空 RDLC | 更新日期: 2023-09-27 18:19:04
我在WPF应用程序中使用access (oledb)数据库,我正在开发RDLC报告。我有一些问题。
我有一个文本数据类型IN20102029382818。长度为16个字符。我想在一行中显示10个字符,在两行中显示6个字符,并在这些字符之间留出一些空格。我想把这些数据显示如下:
I N 2 0 1 0 2 0 2 9
3 8 2 8 1 8
在这里,我使用文本框显示这些数据在RDLC报告。如果我能得到想要的结果,那么我可以为这个结果使用任何东西。我从access数据库中获取了这些数据但我不知道有什么方法可以做这些事情
这是一个使用RDLC Expression
的解决方案,您只能使用16个字符的字符串:
=Mid(Left(Fields!YourField.Value, 10), 1, 1) +
Space(1) +
Mid(Left(Fields!YourField.Value, 10), 2, 1) +
Space(1) +
Mid(Left(Fields!YourField.Value, 10), 3, 1) +
Space(1) +
Mid(Left(Fields!YourField.Value, 10), 4, 1) +
Space(1) +
Mid(Left(Fields!YourField.Value, 10), 5, 1) +
Space(1) +
Mid(Left(Fields!YourField.Value, 10), 6, 1) +
Space(1) +
Mid(Left(Fields!YourField.Value, 10), 7, 1) +
Space(1) +
Mid(Left(Fields!YourField.Value, 10), 8, 1) +
Space(1) +
Mid(Left(Fields!YourField.Value, 10), 9, 1) +
Space(1) +
Mid(Left(Fields!YourField.Value, 10), 10, 1) +
System.Environment.NewLine +
Mid(Right(Fields!YourField.Value, 6), 1, 1) +
Space(1) +
Mid(Right(Fields!YourField.Value, 6), 2, 1) +
Space(1) +
Mid(Right(Fields!YourField.Value, 6), 3, 1) +
Space(1) +
Mid(Right(Fields!YourField.Value, 6), 4, 1) +
Space(1) +
Mid(Right(Fields!YourField.Value, 6), 5, 1) +
Space(1) +
Mid(Right(Fields!YourField.Value, 6), 6, 1)
这是使用VB.NET
的清洁溶液;您可以在C#
中翻译它,并在将数据传递给ReportViewer
之前在ReportDataSource
中使用它。
Dim strYourString As String = "IN20102029382818"
Dim strYourStringFormatted As String = String.Join(Space(1), Array.ConvertAll(Strings.Left(strYourString, 10).ToCharArray, Function(strInput) strInput.ToString)) _
& System.Environment.NewLine _
& String.Join(Space(1), Array.ConvertAll(Strings.Right(strYourString, 6).ToCharArray, Function(strInput) strInput.ToString))
MsgBox(strYourStringFormatted)
对于任何其他字符串,您也可以使用第二种解决方案的变体;例如:
Dim strYourString As String = "Test1 Test2 Test3"
Dim strYourStringFormatted As String = Strings.Replace( _
String.Join(Space(1), Array.ConvertAll(strYourString.ToCharArray, Function(strInput) strInput.ToString)), _
Space(3), System.Environment.NewLine)
MsgBox(strYourStringFormatted)