線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2904
推到 Plurk!
推到 Facebook!

請問網際網路應用: 資料庫 + 報表 使用何種方案 ?

缺席
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-15 16:16:02 IP:211.76.xxx.xxx 訂閱
請問我要用 Delphi 應用 IE (Client 端)寫查詢更新資料庫及報表列印的系統, 請各位前輩建議使用何種方案架構 ?
如果 Client 端不使用 IE 有何建議使用何種架構方案 ?
目前我是評估使用 IntraWeb 但是報表列印部份不知如何解決, 並且好像使用 IntraWeb 的人好像越來越少是不是 ?
謝謝大家 !!!
------
將問題盡快結案也是一種禮貌!
yangkee
一般會員


發表:0
回覆:1
積分:0
註冊:2007-08-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-22 15:53:19 IP:222.209.xxx.xxx 未訂閱
intraweb的资料确实太少,help和demo都是2005年的了:-(
我现在也在用intraweb写东西,同样苦于资料难寻,希望大家多多交流
intraweb5-->intraweb7-->intraweb9的改动实在太大了,而d2007的demo还是intraweb7的,有误导之嫌
这个估计对你有帮助
用 rave 实现 intraWeb 报表http://hi.baidu.com/rarnu/blog/item/4a471fd5953ebdc650da4b61.html
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-26 11:28:02 IP:218.163.xxx.xxx 訂閱
你好:

我們是做成 Excel ... 然後 WebApplication.SendStream

參考參考
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-10-27 14:17:53 IP:59.40.xxx.xxx 訂閱
1. 如果客户端不用 IE,那就简单了。你可以用 N Tier 模式,客户端从服务器把需要的 Data 拿到,在客户端自己生成报表。用什么报表工具都可以。

2. 如果客户端是 IE,一定要在 IE 里操作,而且服务器端是 IntraWeb,我还真的做过。办法如下:

===========
1. 在服务器端,我写了一个可以打印报表的程式。我用了 FastReprot 因为 FastReport 可以把报表结果输出为一个 File,这个 File 可以由 FastReport 来打开。为了让 IntraWeb 能够获得这个报表,我把这个程式写成了一个 COM ,其实你也可以直接把报表生成部分的代码直接写到 IntraWeb 里。

2. IE 里提交了某个访问,也就是点了 IntraWeb 的某个 Button,在 IntraWeb 的 CGI 或者 ISAPI 里,我去调用前面写的那个 COM 的某个函数,获得报表文件的 Data,然后在 IntraWeb 里直接输出给 IE

3. IE 端收到报表的 File Data,弹出保存档案的对话框。这是一个 FastReport 的报表档,大概是 abc.frt,对不起,5年前做过,忘记了 FastReport 的报表档的后缀名了。

4. 客户端,你用 Delphi 写一个可以打开浏览 FastReport 的报表档的程式。这个简单,丢一个 FastReport 的 Control 到你的 Delphi 的 Form 里就可以了。

5. 让用户更简单,当然程式也就更复杂的是:让第4步你做的那个报表 Preview 的程式关联到后缀是 frt 的档案上,IE 在下载完成后,将会自动启动第4步写的程式,打开那个报表 Preview 给用户。用户在里面点选 Print button 就可以直接打印了。

上面 5 步,可能涉及到的有点麻烦的问题是:
1. 如何让 IntraWeb 去调用 COM 还不出错。我曾经在这里被卡住,最后解决了。如何解决的已经忘记了;
2. 如何让 IntraWeb 输出一个 TStream 给 IE,让 IE 认为是 File Download 并且还知道 File Name,这个查下资料就能查到。我也已经忘记了。

=======================================

另外一个解决办法是采用 ActiveForm 内嵌到 IE 的 Web Page 里的方式。可以这样做:
1. 写一个普通的 Delphi 程式,内有报表 Control ,你采用 FastReport 或者其它任何一个报表都可以;
2. 这个程式,通过 Socket Connection 或者 WebService 和一个服务器端通讯来获取报表所需要的 Data,当然因此你需要些一个服务器端的程式。
3. 这个通过 N Tier 的模式从远端拿到数据并生成报表的程式调试通过没问题后,把它转换为一个 Active Form 程式。
4. 把编译后的 Active Form 发布到你的网页里,IntraWeb 只需要在适当的时候输出这个页面就可以了。用户就可以在他的 IE 页面里看到这个程式的画面,打开报表,打印报表。
系統時間:2024-04-20 5:00:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!