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在太空报道

这是一个使用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)