当前位置:首页 > 代码 > 正文

自定义报表代码(自定义报表公式)

admin 发布:2022-12-19 18:46 150


今天给各位分享自定义报表代码的知识,其中也会对自定义报表公式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何自定义生成业务报表

你可以用FineReport报表设计器来实现,Finereport可以零代码设计自定义报表,制作流程相当简单。

一般流程为:新建数据链接   新建模板和数据集   设计模板样式并绑定数据列   参数设置  添加图表  模板预览

具体流程如下:

报表数据集

在FineReport设计器上新建一张新报表模板,新建数据集ds1,定义SQL语句为:SELECT * FROM [销量] where 地区=’${地区}’,这是一个带参数的SQL语句,这里的地区是参数名字。

在下方的参数面板中点击刷新按钮,便可以获得数据集参数,给参数设置默认值“华东”,点击预览,效果如下:

自定义报表数据集

同样的方法,增加数据集ds2,SQL语句为:SELECT * FROM [销售总额]。

报表样式集

自定义报表模板设计效果展示如下图:

标题:合并A1~D2单元格,写入:地区销售概况。

边框:首先我们先来选中从A3~D5这一片区域,点击工具栏中的 边框 设置按钮,在系统弹出的边框对话框中,选择 所有框线 设置,同时添加内部和外部边框。

斜线:合并A3~B3。右击该单元格,选择单元格元素,在二级菜单中,选择斜线。系统会弹出一个斜线编辑的对话框,在文本编辑框中写入我们在斜线当中要加入的内容:产品|销售员|地区,可以通过添加空格来调整文字的位置。如下图所示:

报表模板

绑定数据列集

将数据列拖拽至单元格,并设置单元格的属性,设置位置及方法如下图:

按照上图方法,将下表中对应数据列拖入到单元格中:

由于模板中的数据来自于两个不同的数据集,要将不同数据集的数据建立联系,需要用到数据过滤。

选择D4单元格,点击设计器右侧上方的单元格属性面板中的过滤按钮,打开过滤设置面板,添加如下过滤条件,使得ds2中的“销售员”数据列等于ds1中销售员的值。

多数情况下,客户需要显示满足一定条件的部分数据,这便需要用到参数。参数设计实际上就是一个动态的过滤数据的过程,便于用户与数据能够实时交互。

FineReport内置了一个默认的参数界面,用户可在内置的界面中,调整参数的位置,并通过控件设置得到各种不同的数据选择方式。

参数界面布局集

点击参数界面,进入自定义报表参数编辑界面,在新建模板和数据集章节,我们在ds1数据集中定义了参数“地区”。

可以在参数界面的右侧下方区域看到我们所有定义好的参数,点击全部添加,将会使用默认的布局形成参数界面。

用户可以根据需要将参数界面调整到自己喜欢的样式。

参数控件风格集

将地区参数控件类型改为下拉框,如下图:

选中下拉框控件,在右上方属性表中,设置下拉框的数据字典,选择数据库表FRDemo销量,实际值和显示值都为地区字段:

FineReport除了可以用表格表现数据,还可以用图表的形式更直观地表现数据。我们将在上张报表的基础上,添加图表展示,通过图表显示每一种产品的销量情况。

这里我们选用格子数据源,意思是图表中的数据源来自于单元格。

插入图表集

合并A7~D18单元格,选择菜单栏上插入单元格元素图表,弹出图表向导对话框如下图,这里选择柱形图柱形图,点击确定:

选中图表,在右侧上方的图表属性面板中选择图表属性表-数据,图表数据来源使用默认单元格数据。

分类轴输入公式=B4;

系列名和系列值,分别为=C3和=C4,如下图:

点击保存,图表绘制完成。

图表扩展属性设置

这里只想让图表反映整体情况,所以应为不扩展,上下父格均为无。

选择图表,在设计界面右下方单元格扩展属性面板设置左父格、上父格均为无。

至此,自定义报表就制作结束了。FineReport报表设计器本身就是自定义报表的诠释,在此也得到了全面的体现。下图为自定义报表预览。

