起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: Crazy_wen2006

[请求]动态添加datagrid的列**

[复制链接]
 楼主| 发表于 2008-10-28 14:52:10 | 显示全部楼层
const
     sqltext1 =' select xm , KQB_1R ,KQB_2R ,KQB_3R ,KQB_4R ,KQB_5R ,KQB_6R ,KQB_7R ,KQB_8R ,KQB_9R ,KQB_10R ,'
        + 'KQB_11R,KQB_12R ,KQB_13R ,KQB_14R ,KQB_15R,KQB_16R ,KQB_17R,KQB_18R  ,KQB_19R ,KQB_20R,'
        + 'KQB_21R ,KQB_22R ,KQB_23R ,KQB_24R ,KQB_25R ,KQB_26R ,KQB_27R ,KQB_28R from kqb';

procedure TKBBD1.Button3Click(Sender: TObject);
var
Query1: TQuery ;
i:integer;
j:integer;

begin
    Query1 := TQuery.Create(Self);
    Query1.ConnectionString := 'DATABASEURL=Biz:\TEST\KQ.DATABASE';
    Query1.CommandText:=sqltext1;
    Query1.Open;
    DataSource1.DataSet :=query1;
    DataGrid1.DataSource := DataSource1;
    j:=1;
     for i:=1 to DataGrid1.ColumnCount-1 do
        begin
        datagrid1.Columns.Caption:='第'+sysutils.inttostr(j)+'天';
        j:=j+1;
        end;
    DataGrid1.Refresh;
    query1.ApplyUpdates;
end;
只能读取表中内容,怎么打开后是新的,然后加入进去?
回复 支持 反对

使用道具 举报

发表于 2008-10-28 15:02:26 | 显示全部楼层
不太清楚楼主的意思。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-28 15:12:13 | 显示全部楼层
我的意思是:每次打开功能后是一个空的datagrid,然后让DATAgrid自动增加列(按当月天数),然后输入一些信息,保存提交流转。
回复 支持 反对

使用道具 举报

发表于 2008-10-28 16:57:53 | 显示全部楼层
在sql语句里加个1<>1的条件,就能取到一个空的数据集了。
你直接在上面添加记录。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-29 14:45:43 | 显示全部楼层
const
    sqltext1 =' select xm , KQB_1R ,KQB_2R ,KQB_3R ,KQB_4R ,KQB_5R ,KQB_6R ,KQB_7R ,KQB_8R ,KQB_9R ,KQB_10R ,'
        + 'KQB_11R,KQB_12R ,KQB_13R ,KQB_14R ,KQB_15R,KQB_16R ,KQB_17R,KQB_18R  ,KQB_19R ,KQB_20R,'
        + 'KQB_21R ,KQB_22R ,KQB_23R ,KQB_24R ,KQB_25R ,KQB_26R ,KQB_27R ,KQB_28R from kqb where 1<>1';

procedure TKBBD1.Button3Click(Sender: TObject);
var
Query1: TQuery ;
i:integer;
j:integer;

begin
    Query1 := TQuery.Create(Self);
    Query1.ConnectionString := 'DATABASEURL=Biz:\TEST\KQ.DATABASE';
    Query1.CommandText:=sqltext1;
    Query1.Open;
    DataSource1.DataSet :=query1;
    DataGrid1.DataSource := DataSource1;
    datagrid1.Columns[0].Caption:='姓名';
    j:=1;
     for i:=1 to DataGrid1.ColumnCount-1 do
        begin
        datagrid1.Columns.Caption:='第'+sysutils.inttostr(j)+'天';
        j:=j+1;
        end;
    DataGrid1.Refresh;
    query1.ApplyUpdates;
end;
在插入新数据时出现错误:
invoke batch method error, error occur during invoke ApplyUpdates method, ORA-01400: 无法将 NULL 插入 ("SCMAPP"."KQB"."GUID")
还有一个问题,在填入数据的时候可以如7楼的那样选择?
回复 支持 反对

使用道具 举报

发表于 2008-10-29 18:18:49 | 显示全部楼层
那需要你自己在字段上定义查找属性、自动填充
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-24 12:39 , Processed in 0.037711 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表