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

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



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


第 16 樓

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

syntech 寫到:
CPS0204 寫到:


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


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



此法不走php-> com 而是直接 php->run exe
若用此功能,將vfp的cursor及report報表功能...瞬間提升至browser 假三階模式!
反正user也看不出來,我們用vfp+php+run exe 做出來的報表!
反正user也不懂!滿足user需求即可
可讓我們這些foxuser程序員.......多存活個N年!
就是普通日常的erp雙向輸入,使用window form!
但少數的老闆報表或業務報表,可以用手機,平板....等mobile...來單向查web form 查詢報表(pdf).......
Twisted Evil Twisted Evil Twisted Evil
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 17 樓

發表發表於: 星期六 三月 25, 2023 2:36 pm    文章主題: 引言回覆

平時有燒好香.

正好這次遇到要用 WORD 合併報表列印,
但原來網路上找到的合併報表列印有點情況,
包裝成DCOM不行,
但在VFP中測試又正常
想到有這篇PO文.
直接包裝成執行檔就好了

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

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



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


第 18 樓

發表發表於: 星期一 三月 27, 2023 7:39 am    文章主題: 引言回覆

我都寫一個foxpro exe 可以分擔php 很多的資料處理,及報表輸出!
foxpro 的report 太好用了,畫線畫框,填入SQL資料,畫圖!畫二維碼,都是全能的
反正都丟給exe 做,做完有需要回傳給php ,就生成PDF 或是傳大量的文字經SQL的暫存檔傳回php (連編成json都免了)!

然後就是看PHP 表現的時刻!
稍微頓一下1秒.......省了開發者非常多的時間,尤其對於老狐友們,更是快捷穩定的做法!
只要不做 (可視)的畫面輸出.........我都改成 PHP 呼叫 EXE來處理!

user ->browser ->php -> foxpro.exe -> php
回頂端
檢視會員個人資料 發送私人訊息
foxy



註冊時間: 2007-08-16
文章: 231
來自: 泰國

第 19 樓

發表發表於: 星期一 三月 27, 2023 12:50 pm    文章主題: 引言回覆

CPS0204 寫到:

[color=blue]1.有需要report from 報表 的-->使用php run myfoxpro.exe 就可以生成pdd的檔案


這個很神奇啊, 小弟不會, 麻煩大哥能否展示 PHP 代碼

謝謝

_________________
進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
CPS0204



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


第 20 樓

發表發表於: 星期一 三月 27, 2023 1:14 pm    文章主題: 引言回覆

foxy 寫到:
CPS0204 寫到:

[color=blue]1.有需要report from 報表 的-->使用php run myfoxpro.exe 就可以生成pdd的檔案


這個很神奇啊, 小弟不會, 麻煩大哥能否展示 PHP 代碼

謝謝



php 如下,請自行改良



<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>pgondan.php</title>
</head>
<body>
<?php


/** php 傳送流檔案
* @param String $url 接收的路徑
* @param String $file 要傳送的檔案
* @return boolean
*/

#http://your_ip/pgondan.php?gonno=120103-004 備註:gonno須小寫 從web 呼叫此pgondan.php
$gonno = $_GET["gonno"];
$pass00=rand(10000,99999); &&亂數
$file = "C:\TEMP\PDF-$gonno-$pass00.PDF"; &&暫存檔名,由vfoxpro 的 report 生成
$filename = $file;


$runtxt="callfox1.exe $pass00 PRINT-GONDAN $gonno 2000.01.01 2000.01.01"; &&傳入vfoxpro 的參數,有密碼,執行動作,工單號碼,起始截止日期等,請自由增減

echo $runtxt;
$a = exec($runtxt ); &&呼叫forpro的exe callfox1.exe
usleep(1000000); &&一定要等待


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

@readfile($file);
unlink($file);
?>
</body>
</html>
回頂端
檢視會員個人資料 發送私人訊息
CPS0204



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


第 21 樓

發表發表於: 星期一 三月 27, 2023 1:19 pm    文章主題: 引言回覆

