  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		kl608
 
 
  註冊時間: 2011-03-02 文章: 2
 
  第 1 樓
  | 
		
			
				 發表於: 星期三 三月 02, 2011 12:08 pm    文章主題: checkbox對應資料庫的資料類型為char該如何處理 | 
				     | 
			 
			
				
  | 
			 
			
				各位前輩好,小弟是VFP新手,接觸大約兩個禮拜。
 
 
目前使用SPT方式以及FORM針對一個現有的SQL SERVER資料庫設計一個產品資料的介面,提供查詢以及修改資料。
 
 
該資料庫中有一欄位 "active"表示該產品是否使用中。小弟想以CHECKBOX來呈現這個欄位,不過該欄位的資料類型為 CHAR。當”是”的時候值是”T”否的時候為”F”。
 
 
VFP中的CHECKBOX好像必須是0或1的值。直接用該欄位於CHECKBOX上會有type mismatch的錯誤。
 
 
目前用
 
select *, boolActive = case active when 'T' then 1 when 'F' then 0 end from item
 
來將T與F轉成0與1並存入另一變數boolActive之中並將checkbox的ControlSource設定為這個變數 (csSelectProduct.boolActive),可以正常顯示。
 
 
不過卡在不知道該如何處理資料變更後利用tableupdate()來將"T"與"F"的的值寫回資料庫中的active欄位。
 
 
下面是儲存鈕的code:
 
 
CURSORSETPROP("UpdatableFieldList", "name, no, item, active", "csSelectedProduct")
 
CURSORSETPROP("Tables", "item", "csSelectedProduct")
 
CURSORSETPROP("UpdateNameList", "name item.name, no item.no, item item.item, boolActive item.active", "csSelectedProduct")
 
CURSORSETPROP("KeyFieldList", "item", "csSelectedProduct")
 
CURSORSETPROP("SendUpdates", .T., "csSelectedProduct")
 
 
TABLEUPDATE(1, .T., "csSelectedProduct")
 
 
 
希望有經驗的前輩能夠指點一下,感激不盡!! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		LiuRambo
 
 
  註冊時間: 2007-11-27 文章: 481
 
  第 2 樓
  | 
		
			
				 發表於: 星期三 三月 02, 2011 1:00 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				在STP之前下個指令
 
check1.value=.F. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 3 樓
  | 
		
			
				 發表於: 星期三 三月 02, 2011 3:25 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如果你所說的"變數boolActive" 實際上是一個欄位的話,
 
請在儲存鈕第一行加入這個指令
 
repl active with iif(boolActive,'T','F') ALL _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		kl608
 
 
  註冊時間: 2011-03-02 文章: 2
 
  第 4 樓
  | 
		
			
				 發表於: 星期三 三月 02, 2011 3:49 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				感謝兩位前輩的回覆!
 
 
我使用garfield前輩的方式解決了這個問題!
 
repl csSelectedProduct.active with iif(csSelectedProduct.boolActive=1,'T','F')
 
 
原來這麼簡單! 若沒有前輩的提點還真的想不出來,真是太感謝了!! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |