Pull to refresh

Comments 59

Ваш Oreodor использует полностью все стандартные элементы ExtJS. Вплоть до иконок и пометки поля красным уголком. Так что все вопросы скорее к Sencha, нежели к Oreodor. Хотя они могли бы и подадаптировать, я думаю.
Ага! Только это не совсем ExtJS, это Ext.NET, обертка компонентов для ASP.NET. Пока небыло необходимости как-то перегружать стили.

Сила не в компонентах, сила в том, как их организовать и граматно применить ;) Ну и чуток расширить, где надо.
… и грамотно писать слово «грамотно» :)
image
Вы перепутали мегаплан и 1с на картинках :)
Oh Shit!!! Спасибо! :) Только прошу в личку, пожалуйста…
Ну что вы, человек хочет показать свою внимательность в публику :)
> Удобное управление множественной сортировкой увы, задача нетривиальная, и никто её не осилил. Если сортировать множественно и можно, то это задается из настроек списка, как в 1С.

По-моему, самый простой способ сделать интерфейс сортировки по нескольким полям — это нарисовать для каждого сортируемого поля дополнительную «булавку» — «зафиксировать порядок сортировки» и поместить её рядом со стрелкой-указателем текущей сортировки. Все зафиксированные поля сохраняют свой порядок при изменении порядка сортировки других полей.
Хорошее решение. Нужно ещё добавить снятие всех сортировок, и как-то показывать пользователю что хоть одна сортировка установлена (как кнопка фильтры). Тогда даже если колонка прокручена горизонтальным скролом, видно что где-то что-то отсортировано.

Но при множественной сортировке важнее порядок, в котором были установлены сортировки. Вот это показать, сложнее (чтоб выглядело просто). А самое сложное — управлять порядком, ведь все сводится к Order by «Field1» then by «Field2» then by «Field3»… типа того.

И вот тут затык получается, и, в конечном итоге, выносят это все в отдельное окно настройки :\ Я пробовал много вариантов, интуитивно и легко для пользователя не вышло.
Визуально, порядок сортируемых полей можно осуществлять через drag-n-drop самих колонок таблицы. Те, что левее, являются отсортированными данными высшего порядка, чем те, что правее.

Это естественное представление для европейцев. Для других народностей, которые пишут справа-налево, порядок «правый — первый, левый — последний» можно указать в настройках приложения.
У нас есть такая фича, как закрепляемые колонки. Если в списке 50 колонок (и аналитикам никто руки не оторвал), то юзеру сложно ориентировать при горизонтальной прокрутке. Можно закрепить колонки, тогда они не будут прокручиваться, останутся на месте, а прокручиваться будут незакрепленные. В общем-то можно было бы попробовать вашу идею (надеюсь вы её ещё не запатентовали?) :) Во всяком случае я опустил руки перед этой задачей… Хотя может и сработает %)
По поводу множественной сортировки удобно сделано в DevExpress-овских контролах.
Простой клик по шапке сортирует по колонке(по возрастанию/убыванию), и сбрасывает предыдущую сортировку.
Клик по шапке с Shift-ом добавляет данную колонку к списку сортируемых. Очень просто, и мало кликать.

Еще хорошая вещь придумана с фильтрацией. В шапке таблицы следующей строкой после имён идёт строка с пустыми input-полями для фильтрации — т.е. под каждым именем колонки есть input для поиска по данной колонке. Поэтому не нужно никаких дополнительных открывающихся окон (аля 1С) для фильтрации — вписал в поле, нажал Enter — пошла фильтрация. Фильтрация будет простая — т.е. для строк '..%', для остального — просто сравнение. В отдельном окне можно задать кастомную фильтрацию со всеми плюшками. Такое решение обеспечивает гибкость и достаточную быстроту выполнения типовых операций.

По поводу порядка — при фильтрации понятное дело разницы нет, а при сортировке — можно помечать цифирьками sub/sup-скриптом около имени сортируемой колонки в шапке. Изменять порядок конечно не очень понятно как, я согласен, но отобразить максимально понятно можно.
Клик с Shift — это круто. Спасибо! Может вам будет интересно в демках Oreodor посмотреть на менюшку фильтрации вживую.
Всегда пожалуйста :)

