全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1373
推到 Plurk!
推到 Facebook!

動態指向下一個欄位值

 
MidasFan
一般會員


發表:41
回覆:22
積分:12
註冊:2004-06-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-10-11 15:34:58 IP:61.222.xxx.xxx 未訂閱
各位先進好:一般寫入資料時均是用以下方式
M table
ABCDEFGHIJKLNMOPQRST........

MA.asString:='001;
M.FieldByName('A').AsString:='002';
有沒有辦法我在塞完A欄位後
動態往下一個B欄位作寫入的動作
B欄位寫完後,在動態的往C欄位作寫入的動作
依序往下做寫入的動作
以動態的方式去做

謝謝各位先進指教

pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-10-11 17:03:46 IP:60.248.xxx.xxx 未訂閱
您好
試試下面方法
for i:=0 to TableM.FieldCount-1 do
TableM.Fields[i].Value:=value;

herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-10-13 23:20:05 IP:211.72.xxx.xxx 未訂閱
您的問題是要以迴圈依序填值至各欄? 還是要像 dBase 的 Get - Read 於 User Key-In 滿格後自動跳到下一欄繼續 Key-In ?
blueK
初階會員


發表:19
回覆:62
積分:36
註冊:2004-05-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-03-26 15:59:16 IP:203.67.xxx.xxx 訂閱
最近也有想到這個方便性的問題

像會計,某些欄位是固定長度的

該如何判斷欄位已經輸入完成,

然後自動向下呢

多謝指教!
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-03-28 11:28:14 IP:59.120.xxx.xxx 未訂閱
看到這個問題,忽然想到以前有回答過類似的
個人的作法: 1.覆寫Dbgrid(偷吃步),新增一Procedure,處理跳欄位的動作. 2.在Dbgrid.forbidden Event中呼叫此Procedure
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=79823

<textarea class="delphi" rows="10" cols="60" name="code"> unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids; type TDBGrid=class(DBGrids.TDBGrid) public procedure NextCol(); end; TForm1 = class(TForm) ADOConnection1: TADOConnection; ADOTable1: TADOTable; DataSource1: TDataSource; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; ADOTable1DSDesigner: TAutoIncField; ADOTable1DATE1: TDateTimeField; ADOTable1MONTH: TIntegerField; ADOTable1IN1: TIntegerField; ADOTable1OUT1: TIntegerField; ADOTable1Deforbidden: TWideStringField; ADOTable1YEAR: TIntegerField; procedure DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin DBGrid1.NextCol; end; { TDBGrid } procedure TDBGrid.NextCol; var Idx:integer; begin If Length(InplaceEditor.text) = SelectedField.Size then begin Idx:= Self.Col 1; if Idx > Self.Columns.Count then Idx:= Self.Columns.Count; {如果沒做這個動作,則資料並不會進入SelectedField中} self.SelectedField.AsString:= InplaceEditor.text; {如果沒做這個動作,當移到下一個欄位時,會把原先輸入的值帶到下個欄位} InplaceEditor.Clear; Self.FocusCell(Idx,Row,True); end; end; end. </textarea>
------
星期一,二...無窮迴圈@@
系統時間:2024-05-19 17:22:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!