【问题标题】:Using Crystal reports to generate ID card dynamically使用水晶报表动态生成身份证
【发布时间】:2011-05-16 17:01:22
【问题描述】:

我想为属于不同部分的不同组成员生成一张身份证。每个都有不同的格式,具体取决于用户选择的内容,例如

我还想要的是照片部分应该在用户想要的区域中进行调整,并且来自数据库的照片应该能够根据用户要求进行裁剪。

这是否可能使用 Crystal Reports。任何教程和指南都会有所帮助,因为我对使用 Crystal Reports 完全陌生。 如果不使用=Crystal Reports,其他最佳选择是什么。

请帮我获取动态生成的身份证。

【问题讨论】:

  • 哪个版本的 CR?什么类型的图片?

标签: c# asp.net crystal-reports id-card


【解决方案1】:

如果您想将其缩小为仅一份报告,您可以使用类似于 MD-Tech 建议的内容,但使用根据用户选择隐藏或显示的部分。

【讨论】:

  • MD-Tech 有时“又快又脏”就足够了。 ;) 我对您的解决方案没有任何问题。我只是提供了一个替代方案,也可以被某些人描述为快速而肮脏。
【解决方案2】:

共有三个选项:

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

在任何情况下,您都可以使用条件公式在 v 11.0 中控制图像的 X(距左边距的距离)。在 v 12.0 中,您还可以使用条件公式控制 Width 属性。条件公式可以引用参数字段,因此定位可以使用用户提供的值。

您还需要尝试使用图像类型,因为 Crystal Reports 支持有限的集合(肯定是 JPG 和 BMP)。

【讨论】:

    【解决方案3】:

    将其拆分为 2 个答案,传入的信息如此之多;首先加载单独的报告:

    可以通过有条件地调用文档类的 Load() 函数来选择在运行时加载哪些报表。这方面的一个例子是(在 c++ 中):

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

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

    【讨论】:

      【解决方案4】:

      执行此操作的最快方法应该是拥有 2 个单独的报告,然后根据用户选择将代码 Load() 设置为正确的报告,这将来自单独的 Windows 窗体。如果您需要它是一个单一的条目表单,则可以(尽管很困难)以这样一种方式创建此表单,以便使用它来设置报告的所有参数。

      【讨论】:

      • 如果您需要,我可以提供更多详细信息,但我认为这应该很明显?
      • 请提供更多详细信息。
      • 您是否需要加载方法位的详细信息或如何将参数设置添加到前端?
      • 其实我都有兴趣尝试一下,但是现在“如何将参数设置添加到您的前端”就足够了
      • 从前端设置参数有点复杂,我已经做了很多工作,这个周末我会提供一个史诗般的新答案来帮助你
      猜你喜欢
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多