上述有談到:
&&生成PDF後馬上QUIT,控制權交回PHP,等待1秒後,可讀到 此暫存檔PDF
備註:缺點是你的PDF檔名及程式名稱,會在瀏覽器列被看到,所以需朝加密網址,或打亂網址的安控去改良他!


已經改善ok!
傳入php 的參數(工單號碼),不要用_get
改用 _post 則可以加密,參數不會秀在網址上


CPS0204 在 星期六 四月 22, 2023 7:09 pm 作了第 4 次修改
回頂端
檢視會員個人資料 發送私人訊息
foxy



註冊時間: 2007-08-16
文章: 231
來自: 泰國

第 22 樓

發表發表於: 星期一 三月 27, 2023 4:15 pm    文章主題: 引言回覆

CPS0204 寫到:
續上:
在vfoxrpo 的CALLFOX1.exe 中 (win10 可用)

SET PRINTER TO NAME 'Microsoft Print To PDF'
PDFNAME2='c:\TEMP\??????.PDF' &&就是由PHP傳入的PDF暫存檔名
RNAME1='YOUR_REPORT'


感謝大哥不吝賜教, 測試成功

_________________
進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm


foxy 在 星期一 三月 27, 2023 5:13 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
syntech



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

第 23 樓

發表發表於: 星期一 三月 27, 2023 4:16 pm    文章主題: 引言回覆

不過現在卡死中.
因為我用的 WORD 合併列印 函式 水土不服.
單獨執行可以

讓PHP 用EXEC() 或是 拐個彎從 WScript.Shell 繞過去執行 (用意就是讓他可以跑到前台顯示),
但跑到用 WORD.APPLICATION 執行 VBA 巨集就卡死.

不過, FOXPRO 程式本身運作是正確的.


---
上面的跟我用的一樣.

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

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



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


第 24 樓

發表發表於: 星期一 三月 27, 2023 7:40 pm    文章主題: 引言回覆

syntech 寫到:
不過現在卡死中.
因為我用的 WORD 合併列印 函式 水土不服.
單獨執行可以

讓PHP 用EXEC() 或是 拐個彎從 WScript.Shell 繞過去執行 (用意就是讓他可以跑到前台顯示),
但跑到用 WORD.APPLICATION 執行 VBA 巨集就卡死.

不過, FOXPRO 程式本身運作是正確的.


---
上面的跟我用的一樣.


以前開發過vfoxpro 操控word ,copy 網友的來test,可以使用,請參考!
#DEFINE wdLineSpaceExactly 4
#DEFINE wdAlignParagraphLeft 0
#DEFINE wdBaselineAlignAuto 4
#DEFINE wdLineSpaceSingle 0
SELE DATA1
SCATTER MEMVAR MEMO
M.NO3=M.DEP_NO3+M.GAN_NO+'_'+ALLTRIM(M.ITEM_NO)

MEMO_FONTSIZE=THISFORM.SPINNER1.VALUE
*MEMO_FONTSIZE=22
*=MESSAGEBOX(TRAN(MEMO_FONTSIZE,'999'))

OP1=THISFORM.OPTIONGROUP1.VALUE
*OP1=1
IF !DIRECTORY('C:\MY_SOP')
MKDIR C:\MY_SOP
ENDIF



#DEFINE FALSE .F.
#DEFINE TRUE .T.



****************************************
* Word控制之頁面篇 *
* 1.0 2003.06.15 *
*    雅狐論壇 www.yafox.com     *
****************************************
*!* 寫在前邊的廢話:
*!* 前些日子寫了EXCEL控制的幾篇文章,大家似乎沒有什麼興趣(?]為沒有多少的流覽量嘛,好傷心 ;-(
*!* 或者大家已經有這方面的資料了,既然這樣那就寫幾篇關於WORD控制的文章吧,
*!* ?]為這方面的文章網很少見,其次WORD的排版能力確實比EXCEL強很多,
*!* 對於不規則表格的處理,非它莫屬,不過本文不深入討論不規則表格,
*!* 只是把它當成EXCEL之外的另一種選擇,為不熟悉EXCEL的用戶,
*!* 或者需要特定格式排版的用戶提供另一種方式的輸出報表.

