среда, 6 октября 2021 г.

Google Таблицы. Простая база данных (БД). Отчет

 Проведем работу по созданию отчета из нашей БД 

https://zen.yandex.ru/media/id/5acdb8b03dceb7c32f3431e0/google-tablicy-prostaia-baza-dannyh-bd-615d6420dc8e076183d3e6e4

Для формирования отчета будем использовать функцию QUERY. Для возможности выбора параметров отчета настроим входные данные.

Введем поле для ввода нашего исполнителя:

Введем поля: дата начало и дата конец

Для нашего запроса отдельно получим год, месяц и день

Запишем текст нашего запроса в ячейку B4

="SELECT B, COUNT(D), SUM(D) WHERE F = '"&C1&"' AND E >= date'"&D2&"-"&E2&"-"&F2&"'

AND E <= date'"&D3&"-"&E3&"-"&F3&"'AND B <> '' GROUP BY F, B ORDER BY B LABEL B 'наименование работ', COUNT(D) 'количество заказов', SUM(D) 'количество работ'"

Теперь создадим запрос и поместим его в ячейку B5:

=QUERY(input!B11:F;B4)

Теперь можно пользоваться:

 

 

 

пример таблицы

https://docs.google.com/spreadsheets/d/1-ZRIeY4BIDxQ4m6_QOLXSBwGsWoqDoKUv4PHz6-lftk/edit?usp=sharing

если интересно как работать с гугл таблицами

см. так же

https://sites.google.com/view/netkredo/google-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B


Google Таблицы. Простая база данных (БД).

 Упростим ввод данных в гугл таблицу. Для начала определим, какие данные мы будем хранить в нашей таблице. Например, такие

Наименование работ

номер заказа

количество работ

дата выполнения

Исполнитель




06.10.2021


 

Далее добавим в скрипт функцию, которая будет брать данные из нашей строки, вставлять их в таблицу ниже и затем инициализировать наши поля для следующего ввода.

// ---

// --- Запиcь (универсальная функция) 

// --- вставка новой строчки с данными из строки ввода

// --- указываем количество столбцов

// --- привязка идет к строке номер 4 - начальные данные

// --- и строке 11 конечные данные(место - куда вставляется строка)

// --- после вставки - происходит очистка строки номер 4, а так же ее инициализации, № п/п и текущая дата

// ---

function AddNewRow(iColumn) {

  let ss = SpreadsheetApp.getActive();

  let sh = ss.getActiveSheet();

 

  //let sLastColumn = sh.getRange("B4:H").getLastColumn();

 

  //Logger.log("sLastColumn " + sLastColumn)

 

  // --- вставка новой - пустой строки

  sh.insertRowBefore(11);  

 

  // --- получаем данные из строки 4

  let r1 = sh.getRange(4,2,1,iColumn);  

 

  // --- вставляем данные в строку номер 11

  r1.copyTo(sh.getRange(11,2,1,iColumn), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

 

  // --- инициализация строки ввода

  r1.clear();

  sh.getRange('E4').setValue(new Date());

  //sh.getRange('B4').setValue(sh.getRange(11,2).getValue()+1);

  

 


Добавим кнопку для вызова нашей функции. 

Далее добавим функцию обработки нашей кнопки.

// ---

function buttonRecord (){

  AddNewRow(5);

}

Теперь при нажатие кнопки получим результат

пример таблицы

https://docs.google.com/spreadsheets/d/1-ZRIeY4BIDxQ4m6_QOLXSBwGsWoqDoKUv4PHz6-lftk/edit?usp=sharing

 

 

 

если интересно как работать с гугл таблицами

см. так же

https://sites.google.com/view/netkredo/google-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B