Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2012, 04:06
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Идея: Табличный процессор с JS
Активно пользуюсь Гуглодоксом, в том числе таблицами (их вариант Экселя). Возникла идея, за которую я вряд ли когда-то возьмусь из-за отсутствия времени. Поэтому предлагаю, кому хочется что-то сделать, но не знает что, реализовать следующую вещь.

Таблицы мне кажутся очень негибкими в плане формул. Сегодня пытался вывести день недели и получилось вот что:
Код:
=IF(WEEKDAY(A2;2)=1; "пн"; IF(WEEKDAY(A2;2)=2; "вт"; IF(WEEKDAY(A2;2)=3; "ср"; IF(WEEKDAY(A2;2)=4; "чт";
IF(WEEKDAY(A2;2)=5; "пт"; IF(WEEKDAY(A2;2)=6; "сб"; IF(WEEKDAY(A2;2)=7; "вс")))))))
В конце это не жабросмайлик (не смое страшное, что может быть), это конец формулы. Кроме этого, возникает еще ряд задач, совершенно неосуществимых (по крайней мере, в рамках моих знаний).
Предлагаю сделать свой табличный препроцессор, где формулы будут обычными JS выражениями, так как JS знают очень многие, а учить быдлоформулы не всем в кайф.

Каждая ячейка имеет свой адрес вида A[1] (может A1, то есть как обычная переменная?). Диапазоны можно задавать в таком виде: range(A[1], C[54]), то есть здесь каждый элемент массива имеет информацию о своём адресе, позволяя функции range создавать диапазон.

Встроенный функций тут может быть очень мало, весь остальной функционал может быть реализован встроенными средствами JS.

Вот пара гипотетических примеров, тупо вписываемых в нужную ячейку:
1. =range(A[1], C[54]).sum();
2. =function(){
       switch(todayWeekDay()) {// допустим weekday определена где-то в программе,
                               // в виде модуля к теблицам, чтоб не писать каждый раз new Date().getDay()
         case 1: return "Понедельник";
         ......
         case 7: return "Воскресенье";
   }
3. Какая-то сторонняя функция (модуль)
   table.range(A[1], C[54]).forEach(function( cell ){
         if( cell == 4 ) {
                   cell.node.style.color = 'red'; // node — ссылка на ячейку в таблице
         }
   });


В общем, я не знаю, предлагаю ли я что-то свежее и интересное, просто такой вещью сам бы пользовался, если бы она была где-то в облаке (например, использовала Google Fusion Tables, к которому я не ровно дышу).
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности

Последний раз редактировалось FINoM, 14.01.2012 в 04:22. Причина: i
Ответить с цитированием
  #2 (permalink)  
Старый 14.01.2012, 04:16
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

В яваскрипте, тем более, все числа, строки и прочее являются объектами:
//создание объекта одной ячейки:
var node = querySelector( 'table tr:nth-child($col) td:nth-child($row)'.replace( '$col', col ).replace( '$row', row ) );
var cell = new Number( value );
cell.node = node;
cell.address = [col, row];
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #3 (permalink)  
Старый 14.01.2012, 04:24
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от FINoM
Предлагаю сделать свой табличный препроцессор, где формулы будут обычными JS выражениями, так как JS знают очень многие, а учить быдлоформулы не всем в кайф.
Тут либо охуевать от написания своего интерпретатора JS, либо охуевать от проблем с безопасностью. Извините.

А быдлоформулы скопированы из excel'я, и понятны большинству бухгалтерья, которое нифига не знает JS.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #4 (permalink)  
Старый 14.01.2012, 04:27
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от trikadin
А быдлоформулы скопированы из excel'я, и понятны большинству бухгалтерья, которое нифига не знает JS.
Вопрос в гибкости. Мне формулы кажутся крайне не гибкими.
Сообщение от trikadin
Тут либо охуевать от написания своего интерпретатора JS, либо охуевать от проблем с безопасностью. Извините.
Эм?
Для убирания проблем, связанных с кукисами и прочим, можно каждый документ вешать на отдельный домен.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #5 (permalink)  
Старый 14.01.2012, 04:30
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

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

Сообщение от FINoM
Вопрос в гибкости. Мне формулы кажутся крайне не гибкими.
А что гибкого в js? Ну, если нужны расчёты на уровне power(a1, b2) - то тут ничего не меняется, будет только Math.power(a1, b2).
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #6 (permalink)  
Старый 14.01.2012, 04:37
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

trikadin,
1. Ну, например, я хочу обратиться к ячейке, строка которой указана в другой ячейке:
B[A[5]] — как это сделать в Эксэле?
2. Условное форматирование, которое сильно хромает в современных процессорах
3. Тот же самый аякс для взятия некоторых данных из апи (мне, например, нужно постоянно вручную брать курсы НБУ за разные дни). В тех же GFT очень много самой разной информации.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности

Последний раз редактировалось FINoM, 14.01.2012 в 04:43.
Ответить с цитированием
  #7 (permalink)  
Старый 14.01.2012, 04:38
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от trikadin
Офигеть идея.
Идея странная, но ничего криминального в ней не вижу.
Что криминального вы увидели?
Ответить с цитированием
  #8 (permalink)  
Старый 14.01.2012, 05:16
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Gvozd
Идея странная, но ничего криминального в ней не вижу.
Что криминального вы увидели?
Может, я что-то неправильно понял, но, допустим, сервисом пользуется пару тысяч человек. У каждого открыто 2-3 документа.

Эм... Пол десятка тысяч доменов?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #9 (permalink)  
Старый 14.01.2012, 05:19
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

FINoM, ну это на маленькую команду проект тогда получается.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #10 (permalink)  
Старый 14.01.2012, 05:25
Кандидат Javascript-наук
Отправить личное сообщение для elf2002 Посмотреть профиль Найти все сообщения от elf2002
 
Регистрация: 30.12.2011
Сообщений: 114

Ничего не понял, наверное потому что с таблицами в JS почти не работал.
Но вот если бы еще и сортировка столбиков, то било би неплохо.
__________________
без шуток
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Идея: Список последних просмотренных страниц Grawl Элементы интерфейса 2 20.10.2014 20:45
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Срочно JS developer okp Работа 7 14.06.2011 14:54
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28