.net - 我可以使用行为类似于 DataGridView .NET 的 Crystal Report 创建报表吗?
问题描述
我正在尝试创建一个 Crystal Report,我需要在其中隐藏 DataGridView 等列。
我有一个 DataGridView,它的列如下
|销售订单|供应商|产品名称|产品类型|数量|订单价格|付款方式|订单状态|订单状态|订单日期|总金额|
我有一个过滤器按钮,它将过滤 DataGridView 的列。我只设置DataGridView如下
Datagridview1.Columns(ColumntoHide).Visible = False
当我过滤列时,我希望我的报告与 DataGridView 相同。
Sub SalesOrder()
Dim dt As New DataTable
Cursor.Current = Cursors.WaitCursor
With dt
.Columns.Add("salesorder")
.Columns.Add("supplier")
.Columns.Add("prodname")
.Columns.Add("prodtype")
.Columns.Add("qty")
.Columns.Add("orderprice")
.Columns.Add("payment")
.Columns.Add("orderstatus")
.Columns.Add("orderdate")
.Columns.Add("total")
.Columns.Add("overall")
End With
For Each dr As DataGridViewRow In frmSalesOrderReport.dgvRSalesOrder.Rows
dt.Rows.Add(dr.Cells(1).Value, dr.Cells(2).Value, dr.Cells(3).Value, dr.Cells(4).Value, dr.Cells(5).Value, dr.Cells(6).Value, dr.Cells(7).Value, dr.Cells(8).Value, CDate(dr.Cells(9).Value).ToString("MMM dd, yy"), dr.Cells(10).Value, frmSalesOrderReport.txtTotal.Text)
Next
Dim rptDoc As CrystalDecisions.CrystalReports.Engine.ReportDocument
rptDoc = New crSalesOrder
rptDoc.SetDataSource(dt)
frmReports.crvReports.ReportSource = rptDoc
frmReports.ShowDialog()
frmReports.Dispose()
Cursor.Current = Cursors.Default
End Sub
这就是我试图在当前报告中实现我想要的方式,但它是拖放方法,所以即使我过滤了列,报告中的列也不会自动隐藏。我还使用 Box 对象和 Line 对象来创建我的表格。
解决方案
推荐阅读
- vue.js - 使用 vue.js 更新 v-for 循环中的字段
- verilog - 我的 Verilog 输出测试结果为 x
- python - Apyori相关性测量
- opengl - 无法安装 soil.h 库
- sql - 将 LISTAGG 转换为 XMLAGG Oracle
- java - 无法在android中将数据输入数据库
- android - 如何在活动更改时继续显示对话框
- c# - 为什么 TcpClient 的这段代码在 vb.net 中有效,但在 c# 中无效?
- python - 字典和列表有什么区别?
- json - React:如何使用 react-image-gallery 将图像从数组显示到轮播中并带有缩略图