Skip to content Skip to sidebar Skip to footer

Update Data In Matrix Of Cells

This code implements a 60 cell spreadsheet, 6x10 rows,columns. At the end of each row are two labels, one for row total and for running total. The main issue here is how to update

Solution 1:

Point 1.

That is a typo, you should substitute each occurrence of labels1[j] and labels2[j] to labels1[j].text and labels2[j].text respectively:

buttonCalc.addEventListener('click',function(e)
{

    var a = 0;
    var b = 0;

    for (j=0;j<rows;j++)
    {
        a = 0;

        for (i=0;i<columns;i++){
            var newValue = parseInt(tfields[j][i].value);
            if(!isNaN(newValue) && typeof(newValue) === 'number')
                a = newValue + a;
        } 

        b = b + a;

        labels1[j].text = a.toString();
        labels2[j].text = b.toString();
    }
    for (j=0;j<rows;j++)
        Ti.API.info( labels1[j].text +'  '+labels2[j].text + ' ' +  j.toString());

});

And also it must be changed these parts:

function createRow1(i) // start create row 
{ 
...
    for (i=0;i<columns;i++)
    {
        tfield1[i] = Ti.UI.createTextField(baseAttrs); 
    }
    label1 = Ti.UI.createLabel(lbAttrs1); //there is only one per row
    label2 = Ti.UI.createLabel(lbAttrs2); //there is only one per row
...
    for (i=0;i<columns;i++)
    {
        row1.add(tfield1[i]);
    }
    row1.add(label1); //there is only one per row
    row1.add(label2); //there is only one per row

    tfields.push(tfield1);  
    labels1.push(label1);
    labels2.push(label2);

    return row1;
}  /// end of createrow1

Point 2.

you can do it this way:

var scrollView1 = Ti.UI.createScrollView({
    top:0,
    height:'60%', //Put your desired value here
    contentHeight: 'auto',
    layout: 'vertical'
});

...

var buttonCalc = Titanium.UI.createButton({
    title: 'Calc',
    top: '70%', // Put your desired value here greater than scrollView1.height
    width: 100,
    height: 50,
    left: "10%"
});

...
win1.add(scrollView1);
//scrollView1.add(buttonCalc);
win1.add(buttonCalc);

Extra point.

you need to set softKeyboardOnFocus property in your baseAttrs:

varbaseAttrs= {
        borderStyle :Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,
        keyboardType:Titanium.UI.KEYBOARD_NUMBERS_PUNCTUATION,
        softKeyboardOnFocus:Titanium.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS,
        maxLength:2,
        top:10,
        height:60,
        value:"",
        width:'12%',
        color :'#000000'
    };

this way, softKeyboard will be shown on focus the first time.

Finally, good luck with your app :-)

Post a Comment for "Update Data In Matrix Of Cells"