Foxtable(狐表)用户栏目专家坐堂 → 按钮代码问题求助


  共有1781人关注过本帖树形打印复制链接

主题:按钮代码问题求助

帅哥哟,离线,有人找我吗?
lisheng1971
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
按钮代码问题求助  发帖心情 Post By:2018/12/2 19:06:00 [只看该作者]

Dim tb As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim pg As WinForm.TabPage = tb.SelectedPage
Dim doc As PrintDoc = e.Form.GernatePrintDoc(pg)
If tb.SelectedPage.Text = "Page1" Then
    Dim tm As String  = ProjectPath & "Attachments\准考证A.doc" '指定模板文件
    Dim fl1 As String = "D:\准考证\准考证A.doc" '指定目标文件
    Dim fl2 As String = "D:\准考证\准考证A.pdf" '指定目标PDF文件
    Dim wrt As New WordReport(Tables("管理表"),tm,fl1) '定义一个WordReport
    wrt.Build() '逐行生成报表
    wrt.SaveToPDF(fl2) '保存为PDF文件
    wrt.Quit() '退出
    Dim Proc As New Process '打开PDF文件
    Proc.File = fl2
    Proc.Start()
ElseIf tb.SelectedPage.Text = "Page2" Then
    Dim tm As String  = ProjectPath & "Attachments\准考证B.doc" '指定模板文件
    Dim fl1 As String = "D:\准考证\准考证B.doc" '指定目标文件
    Dim fl2 As String = "D:\准考证\准考证B.pdf" '指定目标PDF文件
    Dim wrt As New WordReport(Tables("管理表"),tm,fl1) '定义一个WordReport
    wrt.Build() '逐行生成报表
    wrt.SaveToPDF(fl2) '保存为PDF文件
    wrt.Quit() '退出
    Dim Proc As New Process '打开PDF文件
    Proc.File = fl2
    Proc.Start()
End If
上述代码在所在页面时,如在表(为副表)中选择N行,但却只显示第1行的准考证,而不是我想要的N张准考证!
Dim tm As String  = ProjectPath & "Attachments\准考证B.doc" '指定模板文件
    Dim fl1 As String = "D:\准考证\准考证B.doc" '指定目标文件
    Dim fl2 As String = "D:\准考证\准考证B.pdf" '指定目标PDF文件
    Dim wrt As New WordReport(Tables("管理表"),tm,fl1) '定义一个WordReport
    wrt.Build() '逐行生成报表
    wrt.SaveToPDF(fl2) '保存为PDF文件
    wrt.Quit() '退出
    Dim Proc As New Process '打开PDF文件
    Proc.File = fl2
    Proc.Start()
但上面这段代码却可以选择表中的N行,显示N张准考证;窗口是单独的、表不是副表;
这个问题是什么原因造成的?请版主指教!

 回到顶部
帅哥哟,离线,有人找我吗?
lisheng1971
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/12/2 20:01:00 [只看该作者]

另外再追加一个按钮整合的问题:
比如在Page2中的表(副表),对应有2个模板,一个是Excel的,另一个是Word的,我如果想按模板导出的话,要做2个导出按钮,整个项目做下来,类似的情况还有很多,那要做很多个按钮,现在想在一个按钮中实现,这个代码应该如何编写?比如下面的代码,在不同的页面中可以实现,但要在同一个页面,不知能否可行?请版主指教!
Dim tb As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim pg As WinForm.TabPage = tb.SelectedPage
Dim doc As PrintDoc = e.Form.GernatePrintDoc(pg)
If tb.SelectedPage.Text = "Page2" Then
    Dim tm As String  = ProjectPath & "Attachments\准考证.doc" '指定模板文件
    Dim fl1 As String = "D:\准考证\准考证.doc" '指定目标文件
    Dim fl2 As String = "D:\准考证\准考证.pdf" '指定目标PDF文件
    Dim wrt As New WordReport(Tables("管理表"),tm,fl1) '定义一个WordReport
    wrt.Build() '逐行生成报表
    wrt.SaveToPDF(fl2) '保存为PDF文件
    wrt.Quit() '退出
    Dim Proc As New Process '打开PDF文件
    Proc.File = fl2
    Proc.Start()
ElseIf tb.SelectedPage.Text = "Page1" Then
    Dim Book As New XLS.Book(ProjectPath & "Attachments\资格验审.xls")
    Dim fl As String = ProjectPath & "Reports\资格验审.xls"
    Book.Build()
    Book.Save(fl)
    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    App.Visible = True
    ShowAppWindow("Page1",2)
    Ws.PrintPreview
    App.Quit
End If
如果都在Page2中,该如何才能点击同一个按钮,实现两种不同的导出效果?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/2 20:32:00 [只看该作者]

回复1楼

 

Dim wrt As New WordReport(Tables("管理表"),tm,fl1) '定义一个WordReport

 

改成

 

Dim wrt As New WordReport(Tables("窗口1_Table1"),tm,fl1) '定义一个WordReport

 

回复2楼

 

如果你的excel和word要同时生成,那么,两段代码合并在一起即可


 回到顶部
帅哥哟,离线,有人找我吗?
lisheng1971
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/12/2 21:49:00 [只看该作者]

