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

在Grid控制項表格中創建下拉式窗口(轉貼)

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



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 1 樓

發表發表於: 星期六 一月 24, 2004 1:53 am    文章主題: 在Grid控制項表格中創建下拉式窗口(轉貼) 引言回覆

在Grid控制項表格中創建下拉式窗口 魏仲凡
http://www.ithome-cn.net/technology/fox/fox136.htm
  在很多VFP應用系統的報表中都有某一特殊欄位,其資料範圍是固定的,例如煤礦安全事故分析報表,其中事故類型一欄的資料範圍是:頂板、瓦斯、機電、運輸、放炮。它不允許用戶隨意填寫其他資料。許多編程人員都在Form表單上加入CombBox下拉式列示方塊控制項,再利用變數將資料傳送到指定表格中。這種方法對於資料量大的表格會顯得不很靈活。

  如果我們利用Grid表格控制項的特性,在Grid表格中的某一列中加入CombBox下拉式列示方塊控制項,也就是在表格中創建一個下拉式視窗。當這一列被選中時,下拉式列示方塊自動打開並顯示該項的列表,用滑鼠點擊視窗內容,從中選擇一項,這項資料就自動進入Grid表格的當前列,表的內容一目了然,如圖1。

  程式實現方法如下:

  1.建立一個分類表,表中有一個欄位FL(分類),如:TABLE_FL.FL 。

  2.建立一個主表,表中有一個欄位SGFL(事故分類), 如:TABLE_MAIN.SGFL。

  3.在表單上建立表格控制項Grid1,並設置:

  Grid1.CurrentControl= TABLE_MAIN

  4.修改Grid1.Column.CurrentControl屬性,其默認的控制項識別字是Texe1,將其改為CombBox控制項識別字。

  5.設置grid1.CombBox.RowSourceType=6(選擇其他值也可以達到相同目的)。

  6.設置CombBox.RowSource= TABLE_FL.FL 。

  運行表單即可得到圖示效果。

  圖1


  我們也可以用同樣的方法,靈活地將陣列或固定值作為下拉式列示方塊(或下拉選單)控制項中值的來源。

  本方法在Windows 98中文版、Visual FoxPro 6.0中文版環境下運行通過。 

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
hkhome



註冊時間: 2004-03-01
文章: 43


第 2 樓

發表發表於: 星期五 四月 16, 2004 5:37 pm    文章主題: 引言回覆

對不起
4.修改Grid1.Column.CurrentControl屬性,其默認的控制項識別字是Texe1,將其改為CombBox控制項識別字。
我試著將text1改為combo1,但每每都出現「運算式處理的數值不正確」之錯誤,請問是否我做漏了甚麼??
謝謝
回頂端
檢視會員個人資料 發送私人訊息
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 3 樓

發表發表於: 星期六 四月 17, 2004 3:40 pm    文章主題: 引言回覆

1.請確定你的
Columns[X].ControlSource
Table欄位屬性是什麼

2.程式可參考
紅狐 Jack許 Grid與Combo的結合?(轉貼)
http://vfp.sunyear.com.tw/viewtopic.php?t=879&highlight=grid+combo

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
goto-dream



註冊時間: 2004-05-11
文章: 909


第 4 樓

發表發表於: 星期一 八月 02, 2004 8:16 pm    文章主題: 引言回覆

補充資料

