用VFP 管理名片簿、通信錄時,經常要用到電話撥號程序。如直接使用Windows 98自帶的撥號程序,VFP 程序的完整性和界面一致性都將受到影響。 設計思想 要實現撥號,只需讓程序往串口寫入at 命令。利用VFP 對Microsoft CommControl 控件的支持可以方便地控制電話。假設有一數據表Communication .dbf ,內容如下:姓名電話號碼其他張三1234567ETC……將上述表引入表單Form1的數據環境之后,在Form1上加入下列控件,如下所示: 控件名稱控件類型控件屬性值 Text1Text ControlSource =communication .姓名 Text2Text ControlSource =communication .電話號碼 Command1Command Button Caption =“撥號” Command2Command Button Caption =“掛斷” Command3Command Button Caption =“下條記錄” 在表單中加入OLE 容器控件,當提示菜單出現時,選擇Insert Control ,在Control Type(控件類型)欄內找到并雙擊Microsoft CommControl ,這時表單上會出現一個帶電話標志的圖標,設定該控件的名稱為Telephone ,這就是在VFP 中實現電話撥號的核心部件。選擇Telephone 控件,單擊鼠標右鍵,選擇MSCommProperties 菜單項,可以更加靈活地控制該控件。 設定事件代碼 在Form1的Init 事件中加入下列代碼: go top *設定通訊端口號,可根據你的實際情況設定 *筆者的Modem 是接在Com3上的thisform.telephone .CommPort =3 *設定端口的通訊速率(波特率)、通訊字長以及是否進行校驗 thisform.telephone .Settings =″9600,n ,8,1″ 在Command1的Click 事件中加入下述代碼: this .enabled =.not .this .enabled thisform.command2.enabled =.t . *打開通信端口,準備工作 thisform.telephone .portopen =.t . *ATDT表示執行AT命令中的DT指令,D 表 示首先掛斷電話 *T表示使用音頻撥號,如果你的電話使用的 是脈沖方式撥號 *請將T改為P,CHR(13)表示發送命令完畢 thisform.telephone .output =″ATDT″+電話號碼+ chr(13) wait wind″正在撥號,請稍候″nowa 在Command2的Click 事件中寫入下列代碼: thisform.command1.enabled =.t . thisform.command2.enabled =.f . *關閉通信端口 thisform.telephone .portopen =.f . 在Command3的Click 事件中寫入下列代碼: skip if eof() go top endi thisform.refresh 經過上面幾個步驟,大功告成了。戴上耳機,對著話筒。
(四川省新都縣國家稅務局610500)
|