1. #191
    Sencha User
    Join Date
    Mar 2012
    Posts
    27
    Vote Rating
    0
    mrhomer is on a distinguished road

      0  

    Default


    the plugin works great on all borwser except on IE9 could you tell me what seems to be the problem?

    I'm using extjs 4.

    Thx

  2. #192
    Sencha User talha06's Avatar
    Join Date
    Jul 2009
    Location
    Turkey
    Posts
    303
    Vote Rating
    0
    talha06 is on a distinguished road

      0  

    Default


    Quote Originally Posted by wiznia View Post
    The path you are setting is relative... the relative path is relative of the url of the browser you are seeing, not from the js file.
    OK thanks for your care wiznia.. Now I don't get any errors but the expoerted excel file is damaged; I couldn't open it.. It is giving an error like this : "The file has a different extension than .xls; do you still want to open it?" Then I clicked yes but I couldn't see anything. How can I solve this error?
    Thanks in advance..
    "People will never forget how you made them feel."
    linkedin.com/in/talhakabakus

  3. #193
    Ext JS Premium Member
    Join Date
    Jul 2011
    Posts
    8
    Vote Rating
    0
    neerajbherwal is on a distinguished road

      0  

    Default Exporter button not showing IE

    Exporter button not showing IE


    Hello ,

    The exporter is working fine for me for EXTJS 4.1 and in Chrome and Firefox. But the button does not appear in IE.

    Would you know what could cause this to happen?

    Thanks,

  4. #194
    Sencha User
    Join Date
    Jul 2011
    Location
    Russia
    Posts
    41
    Vote Rating
    3
    another_i is on a distinguished road

      1  

    Default


    I rewrote exporter button for my purposes:
    I don't use UX (and haven't enough free time for now to write a new exporter ux). I use ExtJS 4.1.1 GA application with MVC architecture.
    In grid's dockedItems i have toolbar with button whitch have itemId: "exportXls" and in controller i have next control function:

    Code:
    init: function(){
        this.control({
            //...
            'grid button[itemId=exportXls]': {click: this.exportxlsFn}
            //...
        });
    },
    
    
    exportxlsFn: function (btn) {
            // Base64 encode / decode  http://www.webtoolkit.info/
            var Base64 = (function() {
                // private property
                var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    
    
                // private method for UTF-8 encoding
                function utf8Encode(string) {
                    string = string.replace(/\r\n/g,"\n");
                    var utftext = "";
                    for (var n = 0; n < string.length; n++) {
                        var c = string.charCodeAt(n);
                        if (c < 128) {
                            utftext += String.fromCharCode(c);
                        }
                        else if((c > 127) && (c < 2048)) {
                            utftext += String.fromCharCode((c >> 6) | 192);
                            utftext += String.fromCharCode((c & 63) | 128);
                        }
                        else {
                            utftext += String.fromCharCode((c >> 12) | 224);
                            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                            utftext += String.fromCharCode((c & 63) | 128);
                        }
                    }
                    return utftext;
                }
    
    
                // public method for encoding
                return {
                    encode : (typeof btoa == 'function') ? function(input) { return btoa(input); } : function (input) {
                        var output = "";
                        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
                        var i = 0;
                        input = utf8Encode(input);
                        while (i < input.length) {
                            chr1 = input.charCodeAt(i++);
                            chr2 = input.charCodeAt(i++);
                            chr3 = input.charCodeAt(i++);
                            enc1 = chr1 >> 2;
                            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
                            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
                            enc4 = chr3 & 63;
                            if (isNaN(chr2)) {
                                enc3 = enc4 = 64;
                            } else if (isNaN(chr3)) {
                                enc4 = 64;
                            }
                            output = output +
                            keyStr.charAt(enc1) + keyStr.charAt(enc2) +
                            keyStr.charAt(enc3) + keyStr.charAt(enc4);
                        }
                        return output;
                    }
                };
            })();
    
    
            var grid = btn.up("gridpanel"),
                counter = 0;
            var columns = Ext.Array.filter(grid.columns, function (col) {
                return !col.hidden; // && (!col.xtype || col.xtype != "actioncolumn");
            });
            // columns = grid.store.fields.items;
            var sm = grid.getSelectionModel().getSelection();
            var title = grid.title;
            var returner = "";
            var data = [];
            for (var i = 0; i < grid.store.data.items.length; i++)
            data[i] = grid.store.data.items[i].data;
    
    
            var compiledWorksheets;
            
            var typeMappings = {
                'int': "Number",
                'string': "String",
                'float': "Number",
                'date': "DateTime"
            }
    
    
            function buildColumns() {
                var cols = [];
    
    
                Ext.each(columns, function (column) {
                    cols.push(buildColumn());
                }, this);
    
    
                return cols;
            }
    
    
            function buildColumn(width) {
                return Ext.String.format('<ss:Column ss:Width="200" />');
            }
    
    
            function buildRows(store) {
                var rows = [];
                counter = 0;
                store.each(function (record, index) {
                    if (sm.length != 0) {
                        Ext.Array.forEach(sm, function (smm) {
                            if (index == smm.index) {
                                rows.push(buildRow(record, index));
                                counter += 1;
                            }
    
    
                        }, this);
                    } else {
                        rows.push(buildRow(record, index));
                        counter += 1;
                    }
                }, this);
                return rows.join("");
            }
    
    
            function buildHeader() {
                var cells = [];
    
    
                Ext.each(columns, function (col) {
                    var title;
    
    
                    //if(col.dataIndex) {
                    if (col.text != undefined && col.text != " " && col.text != "&#160" && col.text != "&nbsp;") {
                        title = col.text;
                    } else if (col.name) {
    
    
                        //make columns taken from Record fields (e.g. with a col.name) human-readable
                        title = col.name.replace(/_/g, " ");
                        title = Ext.String.capitalize(title);
    
    
                    }
                    if (title != undefined && title != " " && title != "&#160") cells.push(Ext.String.format('<ss:Cell ss:StyleID="headercell"><ss:Data ss:Type="String">{0}</ss:Data><ss:NamedCell ss:Name="Print_Titles" /></ss:Cell>', title));
                    //}
                }, this);
    
    
                return cells.join("");
            }
    
    
            function buildRow(record, index) {
                var style, cells = [];
                //  if (this.stripeRows === true)
                style = index % 2 == 0 ? 'even' : 'odd';
    
    
                Ext.each(columns, function (col) {
                    var name = col.name || col.dataIndex;
    
    
                    if (name) {
                        //if given a renderer via a ColumnModel, use it and ensure data type is set to String
                        if (Ext.isFunction(col.renderer)) {
                            var value = col.renderer(record.get(name), null, record),
                                type = "String";
                        } else {
                            var value = record.get(name),
                                type = typeMappings[col.type || record.fields.get(name).type.type];
                        }
    
    
                        cells.push(buildCell(value, type, style));
                    }
    
    
                }, this);
    
    
                return Ext.String.format("<ss:Row>{0}</ss:Row>", cells.join(""));
            }
    
    
            function buildCell(value, type, style) {
                if (type == "DateTime" && Ext.isFunction(value.format)) value = value.format(dateFormatString);
                if (value.indexOf("checked") != -1) value = "true";
                if (value.indexOf("checked") == -1 && value.indexOf("checkheader") != -1) value = "false";
                if (value.indexOf("$$$") != -1) value = value.substring(3);
                // value.replace("$","");
                if (value == "$$$String") value = "String";
                if (value == "$$$Number") value = "Number";
                if (value == "$$$Boolean") value = "Boolean";
                var celltpl = '<ss:Cell ss:StyleID="' + style + '">' + '<ss:Data ss:Type="' + type + '"><=!=[=C=D=A=T=A=[' + value + ']=]=></ss:Data>' + '</ss:Cell>';
                return celltpl;
            }
    
    
            var colCount = columns.length - 2;
            var rowCount = grid.store.getCount();
    
    
            var resultstring = '<?xml version="1.0" encoding="utf-8"?>'+
                '<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:o="urn:schemas-microsoft-com:office:office">' +
                    '<o:DocumentProperties><o:Title>'+title+'</o:Title></o:DocumentProperties>'+
                    '<ss:ExcelWorkbook>'+
                        '<ss:WindowHeight>9000</ss:WindowHeight>'+
                        '<ss:WindowWidth>50000</ss:WindowWidth>'+
                        '<ss:ProtectStructure>false</ss:ProtectStructure>'+
                        '<ss:ProtectWindows>false</ss:ProtectWindows>'+
                    '</ss:ExcelWorkbook>'+
                    '<ss:Styles>'+
                        '<ss:Style ss:ID="Default">'+
                            '<ss:Alignment ss:Vertical="Top" ss:WrapText="1"  />'+
                            '<ss:Font ss:FontName="arial" ss:Size="10"  />'+
                            '<ss:Interior  />'+
                            '<ss:NumberFormat  />'+
                            '<ss:Protection  />'+
                            '<ss:Borders >'+
                                '<ss:Border ss:Position="Top" ss:Color="#e4e4e4" ss:Weight="1" ss:LineStyle="Continuous"  />'+
                                '<ss:Border ss:Position="Bottom" ss:Color="#e4e4e4" ss:Weight="1" ss:LineStyle="Continuous"  />'+
                                '<ss:Border ss:Position="Left" ss:Color="#e4e4e4" ss:Weight="1" ss:LineStyle="Continuous"  />'+
                                '<ss:Border ss:Position="Right" ss:Color="#e4e4e4" ss:Weight="1" ss:LineStyle="Continuous"  />'+
                            '</ss:Borders>'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="even">'+
                            '<ss:Interior ss:Pattern="Solid" ss:Color="#CCFFFF"  />'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="odd">'+
                            '<ss:Interior ss:Pattern="Solid" ss:Color="#CCCCFF"  />'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="evendate" ss:Parent="even">'+
                            '<ss:NumberFormat ss:Format="[ENG][$-409]dd-mmm-yyyy;@"  />'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="evenint" ss:Parent="even">'+
                            '<ss:NumberFormat ss:Format="0"  />'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="evenfloat" ss:Parent="even">'+
                            '<ss:NumberFormat ss:Format="0.00"  />'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="odddate" ss:Parent="even">'+
                            '<ss:NumberFormat ss:Format="[ENG][$-409]dd-mmm-yyyy;@"  />'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="oddint" ss:Parent="even">'+
                            '<ss:NumberFormat ss:Format="0"  />'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="oddfloat" ss:Parent="even">'+
                            '<ss:NumberFormat ss:Format="0.00"  />'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="title">'+
                            '<ss:Borders  />'+
                            '<ss:Font  />'+
                            '<ss:NumberFormat ss:Format="@"  />'+
                            '<ss:Alignment ss:WrapText="1" ss:Horizontal="Center" ss:Vertical="Center"  />'+
                        '</ss:Style>'+
                        '<ss:Style ss:ID="headercell">'+
                            '<ss:Font ss:Bold="1" ss:Size="10"  />'+
                            '<ss:Interior ss:Pattern="Solid" ss:Color="#A3C9F1"  />'+
                            '<ss:Alignment ss:WrapText="1" ss:Horizontal="Center"  />'+
                        '</ss:Style>'+
                    '</ss:Styles>'+ 
    
    
                    '<ss:Worksheet>'+
                        '<ss:Table x:FullRows="1" x:FullColumns="1" ss:ExpandedColumnCount="'+colCount+'" ss:ExpandedRowCount="'+rowCount+'">'+
                            buildColumns().join("")+
                            '<ss:Row ss:AutoFitHeight="1">'+
                                buildHeader()+
                            '</ss:Row>'+
                            buildRows(grid.store)+
                        '</ss:Table>'+
    
    
                        '<x:WorksheetOptions>'+
                            '<x:PageSetup>'+
                                '<x:Layout x:CenterHorizontal="1" x:Orientation="Landscape" />'+
                                '<x:Footer x:Data="Page &amp;P of &amp;N" x:Margin="0.5" />'+
                                '<x:PageMargins x:Top="0.5" x:Right="0.5" x:Left="0.5" x:Bottom="0.8" />'+
                            '</x:PageSetup>'+
                            '<x:FitToPage />'+
                            '<x:Print>'+
                                '<x:PrintErrors>Blank</x:PrintErrors>'+
                                '<x:FitWidth>1</x:FitWidth>'+
                                '<x:FitHeight>32767</x:FitHeight>'+
                                '<x:ValidPrinterInfo />'+
                                '<x:VerticalResolution>600</x:VerticalResolution>'+
                            '</x:Print>'+
                            '<x:Selected />'+
                            '<x:DoNotDisplayGridlines />'+
                            '<x:ProtectObjects>False</x:ProtectObjects>'+
                            '<x:ProtectScenarios>False</x:ProtectScenarios>'+
                        '</x:WorksheetOptions>'+
                    '</ss:Worksheet>'+
                '</ss:Workbook>';
    
    
            returner += resultstring;
    
    
            window.location.href = window.location.href = 'data:application/vnd.ms-excel;base64,' +
            Base64.encode(returner);
            
            Ext.MessageBox.show({
                title: 'System message',
                msg: 'You saved ' + counter + ' rows.',
                buttons: Ext.MessageBox.OK,
            });
        },
    Grids have checkbox select model and export function exports selected or all (if selection is null) rows.
    You can use this code for define a new exporter button (which is in grid's toolbar) if you need.

    I hope it will be helpful for you.

  5. #195
    Sencha User
    Join Date
    Jul 2012
    Posts
    5
    Vote Rating
    0
    gabsoftware is on a distinguished road

      0  

    Default


    Thanks, but the generated XLS file is corrupt... Renaming it to .xslx does not help.

  6. #196
    Sencha User
    Join Date
    Jul 2011
    Location
    Russia
    Posts
    41
    Vote Rating
    3
    another_i is on a distinguished road

      0  

    Default


    @gabsoftware, a generated file is corrupted in MS Office? I use LibreOffice 3.5 and it open the file correct.

  7. #197
    Sencha User
    Join Date
    Nov 2011
    Posts
    27
    Vote Rating
    -1
    ferchotipin is an unknown quantity at this point

      0  

    Default


    Quote Originally Posted by mrhomer View Post
    the plugin works great on all borwser except on IE9 could you tell me what seems to be the problem?

    I'm using extjs 4.

    Thx
    What did you do to make it work, I have the same problem that I click the button and I don't get any error, but it doesn't do anything...

    Thx

  8. #198
    Sencha User
    Join Date
    Jul 2011
    Location
    Russia
    Posts
    41
    Vote Rating
    3
    another_i is on a distinguished road

      0  

    Default


    Also saving Base64 String as an Excel .xls/.xlsx file using JavaScript impossible in IE7 without a server-side proxy. So, generally, it is better to use server-side code for a generation files, or you can also output an HTML table and ask the user to copy and paste it into Excel.
    Server-side libraries are:And i think there are an other ones.

  9. #199
    Sencha User
    Join Date
    Jul 2012
    Posts
    5
    Vote Rating
    0
    gabsoftware is on a distinguished road

      0  

    Default


    I use LibreOffice 3.5 as well (I do not have MS Office). I got a general error whenever I try to open the file. The
    generated file is in attachment.

    Note : I tried to indent the file to find out why it causes this error, and removed the "=" from the CDATA sections. Changed nothing, same error.

    default.zip

  10. #200
    Sencha User
    Join Date
    Jul 2012
    Posts
    5
    Vote Rating
    0
    gabsoftware is on a distinguished road

      0  

    Default


    By the way, here is my attempt at exporting a grid to CSV (based on the function from another_i) :


    Code:
    btn_csv_click: function( btn, e, options)
    { 
        // Base64 encode / decode http://www.webtoolkit.info/
        var Base64 =
        (
            function()
            {
                // private property
                var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    
    
                // private method for UTF-8 encoding
                function utf8Encode(string)
                {
                    string = string.replace(/\r\n/g,"\n");
                    var utftext = "";
                    for( var n = 0; n < string.length; n++ )
                    {
                        var c = string.charCodeAt(n);
                        if( c < 128 )
                        {
                            utftext += String.fromCharCode(c);
                        }
                        else if( (c > 127) && (c < 2048) )
                        {
                            utftext += String.fromCharCode((c >> 6) | 192);
                            utftext += String.fromCharCode((c & 63) | 128);
                        }
                        else
                        {
                            utftext += String.fromCharCode((c >> 12) | 224);
                            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                            utftext += String.fromCharCode((c & 63) | 128);
                        }
                    }
                    return utftext;
                }
    
    
                // public method for encoding
                return {
                    encode : (typeof btoa == 'function') ? function(input) { return btoa(input); } : function (input)
                    {
                        var output = "";
                        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
                        var i = 0;
                        input = utf8Encode(input);
                        while( i < input.length )
                        {
                            chr1 = input.charCodeAt(i++);
                            chr2 = input.charCodeAt(i++);
                            chr3 = input.charCodeAt(i++);
                            enc1 = chr1 >> 2;
                            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
                            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
                            enc4 = chr3 & 63;
                            if (isNaN(chr2))
                            {
                                enc3 = enc4 = 64;
                            } else if (isNaN(chr3))
                            {
                                enc4 = 64;
                            }
                            output = output +
                            keyStr.charAt(enc1) + keyStr.charAt(enc2) +
                            keyStr.charAt(enc3) + keyStr.charAt(enc4);
                        }
                        return output;
                    }
                };
            }
        )();
    
    
        var grid = btn.up("gridpanel"),
        counter = 0;
    
        var columns = Ext.Array.filter
        (
            grid.columns, function (col)
            {
                return ! col.hidden; // && (!col.xtype || col.xtype != "actioncolumn");
            }
        );
    
        var sm = grid.getSelectionModel().getSelection();
        var title = grid.title;
    
        var returner = "";
    
        var data = [];
        for (var i = 0; i < grid.store.data.items.length; i++)
        {
            data[i] = grid.store.data.items[i].data;
        }
        counter = data.length;
    
        //build the header line
        for( var i = 0; i < columns.length; i++ )
        {
            if( i > 0 )
            {
                returner += ",";
            }
            returner += columns[i].dataIndex; 
        }
    
    
        var value;
    
        //For each line
        for( var i = 0; i < data.length; i++ )
        {
            //begins a new line
            returner += "\n";
    
            //builds a line
            for( var j = 0; j < columns.length; j++ )
            {
                if( j > 0 )
                {
                    returner += ",";
                }
                value = data[ i ][ columns[ j ].dataIndex ];
                if( value === null )
                {
                    value = "";
                }
                returner += value;
            }
        }
    
        //send the file
        downloadDataURI
        (
            {
                filename: "export.csv", 
                data: "data:text/csv;base64," + Base64.encode(returner)
            }
        );
    
        //display how many exported rows
        Ext.MessageBox.show
        (
            {
                title: 'Export',
                msg: counter + ' lignes ont été exportées.',
                buttons: Ext.MessageBox.OK
            }
        );
    }
    File download-data_uri.js to include as a resource as well as jQuery:
    Code:
    /* dependency: jquery (include in resources) */
    
    var downloadDataURI = function(options) {
      if(!options) {
        return;
      }
      $.isPlainObject(options) || (options = {data: options});
      if(!$.browser.webkit) {
        location.href = options.data;
      }
      options.filename || (options.filename = "download." + options.data.split(",")[0].split(";")[0].substring(5).split("/")[1]);
      options.url || (options.url = "http://download-data-uri.appspot.com/");
      $('<form method="post" action="'+options.url+'" style="display:none"><input type="hidden" name="filename" value="'+options.filename+'"/><input type="hidden" name="data" value="'+options.data+'"/></form>').submit().remove();
    }
    Note that I use the download-data_uri.js script to force the filetype of the saved file, but that is optional if you don't mind.

Thread Participants: 115

  1. dawesi (1 Post)
  2. feiji1983 (1 Post)
  3. isaac (1 Post)
  4. radtad (4 Posts)
  5. austin1030 (1 Post)
  6. pavanextjs (5 Posts)
  7. aragm (1 Post)
  8. terjeio (1 Post)
  9. il Sergio (2 Posts)
  10. edspencer (1 Post)
  11. nitingautam (2 Posts)
  12. edykstra (3 Posts)
  13. kalchas (4 Posts)
  14. pardha (1 Post)
  15. shelly (1 Post)
  16. talha06 (3 Posts)
  17. vaucer (1 Post)
  18. SMMJ_Dev (7 Posts)
  19. Ekambos (1 Post)
  20. vispiron (1 Post)
  21. sdruckerfig (4 Posts)
  22. jwcraig (1 Post)
  23. dbrin (1 Post)
  24. scaddenp (2 Posts)
  25. grisevich (1 Post)
  26. semialcruz (3 Posts)
  27. krishnarn1 (1 Post)
  28. mikih (1 Post)
  29. Teemac (3 Posts)
  30. jpcoppol (1 Post)
  31. ssuarez (4 Posts)
  32. trinitrotoluen (1 Post)
  33. aladdina (1 Post)
  34. Mental (3 Posts)
  35. nuskin (5 Posts)
  36. droessner (5 Posts)
  37. HIG (1 Post)
  38. jjerome (4 Posts)
  39. bee (2 Posts)
  40. RAD001 (8 Posts)
  41. RNL (1 Post)
  42. shawon (4 Posts)
  43. parkcity (4 Posts)
  44. carlosgoias (1 Post)
  45. Ewoq (7 Posts)
  46. skotamreddy (1 Post)
  47. another_i (5 Posts)
  48. neerajbherwal (1 Post)
  49. nimda13 (2 Posts)
  50. acteon (2 Posts)
  51. ma1986 (2 Posts)
  52. pierrocknroll (1 Post)
  53. Aranair (7 Posts)
  54. clarkbanks (1 Post)
  55. linyajun (1 Post)
  56. delusion (2 Posts)
  57. Jay Tanwar (2 Posts)
  58. supermarcos (6 Posts)
  59. mmuzamil (1 Post)
  60. amishra06 (1 Post)
  61. hundare (1 Post)
  62. Ecthelion (1 Post)
  63. balajivaikar (2 Posts)
  64. jarobi (1 Post)
  65. ferchotipin (2 Posts)
  66. sebas2515 (3 Posts)
  67. arpeggian (3 Posts)
  68. a_kanin (1 Post)
  69. MeDigital (1 Post)
  70. Vasanthoo7 (3 Posts)
  71. jeora (1 Post)
  72. BlackLine (1 Post)
  73. mrhomer (7 Posts)
  74. KostasP (2 Posts)
  75. rdominelli (4 Posts)
  76. pksiv (1 Post)
  77. yoisen (2 Posts)
  78. opms (1 Post)
  79. Oxii (1 Post)
  80. sarz (6 Posts)
  81. gabsoftware (3 Posts)
  82. 9josh (1 Post)
  83. ananthk (2 Posts)
  84. psnprasad (1 Post)
  85. alex9311 (2 Posts)
  86. felix822 (2 Posts)
  87. mpasacrita@escholar.com (1 Post)
  88. Garry Hawkins (1 Post)
  89. jesus.balles (1 Post)
  90. chandrima31 (1 Post)
  91. this-is-sparta (1 Post)
  92. vitalz (7 Posts)
  93. Sheng_Yunzhou (2 Posts)
  94. xdengli (1 Post)
  95. sgscontact (1 Post)
  96. nitingogia@gmail.com (1 Post)
  97. Swetosuvro (1 Post)
  98. sudrak (1 Post)
  99. cdmein (1 Post)
  100. code4jhon (1 Post)
  101. felixfang (2 Posts)
  102. jayasingh1802 (2 Posts)
  103. abdul haq (3 Posts)
  104. luatbravo (1 Post)
  105. gilmaredo@gmail.com (1 Post)
  106. ricardo.lourival (1 Post)
  107. Sundarganesh Ramar (1 Post)
  108. madhavan281981 (1 Post)
  109. suvo (3 Posts)
  110. shankar8rajah1 (1 Post)
  111. benny_GI (1 Post)
  112. cojocarutudor (1 Post)
  113. arnoldvillasanta (4 Posts)
  114. tajashwin (1 Post)
  115. mangeshppatil (2 Posts)