【问题标题】:How do I customize the print layout of a SharePoint list item?如何自定义 SharePoint 列表项的打印布局?
【发布时间】:2010-09-15 13:24:51
【问题描述】:

我需要能够生成单个列表项值的“漂亮”打印输出,目标是:

  • 摆脱所有导航
  • 按照典型纸质表格的形式组织数据(客户要求)

由于其他问题,我目前避免使用 InfoPath(我将针对这些问题发布单独的问题...)

例如,我有一个单独的列表项,通常显示类似于以下DispForm.aspx 示例

我需要一个打印版本 (PrintForm.aspx??),其显示类似于以下示例

据我所知,我不能仅仅通过修改/创建自定义 CSS 来做到这一点。

似乎我不能仅仅通过创建我自己的“打印”版本的DispForm.aspx来做到这一点。

任何建议、想法、链接都会很有帮助。

【问题讨论】:

  • 感谢亚当·贝莱尔,我在工作中度过了漫长的一天......

标签: css sharepoint printing moss sharepoint-designer


【解决方案1】:

创建自定义列表表单可能是您想要的。没有附加到它的母版页或任何东西。

您可以在此处找到可以帮助您入门的演练:

http://office.microsoft.com/en-us/sharepointdesigner/HA101191111033.aspx

享受吧。

【讨论】:

  • 到目前为止,这正是我所需要的!指示非常清楚。 +1
【解决方案2】:

您可以使用 CSS 来隐藏所有您不需要使用 media="print" 样式表的导航等,但您将无法对您展示的布局进行确切的更改。

如果它不必与示例完全相同,那么隐藏除 name->value 表之外的所有表并仅打印它是相当简单的。如果您确实需要合并字段并重新布局表格,那么您可能不得不破坏服务器端。

为什么不能创建自己的页面版本?

【讨论】:

  • 创建我自己的页面版本很好(例如,PrintForm.aspx)——我既不是 SharePoint 专家也不是 .Net 专家(只是坚持必须完成它!)
  • 不幸的是,它必须像示例一样“完全”:每行多个项目、没有导航、字段周围的框等等......所以我不认为 只是 改变 CSS 会起作用,对吧?
  • 不,您必须更改服务器端。
【解决方案3】:

使用 Sharepoint Designer,您可以创建一个自定义 aspx 页面,该页面使用 dataview webpart 来执行此操作...

【讨论】:

    【解决方案4】:

    @mortenbpost 的链接正是我所需要的: Create a new page that contains a custom list form

    具体来说,您需要执行以下操作才能为列表项获取“基本”自定义页面——您可以从中使用 XHTML/CSS 完全自定义它:

    第一

    确保您的列表包含您需要的所有列

    以下是创建自定义“查看”页面的方法(对于自定义“新建”或自定义“编辑”页面,几乎可以遵循相同的步骤):

    1. 打开 MS Office SharePoint Designer
    2. 文件 -> 打开站点...
    3. 输入您的网站 URL
    4. 确保“文件夹列表”任务窗格可见(任务窗格 -> 文件夹列表)
    5. 展开“列表”文件夹
    6. 您应该看到如下条目:
      Announcements
      Calendar
      ...
      <em>YOUR LIST NAME</em>
      ...
    7. 使用您的列表名称扩展条目
    8. 您应该看到如下条目
      Attachments
      Items
      AllItems.aspx
      DispForm.aspx
      EditForm.aspx
      NewForm.aspx
    9. 右键单击您的列表名称
    10. 选择新建 -> ASPX
    11. 将文件重命名为有意义的名称,例如:PrintForm.aspx
    12. 打开PrintForm.aspx
    13. 以“拆分”模式查看
    14. 在“代码”窗格中,您应该会在空白 html 表单中看到插入点
    15. 插入 -> SharePoint 控件 -> 自定义列表表单...
    16. 从第一个下拉列表中选择您的列表名称(用于表单的列表或文档库)
    17. 从第二个下拉列表中选择“项目”(用于表单的内容类型)
    18. 选择“显示项目表单(用于查看列表项目)”(您可以在此处选择 viewnewedit强>)
    19. 创建可打印表单时取消选中“显示标准工具栏”
    20. 点击确定
    21. 在“设计”窗格中,您应该会看到一个基本的表格布局,左侧是标签,右侧是值
    22. 在“代码”窗格中,您应该为列表中的每个列看到如下代码(这是“单行文本”列类型):
      <tr>
          <td width="190px" valign="top" class="ms-formlabel">
              <H3 class="ms-standardheader">
                  <nobr>Column name</nobr>
              </H3>
          </td>
          <td width="400px" valign="top" class="ms-formbody">
              <xsl:value-of select="@Column_x0020_name"/>
          </td>
      </tr>
    23. 您现在可以获取所有&lt;xsl:value-of select="@<em><strong>Column_x0020_name</strong></em>"/&gt; 条目并进行标准 XHTML/CSS 布局
    24. 要测试,请保存您的工作
    25. 然后,在 Web 浏览器中,导航到您的 SharePoint 网站
    26. 选择您已为其输入数据的项目
    27. 选择“查看项目”
    28. 在地址栏中,将 DispForm.aspx 替换为 PrintForm.aspx

    注意事项:

    • 空格和标点字符使列名的命名很烦人
    • 代码中的 列名 的最大长度为 32 - 任何更长的名称都将被截断,例如:
      SharePoint 列名称:这是一个长名称
      在代码中变为:this_x0020_is_x0020_a_x0020_long
    • 代码中的任何列名都将是重复的,长度为32加上一个数字后缀。因此,鉴于上述列也存在,我们将拥有例如:
      SharePoint 列名称:这也是一个长名称
      在代码中变为:this_x0020_is_x0020_a_x0020_long0
    • 如果您添加列或修改列,则必须手动将它们添加到此页面 (在另一个“虚拟”页面上执行 插入 -> SharePoint 控件 -> 自定义列表表单... 以获得正确的命名)

    再一次,如果没有@mortenbpost 的回答,我无法做到这一点!

    【讨论】:

    • XHTML 标记正在被 SO 系统删除。修复后,我将附加到最后一个项目符号“您还必须将任何新列名添加到数据字段容器”
    • SharePoint 如何存储字段名称:webborg.blogspot.com/2008/03/…
    【解决方案5】:

    *****您现在可以获取所有这些条目并进行标准 XHTML/CSS 布局 *****

    你能用一个例子来扩展它吗?

    【讨论】:

      【解决方案6】:

      这与其说是对上述内容的注释,不如说是一个答案。

      使用自定义列表表单,但请记住,如果任何列启用了版本控制,您将无法轻松获取“数据”。例如,如果您的一个列是 Notes 列,并且每次有人编辑 notes 字段时都会附加一个新版本,那么这些都无法访问,因为它本质上是一个单独的“列表”。我被困在这个问题上,因为我还有一个客户要求打印“看起来不像来自 SharePoint”。

      【讨论】:

      • .. 我花了几天时间试图追踪这个版本控制问题。想想我发布的关于无法找到解决方案的帖子,5 分钟后我找到了 2007 年的帖子...unitedsupplyco.sharepointsite.net/publicfacing/bensblog/Lists/…
      • 感谢玛丽亚!我会在 2009 年 6 月之前回到这里,所以任何信息都很好。
      【解决方案7】:

      或者,您可以导出到电子表格并从那里打印。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-14
        • 2019-12-18
        相关资源
        最近更新 更多