yanweiyuan3
2023-09-20 40e4fffbb86f33e0c10835c21bd9cc9546ba3fc1
_Main/BL/Type_VersionControl/StaticMethod_CopyVersion.qbl
@@ -21,16 +21,26 @@
    
    latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
    copyversionid := latestversion.VersionID();
    info( copyversionid );
    
    if( copyversionid.FindString( "-", 0 ) > 0 ){
      latestversionlist := copyversionid.Tokenize( "-" );
      latestversionnamelist := latestversion.LongVersionName().Tokenize( "-" );
      for( i := 0; i < latestversionlist.Size(); i := i + 1 ){
        oldversionid := oldversionid + "-" + latestversionlist.Element( i );
        oldversionname := oldversionname + "-" + latestversionnamelist.Element( i );
      for( i := 0; i < latestversionlist.Size() - 1; i := i + 1 ){
        if( oldversionid = "" ){
          oldversionid := latestversionlist.Element( i );
          oldversionname := latestversionnamelist.Element( i );
          }else{
            oldversionid := oldversionid + "-" + latestversionlist.Element( i );
            oldversionname := oldversionname + "-" + latestversionnamelist.Element( i );
            }
        info( oldversionid );
        }
      oldversionid := oldversionid + "-";
      oldversionname := oldversionname + "-";
      if( oldversionid <> "" ){
        oldversionid := oldversionid + "-";
        oldversionname := oldversionname + "-";
        }
      info( oldversionid );
      }
    
    // Calculate new version info
@@ -39,6 +49,7 @@
    newcaltype := latestversion.CalType();
    newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")";
    newversionname := oldversionname + newsingleversionname;
    info( newversionid );
    
    // Create new version
    newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user );