Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Global variables
- var ss = SpreadsheetApp.getActiveSpreadsheet();
- var sh = SpreadsheetApp.getActiveSheet(); // gv?
- var lastrow = ss.getLastRow();
- var lastcol = ss.getLastColumn();
- var app = UiApp.getActiveApplication();
- // Menu additions
- function onOpen() {
- var menuEntries = [{name: 'Поиск вакансий', functionName: 'ui'}];
- ss.addMenu('Отчеты',menuEntries);
- }
- // UI
- function ui() {
- var app = UiApp.createApplication().setHeight(400).setWidth(800).setTitle('Поиск вакансий');
- var panel = app.add(app.createHorizontalPanel());
- var input = panel.createTextBox().setName('input').setId('input').setFocus(true);
- var button = panel.createButton('Сформировать документ').setId('button');
- panel.add(input).add(button);
- var handler = app.createServerHandler('search');
- input.addChangeHandler(handler);
- handler.addCallbackElement(input);
- var spanel = app.createScrollPanel(app.createFlexTable().setId('table').setWidth(785).setBorderWidth(1).setCellPadding(1)).setPixelSize(800, 383).setAlwaysShowScrollBars(true);
- var table = app.getElementById('table'); // gv?
- table
- .setWidget(0,0,app.createCheckBox().setValue(true).setEnabled(false))
- .setWidget(0,1,app.createLabel('Вакансия'))
- .setWidget(0,2,app.createLabel('График'))
- .setWidget(0,3,app.createLabel('Время'))
- .setWidget(0,4,app.createLabel('Условия'))
- .setWidget(0,5,app.createLabel('Зарплата'))
- .setWidget(0,6,app.createLabel('Оплата'))
- .setWidget(0,7,app.createLabel('Организация'))
- .setWidget(0,8,app.createLabel('Телефон'));
- app.add(spanel);
- ss.show(app);
- }
- // Search
- function search(e) {
- var table = app.getElementById('table');
- var query = e.parameter.input.toLowerCase();
- var hidden = app.createHidden().setId('hidden').setName('hidden');
- app.add(hidden);
- var button = app.getElementById('button');
- var click = app.createServerHandler('click');
- button.addClickHandler(click);
- click.addCallbackElement(hidden);
- var check = app.createServerHandler('check');
- check.addCallbackElement(table).addCallbackElement(hidden);
- var r = 1;
- var data = sh.getRange(1,1,lastrow,lastcol).getValues();
- for (var row = 0; row < data.length; row++) {
- if (data[row].toString().toLowerCase().match(query) == query && query != '') {
- table.setWidget(r,0,app.createCheckBox().addValueChangeHandler(check).setName('check'+row));
- for (var c = 0; c < data[row].length; ++c) {
- table.setText(r,c+1,data[row][c].toString());
- }
- ++r
- continue;
- }
- }
- return app;
- }
- // Storing checked rows
- function check(e) {
- var checkedArray = [];
- var data = sh.getRange(1,1,lastrow,lastcol).getValues();
- for(var n=0; n < data.length;++n){
- if(e.parameter['check'+n]=='true'){
- checkedArray.push(data[n]);
- }
- }
- var hidden = app.getElementById('hidden');
- hidden.setValue(checkedArray);
- return app;
- }
- function click() {
- var hidden = app.getElementById('hidden')
- var d = new Date();
- var time = d.toLocaleTimeString();
- DocumentApp.create('doc '+time).getBody().appendTable(hidden);
- }
Advertisement
Add Comment
Please, Sign In to add comment