VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

可否在com 中 使用report form 報表功能,結果報錯(已經解決)
前往頁面 1, 2, 3  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
CPS0204



註冊時間: 2014-08-24
文章: 441


第 1 樓

發表發表於: 星期四 六月 23, 2022 2:23 pm    文章主題: 可否在com 中 使用report form 報表功能,結果報錯(已經解決) 引言回覆

我想使用php 呼叫vfp com

由瀏覽器,執行php ,再呼叫 vfp的com 處裡文字,開啟寫入讀取sql都沒問題!

但想使用vfp 的report 生成一個 C:\TEMP\MYFILE-GONDAN.PDF
結果使用瀏覽器執行 php 時報錯:

Fatal error: Uncaught com_exception: Source: php5.COM01 php5.COM01<br/>Description: test1 d:\test1.prg 第 20 列發生錯誤 此時不能操作使用者介面 2031 in...............


好像是說.com當中不可以有顯示的操作介面.....
可是我又想使用vfp 的report 功能,不顯示沒有關係,只要能背景生成pdf就可以了
程式碼如下:


SELECT TEMP1
SCATTER MEMVAR MEMO

SET PRINTER TO NAME 'Microsoft Print To PDF'
SET PRINTER TO "C:\TEMP\MYFILE-GONDAN.PDF"

Report Form GD_CQ1 To File "C:\TEMP\MYFILE-GONDAN.PDF" NOWAIT NOCONSOLE NODIALOG
<<此行有錯



請問:有甚麼解套的方法?
謝謝


CPS0204 在 星期六 六月 25, 2022 9:57 am 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 2 樓

發表發表於: 星期四 六月 23, 2022 7:01 pm    文章主題: 引言回覆

php 要生成 pdf , 為何不直接用 tcpdf ?
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
CPS0204



註冊時間: 2014-08-24
文章: 441


第 3 樓

發表發表於: 星期四 六月 23, 2022 10:49 pm    文章主題: 引言回覆

php 要生成 pdf , 為何不直接用 tcpdf ?
回答:因為php無法很快畫出report的線和內容!報表很複雜,想直接套用以開發好的fox report FORM
就不需要用PHP 來做報表!
PHP 只是過水,呼叫COM用的
回頂端
檢視會員個人資料 發送私人訊息
CPS0204



註冊時間: 2014-08-24
文章: 441


第 4 樓

發表發表於: 星期五 六月 24, 2022 8:13 am    文章主題: 引言回覆

問題已解決了!

改用瀏覽器,呼叫 php ,然後在php 中輸入下列

exec (myfoxpro1.exe);
就可以呼叫由vfp9 寫成的myfoxpro1.exe (當中有讀ms-sql資料及寫report form輸出成pdf檔,檔名=c:\temp\myfile1.pdf)
*****************
再由php寫下列:
$file = 'C:\TEMP\MYFILE1.PDF';

sleep(1); 備註:需等待1秒鐘!讓PDF寫入磁碟中

$filename = $file;
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
// 读取文件
@readfile($file);



就可以在瀏覽器中,預覽此pdf檔!



這樣可以繞開,由php呼叫com的不方便(com無法接受顯示功能)!



很滿意!


CPS0204 在 星期六 六月 25, 2022 10:00 am 作了第 3 次修改
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 5 樓

發表發表於: 星期五 六月 24, 2022 9:38 am    文章主題: 引言回覆

老實說,
在 PHP 裡叫VFP做事,實在很作弊
可以躲過很多安全機制,
而且很省事

XD

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
CPS0204



註冊時間: 2014-08-24
文章: 441


第 6 樓

發表發表於: 星期五 六月 24, 2022 10:23 am    文章主題: 引言回覆

老實說,
在 PHP 裡叫VFP做事,實在很作弊
可以躲過很多安全機制,
而且很省事
**************************
是的!

客戶須從瀏覽器看很多ms sql的報表 (這些表,vfp都已做過)
偷吃步方法:
1.有需要report from 報表 的-->使用php run myfoxpro.exe 就可以生成pdd的檔案,再由php撈回browser
備註:VFP9*.DLL RUNTIME 的DLL 檔須同步放在同個目錄中!

因以前有用vfp開發過報表,若要由php或 css 再重寫報表,很難!
2.不需要顯示的,純文字或數字運算-->>使用 php 呼叫vfoxpro com 即可!