如何用金蝶软件设置自定义报表

金蝶自定义利润表流程:

1、在自定义报表请最好先查看一下现有报表公式,在报表窗口点击【格式】可使报表在显示数值或显示公式之间转换。

2、点击报表窗口工具条中【向导】,进入“自义定报表公式向导”窗口,即可对报表公式进行编辑,下面重点介绍账上取数与表间取数两种方法。

上图向导中各个选项及其含义:科目代码是指会计科目代码范围;币别指币别名称,默认为综合本位币;会计年度默认为本年,可选择去年、前年等;会计期间默认为本期,可选择到具体某一期间数字;取数类型是取数标志,以英文字母表示,默认为期末余额。

2、表间取数主要涉及报表和单元两项名称参数含义,报表名称是指选择从中取数的相关报表的名称;单元名称是指填入相关单元地址,如A1,A1:C2等。

3、金蝶KIS记账王系统允许对单元格格式进行设置,点击【属性】-【单元属性】-【单元属性】命令。

4、点击在“数字格式”页签,用户可对当前选中单元格数字格式进行调整。

reporting services如何zai自定义代码中取得数据

您可以在任何表达式中调用自己的自定义代码。可以通过下列两种方式提供代码: 直接在报表中使用 Visual Basic 编写的嵌入代码。如果代码引用非 System.Math 或 System.Convert 的Microsoft .NET Framework,必须向报表中添加引用。有关详细信息,请参阅如何向报表添加程序集引用 (Reporting Services)。有关可以使用的代码中其他引用的详细信息,请参阅在表达式中使用自定义代码引用 (Reporting Services)。 使用.NET Framework 提供自定义代码程序集。如果提供自定义程序集,则必须同时在创作报表的计算机上和查看报表的报表服务器上安装该自定义程序集。有关详细信息,请参阅将自定义程序集用于报表。 向报表添加嵌入代码 在“设计”视图中,右键单击报表边框外的设计图面,然后单击“报表属性”。 单击“代码”。 在“自定义代码”中键入代码。报表运行时,代码中的错误会引发警告。下面的示例创建一个名为 ChangeWord 的自定义函数,该函数可使用词语“ Bicycle ”替换“ Bike ”。 复制代码 Public Function ChangeWord(ByVal s As String) As String Dim strBuilder As New System.Text.StringBuilder(s) If s.Contains("Bike") Then strBuilder.Replace("Bike", "Bicycle") Return strBuilder.ToString() Else : Return s End If End Function下面的示例演示如何在表达式中向此函数传递名为 Category 的数据集字段。 复制代码 =Code.ChangeWord(Fields!Category.Value)如果将此表达式添加到显示类别值的表单元,则只要该行的数据集字段中出现词语“Bike”,表单元值就会显示词语“Bicycle”。 在“设计”视图中,右键单击报表边框外的设计图面,然后单击“报表属性”。 单击“代码”。 在“自定义代码”中键入代码。报表运行时,代码中的错误会引发警告。下面的示例创建一个名为 ChangeWord 的自定义函数,该函数可使用词语“ Bicycle ”替换“ Bike ”。 复制代码 Public Function ChangeWord(ByVal s As String) As String Dim strBuilder As New System.Text.StringBuilder(s) If s.Contains("Bike") Then strBuilder.Replace("Bike", "Bicycle") Return strBuilder.ToString() Else : Return s End If End Function下面的示例演示如何在表达式中向此函数传递名为 Category 的数据集字段。 复制代码 =Code.ChangeWord(Fields!Category.Value)如果将此表达式添加到显示类别值的表单元,则只要该行的数据集字段中出现词语“Bike”,表单元值就会显示词语“Bicycle”。

在人力资源web系统中,如何隐藏自定义报表中的公司代码、部门代码?,但是可以作为过滤字段。

请按照如下步骤操作:

1、以administrator用户登录到人力资源web系统中;

2、依次单击【系统设置】→【自定义报表】;

3、单击【设计模式】,进入设计模式,单击【自定义报表】显示界面中的【公司代码】和【部门代码】单元,右键单击删除菜单;