谢谢!!!第一个问题,我大概能理解了。
第二个追加问题:不是要同时生成,那样我就不困惑了,是按所需选择性的生成

 回到顶部
帅哥哟,离线,有人找我吗?
lisheng1971
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/12/2 22:14:00 [只看该作者]

补充说明一下:因为流程原因,要先进行安排,然后根据安排生成准考证,比如在Page2页面,当我点击按钮,应该出现选择之类的,当我先选择生成安排表,然后填写好数据后再导回,这时我如再点击按钮,出现选择后,我选生成准考证

 回到顶部
帅哥哟,离线,有人找我吗?
lisheng1971
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/12/2 22:57:00 [只看该作者]

Dim tb As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim pg As WinForm.TabPage = tb.SelectedPage
Dim doc As PrintDoc = e.Form.GernatePrintDoc(pg)
If tb.SelectedPage.Text = "page2" Then
    Dim tm As String  = ProjectPath & "Attachments\准考证.doc" '指定模板文件
    Dim fl1 As String = "D:\准考证\准考证.doc" '指定目标文件
    Dim fl2 As String = "D:\准考证\准考证.pdf" '指定目标PDF文件
    Dim wrt As New WordReport(Tables("管理_Table8"),tm,fl1) '定义一个WordReport
    wrt.Build() '逐行生成报表
    wrt.SaveToPDF(fl2) '保存为PDF文件
    wrt.Quit() '退出
    Dim Proc As New Process '打开PDF文件
    Proc.File = fl2
    Proc.Start()
ElseIf tb.SelectedPage.Text = "Page2" Then
    Dim Book As New XLS.Book(ProjectPath & "Attachments\考核.xls")
    Dim fl As String = ProjectPath & "Reports\考核.xls"
    Book.Build()
    Book.Save(fl)
    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    App.Visible = True
    ShowAppWindow("考核",2)
    Ws.PrintPreview
    App.Quit
End If
比如上述代码,就只执行第一段的代码,我是想能否点击按钮后,根据当前流程选择要生成的word或Excel报表?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/2 23:11:00 [只看该作者]

你选择流程怎么选择的?弹出一个窗口选择?选择完以后,记录一下选择了哪一个不行?

 回到顶部
帅哥哟,离线,有人找我吗?
lisheng1971
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/12/2 23:35:00 [只看该作者]

流程大概就是:比如在page2页面,点击按钮,弹出一个窗口(要不没法选),然后我根据需求选择要生成的报表

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/3 9:11:00 [只看该作者]

以下是引用lisheng1971在2018/12/2 23:35:00的发言:
流程大概就是:比如在page2页面,点击按钮,弹出一个窗口(要不没法选),然后我根据需求选择要生成的报表

 

你再做一个窗口啊,窗口加入两个按钮,点击不同按钮执行不同操作。


 回到顶部
帅哥哟,离线,有人找我吗?
lisheng1971
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1687 威望:0 精华:0 注册:2016/4/14 9:45:00
  发帖心情 Post By:2018/12/3 15:47:00 [只看该作者]

Dim tb As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim pg As WinForm.TabPage = tb.SelectedPage
Dim doc As PrintDoc = e.Form.GernatePrintDoc(pg)
If tb.SelectedPage.Text = "page2" Then
    Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
    dlg.Filter= "Excel文件|*.xls|Word文件|*.doc|Access文件|*.mdb" '设置筛选器
    If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
        MessageBox.Show("你选择的是:" & dlg.FileName,"提示") '提示用户选择的文件
        Dim Book As New XLS.Book(ProjectPath & "Attachments\考核.xls")
        Dim fl As String = ProjectPath & "Reports\考核.xls"
        Book.Build()
        Book.Save(fl)
        Dim App As New MSExcel.Application
        Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
        Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
        App.Visible = True
        ShowAppWindow("考核",2)
        Ws.PrintPreview
        App.Quit
    ElseIf dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
        MessageBox.Show("你选择的是:" & dlg.FileName,"提示") '提示用户选择的文件
        Dim tm As String  = ProjectPath & "Attachments\准考证.doc" '指定模板文件
        Dim fl1 As String = "D:\准考证\准考证.doc" '指定目标文件
        Dim fl2 As String = "D:\准考证\准考证.pdf" '指定目标PDF文件
        Dim wrt As New WordReport(Tables("管理_Table8"),tm,fl1) '定义一个WordReport
        wrt.Build() '逐行生成报表
        wrt.SaveToPDF(fl2) '保存为PDF文件
        wrt.Quit() '退出
        Dim Proc As New Process '打开PDF文件
        Proc.File = fl2
        Proc.Start()
    End If
End If
版主,经过对帮助的学习,编写了上述代码,到是基本实现了,一个按钮控制在同一个page页面中的表的两种打印预览方式,只是相对还是麻烦些,我要在弹出的窗口中到相应的盘中N个模板文件中找出我想要的模板文件后选择好再点OK就可以;
现在想实现:我只有2个模板,1个EXCEL、1个WORD,是否可以整合在代码中,点击按钮后,选择EXCEL或WORD模板打印预览?

 回到顶部
总数 11 1 2 下一页