由於php連通ms-SQL都沒問題,以上兩種方法都可活用!謝謝指導


CPS0204 在 星期五 六月 24, 2022 6:05 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
violetlkk



註冊時間: 2003-06-21
文章: 82
來自: kaohsiung

第 7 樓

發表發表於: 星期五 六月 24, 2022 4:12 pm    文章主題: 引言回覆

@CPS0204
你真強
這個方法可能是你第一個使用 之前沒看過
如果可以穩定的執行 那就可以產生漂漂亮亮pdf

tcpdf 可能是我不會使用 產生的pdf醜醜的
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
CPS0204



註冊時間: 2014-08-24
文章: 441


第 8 樓

發表發表於: 星期五 六月 24, 2022 5:59 pm    文章主題: 引言回覆

@violetlkk
這個方法可能是你第一個使用 之前沒看過
如果可以穩定的執行 那就可以產生漂漂亮亮pdf

tcpdf 可能是我不會使用 產生的pdf醜醜的

*******************************************
剛試過一天,沒問題,由php run myfox1.exe!
PHP 呼叫EXE 後,EXE可正常離開,不會咬住在WINDOWS 的記憶體!
例如:
http:www.myfox.idv.tw:8075/print_fox.php?gondan=2205-003
傳入給php 變數 工單號碼=2205-003,(先不考慮安控問題)
-----------------------------------------------------
傳入你要的參數例如 工單號碼!就可以印出report 到pdf
我在vfp當中使用REPORT FORM 畫線,插圖,填入MSSQL....文字或欄位等,都可以生成PDF檔!
但若是由PHP 及CSS 或JAVA 來畫圖畫線畫報表等<<<我也不會做!
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 9 樓

發表發表於: 星期六 六月 25, 2022 9:10 pm    文章主題: 引言回覆

請教一下,如果報表內容中有用到罕用字,
這個方式,還行得通嗎?
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 10 樓

發表發表於: 星期日 六月 26, 2022 12:38 am    文章主題: 引言回覆

我本來的想法應該是先把文件HTML化,
然後就可以用第三方函式印出PDF

像我這麼懶可能會先用WORD排好版,
用WORD轉成超爛的HTML版本,

Very Happy

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
CPS0204



註冊時間: 2014-08-24
文章: 441


第 11 樓

發表發表於: 星期日 六月 26, 2022 8:27 am    文章主題: 引言回覆

ckp6250 寫到:
請教一下,如果報表內容中有用到罕用字,
這個方式,還行得通嗎?

*************

應該說:原本vfp可以做的事,prg,report 或label,不要有form
都可以做原來的事!

罕用字先report form 到 此台的 c:\temp\my1.pdf
然後等1秒給php 調用至瀏覽器上可以的!
餵pdf 單向給瀏覽器...一定沒問題!
我有印工單的條碼字體到pdf再到瀏覽器同樣沒問題
回頂端
檢視會員個人資料 發送私人訊息
CPS0204



註冊時間: 2014-08-24
文章: 441


第 12 樓

發表發表於: 星期日 六月 26, 2022 8:29 am    文章主題: 引言回覆

syntech 寫到:
我本來的想法應該是先把文件HTML化,
然後就可以用第三方函式印出PDF

像我這麼懶可能會先用WORD排好版,
用WORD轉成超爛的HTML版本,

Very Happy


我更懶,直接拿原本的vfp 的form 輸出到pdf檔
連改都不用改!
也不需要先用word畫!


Laughing Laughing
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 13 樓

發表發表於: 星期日 六月 26, 2022 5:28 pm    文章主題: 引言回覆

所以我看到就覺得這方法真妙.
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
CPS0204



註冊時間: 2014-08-24
文章: 441


第 14 樓

發表發表於: 星期一 六月 27, 2022 8:34 am    文章主題: 引言回覆

php 的exec();

還可以用 shell_exec();,system();
看了google一天,try 一天,找不出他們呼叫myfox1.exe 的差異點在哪?
還是用exec()好了
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 15 樓

發表發表於: 星期一 六月 27, 2022 8:59 am    文章主題: 引言回覆

CPS0204 寫到:


應該說:原本vfp可以做的事,prg,report 或label,不要有form
都可以做原來的事!


只要不 "visual" 幾乎都可以,
所以執行訊息都得輸出到 log.txt

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 1, 2, 3  下一頁
1頁(共3頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作