如何复制发现集?

时间:2013-04-16 14:16:43

标签: javascript appconkit

所以我有以下问题: 我有一堆带有大量记录的Foundset,我想(深入)将它们复制到一个新位置,包括所有值但没有ID。最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您想对发现集进行深层复制,则需要执行以下步骤:

  1. retrieveOrCreateFoundset()
  2. 上创建一个空的搜索结果集
  3. 迭代发现集的所有记录,应该复制到新记录
  4. 使用rec.dataprovider()
  5. 之类的内容获取dataProviders
  6. 在记录rec.value()
  7. 上获取每个数据提供者的值
  8. 确保uuid数据提供者不会复制到新记录
  9. 将值设置为数据提供者的新记录
  10. 坚持更改
  11. 完整的代码示例如下:

    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();