我有一个包含十几个子报表的大型报表。整个过程都是由数据驱动的,并且用户使用PrintDocument和PrintPreview。一切正常。
我现在想为用户提供编辑功能。这将使他们能够修改报告的方式。我能想到的最好的方法是使用相同的代码打印到表单。该报告以英寸为单位。我尝试使用96倍的测量值(每英寸96像素),但它似乎太小了。那是我唯一能找到的转换。
我想知道是否有人在我攻克转化率之前知道一个好的转化率。
这是报告: Inventory Report
这是我到目前为止的内容: Inventory Report Editor
我使用此代码在打印到纸张和表单之间切换(如果mfrmForm为空(空),则打印到纸张,否则打印到表单):
If mfrmForm IsNot Nothing Then
e = New PrintPageEventArgs(mfrmForm.CreateGraphics, New Rectangle(New Point(25, 25), New Size(New Point(825, 1075))), e.PageBounds, e.PageSettings)
End If
...
Select Case eAlign
Case HardCopy.Alignment.Center
If mfrmForm Is Nothing Then
e.Graphics.DrawString(strText, PrintFont, New SolidBrush(PI.Color), (PC.Left + (PC.Width - sngTextWidth) / 2), sngYPosition)
Else
lbl = New System.Windows.Forms.Label
With lbl
If PI.Background IsNot Nothing Then
.BackColor = Color.FromArgb(PI.Background.GetValueOrDefault) ' Color.FromArgb(CInt(C.Color))
End If
.ForeColor = PI.Color
.Font = PrintFont
.Location = New Point(CInt(((PC.Left + (PC.Width - sngTextWidth) / 2) * 96).ToString), CInt((sngYPosition * 96).ToString))
.Text = PI.Text
.Visible = True
End With
mfrmForm.Controls.Add(lbl)
End If
End Select
PI和PC只是用于保存值的对象(PrintItem和PrintColumn)。我将需要转换回英寸以使数据持久化。我希望有人在此领域有所了解之前。
谢谢