|   // ColName:数据窗口列名    // Name1[],Name2[]:两数据库表选中项列名    // n1,n2:两数据库表选中项数量    // i:循环计数器    // Columns:数据窗口总列数    String ColName,Name1[],Name2[]    Integer Columns,i,n1=0,n2=0    //下面程序:找出dw—obj的两表列名赋给Name1[],Name2[]    Columns=Integer(dw—obj.Describe(″DataWindow.Column.Count″))    FOR i=1 TO columns  ColName=Upper(dw—obj.Describe(″#″+String(i)+″.Name″))  IF Left(ColName,Len(Table1))=Table1 and ColName〈〉Key1 THEN  n1=n1+1  Name1[n1]=ColName  END IF  IF Left(ColName,Len(Table2))=Table2 and ColName〈〉Key2 THEN  n2=n2+1  Name2[n2]=ColName  END IF    NEXT    // 下面程序:存储dw—obj,确定返回值(True:成功,False:失败)    IF dw_obj.Update(True,False)=1 THEN     FOR i=1 TO n1     dw—obj.Modify(Name1[i]+″.Update=No″)     NEXT  dw—obj.Modify(Key1+″.Key=No″)    dw—obj.Modify(″DataWindow.Table.Update    Table=′ ″+Table2+″ ′ ″)  FOR i=1 TO n2    dw—obj.Modify(Name2[i]+″.Update=Yes″)  NEXT     dw—obj.Modify(Key2+″.Key=Yes″)  IF dw—obj.Update()=1 THEN  Commit;  FOR i=1 TO n1  dw—obj.Modify(Name1[i]+″.Update=Yes″)  NEXT  dw—obj.Modify(Key1+″.Key=Yes″)  dw—obj.Modify(″DataWindow.Table.UpdateTable=′ ″+Table1+″ ′ ″)  FOR i=1 TO n2  dw—obj.Modify(Name2[i]+″.Update=No″)  NEXT  dw—obj.Modify(Key2+″.Key=No″)  return True  ELSE  Rollback;  return False  END IF    ELSE  Rollback;  return False    END IF  |