`
Jack Wu
  • 浏览: 886802 次
  • 来自: ...
社区版块
存档分类
最新评论

如何创建动态结构的报表

 
阅读更多

1、使用cl_alv_table_create=>create_dynamic_table

REPORT zmaschl_create_data_dynamic .

TYPE-POOLS: slis.

DATA: it_fcat TYPE slis_t_fieldcat_alv,
      is_fcat LIKE LINE OF it_fcat.
DATA: it_fieldcat TYPE lvc_t_fcat,
      is_fieldcat LIKE LINE OF it_fieldcat.
DATA: new_table TYPE REF TO data.
DATA: new_line  TYPE REF TO data.
FIELD-SYMBOLS: <l_table> TYPE ANY TABLE,
               <l_line>  TYPE ANY,
               <l_field> TYPE ANY.

* Build fieldcat
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
           i_structure_name = 'SYST'
       CHANGING
           ct_fieldcat      = it_fcat[].
   LOOP AT it_fcat INTO is_fcat WHERE NOT reptext_ddic IS initial.
        MOVE-CORRESPONDING is_fcat TO is_fieldcat.
        is_fieldcat-fieldname = is_fcat-fieldname.
        is_fieldcat-ref_field = is_fcat-fieldname.
        is_fieldcat-ref_table = is_fcat-ref_tabname.
        APPEND is_fieldcat TO it_fieldcat.
   ENDLOOP.

* Create a new Table
CALL METHOD cl_alv_table_create=>create_dynamic_table
       EXPORTING
        it_fieldcatalog = it_fieldcat
       IMPORTING
        ep_table        = new_table.

* Create a new Line with the same structure of the table.
ASSIGN new_table->* TO <l_table>.
CREATE DATA new_line LIKE LINE OF <l_table>.
ASSIGN new_line->* TO <l_line>.

* Test it...
   DO 30 TIMES.
      ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
      <l_field> = sy-index.
      INSERT <l_line> INTO TABLE <l_table>.
   ENDDO.

   LOOP AT <l_table> ASSIGNING <l_line>.
      ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <l_line> TO <l_field>.
      WRITE <l_field>.
   ENDLOOP. 

2、使用动态创建临时程序  generate subroutine pool code name prog
                           message msg
                           line    lin
                           word    wrd
                           offset  off.并调。



分享到:
评论

相关推荐

    动态创建报表的五个类

    总的来说,动态创建rdlc报表的关键在于理解报表结构、设计合适的`ReportDefinition`,以及灵活运用生成器类来实现报表的XML构造。通过这样的方式,开发者可以快速响应业务需求的变化,创建出符合要求的定制化报表,...

    C#动态水晶报表

    2. **报表设计**:在Crystal Reports设计环境中,开发者可以创建报表结构,包括字段、表头、页眉/页脚、分组、汇总等元素。设计时需要考虑如何动态地展示数据,比如使用参数控件允许用户自定义查询条件。 3. **数据...

    devexpress动态报表

    2. **报表布局设计**:定义报表的基本结构和样式,如字段布局、表格样式等。 3. **数据绑定**:将数据源与报表进行绑定,使得报表能够显示具体的数据内容。 4. **报表渲染**:利用 DevExpress 提供的控件和服务来...

    DevExpress.XtraReport动态报表的制作

    以下是创建动态报表的详细步骤和知识点: ### 单表报表设计 单表报表是最简单的一种报表类型,用于展示单个数据表的数据。下面是创建单表报表的步骤: 1. 新增一个 XtraReport 报表报表设计器(Report Designer)...

    水晶报表动态创建字段

    总之,水晶报表动态创建字段的核心在于利用参数字段和动态SQL查询来适应变化的数据结构。这种技术在处理复杂和可变的数据报告时非常有用,但需要注意的是,动态字段可能导致报表的性能下降,因此在实际应用中需要...

    PB动态制作报表

    PB动态制作报表是一种在PowerBuilder(PB)环境中利用编程方式创建和更新报表的方法。PowerBuilder是一款流行的、基于事件驱动的可视化的开发工具,主要用于构建数据库应用程序。在这个场景中,我们不依赖任何第三方...

    动态报表例子合集水晶报表和RDLC

    在“动态生成水晶报表++动态添加数据原.pdf”文档中,可能详细讲解了如何在运行时动态创建报表结构和填充数据,这涉及到编程逻辑和水晶报表API的使用。 RDLC报表则是微软开发的用于Windows Forms和ASP.NET应用程序...

    asp.net动态水晶报表实现代码

    2. **创建动态水晶报表** - 使用水晶报表设计器创建报表模板,可以预定义布局和样式,但不固定数据字段,以适应不同数据源。 - 在ASP.NET中,使用`CrystalDecisions.CrystalReports.Engine`命名空间,通过`...

    asp.net 动态水晶报表实现

    在ASP.NET开发中,水晶报表(Crystal Reports)是一款强大的报表设计工具,常...通过理解报表模板的设计、数据源的动态设置、参数化查询以及代码中的数据绑定,开发者可以创建出满足各种需求的动态报表,提升用户体验。

    动态列生成报表

    3. 编程实现:利用编程语言(如C#、Java等)动态构建报表结构,根据业务逻辑决定列的显示。 在RDLC报表中实现动态列: RDLC报表是.NET Framework中用于客户端报告的一种XML格式,它可以集成到Windows Forms和ASP...

    微软报表的动态生成,可以动态生成报表,自由选择字段显示。

    这可能导致微软报表在处理复杂、多列或多层的报表结构时显得力不从心,特别是在需要根据用户需求动态调整字段显示的情况下。 为了解决这个问题,开发者可能会创建自定义的小程序或扩展,如压缩包中的" Myreport "。...

    vs 自带报表的,创建以及动态绑定数据源

    VS 自带报表的创建和动态绑定数据源 VS 自带报表的创建和动态绑定数据源是指在 Visual Studio 中使用 ReportViewer 控件创建报表并动态绑定数据源的过程。本篇文章将详细介绍创建报表文件、绑定数据源和动态生成...

    动态报表管理系统

    动态报表管理系统是一种高效的数据分析工具,它允许用户创建、上传、查询和管理各种类型的报表,以满足企业或组织对数据可视化的需要。该系统通常基于PowerBuilder(PB)开发,这是一种老牌的可视化编程环境,特别...

    (公司测试源码)C# 动态生成RDLC报表

    首先,我们需要了解RDLC报表的基本结构。一个RDLC报表由多个组件组成,包括数据区域(如表格、矩阵、图表)、文本框、图像以及各种计算和过滤表达式。在设计阶段,这些元素可以通过Visual Studio的报表设计器进行...

    动态CrystalReport报表汇总

    动态CrystalReport报表汇总主要涉及如何在ASP.NET环境中利用Crystal Report创建动态报表,以便根据不同的需求展示数据。报表在许多应用程序中扮演着至关重要的角色,它能够直观地展示数据,帮助决策者快速理解业务...

    水晶报表 实现列的动态增加

    7. **展现和打印**:最后,报表将按照设定的动态列结构显示数据。用户可以查看、打印或导出报表,所有的列调整都会被正确地反映出来。 在提供的文件名"【翻译】_NET 2005 中动态水晶报表的实现 - MSPROJECT开源技术...

    PB动态报表源码,报表格式自由定义的实现

    通过源码,我们可以看到如何在程序运行时动态修改数据窗口的列结构、宽度、排序方式,甚至添加或删除列,以满足不同报表格式的需求。 2. **条件表达式和计算字段**:动态报表需要根据业务规则来决定显示哪些信息。...

    动态水晶报表(列、运行统计、网格)

    动态调整报表的关键在于根据实际需求灵活改变报表结构和样式。以下是几个核心概念: 1. **列标题**:列标题可以根据数据表中的字段自动生成,也可以手动设定。在动态报表中,我们可能需要在运行时根据数据源的变化...

    rdlc报表完整示例

    - **DynamicTable**: 针对如何创建动态表格的示例,表格的行和列会根据数据源的变化而变化。 - **Objectds**: 这个可能涉及从对象数据源获取数据并创建报表的实例。 通过这些示例,开发者可以深入理解rdlc报表的...

    cognos 树形结构报表

    4. **交互性与动态过滤**:Cognos树形结构报表具有高度的交互性。用户可以点击节点进行展开和折叠,选择特定节点会自动筛选报表中的其他组件,如表格或图表,只显示与所选节点相关的数据。 5. **性能优化**:由于树...

Global site tag (gtag.js) - Google Analytics