WAIT "正在訪問 Word 軟體……" WINDOW NOWAIT
WordApp=CREATEOBJECT("Word.application") &&訪問WORD
IF TYPE("WordApp")#"O"
WAIT CLEAR
MESSAGEBOX( "訪問Word失敗!請檢查你的系統是否正確安裝 Word 軟體!",48,"Word不正常")
RETURN .F.
ENDIF
*!* WordApp.Caption ="許文遠"
*!* WordApp.Documents.Add &&建立一個新文檔
*!* WordApp.Documents(1).PageSetup.PaperSize =7 && 7-A4 6-A3 2-241 &&紙張類型
*!* WordApp.ActiveDocument.PageSetup.Orientation =0 && 紙張方向 0-豎 1-橫
*!* WordApp.Documents(1).PageSetup.TopMargin =26.4 *2.835 &&上空(單位:毫米,下同)
*!* WordApp.Documents(1).PageSetup.BottomMargin =25.4 *2.835 &&下空
*!* WordApp.Documents(1).PageSetup.LeftMargin =19.0 *2.835 &&左空
*!* WordApp.Documents(1).PageSetup.RightMargin =19.0 *2.835 &&右空
*!* WordApp.Documents(1).PageSetup.VerticalAlignment =0 &&頁面對齊方式 0-上 1-中3-下
*!* WordApp.Documents(1).PageSetup.HeaderDistance =22.0*2.835 &&頁眉位置
*!* WordApp.Documents(1).PageSetup.FooterDistance =19.0*2.835 &&頁?}位置
*!* WordApp.Documents(1).Sections(1).Headers(1).Range.Text =" www.yafox.com 許文遠 xuwy@21cn.com" &&頁眉
*!* WordApp.Documents(1).Sections(1).Headers(1).Range.Paragraphs.Alignment=2 &&頁眉右齊
*!* *WordApp.Documents(1).Sections(1).Footers(1).Range.Text ="" &&頁?}
*!* *WordApp.Documents(1).Sections(1).Footers(1).Range.Paragraphs.Alignment=2 &&頁?}居中
*!* WordApp.Documents(1).Sections(1).Footers(1).PageNumbers.Add.Alignment= 1 &&增?[一個居中的頁碼域在頁?}
*!* WordApp.Visible =.t. &&使Word可視
*!* ****************************************
WAIT "正在?]置 Word 頁面 " WINDOW NOWAIT
WordApp.VISIBLE =.F.
WordApp.CAPTION ='測試'
WordApp.Documents.ADD
WordApp.Documents(1).PageSetup.PAPERSIZE =7
WordApp.ActiveDocument.PageSetup.ORIENTATION =0
M2835=2.835
WordApp.Documents(1).PageSetup.TopMargin =12*M2835
WordApp.Documents(1).PageSetup.BottomMargin =25.4 *2.835
WordApp.Documents(1).PageSetup.LeftMargin =12*M2835 &&19.0 *2.835
WordApp.Documents(1).PageSetup.RightMargin =12*M2835 &&19.0 *2.835
WordApp.Documents(1).PageSetup.VerticalAlignment =0
WordApp.Documents(1).PageSetup.HeaderDistance =12*M2835 &&22.0*2.835
WordApp.Documents(1).PageSetup.FooterDistance =10*M2835 &&19.0*2.835

WordApp.Documents(1).Sections(1).Headers(1).RANGE.TEXT="SOP系統" &&www.yafox.com 許文遠 xuwy@21cn.com"
WordApp.Documents(1).Sections(1).Footers(1).PageNumbers.ADD.ALIGNMENT= 1 &&增?[一個居中的頁碼域在頁?}
WordApp.Documents(1).Sections(1).Headers(1).RANGE.Paragraphs.ALIGNMENT=2

