首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎樣往改變DBGrid的某一列的值

2012-12-30 
怎樣去改變DBGrid的某一列的值請教大家一個問題怎樣去改變DBGrid的某一列的值,但數據庫本身數據不改變,只

怎樣去改變DBGrid的某一列的值
請教大家一個問題
怎樣去改變DBGrid的某一列的值,但數據庫本身數據不改變,只在DBGrid中改變該字段就行?
[解决办法]
数据改变之后当记录指针移动的时候,改变会自动更新到数据库里.单单只为满足这点需求的话,可以考虑改用其他的Grid控件比如StringGrid.
[解决办法]
选择DBGRID,找到事件 “DrawColumnCell”



void __fastcall TfrmSets::dbGridDrawColumnCell(TObject *Sender,
      const TRect &Rect, int DataCol, TbsColumn *Column,
      TGridDrawState State)
{
    if(Column->FieldName=="預定差额") //当列的名称(字段名)为:"預定差额" 的时候 
    {
        //下面代码的作用,是改变所有数值的正负号,你可以你的需求,修改这一列的值,不会修改到数据库里面的数据
        int iLeft,iTop;
        AnsiString strText;
        strText=strText.FormatFloat("0.00",-Column->Field->AsFloat);
        iLeft=Rect.Left+(Rect.Width() -((TbsSkinDBGrid *)Sender)->Canvas->TextWidth(strText))/2;
        iTop=Rect.Top+(Rect.Height() -((TbsSkinDBGrid *)Sender)->Canvas->TextHeight(strText))/2;
        ((TbsSkinDBGrid *)Sender)->Canvas->TextRect(Rect,iLeft,iTop,strText);
    }
}

热点排行