donderdag 14 november 2019

'Knowledge' Management Part 3 (importing labels als list items in a Google document )



This is the result.

Labels of court decisions are imported as list item in a Google document. I don't know anymore what I have been doing here. It works however.


  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
var idSS = "XXXXX";
var docnaam = "XXXXX ";
var doctitel = "XXXXX ";

var naamSkelet = "Skelet";
var aantalKolommen = 5;
var dropDownEersteKolom = 7;
var indexDropDownEersteKolom = dropDownEersteKolom - 1;
var indexDropDownLaatsteKolom = dropDownEersteKolom + aantalKolommen;

var caseLawStyle = {};
caseLawStyle[DocumentApp.Attribute.FONT_SIZE] = 8;
caseLawStyle[DocumentApp.Attribute.FONT_FAMILY] = "Verdana"; 
caseLawStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = "#0033cc";

var newCaseLawStyle = {};
newCaseLawStyle[DocumentApp.Attribute.FONT_SIZE] = 8;
newCaseLawStyle[DocumentApp.Attribute.FONT_FAMILY] = "Verdana";  
newCaseLawStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = "#0033cc"; 
newCaseLawStyle[DocumentApp.Attribute.BACKGROUND_COLOR] = "#ccff33"; 

var skeletStyle = {};
skeletStyle[DocumentApp.Attribute.FONT_SIZE] = 9;
skeletStyle[DocumentApp.Attribute.FONT_FAMILY] = "Verdana";  
skeletStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = "#330000";

function makesSkelet(){
  var datumvandaag = ddLang(new Date());
  var datumvandaagkort = ddKortGMAK(new Date());
  
  var document = DocumentApp.getActiveDocument();
  document.setName(docnaam + datumvandaagkort);
  var body = document.getBody();
  
  var ss = SpreadsheetApp.openById(idSS);
  var dataSheet = ss.getSheetByName("Data");
  var skeletSheet = ss.getSheetByName(naamSkelet);
  var labels = skeletSheet.getRange(1,1,skeletSheet.getLastRow(),aantalKolommen).getValues();
  
  body.appendParagraph(doctitel + datumvandaag).setAlignment(DocumentApp.HorizontalAlignment.CENTER).setAttributes(skeletStyle);
  body.appendParagraph("");
  
  var uniekeOuders = uniekeElementen(labels,0); 
  for(var i=0;i<uniekeOuders.length;i++){
    var ouder = uniekeOuders[i];
    body.appendParagraph("");
    var paragraafnaam = body.appendParagraph(ouder);
        
    var opOuderGefilterd = labels.filter(function(label){
      return label[0] === uniekeOuders[i];
    });
    var uniekeKinderen = uniekeElementen(opOuderGefilterd,1); 
    for(var j=0;j<uniekeKinderen.length;j++){
      var kind = uniekeKinderen[j];
      if(kind){
        var listKind = body.appendListItem(kind).setNestingLevel(0);
        var listKindId = listKind.getListId();
      }
      
      var opKindGefilterd = opOuderGefilterd.filter(function(fEen){
        return fEen[1] === uniekeKinderen[j];
      }); 
      var uniekeKleinkinderen = uniekeElementen(opKindGefilterd,2); 
      for(var k=0;k<uniekeKleinkinderen.length;k++){
        var kleinkind = uniekeKleinkinderen[k];
        if(kleinkind){
          var listKleinkind = body.appendListItem(kleinkind).setNestingLevel(1).setListId(listKind);
        }
        
        var opKleinkindGefilterd = opKindGefilterd.filter(function(fTwee){
          return fTwee[2] === uniekeKleinkinderen[k];
        }); 
        var uniekeAchterkleinkinderen = uniekeElementen(opKleinkindGefilterd,3); 
        for(var l=0;l<uniekeAchterkleinkinderen.length;l++){
          var achterkleinkind = uniekeAchterkleinkinderen[l]; 
          if(achterkleinkind){
            var listAchterkleinkind = body.appendListItem(achterkleinkind).setNestingLevel(2).setListId(listKind);
          }
          
          var opAchterkleinkindGefilterd = opKleinkindGefilterd.filter(function(fDrie){
            return fDrie[3] === uniekeAchterkleinkinderen[l];
          }); 
          var uniekeAchterachterkleinkinderen = uniekeElementen(opAchterkleinkindGefilterd,4); 
          for(var m=0;m<uniekeAchterkleinkinderen.length;m++){
            var achterachterkleinkind = uniekeAchterachterkleinkinderen[m];
            if(achterachterkleinkind){
              var listAchterachterkleinkind = body.appendListItem(achterachterkleinkind).setNestingLevel(3).setListId(listKind);
            }
            
            var opAchterkleinindGefilterd = opAchterkleinkindGefilterd.filter(function(fVier){
              return fVier[4] === uniekeAchterachterkleinkinderen[m];
            }); 
          }
        }
      }
    }
  }
}

function uniekeElementen(waarden,index){
  var hlpArray =[]; 
  for(var i=0;i<waarden.length;i++) {
    if(hlpArray.indexOf(waarden[i][index]) == -1){
      hlpArray.push(waarden[i][index]);
    }
  }
  return hlpArray;    
}

function ddKortGMAK(datum){
 var datumKort = Utilities.formatDate(new Date(datum), "GMT+0002", "yyMMdd");
return datumKort;
}

function ddLang(datum){
 var datumLang = LanguageApp.translate(Utilities.formatDate(new Date(datum), "GMT+0002", "dd MMMM yyyy"), 'en', 'nl');
return datumLang;  
}

Geen opmerkingen:

Een reactie posten