一、在structure檢視中,把dataset控制項的加號點開,在裡面的fields點右鍵add all fields,然後再右鍵new fields,這裡新增乙個資料表裡沒有的字段比如no,這個no欄位設定為integer,下面設定為calculated,確定,然後在這個no欄位的事件ongettext裡面新增這個**:
int r=sender->dataset->recno;
text=(r==-1)?string(""):string(r);
若使用的是動態連線,就先設定為靜態連線,然後add all fields,不然會出現「無效的授權說明」,新增好所有欄位後再去掉連線字串,恢復動態連線就行了。另外在程式中別忘了呼叫createdataset();否則程式執行中,操作dataset的時候會報異常:cannot perform this operation on a closed dataset。
二、在dbgrid的ondrawcolumncell事件中繪製編號,現在dbgrid控制項中建立表頭為「序號」或者「no」的列,然後繪製此列的值,以tdbgrideh控制項為例:
void __fastcall tmainform::dbgrid1drawcolumncell(tobject* sender,
const trect& rect, int datacol, tcolumneh* column,
gridseh::tgriddrawstate state)
else
nindex = dbgrd->datasource->dataset->recno;
string strindex = inttostr(nindex);
int txtwid = dbgrd->canvas->textwidth(strindex);
int left = roundto((rect.width() - txtwid) / 2.0, 0);
left += rect.left;
if (-1 != nindex) // 如果有記錄}
} 三、如果是tdbgrideh控制項,則在對應的optionseh屬性域中設定dghshowrecno,這樣可以在控制項最左邊的指示列上顯示序號。
div固定顯示的幾種方法
很多時候我們會受到一些需求 1 div一直置頂 2 div一直置底 3 超過一定的位置之後div置頂 4 超過一定位置之後div置底 那麼下面針對上面的幾個問題寫幾個案例 一 div一直在螢幕的上方,這個倒是容易咱們直接使用position fixed 然後設定他的top值和left就可以了,別忘了...
從獲取DBGrid行號想到的
獲取dbgrid 當前選中的行號和列號?這是很多人經常需要實現的功能,但是tdbgrid 類並沒有提供類似col和row的屬性,所以不能直接獲得這些資訊。所以有很多朋友就開始從datasource來開始想辦法。但是我們靜下心來考慮,雖然tdbgrid 沒有提供col和row屬性,但是他的基類tcus...
SQL Server 顯示行號的方法
以前都不習慣於總結,今天為了找乙個簡單很的方法找了半天才找到了.今天先把它記錄下.1 利用identity屬性和臨時表實現 select a.identity int,1,1 as number into a from a log a order by optime select from a 2 ...