4

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

  • 摆脱所有导航
  • 组织数据,就像它出现在典型的纸质表格上一样(客户要求)

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

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

SharePoint - DispForm.aspx

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

SharePoint - PrintForm.aspx

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

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

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

4

7 回答 7

3

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

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

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

享受。

于 2008-10-07T12:24:09.540 回答
1

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

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

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

于 2008-10-06T16:46:36.907 回答
1

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

于 2008-10-06T17:30:04.680 回答
1

@mortenbpost 的链接正是我所需要的: 创建一个包含自定义列表表单的新页面

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

第一的

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

第二

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

  1. 打开 MS Office SharePoint 设计器
  2. 文件 -> 打开站点...
  3. 输入您的网站 URL
  4. 确保“文件夹列表”任务窗格可见(任务窗格 -> 文件夹列表)
  5. 展开“列表”文件夹
  6. 您应该看到如下条目:
    Announcements
    Calendar
    ……
    YOUR LIST NAME
    _
  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. 选择“显示项目表单(用于查看列表项)”(这是您在查看新建编辑之间进行选择的地方)
  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. 您现在可以获取所有这些条目并进行标准 XHTML/CSS 布局 <xsl:value-of select="@Column_x0020_name"/>
  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 的回答,我就无法做到这一点!

于 2008-10-08T19:38:27.527 回答
0

*****You can now just take all those entries and do standard XHTML/CSS layout *****

can you expand this with an example on how to do it?

于 2008-11-14T21:13:48.613 回答
0

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

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

于 2009-05-06T22:13:38.163 回答
-1

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

于 2008-10-07T16:33:06.293 回答