問:在數據庫中如何做下拉菜單,每行都有?
答:是指在表格控件中加入組合框吧。?
在表格列中顯示控件
除了在表格中顯示字段數據,還可以在表格的列中嵌入控件,這樣就為用戶提供嵌入的文本框、復選框、下拉列表框、微調按鈕和其他控件。例如,如果表中有一個邏輯字段,當運行該表單時,通過辨認復選框可以判定哪個記錄值是「真」(.T.) 和哪個記錄值是「假」(.F.)。修改這些值只需設置或清除復選框即可。
可以在「表單設計器」中交互地向表格列中添加控件,也可以通過編寫代碼在運行時刻添加控件。
若要交互地在表格列中添加控件
在表單中添加一個表格。
在「屬性」窗口中,將表格的 ColumnCount 屬性設置為需要的列數。
例如,如果需要一個兩列的表格則鍵入「2」。
在「屬性」窗口的「對像」框中為控件選擇父列。
例如,要選擇 Column1 來添加控件,當選擇這一列時,表格的邊框發生變化,表明正在編輯一個包含其中的對象。
在「表單控件」工具欄中選擇所要的控件,然後單擊父列。
在「表單設計器」中,新控件不在表格列中顯示,但在運行時刻會顯示出來。
在「屬性」窗口中,要確保該控件縮進顯示在「對像」框中父列下面。
添加到表格列中的復選框
如果新控件是一個復選框,應將復選框的 Caption 屬性設置為「 」,並將列的 Sparse 屬性設置為「假」(.F.)。
將父列的 ControlSource 屬性設置為需要的表字段。
例如,下面的演示中,列的 ControlSource 屬性是文件 TESTDATA.DBC 的 products.discontinu,這個文件保存在 \Samples\VFP\DATA 目錄下。
將父列的 CurrentControl 屬性設置為新加入的控件。
當運行表單時,這個控件將顯示在表格列中。
在運行時刻,復選框顯示在列中
提示 如果想讓復選框在表格列中居中,可先創建一個容器類,將復選框添加到容器類中,並調整復選框在容器類中的位置。然後將容器類添加到表格列中,並將復選框的 ControlSource 屬性設置為需要的字段。
若要在「表單設計器」中移去表格列中的控件
在「屬性」窗口的對象框中選擇要移去的控件。
激活「表單設計器」。
如果「屬性」窗口可見,控件的名稱將顯示在「對像」框中。
按下 DELETE 鍵。
也可以在代碼中使用 AddObject 方法程序將控件添加到表格列中。
若要通過代碼將控件添加到表格列
請在表格的 Init 事件中,使用 AddObject 方法程序將控件添加到表格列,然後設置列的 CurrentControl 屬性。
例如,Init 事件包含了如下代碼,向列中添加兩個控件,並將其中一個設置為當前控件:
THIS.grcColumn1.AddObject("spnQuantity", "SPINNER")
THIS.grcColumn1.AddObject("cboQuantity", "COMBOBOX")
THIS.grcColumn1.CurrentControl = "spnQuantity"
* 下面的代碼確保控件是可見的,並且顯示在表格中的每一行。
THIS.grcColumn1.spnQuantity.Visible = .T.
THIS.grcColumn1.Sparse = .F.
在本例中,Column1 有三個可能的當前控件值:
spnQuantity
cboQuantity
Text1 (默認控件)
註釋 在表格級上設置的屬性並不會傳到列或標頭。因此,必須直接設置標頭或所包含控件的屬性,它們不會繼承列級別的屬性設置。
提示 要想在表格列中顯示組合框最佳狀態,請設置下列組合框屬性︰
BackStyle = 0 && s-
Margin = 0
SpecialEffect = 1 && -G
BorderStyle = 0 && r
在表格中進行有條件的格式設置
表格中的特定格式能讓用戶更容易瀏覽表格記錄,並找出想要的信息。如果想進行有條件的格式設置,可使用列的動態字體和顏色屬性。
例如,可以將表格添加到表單中,並將 ColumnCount 屬性設置為 2。將第一列的 ControlSource 屬性設置為 orders.to_name,第二列的 ControlSource 屬性設置為 orders.order_net。如果想用黑色的前景色顯示少於 500.00 的訂貨總計,用紅色的前景色顯示大於或等於 500.00 的訂貨總計,可在表格的 Init 事件代碼中包含下列代碼:
THIS.Column2.DynamicForeColor = ;
"IIF(orders.order_net >= 500, RGB(255,0,0), RGB(0,0,0))"
常用的表格屬性
下表列出了設計時刻常用的表格屬性。
屬性 說明
ChildOrder 和父表的主關鍵字相聯接的子表中的外部關鍵字。
ColumnCount 列的數目。如果 ColumnCount 設置為 -1,表格將具有和表格數據源中字段數一樣多的列。
LinkMaster 顯示在表格中的子記錄的父表。
RecordSource 表格中要顯示的數據。
RecordSourceType 表格中顯示數據來源於何處:表、別名 、查詢或用戶根據提示選定的表

_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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