*WordApp.Documents(1).Sections(1).Footers(1).Range.Text="頁?}"
WordApp.Documents(1).Sections(1).Footers(1).PageNumbers.ADD.ALIGNMENT= 1
WordApp.Documents(1).RANGE.TEXT="我的標題FFFFFFF" +CHR(13)
WordApp.Documents(1).RANGE.FONT.SIZE=11
WordApp.Documents(1).RANGE.FONT.NAME="黑體"
WordApp.Documents(1).RANGE.Paragraphs.ALIGNMENT= 1 &&1=CENTER 2=RIGHT 3=LEFT 1居中 3左??,2右??,4分散??
nend=WordApp.Documents(1).characters.COUNT
WordApp.Documents(1).content.insertafter( 'THIS IS A TEST')
*WordApp.Documents(1).content.FONT.SIZE=16


nend1=WordApp.Documents(1).characters.COUNT && ??字符?。
*=MESSAGEBOX(STR(nend)+'到'+STR(nend1))
*!* arangdate=WordApp.Documents(1).RANGE(nend-1,nend1)
*!* * arangdate.Font.Name="宋体"
*!* WITH arangdate
*!* .FONT.SIZE=8
*!* .FONT.COLOR=RGB(255,0,0)
*!* .Paragraphs.ALIGNMENT=3 && 段落??
*!* ENDWITH

NEW1=WordApp.Documents(1).characters.COUNT
*oWord.ActiveDocument.Range(100,250)
****************************************************************************
* WordTable=WordApp.Documents(1).TABLES.ADD(WordApp.Documents(1).RANGE(),10,60,1,1) &&插入表格
WAIT "正在?]置 Word 表格 " WINDOW NOWAIT
WordTable=WordApp.Documents(1).TABLES.ADD(WordApp.Documents(1).RANGE(LENC(WordApp.Documents(1).RANGE.TEXT)-1,LENC(WordApp.Documents(1).RANGE.TEXT)-1),6,2) &&插入表格

WordTable.RANGE.Paragraphs.ALIGNMENT= 0
WordTable.RANGE.FONT.NAME="標楷體"
WordTable.RANGE.FONT.SIZE=16
WordTable.RANGE.FONT.Bold=.F.
WordTable.RANGE.FONT.Italic =.F.
WordTable.RANGE.FONT.Underline =.F.
WordTable.BORDERS.ENABLE=1
WordTable.BORDERS(1).LineWidth = 12
WordTable.BORDERS(2).LineWidth = 12
WordTable.BORDERS(3).LineWidth = 12
WordTable.BORDERS(4).LineWidth = 12
WordTable.ROWS(1).BORDERS(1).LineWidth = 12
WordTable.ROWS(1).BORDERS(2).LineWidth = 12
WordTable.ROWS(1).BORDERS(3).LineWidth = 12
WordTable.ROWS(1).BORDERS(4).LineWidth = 12
WordTable.COLUMNS(1).WIDTH=6 *2.835
WordTable.COLUMNS(2).WIDTH=176 *2.835
* WordTable.Columns(3).Width=6 *2.835
*WordTable.Columns(4).Width=20 *2.835
*WordTable.ROWS(1).RANGE.FONT.SIZE=12
WordTable.ROWS(1).RANGE.FONT.Bold=.T.
*WordTable.Rows(1).Height=10 *2.835
WordTable.ROWS(1).Cells.VerticalAlignment= 1
WordTable.ROWS(1).RANGE.Paragraphs.ALIGNMENT = 1
WordTable.ROWS(1).HeadingFormat=.T.
FOR I=1 TO 3
WordTable.Cell(I,2).RANGE.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle
WordTable.Cell(I,2).RANGE.FONT.SIZE=12
WordTable.Rows(I).Height=10 *2.835
*WordTable.Cell(2,2).RANGE.FONT.SIZE=12
*WordTable.Cell(3,2).RANGE.FONT.SIZE=12
NEXT I
WordTable.Rows(2).Height=20 *2.835
************** 表格欄位合並
*oTable.Cell(1,2).Merge( oTable.Cell(1,3) )
WORDTABLE.Cell(2,1).Merge(WORDTABLE.Cell(2,2)) && 此行可執行
oRange1 = WORDTABLE.Rows[3].Range() &&本行可讓表格第3橫行,整行合併
oRange1.Cells.Merge()

