FORM主要有两部分组成:
表头(主表)有EDIT\COMBOBOX等类型组成.
表身(从表)由GRID类型组件实现(本人选用的是topgrid).如               入库单
单据编号:_____ 日期:______ 供应商:______
备注:___________________________________
________________________________________
|物料代码|物料名称|规格|单位|数量|仓库 |
----------------------------------------
|________|________|____|____|____|_____|
|________|________|____|____|____|_____|
|________|________|____|____|____|_____|请说说看,用什么方法将数据保存比较好,当修改时怎样处理(从表既grid修改比较麻烦,想到个笨办法,每次修改把从表的数据删除再添加),请教高手,有没有比较好的保存\修改\删除的方法、实例。

解决方案 »

  1.   

    ________________________________________
    |物料代码|物料名称|规格|单位|数量|仓库 |
    ----------------------------------------
    |________|________|____|____|____|_____|
    |________|________|____|____|____|_____|
    |________|________|____|____|____|_____|
    这个换成 dbgrid
    edit和combobox都换成数据敏感组件db-xx
    只要设置关联就可以啦你想修改只要加几行代码就行:)
    if(xx.recordcount>0) then
    begin
            xx.edit;
            xx.post
    end;
      

  2.   

    我也需要这个,没有人能回答吗?如果子表是多表查询的,wanfustudio(雁南飞) 的方法就不行了。不能POST了。
      

  3.   

    用ADO
    qMaster.LockType:=ltOptimistic
    qDetail.LoacType:=ltBatchOptimisticSave:
      try
        qDetail.BatchUpdate
        qMaster.Post
      except
        On E:Exception do
        begin
        ...
        end;
      end;Delete:
      ID:=qMaster['单据编号']
      With TADOQuery.Create(nil) do
      begin
       try
        Connection:=ADOConnection1;
        sql.text:='delete 从表 where 单据编号='+QuotedStr(id);
        ExecSQL;
       finally
        free;
       end;
      end;