国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VFP動態(tài)定位打印表格

 

  在使用VFP設(shè)計應(yīng)用系統(tǒng)的過程中,應(yīng)用系統(tǒng)的表格輸出部分一般都是在報表設(shè)計器下設(shè)計完成的,設(shè)計出來的表格,格式固定,位置固定。但在實踐中我們發(fā)現(xiàn):在一種打印機下調(diào)試設(shè)計出來的表格,換到另一種打印機時,表格的位置發(fā)生了變化,常常要靠移動紙張來解決。筆者經(jīng)過多次測試后,利用編程解決了這個問題。

  筆者通過對VFP的報表文件進(jìn)行分析,發(fā)現(xiàn)報表文件其實同數(shù)據(jù)表的結(jié)構(gòu)是相同的。其中后綴為.frx的文件存放報表控件一些主要信息,而后綴為.frt的文件存放的是備注部份內(nèi)容。這些文件都可以使用數(shù)據(jù)表的操作命令,可以使用VFP的命令和函數(shù)來改變報表控件中一些值的大小,如在VFP命令窗口中對一個盤中已存在的名為“干部登記表"的報表文件進(jìn)行操作:

  USE 干部登記表.frx

  BROW

  這時我們看到的是一個數(shù)據(jù)表的內(nèi)容列表方式,表中包含報表的字體、大小、顏色、對象性質(zhì)等信息。這里我們關(guān)心的是各對象的位置參數(shù),通過對這個數(shù)據(jù)表的測試、分析,可以得出objtype關(guān)鍵字段的信息。

  Objtype代表的是報表中的各控件的類型,下面列出的是報表設(shè)計器中各控件在數(shù)據(jù)表文件中的objtype的值:

控件名

objtype值

標(biāo)簽

5

域控件

8

線條

6

矩形

7

圓角矩形

7

圖片/active綁定控件

17

(其中圓角矩形offset值為16,矩形為0)


  數(shù)據(jù)表中的vpos代表控件距報表左邊的距離,hpos值為距報表最上邊的距離,height值為控件的高度,width值為控件的寬度。

  當(dāng)objtype為9時,為報表設(shè)計器中基本項,它們通過objcode來區(qū)分。下面是報表中的基本項的objcode的值:

基本項 objtype值
標(biāo)題項 0
頁標(biāo)頭項 1
細(xì)節(jié)項 4
頁注腳項 7
總結(jié)項 8


  以上這些項的vpos、hpos值都為0,height值為高度(距上一項目的高度),width值一般都為零,實際寬度是由打印設(shè)置中的紙張大小決定的。

  當(dāng)我們了解這些字段所代表的內(nèi)容之后,在程序中我們只要增加或減少數(shù)據(jù)表中所有報表控件的vpos值,就可以增大或減小打印輸出中的左邊距;增加或減少數(shù)據(jù)表中所有報表控件的hpos值,同時增加或減少報表相關(guān)基本項的height值,就可以改變打印輸出中的上邊距。下面我們用一個簡單的例子演示程序操作過程。

  一、利用報表設(shè)計器設(shè)計如圖1的程序報表,報表命名為“干部登記表”。


  圖1 干部登記表

  二、新建一個表單命名為“打印測試”,表單設(shè)計如圖2。


  圖2 打印設(shè)置表單

  表單中包括三個Lable控件,兩個微調(diào)按鈕,二個命令組按鈕。

  在“改變位置”按鈕的Click. Event 事件中加入如下代碼,移動距離分別為上下移動數(shù)、左右移動數(shù)乘以392.7。

  SELE 0

   USE 干部登記表.frx

   GO 2

   REPL HEIGHT WITH HEIGHT+THISFORM.SXYD.VALUE*392.7

 ?。Γσ苿訕?biāo)題項或頁標(biāo)頭項的位置

   REPL VPOS WITH VPOS+THISFORM.上下移動數(shù).VALUE*392.7 FOR (OBJTYPE>4 AND OBJTYPE<9) OR OBJTYPE=17

  &&移動報表中各控件的上下位置,移動數(shù)為“上下移動數(shù)”微調(diào)按鈕中輸入的值,值為正數(shù)向下移動,負(fù)數(shù)向上移動。

   REPL HPOS WITH HPOS+THISFORM.左右移動數(shù).VALUE*392.7 FOR (OBJTYPE>4 AND OBJTYPE<9) OR OBJTYPE=17

   USE

 ?。ΓΥ蜷_報表庫后一定要關(guān)閉,不然在運行這個報表時要出錯。

   THISFORM.上下移動數(shù).VALUE=0

   &&執(zhí)行后上下移動數(shù)歸零

   THISFORM.左右移動數(shù).VALUE=0

 ?。Γ?zhí)行后左右移動數(shù)歸零

  “打印”命令按鈕的Click Event 事件中加入如下代碼:

  REPO FORM 干部登記表 TO PRINT NOCO

  “預(yù)覽”命令按鈕的Click Event 事件中加入如下代碼:

  REPO FORM 干部登記表 PREV NOCO

  “退出”命令按鈕的Click Event 事件中加入如下代碼:

  THISFORM.RELEASE

  在運行該程序后,在打印紙放置位置不變的情況下,只需改變上下移動數(shù)、左右移動數(shù)的值,就可以改變打印紙上輸出內(nèi)容的位置。

  通過上面的介紹,我們可以在各類表格設(shè)計過程中,利用以上的方法,就可以生成靈活方便實用的各式報表。 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
淺談VFP報表打印問題
巧用VFP的Grid表格控件
VFP中多條件數(shù)據(jù)查詢程序的實現(xiàn)
看實例學(xué)VFP:用sql語句修改數(shù)據(jù)表記錄
Access教程 第五章 窗體
第九章 VB的數(shù)據(jù)庫操作
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服