Да, конечно посмотрю, интересно.
Блин, отличный обзор!
А было бы круто, если бы была сводная таблица в конце. Типа:
Множественная сортировка: 1С-да, Остальные — нет.
Контекстное меню: 1С, Ореодор — да, Остальные — нет.
Изменение порядка колонок: — Скрытие колонок: — …
ну и т.д.
Интересно было бы посмотреть…
А в 1с это разве не просто Axtive X? там теперь реально html?
Хехе, чистый HTML + JS! Я бы даже сказал отборный. Потыкайтесь, там интересно организованы окна в отдельном браузере. У них это уже года 2-3 как работает, в этой самой демке. Ребята молодцы, у них много интересных решений.
Я восхищён. Вот молодцы! Видимо, давно сделали ставку на облака.
Спасибо! Сейчас много систем метит в облака, мы (я один из ведущих разработчиков Oreodor, делаю View) в этом направлении года 3-4 работаем. Текущая итерация (3-я версия платформы) почти два делается. Не знаю точно сколько 1С свой веб клиент разрабатывают, но у них, судя по моему анализу, есть некоторые сложности с преемственностью предыдущих версий, в том числе и настольных.

В общем на этом направлении много чего интересного происходит, война за рыкон только начинается.
В 1С тоже есть редактируемые таблицы, но их возможности несколько ограничены

Можно поподробней, чего конкретно не хватает в этом плане 1С, по сравнению с приведенными конкурентами?
Редактируемость гридов вообще штука сложная. Там нет ПУЗ-ов, ограничения на DataBinding-и, на неатомарные операции, не все типы данных можно редактировать. Редактируемая сущность должна быть простой. Вообще куча ограничений на это везде. Я не хочу сказать что 1С плохой, а FinoBox хороший, вовсе нет. Просто обозначил сложный момент. Ни одна система, из тех что я видел, не реализовала полноценный редактируемый грид, везде есть мирриады ограничений навроде тех, что я перечислил.
Ни в коем случае не обвиняю вас в предвзятости. Просто раньше не задумывался особо, все устраивало, вот и хочется получить мнение со стороны — чего же там не хватает.
Сложно тут сказать что-то совсем конкретное. В целом есть два этапа ввода редактируемого грида (как по мне):
1) Отделение данных от представления. На клиент приходят сырые данные и на клиенте они уже красиво показываются. Это можно увидеть в HTTP запросах от грида. Теперь можно использовать поля редактирования, слегка адаптированные, но в целом как на форме.
2) Интеграция событий полей и всего с ней связанного в поля редактирования на гриде. Для этого нужно как-то использовать богатые механизмы формы, на которых реализованы события поле, ПУЗ-ы, изменения данных с сервера в ответ на изменение состояния записи.

И тут возникает куча нюансов, типа динамическое изменение доступности, видимости редактируемого поля.

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

Вот ориентируясь на такие моменты можно понять насколько полная реализация в той, или иной системе. Боюсь отвечать совсем конкретно, т.к. я могу что-то упустить и принизить достоинства других систем. Хотя все они очень крутые и хорошо делают свое дело (плохие я в обзор не включал).
есть там всё, вплоть до динамического изменения типа данных в редактируемом поле в зависимости от значений других реквизитов. Более того, редактирование таблицы невозможно без привязки к некоторому объекту. Таким образом, целостность, непротиворечивость и прочая, и прочая реализуется на уровне объекта в целом, а не отдельной таблицы, причём как на уровне описания метаданных, так и на уровне кода. А от редактирования собственно объектов в табличном виде в управляемом приложении ушли сознательно: объекты редактируются только в формах.
Вот самое интересное — это «А от редактирования собственно объектов в табличном виде в управляемом приложении ушли сознательно: объекты редактируются только в формах.». Остальное я и назвал — «ограничения». Слишком много терминологии в обсуждении таких вопросов возникает. За ней теряется логика :\
ну так и приведите без лишних слов конкретные примеры того, чего нельзя отредактировать в таблицах в 1С. Пока все утверждения об ущербности 1С достаточно беспочвенны.
Да вы, батенька, тролль. Я уж было хотел ответить, но понял что ответ вас не интересует. Кратко — 1С крутые ребята, проблемы описаны в комментах выше. В этой ветке больше не отвечу.
когда возразить нечего, начинаются обзывательства и уход от темы. в иных кругах это носит название «критиканство»
Кстати, большинство систем дают возможность задавать сортировку из интерфейса лишь по одной колонке единовременно. Удобное управление множественной сортировкой увы, задача нетривиальная, и никто её не осилил. Если сортировать множественно и можно, то это задается из настроек списка, как в 1С.

