关于第一个问题的一点补充,
第一个表
第一个画面第二个画面都是为了录入四项数值的.
如果输入的A没查询到就到第二个画面录入对应输入A的其他项目.
如果输入的A查询到了就显示对应数据可以做修改.

解决方案 »

  1.   

    我也不写太详细了,就把需要实现的代码给贴出来
    假如你的画布和数据块都已经添加好了,
    首先看你的添加窗口的数据块是数据库块还是非数据库块,如果是数据库块,你对表进行操作的数据直接commit就可以了,否则的话,要insert table (item,....) value(value1,......);然后commit;
    添加判断表中是否已存在此记录,有了就查询,否则录入数据(假如添加块的块名:blk_add,主界面上的块名叫做table_name)导航到一个窗口就go_block(''); declare
      nCount  number(4);
    begin
      if :blk_add.a is not null then
        select count(*) into nCount from table_name;
        IF nCount = 0 then
          -- 可以现在插入数据,然后提交也可以等你B,D,E几个字段的数据一起入完后一起提交
        ELSE
          GO_BLOCK('table_name');
          -- ' a = '||:blk_add.a ,如果a是字符型就带上引号' a = '||chr(39)              ||:blk_add.a||chr(39) 
          SET_BLOCK_PROPERTY('table_name',default_where,' a = '||:blk_add.a);
          execute_query; 
        end if;
      else
        message('**不能为空,请填写');message('**不能为空,请填写');
      end if;end;
    d2000 想随意的增加字段真的不方便,要的也是死的,因为不晓得新增项目的类型等等,