2013-04-16 50 views
1

所以我有以下問題: 我有一堆記錄的Foundset,我想(深)將它們複製到一個新的位置,包括所有的值,但沒有ID。什麼是最好的方法來做到這一點?如何複製創建集?

+0

請分享你已經嘗試了哪些代碼。 – lucuma

回答

1

如果你想要做一個foundset的深拷貝你需要的後續步驟:

  1. 創建了retrieveOrCreateFoundset()
  2. 遍歷foundset的所有記錄的空foundset,應該複製到新一個
  3. 得到的dataProvider喜歡的東西rec.dataprovider()
  4. 獲得創紀錄的每一個數據提供器的值rec.value()
  5. 肯定該UUID的dataProvider心不是複製到新的記錄
  6. 設置的值,以一個新的記錄在的dataProvider
  7. 保持變更

的完整代碼示例:

var vMobileController = plugins.iBizClientWebService.mobileController(); 
var vFoundset = vMobileController.currentFoundset(); 
var vDatabaseManager = vMobileController.dataManager(); 
var copyFoundSet = vDatabaseManager.retrieveOrCreateFoundset("<datasource>:<label>"); 
for (var index = 0; index < vFoundset.size(); index++) { 
    var rec = vFoundset.record(index); 
    var loc = copyFoundSet.newRecord(); 
     var newRecord = copyFoundSet.record(loc);    
     var allDataproviders = rec.dataprovider(); 
     for(var i=0;i<allDataproviders.length;i++) 
     { 
      var dataProvider = allDataproviders[i]; 
      var dataValue = rec.value(dataProvider); 
      if(dataProvider != "attribute_id") 
      {  
       newRecord.setValue(dataProvider, dataValue); 

      } 
     } 
} 

copyFoundSet.saveData();