я осилил в моем ERP, правда статистика показывает что пользователи почти никогда не сортируют больше чем по одной колонке.
потому что никто не предлагает
меня отсутствие очевидной реализации этого весьма бесит, в том же phpMyAdmin, приходится писать sql-запрос ручками каждый раз
я предлагаю, пока что клиентов мало.
У вас скриншоты мелкие, ничего разглядеть невозможно. Это еще я программист, а пользователи выставляют шрифты побольше
Там есть PDF файл с презентацией, а если перейдете на русскую версию сайта, то еще и презентация, которую я на Ленэкспо давал в апреле. Если вас интересует, могу показать демо, но наверное в личке?
Нет, не интересует на самом деле, просто хотел посмотреть, как сделана мультисортировка.
Сделано просто, на каждой колонке ссылка 'не сортировано', при нажатии изменяется на 'по возрастанию', при следующем нажатии изменяется на 'по убыванию' и при следующем нажатии изменяется на 'не сортировано'.

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

1. Имя — по возрастанию.
2. Год — по убыванию.

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

статистика использования рядовыми юзерами может быть интересна разработчикам, но не мне

я, кстати, замечал, что не зная очередного ПО, за счет только использования стандартных навыков (хоткеи, контекстные меню, хинты, умение вычленять нужное взглядом, логика, в конце концов) разбирался в ситуациях быстрее, чем бухгалтеры/экономисты, которые в этом ПО уже годами работали
Проблема с пользователями систем намного глубже, это все-таки еще не те люди, которые сегодня вырасли с iPhone и iPad в руках. Они буквально не знают чем отличается программа, в которой они работают от визуального shell операционной системы. Им приходится обьяснять как выглядит гнездо CAT5 кабеля и они совсем неуверенно используют меню. Для них любое действие в компьютере кажется финальным и опасным, то есть перейти из одного окна в другое это проблема, даже детали окна (где клавиша минимизировать, где меню в окне, где титул, как окно передвинуть и т.п.) это все для них является проблемой.

Правда и этих людей я постепенно как-то научил даже пользоваться subset (частью) регулярных выражений, то есть буквально в фильтрах я позволяю некоторые детали regex и булеановскую логику, и им можно это обьяснить. Конечно со временем интерфейс стал позволять им делать это намного более простым способом, но некоторые из них так наловчились, что им теперь проще несколько букв напечатать в поле фильтра и сразу вывести на экран то что хотели.

А ведь сначала такие простые казалось бы понятия как: «часть слова и еще одна часть слова напечатанные вместе определенным образом выведут на экран все продукты с названием, где содержаться обе эти части в любом порядке и не оглавление не имеет роли» — это было чем-то вроде черной магии.

Просто чтобы что-то выучить берет какое-то время.
Это все очень круто. А нет чего попроще, что бы тупо пару таблиц в sql через web редактировать.
Непригоден совершенно.
зато именно то, что вы спросили
Это совсем не то, что я спросил. Даже если вырвать мои слова из контекста, что вы и попытались сделать.
То что вы спросили вам и дали. Совершенно точно подходит под ваш запрос. Если «непригоден совершенно» то аргументируйте и дополните ваш запрос новыми требованиями, тогда помогут более конкретно
phpMyAdmin как следует из названия предназначен для администрирования СУБД, но никак не для работы с ними.
Сейчас информация хранится в excel, но это
1. неудобно
2. нет проверки целостности данных
3. о работе нескольrих пользователей можно забыть

