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

cursor to html(只能用于vfp9.0)

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
pnyjq



註冊時間: 2005-04-19
文章: 7
來自: 中国广东省

第 1 樓

發表發表於: 星期三 四月 27, 2005 10:40 pm    文章主題: cursor to html(只能用于vfp9.0) 引言回覆

*************************************************************
* 模块名称:tohtml.prg
* 模块功能:生成html表格
* 使用环境:VFP9.0 ,由于使用了cast()函数,故不能用于8.0以下版本
* 调用方法:1、保存到一个网页文件
* strtofile(tohtml(),"d:\vfp.htm")
*
* 2、在com中调用

* Select * from Mytable
* local lcResult as string
* lcResult = ''
* lcResult = lcResult + web_top() && 网页顶部
* lcResult = lcResult + tohtml() && 表格内容
* lcResult = lcResult + web_root() && 网页底部

* CLOSE DATABASES ALL

* RETURN lcResult
*
* 最后修改:2004-8-31
* 编写:PNYJQ
*************************************************************
#DEFINE lcEnter CHR(13) + CHR(10)
#DEFINE lcRecorBegin [ <tr>] + lcEnter
#DEFINE lcRecorEnd [ </tr>] + lcEnter
#DEFINE lcFielBegin [ <td>]
#DEFINE lcFielEnd [</td>] + lcEnter
#DEFINE lcNodata [抱歉!找不到您查询的数据]

IF EMPTY(ALIAS())
RETURN lcNodata
ENDIF

IF RECCOUNT() = 0
RETURN lcNodata
ENDIF

LOCAL lcHtml as String
#DEFINE lnFcount FCOUNT()

TEXT TO lcHtml TEXTMERGE NOSHOW
<table border="1" width="100%" cellspacing="0" cellpadding="0">

ENDTEXT


lcHtml = lcHtml + ganHear() &&表头

SCAN
lcHtml = lcHtml + ganTable() &&记录
ENDSCAN

lcHtml = lcHtml + lcEnter + '</table>'
RETURN lcHtml

*-----------------------------------------------------
* 记录生成模块
*-----------------------------------------------------
FUNCTION ganTable
LOCAL lcRecor as String
lcRecor = lcRecorBegin
FOR i = 1 TO lnFcount
lcRecor = lcRecor + lcFielBegin + ALLT(CAST(EVALUATE(fiel(i)) as char(80))) + lcFielEnd
ENDFOR
lcRecor = lcRecor + lcRecorEnd
RETURN lcRecor

*-----------------------------------------------------
* 表头生成模块
*-----------------------------------------------------
FUNCTION ganHear
LOCAL lcRecor as String
lcRecor = lcRecorBegin
FOR i = 1 TO lnFcount
lcRecor = lcRecor + [<td align="center">] + allt(fiel(i)) + lcFielEnd
ENDFOR
lcRecor = lcRecor + lcRecorEnd
RETURN lcRecor

_________________
知足常乐!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
liangszpt



註冊時間: 2004-11-18
文章: 263
來自: な东省深圳市

第 2 樓

發表發表於: 星期四 四月 28, 2005 10:47 am    文章主題: 引言回覆

有没有在6.0底下都可以实现的方法啊?
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
pnyjq



註冊時間: 2005-04-19
文章: 7
來自: 中国广东省

第 3 樓

發表發表於: 星期五 四月 29, 2005 3:32 pm    文章主題: 引言回覆

把这一句ALLT(CAST(EVALUATE(fiel(i)) as char(80))) 写成自定义函数,将所有类型的变量转换成字符型,应该不难.
_________________
知足常乐!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
syntech



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

第 4 樓

發表發表於: 星期五 四月 29, 2005 4:02 pm    文章主題: 引言回覆

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

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



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

第 5 樓

發表發表於: 星期五 四月 29, 2005 4:07 pm    文章主題: 引言回覆

CAST(EVALUATE(fiel(i)) as char(80))
這一句是 " 把 fiel(i)的值,不論什麼資料型態, 通通轉成 最大SIZE 為 80字的字串".

所以,要針對不同的型態,以 DO CASE 的方式改寫,
就像另一篇相關討論的一樣.
http://vfp.sunyear.com.tw/viewtopic.php?t=336

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

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



註冊時間: 2005-04-19
文章: 7
來自: 中国广东省

第 6 樓

發表發表於: 星期六 四月 30, 2005 10:53 am    文章主題: 引言回覆

有时间的话写一个allToString函数,把所有的字段都转换成char,这样就更完美了.
_________________
知足常乐!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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