分享

双击将一个TcxGridTableView记录移到另一个cxgridtableview中

 自信开朗 2015-04-04
procedure Tkhcp_select_win.cxdbview2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);

var str: string;
  i, j: integer;
  mys: Tmemorystream;
  cpbz: tcpbz_win;
begin
  if  (cxdbview2.Columns[ACellViewInfo.Item.Index].Caption = '中文说明') then
  begin  
     
    if  ACellViewInfo.GridRecord.Values[ACellViewInfo.Item.Index]<>null then
    str:=ACellViewInfo.GridRecord.Values[ACellViewInfo.Item.Index];
    //showmessage(str);
    if str<>'' then
    begin
    cpbz := tcpbz_win.Create(nil);
    cpbz.Top := cxgrid2.top;
    cpbz.memo1.ReadOnly := true;
    cpbz.memo1.Text := '';
    if str <> '' then cpbz.memo1.Text := str;
    cpbz.ShowModal;
    cpbz.Free; 
      
    end;
    
    //showmessage(str);

  end
  else

  begin 
  
    if (MemTableEh2.eof) or (MemTableEh2.bof) then exit; 
    if ACellViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('check').Index]<>true then
    begin
       showmessage('请选择');
       exit;
    end;
    MemTableEh1.Append;
    for i := 0 to MemTableEh1.Fields.count - 1 do
    begin

      if MemTableEh1.Fields[i].fieldname <> 'yytp' then

        MemTableEh1.Fields[i].asstring := MemTableEh2.fieldbyname(MemTableEh1.Fields[i].FieldName).asstring
      else
      begin
        mys := Tmemorystream.Create;
        TBlobField(MemTableEh2.fieldbyname(MemTableEh1.Fields[i].fieldname)).SaveToStream(mys);
        mys.Position := 0;
        TBlobField(MemTableEh1.fields[i]).LoadFromStream(mys);
        mys.Free;
      end;

    end;
    MemTableEh1.post;

    MemTableEh2.Delete;

  end;
end;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约