0

编辑7:我终于成功了!贴出答案。

编辑 6:我废弃了 CSS 和 div 并使用了报告服务。查看帖子下方的编辑以了解我现在的位置。

我现在完全迷路了。
抱歉,如果我的问题不够清楚,我可以根据需要对其进行编辑以添加信息。我会尽量提供尽可能多的信息。
我已经在谷歌上搜索了几个小时,但没有找到任何可以帮助我的东西。

我正在尝试使用我在数据库中的用户信息创建多个“标签”,并将它们放在页面上以打印它们。另外,我每页只需要 1 个标签。
我得到了一个存储过程,它返回给我用户名、姓名和姓氏以及我用来在特定事件中为每个用户生成条形码的 ID。

CREATE PROCEDURE Schema.GetAllTags
@IdEvent int
AS
BEGIN
    SELECT  Mem.Nom, Mem.Prenom, Mem.Pseudo, Use.IdUser
FROM    Schema.User Use
JOIN    Schema.Member Mem ON Use.IdMember = Mem.IdMember
WHERE   Use.IdEvent = @IdEvent
END


条形码是通过调用一个 asp 页面并给它我从页面参数中存储的过程中收到的 ID 生成的。asp 页面是我用来在其他页面中显示我的条形码的图像。

我尝试使用 div、CSS、asp 内容和所有这些东西制作标签,并且它工作......除了打印部分。标签一直在调整大小,即使我尽一切努力使其成为 25.4 毫米(1 英寸),页边距也不是一英寸,并且在它上面,页面的 url 始终显示在预览打印中。客户只需取消选中显示网址并在选项中自己设置边距即可解决所有这些问题。但我不想强迫客户做这些来解决问题。我希望它是 3 x 2 英寸,边距为 1 且没有 url,而无需更改打印选项。

有人告诉我,使用报告服务可以解决我的打印问题。但是我不知道如何从报告服务中获得我需要的东西(我知道报告服务是什么)......更不用说如何让我的条形码在那里了。

在这里,标签在打印页面上最终应该是什么样子。3 英寸 x 2 英寸,打印时顶部和左侧边距为 1 英寸。

标签应该是什么样子

这是我用来尝试打印标签的 CSS:

<style type="text/css">
    @page
    {
        margin: 25.4mm 25.4mm 25.4mm 25.4mm;  
    }

    @media print 
    {
        body *  
        {
            visibility:hidden;
        }
        #tagPrint, #tagPrint * 
        {
            visibility:visible;
        }
        #tagPrint
        {
            position:fixed;
            top: 0px;
            left: 0px;
        }
        #NOPRINT
        {
            display:none;
        }
    }

这里是asp(这是我的页面,只显示1个标签):

<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
    <ContentTemplate>
        <div id="tag" class="formRow">
            <div id="tagPrint" style="border:1px solid;width:76.2mm;height:50.8mm">
                <p style="text-align:center" />
                <br />
                <asp:Label ID="lblUserTag" runat="server" style="font-weight:bold;font-size:18px" />
                <br />
                <asp:Label ID="lblFullNameTag" runat="server" style="font-weight:bold;font-size:16px" />
                <br />
                <br />
                <asp:Image ID="imgBarcodeTag" runat="server" />
                <br />
                <asp:Label ID="lblIdTag" runat="server" style="font-weight:bold;font-size:16px" />
            </div>
        </div>
        </ContentTemplate>
    </asp:UpdatePanel>

目前在我的页面上使用转发器生成我的标签以生成多个标签并将 dataset.tables[0].Rows 绑定到转发器。允许我创建这些标签。

有什么方法可以在不使用仅使用 javascript 和 CSS 的报告服务的情况下做到这一点?报告服务是否可行(在报告服务中使用 asp 页面制作条形码)?由于我的条形码来自字体,有没有其他方法可以在计算机上添加字体以便在报告服务中使用它?(我不希望客户端必须安装字体)制作标签的 pdf 会更容易/更好吗?

编辑:开始使用报告服务。现在我得到了用 4 个参数制作的报告。(用户名、全名、条形码 url 和 ID)我会更新接下来会发生什么。

编辑2:所以......在设法制作报告服务并将其显示在页面中之后。我似乎无法让我的图像显示在报告上。即使我这样做了。我不知道如何在报告上制作多页或如何打印。我决定尝试以 PDF 格式制作我的 Div Tag 并尝试以这种方式打印。明天有机会尝试更新。

