MasteringVFP/2/3/1

出自VFP Wiki

在2005年4月21日 (四) 10:49由Elleryq (對話 | 貢獻)所做的修訂版本
跳轉到: 導航, 搜尋

簡單來說, ? 和 ?? 都是印出資料.

? your_var 就是印出 your_var 裡面的內容 ? "Hello world!" 就是印出 "Hello world!" ? 1+2 則會印出 3

?? 也是印出資料,和 ? 不同的是,他不會印出換行字元. 所以\ ?? 1+2 會印出 3 ?? "Hello world!" 之後,在 3 的後面會緊接著出現 Hello world!

結果: 3Hello world!

早期 FoxPro 的時代,這個指令經常被使用來製作報表.在進入Windows的時代以後,這個指令已經越來越少被使用到了,但是在先行測試Class/Function/Class的時候仍然相當有用.


目錄

 ? | ?? 命令

用途

評量運算式並顯示其結果。

語法

? | ?? Expression1 [PICTURE cFormatCodes] | [FUNCTION cFormatCodes] |
[VnWidth] [AT nColumn]
[FONT cFontName [, nFontSize] [STYLE cFontStyle | Expression2]]
[, Expression3] ...

參數

 ? Expression1

  • 評量運算式 Expression1 的值,然後在輸出評量結果之前,先輸出一個歸位與換列字元。
評量結果顯示在 Visual !FoxPro 主視窗或者作用中的使用者自定義視窗的下一行,並且如果功能代碼 cFormatCodes 或系統記憶體變數 _ALIGNMENT 沒有指定其他值,該結果則列印在一頁的左邊界中。
  • 如果省略了運算式,則顯示或列印一個空行。當包含多個運算式時,請記得使用逗號分隔各個運算式;運算式結果之間將插入一個空格。
  • 如果 Expression1 是一個物件,則輸出文字串 "(Object)"。

 ?? Expression1

  • 評量運算式 Expression1 的值,並把結果顯示在 Visual !FoxPro 主視窗、活動的使用者定義視窗或者印表機目前行的目前位置上。輸出評量結果前不輸出歸位與換列字元。

PICTURE cFormatCodes

  • 指定顯示運算式 Expression1 評量結果的樣版格式。
cFormatCodes 可以包括功能代號、樣版符號或者兩者的組合。可以在 Format 屬性和 !InputMask 屬性中使用相同的代碼。
  • 功能代號影響結果輸出的總體格式,樣版符號則只對結果中的單個字元有影響。
如果 cFormatCodes 中使用了功能代號,那麼功能代號必須放在樣版符號之前,並且功能代號之前必須加 @ 符號。沒有內嵌空格的多重功能代號可以緊接著放在 @ 之後。
最後一個功能代號之後必須有一個或多個空格。空格代表著功能代號的結束和樣版符號的開始。

FUNCTION cFormatCodes

  • 指定在 ? 和 ?? 輸出中的功能代號。如果包括功能子句,則不要把 @ 放在功能代號之前。當 PICTURE 中包括功能代號時,功能代號前必須使用 @。

VnWidth

  • 指定一種特殊功能代號,能使字元運算式的結果在有限行數中垂直伸展。 nWidth 指定輸出的直行數。
? 'This is an example of how the V function code works.' ;
FUNCTION 'V10'

AT nColumn

  • 指定顯示輸出結果的行數。這個選項使您能夠在指定的若干行中對齊輸出結果,以便建立一個表格。數值運算式 nColumn 可以是傳回數值的使用者自定義函數。

FONT cFontName [, nFontSize]

  • 指定用於 ? | ?? 輸出的字體。cFontName 指定字體名稱,nFontSize 指定字體的大小。例如,下列命令用 16 點大小的 Courier 字體顯示系統日期:
? DATE( ) FONT 'Courier',16
  • 如果給出 FONT 子句但是沒有指定字體大小 nFontSize,此時字體大小為 10 點大小。
  • 如果省略了 FONT 子句,並且 ? | ?? 的輸出結果放在 Visual !FoxPro 主視窗中,則輸出的字體為 Visual !FoxPro 主視窗字體。
如果省略了 FONT 子句,並且 ? | ?? 的輸出結果放在使用者自定義視窗中,則輸出的字體為使用者自定義視窗字體。
    • 如果找不到指定的字體,則用具有相似字體特性的字體代替。

STYLE cFontStyle

  • 指定用於 ?|?? 輸出的字體樣式。如果省略 STYLE 子句,則使用「標準」字體樣式。如果找不到指定的字體,則用具有相似字體特性的字體代替。
    • 注意
當您使用 STYLE 子句指定字體樣式時,必須包含有 FONT 子句。
  • 可以用 cFontStyle 指定的字體樣式有:
字元 字體樣式 字元 字體樣式 字元 字體樣式
B 粗體 I 斜體 N 標準
O 外框 Q 不透明 S 加陰影
- 加刪 除線 T 透明 U 加底線
  • 可以使用多個字元的組合來指定字體樣式。例如,下面的命令用 Courier 粗斜體來顯示系統日期:
? DATE( ) FONT 'COURIER' STYLE 'BI'

附註

  • ? 和 ?? 評量運算式的值,並把評量結果傳送到 Visual !FoxPro 主視窗、作用中的使用者自定義視窗或者印表機上。
  • 如果 SET PRINTER 是 ON 且 SET CONSOLE 為 ON,則運算式的評量結果送到印表機和 Visual !FoxPro 主視窗或作用中的使用者自定義視窗上。
如果 SET PRINTER 為 ON 且 SET CONSOLE 為 OFF,運算式評量結果則只送到印表機。
  • PICTURE 引數與 FUNCTION 引數是有差異的,FUNCTION 引數能以單一個功能代號作全體之統一格式化輸出,而 PICTURE 引數則是一對一的格式化輸出。
如果欲使 PICTURE 引數也能達到整體格式化的效果,必須於功能代號前加上 @ 符號。範例如下:
? "FoxPro-programming" FUNCTION "!"
? "FoxPro-programming" PICTURE "!"
? "FoxPro-programming" PICTURE "!!!!!!!!!!!!!!!!!!"
? "FoxPro-programming" PICTURE "@!"
輸出結果:
FoxPro-PROGRAMMING
F
FoxPro-PROGRAMMING
FoxPro-PROGRAMMING

範例

? 15 * (10+10) ? '歡迎使用 ' PICTURE '@!' ?? 'Visual FoxPro'