*--------------------*表格欄位分割
*WORDTABLE.Cell(2,1).Split(1,2)

WORDTABLE.Rows[2].Cells.Split( 1, 3) &&分割出3個ˊ直欄
WORDTABLE.CELL(2,3).Split( 2,5) &&再將 CELL(2,3) 分割為 上下2格,左右5欄
WORDTABLE.CELL(2,1).WIDTH=50*2.835
WORDTABLE.CELL(2,1).Split( 2,5) &&再將 CELL(2,1) 分割為 上下2格,左右4欄
WORDTABLE.CELL(4,1).Split( 1,2) &&再將 CELL(4,1) 分割為 上下2格,左右4欄

WAIT "正在生成數據 " WINDOW NOWAIT
*FOR i=1 TO WordTable.COLUMNS.COUNT
* WordTable.Cell(1,i).RANGE.TEXT=CHR(64+i)
*NEXT
*!* FOR i=2 TO WordTable.ROWS.COUNT
*!* WordTable.Cell(i,1).RANGE.TEXT=i
*!* txt1=''
*!* FOR k=1 TO 230
*!* txt1=txt1+STR(k)+CHR(13)
*!* WordTable.Cell(k,1).RANGE.TEXT=STR(k)
*!* NEXT
*!* WordTable.Cell(i,2).RANGE.TEXT=txt1
*!* NEXT


SELE DATA1

WordTable.Cell(1,2).RANGE.TEXT='日期:'+M.F_DATE+SPACE(20)+'資料所屬人:'+M.DATA_USER




EDIT1A=M.F_MEMO2
WordTable.Cell(6,1).RANGE.TEXT='本文區' &&+CHR(13)+CHR(13)
WordTable.Cell(6,1).RANGE.FONT.SIZE=10
WordTable.Cell(6,2).RANGE.TEXT=CHR(13)+EDIT1A &&+CHR(13)+CHR(13)
WordTable.Cell(6,2).RANGE.FONT.SIZE=MEMO_FONTSIZE
NEW2=WordApp.Documents(1).characters.COUNT
arangdate=WordApp.Documents(1).RANGE(NEW1,NEW2)
arangdate.FONT.COLOR=RGB(0,0,0)
****************************************
*/oRange.Collapse
ORANGE=WordApp.Documents(1).RANGE
WITH ORANGE
.InsertParagraphAfter()
.InsertParagraphAfter()
.InsertParagraphAfter()
.insertafter('THIS IS END')
.InsertParagraphAfter()
.insertafter('AA'+CHR(13)+'BB'+CHR(13)+'CC' )
ENDWITH