4、依次单击【系统设置】→【自定义报表】→【字段】;

5、保留【字段列表】中的【公式代码】和【部门代码】即可。

如何在报表服务中使用自定义程序集或嵌入的代码

创建自定义程序集

若要创建自定义程序集,请执行以下步骤︰

创建 Visual Studio 的类库。在文件菜单上,指向新建、 指向项目,然后单击类库。

指定的名称和位置。例如,我使用了 SimpleClassLibrary 和 C:\Documents 以及 Settings\user1\My Documents\Visual Studio 2005\projects。

打开类文件 (在本例中,Class1.vb),然后再创建您想要在报表服务中使用的函数。我的情况而言,我只是创建一个简单的共享的函数。

注意:因为这是一个共享的函数 (在 C# 静态),我们不需要通过使用实例化的对象来访问它。这起我们是如何引用在本文的后面我们程序集,请记住这一点。

Public Class Class1

Public Shared Function DoSomething() As String

Return "string data returned from custom assembly"

End Function

End Class

一旦您添加完所有代码,单击生成菜单生成 SimpleClassLibrary 。此步骤创建各自的 bin 文件夹中的程序集或托管的.dll。在我的示例中,此步骤创建我的程序集,SimpleClassLibrary.dll,我 Documents\Visual Studio 2005\Projects\ SimpleClassLibrary\bin\Debug 文件夹中。

将自定义程序集复制到 SQL 报表服务文件夹

使您的程序集可供报表设计器和报表在报表服务的服务器。若要执行此操作,必须将.dll 复制到报表设计器文件夹和报表服务器文件夹。

注意:该路径可能是有点不同,这取决于您的安装路径。

报告服务 2005 年将.dll 文件复制到以下文件夹︰

编写该 Visual Studio 8\Common7\IDE\PrivateAssemblies

计划该 SQL Server\MSSQL.3\Reporting Services\ReportServer\bin

对于报告服务 2000,将.dll 文件复制到以下文件夹︰

计划该 SQL Server\80\Tools\Report 设计器

计划该 SQL Server\MSSQL\Reporting Services\ReportServer\bin

注意:由于您所要做的每次更改的代码时,它可能有点乏味。许多开发人员创建批处理文件来处理此任务。下面是可以使用的示例批处理文件。

@ECHO OFF

REM Name: SRSDeploy.bat

REM

REM This batch files copies my custom assembly to my Reporting Services folders.

REM Run this from the directory where the customer assembly was compiled.

REM Be sure to close any applications that have your custom assembly open.

REM

REM This is the SQL Server 2005 version:

copy SimpleClassLibrary.dll "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies"

copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin"

REM This is the SQL Server 2000 version:

REM copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\80\Tools\Report Designer"

REM copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin"

我通常通过在项目中创建自定义生成后事件处理此任务。为此,转到您的项目的属性。接下来,单击编译选项卡,然后单击生成事件。这将打开生成事件对话框。选择生成后事件命令行,然后再键入以下命令︰

复制"$(目标路径)""C:\Program 数值 Visual Studio 8\Common7\IDE\PrivateAssemblies\"

复制"$(目标路径)""C:\Program 该 SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\"

这可以使用后期生成宏来指定我的程序集的位置。创建生成后事件的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点︰

在报表服务中添加自定义程序集的引用

要添加到您的自定义程序集的引用,请在报表设计器中打开报表服务报表。若要执行此操作,请按照下列步骤操作:

打开将引用自定义程序集的报表。

在报表菜单上单击报表属性。

在报表属性对话框中,单击引用选项卡。

在引用,单击程序集名称的列标题旁边的省略号 (...) 按钮。

注意:基于实例的成员是类部分。它不是静态成员。静态 (也称为"共享"在某些我们报告服务文档) 表示成员可用类的每个实例,并且每个实例都使用同一存储位置。通过使用共享的关键字在 Microsoft Visual Basic 和在 C# static 关键字声明静态成员。这可能是有点令人困惑。这意味着,如果您自定义的程序集包含需要访问的实例成员,则将需要类部分中指定的类名和实例名。因为我将从报表服务呼叫的方法被定义为静态,在 Visual Basic 中使用共享的关键字,我将代替类节使用参考部分。

在添加引用对话框中,单击浏览。(在 SQL Server 2005 中,请单击浏览选项卡)。

找到并单击自定义程序集。单击打开。(在 SQL Server 2005 中,请单击添加,而不是打开)。

在添加引用对话框中,单击确定。

在报表属性对话框中,单击确定。

现在我们就可以使用报表服务中的自定义程序集。

在报表设计器中打开报表 (.rdl 文件)。

为了说明如何在报表服务中使用的自定义程序集,请添加一个文本框。若要执行此操作,将从工具箱向报表空白文本框。

文本框属性,在单击值属性,然后使用下面的语法调用的函数。

=ClassLibraryName.ClassName.MethodName or Namespace.ClassName.MethodName

在我的示例中,指定以下。

=SimpleClassLibrary.Class1.DoSomething()

其他格式用于引用报表服务中的代码。如果调用嵌入的代码,例如,使用以下格式。

=Code.MethodName()

如果使用实例来调用非静态的还是基于实例的方法中,自定义程序集中,请使用以下格式。

=Code.InstanceName.Method

注意:您已设置引用以不同的方式如果您想要使用基于实例的方法。要做到这一点,请需要转到报表属性,单击引用选项卡,然后在类部分指定的类名和实例名。

如果自定义程序集需要更多权限的代码访问安全性

如果自定义程序集需要更多比默认执行级别权限的权限,您必须进行一些代码访问安全的更改。如果使用代码访问安全的权限问题发生,很可能会看到"#Error"的是您自定义的程序集,而不是预期的结果。若要确定是否出现此问题,您可以执行的几个快速步骤以及有关如何为您的自定义程序集授予其他权限的详细说明,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

842419如何向报表中报告服务引用自定义程序集授予权限

注意:以下方法是测试可帮助确定是否出现了代码访问安全问题。不建议使用以下方法,因为它为您自定义程序集授予完全信任权限。

为您的自定义程序集,创建新的代码组,然后再授予完全信任权限。若要执行此操作,打开程序该 SQL Server\MSSQL.3\Reporting Services\ReportServer\rssrvpolicy.config 文件,然后添加以下代码。

CodeGroup class="UnionCodeGroup"

version="1"

PermissionSetName="FullTrust"

Name="MyCodeGroup"

Description="Code group for my data processing extension"

IMembershipCondition class="UrlMembershipCondition"

version="1"

Url="C:\pathtocustomassembly\customassembly.dll"

/

/CodeGroup

我们建议您创建更特定的权限,而不是分配给代码组设置此权限设置。这篇文章已预期,您并且正在运行的自定义程序集,并且这需要更多详细信息。

注意:自定义程序集通常报表设计器中正常工作。但是,您可能会发现,当您部署,然后尝试在报表服务器中运行的自定义程序集,默认执行级别权限不足。这样做的原因是,默认情况下,报表设计器使用"完全信任"权限运行自定义程序集。但是,在将报表部署到报表服务器时,在报表服务器中授予的默认权限设置为执行级别。如果发生此问题,您很可能会看到而不是从自定义程序集的预期结果报表控件中的"#Error"。

嵌入的代码

嵌入的代码是报表属性对话框中的代码部分中编写的代码。嵌入的代码是一个不错的选择,将在报告中多次调用的代码。如果您想要重用代码在多个报表,自定义的程序集可能是更好的选择。若要创建嵌入式的函数,请执行以下步骤︰

在报表菜单上单击报表属性。

在报表属性对话框中,单击代码选项卡

添加下面的函数,然后单击确定。

Public Function EmbeddedFunction() as String

Return "this is from embedded code function"

End Function

在报告中,将添加一个新的文本框。

值属性中添加以下。

=code.EmbeddedFunction

自定义报表代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于自定义报表公式、自定义报表代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/18367.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载