Hi,

I have to update an existing matrix model by script, reading from an excel file.

I found this kind of problems:

  1. matrix.ConnectionData.isFromRowToCol ( ) doesn't work: the result is always null.
  2. matrix.createHeaderCell ( MatrixHeaderCell cellToInsertBefore, ObjDef objDef, int symbol, int size, boolean rowHeader ) doesn't work: the result is always: Wrapped java.lang.nullPointException.
  3. matrix.createCxn ( MatrixHeaderCell source, MatrixHeaderCell target, int cxnType ) doesn't work: the result is always: JavaException: java.lang.nullPointException.

The sample code is attached.

What is wrong? Can anyone help me?

Mary G. Pennarola

function updateMatrice(sheet)
{
    var cellaGUID = sheet.getCell(1, 1);
    if(iscellnull(cellaGUID))
        return;
    var p_model = __database.FindGUID(cellaGUID.getCellValue(), Constants.CID_MODEL);
    if(p_model == null || p_model == undefined)
        return;
    var p_matrice = p_model.getMatrixModel();
    var righe_matrice = p_matrice.getHeader(true).getCells();
    var colonne_matrice = p_matrice.getHeader(false).getCells();;
    var tipo_conn = p_matrice.getCxnData()[0];
    var simboloRiga = tipo_conn.getSourceSymbolTypeNum();
    var simboloColonna = tipo_conn.getTargetSymbolTypeNum();
    var sizeRiga = righe_matrice[0].getSize();
    var sizeColonna = colonne_matrice[0].getSize();
    var direction = true;
    //if(!tipo_conn.isFromRowToCol()) {
    if(!direction) {
        simboloRiga = tipo_conn.getTargetSymbolTypeNum();
        simboloColonna = tipo_conn.getSourceSymbolTypeNum();
    }
       
    var last_riga = getLastIndex(sheet, 8, 0, 'r');
    for(var r =8; r<last_riga; r++) {
        var rowGUID = sheet.getCell(r, 0).getCellValue();
        var colGUID = sheet.getCell(r, 2).getCellValue();
        var p_findRiga = __database.FindGUID(rowGUID, Constants.CID_OBJDEF);
        var p_findCol = __database.FindGUID(colGUID, Constants.CID_OBJDEF);
        
        if(p_findRiga == null || p_findRiga == undefined || p_findCol == null || p_findCol == undefined)
            continue;
       
        var p_rowHeaderCell = getHeaderElement(p_findRiga, righe_matrice);
        var p_colHeaderCell = getHeaderElement(p_findCol, colonne_matrice);
        if(p_rowHeaderCell == null) {
            p_rowHeaderCell = p_matrice.createHeaderCell(null, p_findRiga, simboloRiga, -1, true);
            righe_matrice = p_matrice.getHeader(true);
    
        }
        
        if(p_colHeaderCell == null) {
            p_colHeaderCell = p_matrice.createHeaderCell(null, p_findCol, simboloColonna, -1, false);
            colonne_matrice = p_matrice.getHeader(false);
        }
        
        var test_content = null;
        //if(tipo_conn.isFromRowToCol())
        if(direction)
            test_content = p_matrice.getContentCell (p_rowHeaderCell, p_colHeaderCell);
        else
            test_content = p_matrice.getContentCell ( p_colHeaderCell, p_rowHeaderCell);
        
        if(test_content != null && test_content != undefined) {
            var cnxs = test_content.getCxns();
            if(cnxs != null && cnxs != undefined && cnxs.length>0)
                continue;
        }
        
        var cxn_new = null;
        try{
            if(tipo_conn.isFromRowToCol())
                cxn_new = p_matrice.createCxn( p_rowHeaderCell, p_colHeaderCell, 86);
            else
                cxn_new = p_matrice.createCxn( p_colHeaderCell, p_rowHeaderCell, 86);
        }
        catch(e) {
            Dialogs.MsgBox(e);
        }

    }
    
}

 



 

 

 or register to reply.

Notify Moderator