NEW3=WordApp.Documents(1).characters.COUNT
arangdate3=WordApp.Documents(1).RANGE(NEW2,NEW3)
*=MESSAGEBOX(STR(NEW2)+'至'+STR(NEW3))
*!* WITH arangdate3
*!* .ParagraphFormat.LineSpacing = 10
*!* .FONT.SIZE=10
*!* .FONT.COLOR=RGB(0,0,255)
*!* ENDWITH
*NEW3B=WordApp.Documents(1).characters.COUNT
*!* WordApp.Documents(.insertafter( 'THIS IS END'+CHR(13))
*!* WordApp.Documents(1).FONT.SIZE=11
*odoc.Tables.Add(odoc.Range(nend1-1,nend1-1),nrow+2,7)
*=MESSAGEBOX(STR(NEW2))

NEW4=WordApp.Documents(1).characters.COUNT


SELE_4=WordApp.Documents(1).RANGE(NEW2,NEW3)
*!* WITH SELE_4
*!* .FONT.NAME='宋體'
*!* .FONT.SIZE=12
*!* .ParagraphFormat.ALIGNMENT=3
*!* ENDWITH
*SELE_5=WordApp.Documents(1).RANGE(NEW1,NEW3)

SELE_5=WORDAPP.DOCUMENTS(1).WORDTABLE.CESS(4,2).RANGE
SELE_5.FONT.NAME="細明體"
*******************************以下這段可RUN, 將所選的文字範圍,行距設定成 (固定行高 10.點)
WITH SELE_5.ParagraphFormat
.SpaceBefore = 0
.SpaceBeforeAuto = FALSE
.SpaceAfter = 0
.SpaceAfterAuto = FALSE
.LineSpacingRule = wdLineSpaceExactly
.LineSpacing = MEMO_FONTSIZE +1 &&固定行高?點
.ALIGNMENT = wdAlignParagraphLeft
.WidowControl = FALSE
.KeepWithNext = FALSE
.KeepTogether = FALSE
.PageBreakBefore = FALSE
.NoLineNumber = FALSE
.Hyphenation = TRUE

.CharacterUnitLeftIndent = 0 &&此行為本行的前置空白字元 ,預設=2 , 0至99
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 0
.LineUnitBefore = 0
.LineUnitAfter = 0
.MirrorIndents = FALSE

.AutoAdjustRightIndent = TRUE
.DisableLineHeightGrid = FALSE
.FarEastLineBreakControl = TRUE
.WORDWRAP = TRUE
.HangingPunctuation = TRUE
.HalfWidthPunctuationOnTopOfLine = FALSE
.AddSpaceBetweenFarEastAndAlpha = TRUE
.AddSpaceBetweenFarEastAndDigit = TRUE
.BaseLineAlignment = wdBaselineAlignAuto

ENDWITH
*****************************************
WordTable=WordApp.Documents(1).TABLES.ADD(WordApp.Documents(1).RANGE( NEW4-1,NEW4),1,2) &&插入表格
WordTable.RANGE.Paragraphs.ALIGNMENT= 0
WordTable.RANGE.FONT.NAME="細明體"
WordTable.RANGE.FONT.SIZE=8
WordTable.RANGE.FONT.Bold=.F.
WordTable.RANGE.FONT.Italic =.F.
WordTable.RANGE.FONT.Underline =.F.
WordTable.BORDERS.ENABLE=1
WordTable.BORDERS(1).LineWidth = 12
WordTable.BORDERS(2).LineWidth = 12
WordTable.BORDERS(3).LineWidth = 12
WordTable.BORDERS(4).LineWidth = 12
WordTable.ROWS(1).BORDERS(1).LineWidth = 12
WordTable.ROWS(1).BORDERS(2).LineWidth = 12
WordTable.ROWS(1).BORDERS(3).LineWidth = 12
WordTable.ROWS(1).BORDERS(4).LineWidth = 12
WordTable.COLUMNS(1).WIDTH=6 *2.835
WordTable.COLUMNS(2).WIDTH=176 *2.835
*WordTable.COLUMNS(3).WIDTH=64 *2.835
EDIT2A= M.USED_MEMO+CHR(13)
WordTable.Cell(1,1).RANGE.TEXT='心得' &&EDIT2A &&+CHR(13)+CHR(13)
WordTable.Cell(1,2).RANGE.TEXT=EDIT2A &&+CHR(13)+CHR(13)
WordTable.Cell(1,2).RANGE.FONT.SIZE=10


WAIT CLEAR



















NAME1='C:\MY_SOP\'+ALLTRIM(M.NO3)

DO CASE
CASE OP1=1
WordApp.VISIBLE =.T.
CASE OP1=2
WORDAPP.ActiveDocument.SaveAS( NAME1,1) &&建立一個新文檔
CASE OP1=3
WORDAPP.ActiveDocument.SaveAS(NAME1 ) &&建立一個新文檔
CASE OP1=4
WORDAPP.ActiveDocument.SaveAS(NAME1,8 ) &&建立一個新文檔
ENDCASE
*WORDAPP.ActiveDocument.SaveAs("C:\TESTWORD") && (,Cool=HTML
*WordApp.VISIBLE =.F.
IF OP1#1
WordApp.QUIT()
DO CASE
CASE OP1=2
=MESSAGEBOX('已輸出到:'+NAME1+'.DOC 成功',6,ZZ_BOX)
CASE OP1=3
=MESSAGEBOX('已輸出到:'+NAME1+'.DOCX 成功',6,ZZ_BOX)
CASE OP1=4
=MESSAGEBOX('已輸出到:'+NAME1+'.HTM 成功',6,ZZ_BOX)
ENDCASE
ENDIF





*!* **************************************以下為全部文章全選的屬性
*!* WITH WORDAPP.SELECTION
*!* .Font.Name= "細明體"
*!* .Font.Size= 11
*!* .EndKey && ?光?移到最后
*!* .TypeParagraph && ?行
*!* .TypeText(Space(4)+'ABCDE' ) && ??每循?一次能成功追加
*!* ENDWITH
*WordApp.SELECT

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



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

第 25 樓

發表發表於: 星期一 三月 27, 2023 10:14 pm    文章主題: 引言回覆

如果要硬搞也有 PHPWORD 可以用.
只是已經搞了一個 WORD Mail merge 的函式,可以直接套xls資料列印.
當然不會想著用硬來的方式列印

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

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



註冊時間: 2007-08-16
文章: 231
來自: 泰國

第 26 樓

發表發表於: 星期二 三月 28, 2023 10:03 am    文章主題: 引言回覆

CPS0204 寫到:

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


請教, 如果生成報表需要時間過長, 這個等待1秒鐘是否需要增加等待時間?

感謝

_________________
進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
CPS0204



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


第 27 樓

發表發表於: 星期二 三月 28, 2023 10:50 am    文章主題: 引言回覆

foxy 寫到:
CPS0204 寫到:

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


請教, 如果生成報表需要時間過長, 這個等待1秒鐘是否需要增加等待時間?

感謝

等一秒是指,生成pdf 之後等.....與生成報表時間無關

經實驗 vfoxpro 離開後,若不在php等一秒,php就抓到空檔
php 加入等待一秒後....相同的程式,就抓到pdf檔
可能與磁碟緩衝有關! .............我不知道如何加快windows的快取,最簡單的就是等一秒!
假如你report form 約10秒,那返回 php 後面也是等1秒即可,user的瀏覽器總等待就是12秒!
所以盡量讓exe 的report to pdf 速度快一點!,user才不會感覺是網頁當機!
回頂端
檢視會員個人資料 發送私人訊息
foxy



註冊時間: 2007-08-16
文章: 231
來自: 泰國

第 28 樓

發表發表於: 星期二 三月 28, 2023 3:04 pm    文章主題: 引言回覆

CPS0204 寫到:

假如你report form 約10秒,那返回 php 後面也是等1秒即可,user的瀏覽器總等待就是12秒!
所以盡量讓exe 的report to pdf 速度快一點!,user才不會感覺是網頁當機!


明白了, php 等待 vfp exe 跑完後再繼續運行下一行代碼, 所以這個一秒固定不變
謝謝您

_________________
進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
syntech



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

第 29 樓

發表發表於: 星期二 三月 28, 2023 3:54 pm    文章主題: 引言回覆

要是想控制得好一點,
可以用

$wsh = new com('WScript.shell');
$wsh->run('cmd.exe /c '.$command,0,true);

run 可以控制要不要等待執行完畢
Function Run(ByVal Command As String, [ByVal WindowStyle], [ByVal WaitOnReturn]) As Integer

'cmd.exe /c ' 這個通常要留.
透過cmd.exe 執行vfp程式.
當然直接跑vfp程式也行

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

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



註冊時間: 2004-12-27
文章: 469


第 30 樓

發表發表於: 星期二 三月 28, 2023 5:25 pm    文章主題: 引言回覆

我覺得要控制的不在vfp 執行檔 ; vfp 執行檔應該是單封行緒
不會有問題,但是vfp 執行完只代表 vfp 已經完全把資料丟給
pdf 產生器;至於pdf 要多久才產生完 ? 與頁數或使用什麼產生器
甚致於 pdf 產生器是否為多封行緒都有關吧?
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 上一頁  1, 2, 3  下一頁
2頁(共3頁)

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


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