主表为:
调拨单号、源仓库、目的仓库、调拨日期、经手人
从表为
id、调拨单号、商品编号、数量  主表中调拨单号为自动编号的。插入的时候提示从表中调拨单号不能为null.
主从表浏览正常的。我想要自动编号的。不要建议取消自动编号哦。

解决方案 »

  1.   

    set @StateMinuteId=((select  isnull(max(StateMinuteid),'1000000000')  from TT_StateMinute) +1  )
      

  2.   

    CREATE PROCEDURE  TT_P017@MainBiao        Varchar(20), ---是否插入主表记录
    @PeopleId       varchar(20),    --调度人员号
    @GroupId          varchar(20),    --配送组织
    @SendMainId      varchar(7000) ,-- 送货细单号
    @SendMinuteId  varchar(7000) ,-- 送货细单号
    @GoodsCount     varchar(7000),        ---送货数量
    @ShouldGet        varchar(7000),         ----应收
    @ShouldPay       varchar(7000),         -----应付
    @count               int,
    @re_String varchar(2) out,
    @re_message varchar(100) out,
    @re_Sid varchar(14) out
    as 
    declare 
        
         @n                     int,
         @StateMainId     Varchar(30) , --调度单号
         @Smainid            varchar(30),
         @Sminuteid            varchar(30),
         @StateMinuteId  varchar(30), 
         @gCount              money,
         @Get                  money,
         @Pay                 money, 
         @day                  varchar(10),
         @RiQi                 varchar(10)
            set @day=(select  (convert(varchar(10), GETDATE())) )
            set @riqi=(substring(@day,7,10)+'-' +substring(@day,1,2)+'-'+substring(@day,4,5) )
           ------------------
            
            set @StateMinuteId=((select  isnull(max(StateMinuteid),'1000000000')  from TT_StateMinute) +1  )       
             set @StateMainId=((select  isnull(max(StateMainid),'1000000000')  from TT_statemain) +1  )    ------添加状态主表begin tran
    set  set nocount on
    begin
           if rtrim(@MainBiao)='888'
            begin
            set @StateMainId=(@StateMainId-1)
            
          end
      else
          begin
          
             Insert Into TT_StateMain  values(@StateMainID,@PeopleID,@RiQi,@GroupId)
             if @@error <>0  goto error1
               else
            goto succ
           end   end
    --------添加状态细单
    begin
            set @n=1   
          while  @n <=@count 
             begin
              
                   select @Gcount= convert(money, dbo.gain(@goodscount,@n) ) ,@SMainID=convert (varchar(20), dbo.gain(@SendMainID,@n) ) ,@SMinuteId=dbo.gain(@SendMinuteId,@n) , @get=convert( money,dbo.gain (@ShouldGet,@n) ), @pay=convert(money,dbo.gain(@shouldPay,@n) )
                   Insert Into TT_StateMinute Values(@StateMinuteId,@StateMainid,@SMainID,@SMinuteId,@GCount,@Get,@Pay)
                    
                   if @@error <>0  goto error2
                    else
                        goto succ         update       TT_SendMinute  set Sendstate ='02' where SendMinuteid=@SendMinuteiD-----state 
             if @@error <>0  goto error3
             else         
               goto succ
                 set @n =@n +1  
         end 
    end 
    ------------------
    succ:
    begin   set @re_message='插入状态主表成功'
       commit transaction
     goto   pover
    enderror1:
    begin
       rollback tran
        set @re_message ='插入状态主表失败'
     goto  pover
    end
    error2:
    begin
       RollBack Tran
      set @re_message ='插入状态细表失败'
    goto  pover
    endError3:
    begin
      rollBack Tran
      set @re_message ='更新失败 '
      goto  pover
    end
    pover:
    begin
        set nocount off
    end
    GO
      

  3.   

    晕倒,看不懂!
    我是用两个adodataset,然后设置主从表的。
      

  4.   

    用两个dateset,插入从表时从主表中选择调拨单号
      

  5.   

    在从表的NewRecord中加入下面的代码
    begintbldetail.fieldbyname('调拨单号'):=tblmaster.fieldbyname('调拨单号');end;
      

  6.   

    不行,还是显示非空列不能显示为null主表的调拨单号是自动编号的,所以在客户端post时,它也是null的