找回密码
 立即注册

QQ登录

只需一步,快速开始

ZenosZeng 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-5-8 11:17  /   查看:5230  /  回复:1
我们还有一个技术问题。由于某些帐票中含有隐藏列,这些列在某些情况下可见,
在某些情况下不可见,所以在我们把帐票作为CSV输出时,有些数据行会少一列。
所以,想在获得report时不管这列是否为隐藏列都输出出来,只是隐藏列显示为空。
问题就是如何获得列属性,判断之后,把隐藏列改为非隐藏,并输出为空?

1 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-5-8 11:22:00
沙发
主要实现思路是在Detail_BeforePrint中动态修改控件的Visible 属性,如果还有其它属性需要修改也可以在该事件中进行,修改之后的代码如下:
  1.     ''' <summary>
  2.     ''' 印刷
  3.     ''' </summary>
  4.     ''' <remarks></remarks>
  5.     Private Sub FncPrintOut()

  6.         Dim wStrIdx As String = mUdtRpt._Name.Substring(7, 1)
  7.         Dim wBlnRole As Boolean = False

  8.         '■■?????を??????

  9.         mClsRpt.Restart()

  10.         ''■■帳票印刷????????権限????
  11.         wBlnRole = FncHasAuthority()

  12.                 '■■共通帳票????????の初期化
  13.         mFrmView = New frmExport(mUdtRpt._ExpFileNM &amp; wStrIdx &amp; CInt(mUdtRpt._ExpFileNo), wBlnRole)
  14.                 '■??????????の???????
  15.         Call SubSetRptPreViewIni()
  16.                 '■Viewerの????設定
  17.         mFrmView.Text = mUdtRpt._Title

  18.         'getDetailSection
  19.         Dim report As New ActiveReport

  20.         'FncSetRptDetail(report)
  21.         'report.Restart()

  22.         report = Activator.CreateInstance(mClsRpt.GetType(), True)
  23.         report.DataSource = mClsRpt.DataSource
  24.         report.DataMember = mClsRpt.DataMember

  25.         For Each Item As DataDynamics.ActiveReports.Section In report.Sections
  26.             If Item.Type <> SectionType.Detail Then
  27.                 report.Sections.Remove(Item)
  28.             Else
  29.                 AddHandler Item.BeforePrint, AddressOf Detail_BeforePrint
  30.             End If
  31.         Next


  32.         mFrmView.PActiveReport = report

  33.         mFrmView.ActItem_xViewer.Document = mClsRpt.Document

  34.         mFrmView.mStrRepId = mUdtRpt._Name

  35.         '■■Viewerの表示
  36.         mFrmView.Show()

  37.         mClsRpt.Run()
  38.         report.Run()

  39.     End Sub

  40.     Private Sub Detail_BeforePrint(ByVal sender As Object, ByVal e As System.EventArgs)
  41.         Dim detail As DataDynamics.ActiveReports.Detail = sender
  42.         For Each control As ARControl In detail.Controls
  43.             If control.Visible = False Then
  44.                 control.Visible = True
  45.             End If
  46.         Next
  47.     End Sub
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部