编辑 3:除了想把我的头砸在墙上几次之外,我尝试用 PDF 做它,但它不起作用。发现它可能可以在 Flash 中完成,但我不想在 Flash 中完成。所以我回到了报告服务。我使用网格创建了一个报告服务,我将数据集发送到网格并将数据放在每个字段中。我安装了字体以便能够在报告中使用它。现在我似乎无法将我的数据集绑定到报告。我尝试了 SqlDataSource 和 ObjectDataSource,但似乎没有任何效果。我在一个新项目中开始了另一份报告,以尝试从废品中提取。也许我当前项目中的某些东西正在与我作对。我快要放弃了。-_-

编辑4:我终于让它开始工作了。让我的页面上的报告工作得很好。

报告服务

结果

现在我唯一要做的就是设法让报告有多个页面。

编辑 5:重读我的编辑,我意识到在编辑 2 之后我忘了说,我放弃了参数的东西,而是使用了一个数据集。此外,我放弃了有关 CSS 和 div 的所有内容,以使用报告服务来保存标签的 PDF 文件。

4

2 回答 2

1

所以让我先用一些关于 SSRS 的解释作为开头:你做错了。

我的意思是,如果您只是想在 SSRS 中嵌入 ASP 代码和输出以实现图形保真度,那是不会发生的。

向您推荐 SSRS 的原因是因为它可以获取一组数据并以各种报告样式、格式和输出方法以高图形保真度再现它。

但是你必须从头开始构建它。没有 HTML,没有 CSS,没有 ASP,没有 .Net(嗯.. 有点。对你来说,是的,不需要 .Net。)

哇,哇,哇,你要去哪里?我保证,这并不难。

所以......首先,让我们为您在 SSRS 中执行此操作设置一个任务列表。在我们做这件事之前,让我们构建一个向导驱动的报告,这样我们就可以将您的 ID 标签数据集放入报告中。它将让您基本了解 SSRS 如何使用数据并将其转换为报告。

  1. 创建一个全新的 Reporting Services 项目。
  2. 向该项目添加新报告。在解决方案资源管理器中,右键单击“报告”文件夹并“添加新报告”。
  3. 第一步是选择数据源。使用您正在运行的存储过程将其连接到您的数据库,测试您的连接,然后继续。
  4. 下一步是设计查询——但你已经用你的 Sproc 完成了,所以只需将它粘贴进去——现在,为你的 IdEvent 添加一个硬编码的值。我们稍后会解决这个问题。
  5. 现在选择您的报告类型 - 我们现在只做表格。Matrix 更适合大量行/列动态,而您只是在寻找一个简单的可打印报告,所以表格适合您。
  6. 现在在设计表格时,只需将所有输出列添加到 Detils 组。
  7. 选择任何旧的表格样式,你最终都会把这一切都扔掉。
  8. 将您的报告命名为有用的名称并完成。

现在您已经有了一个 RDL,它有一个数据源、一个数据集和设计器区域中的一些代码。您可以通过单击设计器区域中的“预览”选项卡来预览到目前为止所做的工作。非常棒,您的所有数据都在表格的小行中。怎么办?

现在是任务列表。开始谷歌搜索,您可以学习所有这些,不会花费太长时间,当您完成后,您将准备好一组格式良好的 ID 标签供打印机使用。如果您遇到特定问题 - 好吧,这就是该网站的用途,对吗?

  1. 创建一个参数以将您的 IDEvent 传递给您的存储过程。
  2. 将动态外部图像插入从 ASP 页面检索条形码的行中。(提示:阅读在 SSRS 中使用“表达式”。)
  3. 弄清楚如何使用 SSRS 中的分页符选项,每页只打印 1 个标签。
  4. 使用属性窗口来格式化表格的每一“行”,使其看起来像您的标签。
  5. 确定是将报告导出为 PDF,还是仅使用提供的 MHTML 版本。

您可能还想学习如何在 .Net 应用程序中嵌入 SSRS 报告(无论如何,您的客户是如何打印标签的?)当然,SSRS 的许多小方法、属性和方面都超出了此特定任务的范围,但至少值得在以后的项目中查看。

祝你好运!

于 2013-02-22T16:59:58.610 回答
1

最后!我做到了!

这就是我所做的。

  1. 做了一个SSRS。
  2. 做了一个报表查看器和 ObjectDataBinder
  3. 使用我的存储过程为 SSRS 创建一个数据集。
  4. 将报表查看器绑定到 SSRS。
  5. 在 SSRS 周围玩耍以放置需要放置的字段。
  6. 将 SSRS 中的页边距设置为 1 英寸。将报告设置为 3x2 英寸。
  7. 将报告大小设置为 5x4 英寸。
  8. 测试并享受我在这些小时的挫折中取得的胜利。

注意:我花了很多时间,因为 Visual Studio 对我进行了窃听,我不得不完全删除并重做我的 SSRS。

结果 :

结果

一个漂亮的 PDF 文件,大小完美,边距完美,带有代码栏。胜利!

于 2013-02-22T20:20:30.110 回答