使用Crystal Reports动态生成身份证

4
我希望为不同部门的各个组成员生成身份证。每个身份证的格式取决于用户选择的内容,例如: enter image description here 我还希望照片部分可以根据用户需要在可调整的区域内进行裁剪,同时也应该能够从数据库中获取并裁剪照片。
是否可以使用Crystal Reports实现?如果有任何教程和指导,将非常有帮助,因为我是完全没有使用Crystal Reports的经验。
如果不能使用Crystal Reports,还有哪些其他最佳选项?
请帮助我动态生成身份证。

哪个版本的CR?什么类型的图像? - craig
4个回答

1
如果你想将其缩小到只有一个报告,你可以采用MD-Tech建议的类似方法,但使用根据用户选择隐藏或显示的部分。

MD-Tech 有时候“快速而粗略”的方法也足够好。 ;) 我对你的解决方案没有任何问题。我只是提供了一种替代方案,有些人可能也可以称之为“快速而粗略”。 - Buck Hicks

1

有三个选项:

  1. 两个报告 - 就像MD-Tech所建议的那样。平均而言,两个报告更难维护。
  2. 一个报告/两个部分 - 就像BUkHix所建议的那样。您可以在两个单独的部分中创建所需的格式,然后使用参数来隐藏/显示所需的部分。
  3. 一个报告/两个子报告 - 这为您提供了对格式的最精细控制。子报告的显示也可以通过参数进行控制。

无论如何,在v 11.0中,您可以使用条件公式控制图像的X(距左边缘的距离)。在v 12.0中,您还可以使用条件公式控制宽度属性。条件公式可以引用参数字段,因此定位可以利用用户提供的值。

您还需要尝试不同的图像类型,因为Crystal Reports仅支持有限的一组类型(JPG和BMP肯定支持)。


0
这样做的最快方式是准备2个独立的报表,然后根据用户选择加载正确的报表,该选择将来自单独的窗体。如果需要将其作为单个输入窗体,则可以将此窗体创建为以这种方式使用它来设置报表的所有参数(虽然很困难)。

如果您需要更多细节,我可以提供,但我认为这应该是显而易见的? - MD-Tech
请提供更多细节。 - Ishan
你需要了解加载方法的细节还是如何将参数设置添加到你的前端? - MD-Tech
实际上,我对两种都很感兴趣,但目前为止,“如何将参数设置添加到您的前端”就足够了。 - Ishan
从前端设置参数有点复杂,而且我工作很忙。但是我会在这个周末提供一个史诗般的新答案来帮助你。 - MD-Tech
请MD-Tech为我提供解决方案。 - Ishan

0

将其拆分为两个答案,因为有太多的信息要传入;首先加载单独的报告:

可以通过有条件地调用文档类的Load()函数来在运行时选择要加载的报告。其中一个示例是(使用c++):

ReportDocument myDocument = gcnew myDocument();
if(wideIDcard)
{
   myDocument->Load("wideIDCard.rpt");
}
else
{
   myDocument->Load("narrowIDCard.rpt");
}

布尔型变量wideIDCard是从前端的下拉框等设置的。然后可以将ReportDocument myDocument发送到报表查看器中查看该报表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接