Варианты типа libreoffice base тоже малопригодны, формы там слишком убогие.
ну в общем, как обычно приходиться «вытягивать требования из заказчика» :)

картина становится уже более ясной что вам требуется.
если используете excel и вроде как не устраивает, что то не то, но тем не менее используете, может попробовать access? :))

Опять же уточните предметную область и что конкретно требуется от продукта, кроме того что известно:
1. Манипуляция данными
2. Проверка целостности данных. Тут конечно не очень понятно что вы под этим понимаете/подразумеваете.
3. Мульти-пользовательская система.
access не годится, так как нужна кроссплатформенность. web тут позволяет править данные хоть с телефона с андроидом.
Манипуляции — самые простые действия, ввод, правка, удаление.
Целостность — как в реляционных СУБД, например проверка на уникальность или наличие данных в других таблицах
Многопользовательсткая — значит пользователи работают, а не бегают к админу или орут на весь офис «кто залочил файл».
На саммо деле, вы можете взять и установить и использовать нашу систему(Oreodor) бесплатно. Мы, в свою очередь, окажем вам всяческую поддержку
Позволяет ли ваша система описывать некую логику к данным?
Банальный пример: учет IP адресов. Нужна проверка на вхождение в префикс, маски и прочих мелочей.
Может, и не только это
Вы крутые. Но Oreodor, как я понял из сайта, требует IIS и MSSQL. А у нас как-то винды нет. Совсем нет.
это прискорбно (с) :)
ASP.NET MVC. Я проще ничего не знаю для этого.
не через веб попробуйте mysql workbench
>Что интересно, в 1С ссылок нет (возможно это обусловлено их оконной организацией).

В 1с ссылки есть, только ими почему-то не пользуются в стандартных конфигурациях.
Хмм, не заметил. Т.е. можно перейти на запись или форму в рамках одного окна, или открыть запись в другому окне по ссылке? *ссылка в смысле тег A
Ссылка может быть как элементом формы, так и использоваться в HTML блоке. Может указывать как на внутренний объект, так и на любой другой адрес.

image

image
Спасибо! Поправил топик. Честно сказать я облазил только демку, так что мог что-то упустить. С точки зрения написания решения я с 1С не разбирался.
Кстати, большинство систем дают возможность задавать сортировку из интерфейса лишь по одной колонке единовременно. Удобное управление множественной сортировкой увы, задача нетривиальная, и никто её не осилил. Если сортировать множественно и можно, то это задается из настроек списка, как в 1С.
— тривиально. У меня как часть платформы идет генератор кода, который создает большую часть кода во всех уровнях (DAO, VO, Business Delegate, Filters, Actions, Forms, Web Beans, JSP) и по умолчанию после генерации можно сортировать по всем заданным колонкам, даже сразу. Под названием каждой колонки слово «не сортировано», нажимаешь, получаешь «по возрастающей», нажимаешь еще раз и получаешь " по убывающей", рядом с клавишей «сформировать» появляется название колонки и выбранная сортировка. После выбора первого уровня сортировки, нажимаешь на «не сортировано» на следующей колонке и т.д. Потом нажимаешь на клавишу «сформировать» и выдаются данные сортированные по всем заданным колонкам сразу по порядку их выбора в выбранном направлении (ascending / descending).
Фильтрация у меня в платформе решена несколькими путями сразу, на каждой колонке можно задать фильтры. Для дат используются 'от' и 'до' поля, для чисел тоже, для текста урезанные регулярные выражения (об этом немного здесь). Кроме того можно фильтровать по динамическим структурам, созданным на ходу путем обьединения ярлыков, прицепленных к записям. Что интересно, используется 'гуманитариями' успешно.
Sign up to leave a comment.

Articles