hessen 发表于 2021-10-16 14:29:57

高级扩展复制报表数据界面数据

通过高级扩展功能的报表传递实现复制内容到剪切板

这里有一个需求,是需要让普通用户可以复制记录的ID,可以通过高级扩展的报表传递功能实现。
1、新建一个模板用户传递打开。
2、在要复制的模板中写高级扩展菜单实现传递。

效果如下:




设置方法如下:
1、新建一个用于传递打开的模板。
定义一个以上的字段就好。目的是用于将数据界面的数据通过扩展功能传递到这个模板上来。比如下面的模板只有一个编号字段。为了后面的效果这个编号字段是要隐藏起来的。下面的灰色正在复制这个是一个样式,用于展示给前台用户看的,可以要也可以不要。这里为了效果才这么做的。



2、在要查看记录的模板中写高级扩展菜单实现传递报表的功能。



保存后运行的效果:


运行的过程分解:
选中记录,点高级扩展菜单,将所选记录的ID 传递给了打开的模板。传递打开的模板中执行了VBA,将传递过来的数据复制到了剪切板,而后关闭了传递的模板。这样就实现了点击复制按钮后,可以直接粘贴复制的ID。

附复制到剪切板与关闭模板的VBA代码:

       Dim EV As SpreadsheetGear.Windows.Controls.WorkbookView,AW As SpreadsheetGear.IWorkbook,Range As SpreadsheetGear.IRange
           Dim CF As TextBox
       Public Sub Workbook_Open(OldRoot As Object,NewRoot As Object,Excel As SpreadsheetGear.Windows.Controls.WorkbookView)
         EV = Excel
         Excel.GetLock()
         AW = Excel.ActiveWorkbook
         Range = AW.ActiveWorksheet.Range
                   CF = CType(OldRoot.Children(1), TextBox)
                  System.Windows.Clipboard.SetText(Range("C2").Text)
                        CF.Text = "#关闭"
         Excel.ReleaseLock()
       End Sub'打开时执行事件

页: [1]
查看完整版本: 高级扩展复制报表数据界面数据