问题是Table控件的数据导出.有一个问题没解决,就是其中有些字段在SYBASE数据库的类型是Smallint,我先查询出来再导出数据,但我想根据这几个字段的数值来分别导出字符串(为1时:导出有效,为2时:导出取消).怎样实现.

解决方案 »

  1.   

    就是把数据查询出来保存到Table控件,然后再导出.其中的两三个字段在sybase中为Smallint型,导出时只是1,2这些数值,我想的是(为1时:导出有效两字,为2时:导出取消两字)变成字符串来导出保存.
      

  2.   

    Table1.Filter := 'FieldName=1';
    Table1.Filtered := true;你写的导出有效两字的意思没太明白,不过用过滤器试试看...
      

  3.   

    导出为数值的字段(Smallint型)想转换为字符导出.(为1时:导出有效两字,为2时:导出取消两字)导出前转换为字符再导出.
      

  4.   

    最简单的办法就是建个表..
    ID NAME
    1  有效
    2  取消两表相关联就行了..
      

  5.   

    如:
    SELECT B.SXH, A.DEPTID, A.WLDW, A.QDSJ, A.JHSX_START, A.HTH, A.XYH,');
         Sql.Add('(SELECT H.TJLX FROM HT G,HTXY H WHERE G.HTID = H.HTID AND G.FBID = H.FBID AND G.HTH = H.HTH AND H.XYH = A.XYH AND G.HTH = A.HTH) TJLX,');
         Sql.Add('A.BZ, A.DHLX, A.ZXQK, B.DEPOT_ID,');
         Sql.Add('B.SP_ID, B.SPJS, B.SIZE, B.HSJHDJ, C.JXSL, B.JHRQ');
         Sql.Add('FROM DHD A,DHDITEM B,SPXX C,HT D');
         Sql.Add('Where A.JLBH = B.JLBH AND A.HTH = D.HTH AND A.WLDW = D.GHDW AND B.SP_ID = C.SP_ID
    比方说TJLX字段的id为1,2时,转换为(有效,取消),另外的字段id为1,2时,转换为(打开,关闭)等等.那要建很多的表,sql语句又麻烦.有没有其他的方法.
      

  6.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
      Value: Integer;
      DValue: String;
    begin
      //if Column.Field.DataType <> ftSmallInt then exit;  if Column.Field.FieldName = 'TJLX' then
      begin
        Value := Column.Field.AsInteger;
        if Value = 1 then
          DValue := '有效'
        else
          DValue := '取消';
        TDBGrid(Sender).Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, DValue);
      end;
    end;在顕示的DBGrid中做一下转换试试看! 
    還有:"Table控件的数据导出"的意思不明白。向那里导出呀?