如何通过 Google 应用程序脚本将一位拥有多个孩子的父母发送到 firebase?

2024-03-06

我有 G-AppScript 代码,应该将项目批次作为父“文章代码”的子项,如下图所示:

谷歌表格数据表:

目标结果

我尝试写下面的链接:

G-AppS脚本

function writeDataToFirebase() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var data = sheet.getDataRange().getValues();
  var dataToImport = {};
  for(var i = 1; i < data.length; i++) {

var ItemCode = data[i][0];
var Batch = data[i][3];

dataToImport[ ItemCode ]  = {
  ItemDesc:data[i][1],
  VenCode:data[i][8],
  VenName:data[i][9],
}

for(var i = 1; i < data.length; i++) {
  var Batch = data[i][3];
  dataToImport[ Batch ] = {
    barcode:data[i][2],
    ExpDate:data[i][4],
    ComPrice:data[i][5],
    TaxVal:data[i][6],
    PubPrice:data[i][7]
   }
  }
 }
 var firebaseUrl = "https://example.firebaseio.com/";
 var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
 base.setData("itemsInventory", dataToImport);
}

但我没有将批次作为项目代码“父级”的子级

这就是我得到的结果。


如果您希望批次成为商品编号的子批次,则需要嵌套循环,迭代每个父批次的批次,并将它们推入内部循环内的批次数组中。然后将批处理数组作为键值对插入到dataToImport[ ItemCode]- 这适用于外循环内的每个商品编号。

下面是实现此功能的代码片段:

function writeDataToFirebase() {
  var ss = SpreadsheetApp.openById("XXX");
  var sheet = ss.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var dataToImport = {};
  var allBatches ={}; 
  for(var i = 1; i < data.length; i++) {
    allBatches =[]; 
    var ItemCode = data[i][0];    
    for(var j = i; j < data.length; j++) {    
      var Batch = data[j][3];
      if(data[j][0]==ItemCode)
      {  
        allBatches[Batch] = {
        barcode:data[j][2],
        ExpDate:data[j][4],
        ComPrice:data[j][5],
        TaxVal:data[j][6],
        PubPrice:data[j][7]
        }
      }
     else
      {
       break;
      }   
     }
    if(ItemCode != data[i-1][0])
     {
       dataToImport[ ItemCode ]  = { 
        ItemDesc:data[i][1],
        VenCode:data[i][8],
        VenName:data[i][9],
        Batch:allBatches
       }
     }
  }

  var base = FirebaseApp.getDatabaseByUrl("XXX")
  base.setData("", dataToImport);  
}

以及结果的截图:

请注意字典中括号之间的参数allBatches[Batch] and dataToImport[ItemCode]必须是数字(不带字母)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 Google 应用程序脚本将一位拥有多个孩子的父母发送到 firebase? 的相关文章

随机推荐