Форум » [x]Harbour » Наличие товара в dbf базе и быстрый доступ с мобильных устройств » Ответить

Наличие товара в dbf базе и быстрый доступ с мобильных устройств

Sergy: Добрый день, уважаемые друзья. В соответствии с веяниями времени, возник вопрос: - есть торговое предприятие и "много" клиентов, которые желают получить оперативную информацию о наличии товара, его цене, описании, изображении. Уже много лет работает довольно простая система: ежедневно на нашем веб-сервере обновляется прайс лист в формате *.xls со специальным полем "фото", которое ведет на наш сайт с описанием товара. Так решается вопрос с размером файла: он небольшой, около 500Кб (тк не содержит лишней информации) и в итоге представляет устраивающую по оперативности информацию. Но скачивать документ эксель, искать в нем среди тысяч артикулов нужный товар на смартфоне/небольшом планшете довольно неудобно. Какой посоветуете способ коммуникации с современными девайсами с усеченными операционками типа iOS/Android ? Сам пока вижу два варианта: 1) "какой-то" скрипт поиска прямо с главной страницы сайта по ежедневно выгружаемому xml файлу, в котором будет хранится артикул товара + количество в наличии + цена + ссылка на картинку на веб-сервере. 2) выгружать сразу в формате таблицы MySQL - условия договора с хостером позволяют использовать их ресурс. В обоих случаях у меня есть сомнения: 1) будет ли приемлемая скорость поиска "скрипта" в текстовом xml файле с таблицей из 5-7 тысяч строк ? 2) MySQL в таком простом вопросе - как из пушки по воробьям. Может быть, кто-то уже наступал на подобные грабли ?

Ответов - 52, стр: 1 2 3 All

AlexMyr: 2-й вариант, вы сайту запрос, он вам ответ Sergy пишет: 2) выгружать сразу в формате таблицы MySQL - условия договора с хостером позволяют использовать их ресурс. Sergy пишет: 2) MySQL в таком простом вопросе - как из пушки по воробьям. почему сразу пушка и воробьи, если условие Sergy пишет: Но скачивать документ эксель, искать в нем среди тысяч артикулов нужный товар на смартфоне/небольшом планшете довольно неудобно.

SergKis: Sergy пишет:Сам пока вижу два варианта: для начала попробуйте статическую страницу[ы]. (якоря, переходы ...) - может прокатить пробовал js массив с данными (до 10 000) - было приемлемо вариант c MySql - тоже хорош в LetoDb есть php client - разобравшись - тоже вариант

SergKis: Sergy CGI технологию никто не отменял - hb exe грузятся быстро.


SergKis: Sergy У alkresin где то здесь был хороший рабочий пример. можно глянуть примеры: grid jQuery

SergKis: Sergy вот кое какие инструкции - смотрел давно, но ссылки остались: Документация по Grid (плагин для jQuery): http://www.simplecoding.org/jquery-grid-plugin-prodvinutoe-reshenie-dlya-sozdaniya-tablic.html http://eye-ru.livejournal.com/148145.html http://www.linkexchanger.su/2010/118.html jQuery учебник http://www.wisdomweb.ru/JQd/draggable.php

Sergy: AlexMyr пишет: почему сразу пушка и воробьи, если условие Sergy пишет: Но скачивать документ эксель, искать в нем среди тысяч артикулов нужный товар на смартфоне/небольшом планшете довольно неудобно. Не знаю.. почему-то казалось, что такие мощные средства как SQL нужно использовать, когда нельзя решить задачу другим способом. Ведь по сути, там кроме плоской таблицы с несколькими тысячами записей не будет ничего...

Sergy: SergKis пишет: для начала попробуйте статическую страницу[ы]. (якоря, переходы ...) - может прокатить пробовал js массив с данными (до 10 000) - было приемлемо вариант c MySql - тоже хорош в LetoDb есть php client - разобравшись - тоже вариант Немного не понял. Как это "попробовать статическую страницу" ? И причем тут LetoDB, если работа у меня идет через dbfntx, а нужна лишь выгрузка данных на сервер провайдера. SergKis пишет: CGI технологию никто не отменял - hb exe грузятся быстро. Т.е. экзешник нужно будет загрузить провайдеру? Он на это согласится ? Извините за чайниковость.

Sergy: SergKis пишет: У alkresin где то здесь был хороший рабочий пример. можно глянуть примеры: grid jQuery SergKis пишет: вот кое какие инструкции - смотрел давно, но ссылки остались: Документация по Grid (плагин для jQuery): http://www.simplecoding.org/jquery-grid-plugin-prodvinutoe-reshenie-dlya-sozdaniya-tablic.html http://eye-ru.livejournal.com/148145.html http://www.linkexchanger.su/2010/118.html jQuery учебник http://www.wisdomweb.ru/JQd/draggable.php Пошел изучать, спасибо. Так понимаю, что идею "скрипт поиска по xml файлу" лучше сразу похоронить ?

SergKis: Sergy пишет:Немного не понял. Как это "попробовать статическую страницу" ? это готовые созданные html страницы, например различные варианты группировок (таблица по группам, маркам, артикулам, наименованиям, ...), внутри по наименованиям и ... и index.html где группировки переходы на страницы с табл. подгрупп, потом на товар, картинку ... Sergy пишет:Так понимаю, что идею "скрипт поиска по xml файлу" лучше сразу похоронить ? в dbf же лучше искать !

SergKis: Sergy пишет:Т.е. экзешник нужно будет загрузить провайдеру? Он на это согласится ? Это вряд ли. Я уже и забыл, что есть такой вариант - у провайдера...

azoo: Sergy, Я также интересовался данной темой. Задача примерно такая же как у тебя. Т.е. удалённый доступ к БД через планшет. Сначала думали через браузер. Поднять на сервере Http-сервер, открыть порты и т.д. Сложности с доступом к DBF из PHP и отображение в виде таблицы не устраивает. Большая база по продукции, остаткам на складе, ценам. Нужен поиск и удобная навигация. Кроме того необходимо вводить онлайн-заявки. Остановились на варианте удаленного рабочего стола к серверу через планшет. Вопрос с подбором необходимого софта. Какие есть терминальные клиенты Android/iOS/Windows Phone для доступа к сервису терминалов Windows Server 2008 ?

Sergy: azoo пишет: Остановились на варианте удаленного рабочего стола к серверу через планшет. Таким образом работают сотрудники фирмы. Давать доступ к программе для всех клиентов - пока не готов.

Sergy: SergKis пишет: Я уже и забыл, что есть такой вариант - у провайдера.. У хостера/провайдера есть свои преимущества, которые мы используем. Ставить свой сервер нет пока ни единой причины.

SergKis: SergKis пишет:У alkresin где то здесь был хороший рабочий пример. нашел где это было, но ссылка протухла. alkresin пишет: Сделал тестовый доступ: http://www.belacy.com/all/demo.html логин: guest пароль: g2012 Набор модулей урезан, данные (названия,адреса и реквизиты организаций, суммы и пр.) произвольно изменены, но всеони берутся с letodb сервера. Доступны просмотр списка, фильтрация записей, просмотр записи при двойном щелчке по ней. В режиме фильтрации можно, нажав в любом поле F9, ввести диапазон включаемых в фильтр значений. Может есть возможность восстановить на своем сайте и выложить исходники (как обещали) ?

azoo: Sergy пишет: azoo пишет: цитата: Остановились на варианте удаленного рабочего стола к серверу через планшет. Таким образом работают сотрудники фирмы. А какой программой на планшете пользуетесь?

Sergy: azoo пишет: А какой программой на планшете пользуетесь? VNC viewer

azoo: Sergy пишет: azoo пишет: цитата: А какой программой на планшете пользуетесь? VNC viewer VNC может подключаться к Terminal Services? В качестве сервера что?

Sergy: azoo пишет: VNC может подключаться к Terminal Services? В качестве сервера что? Сорри за введение в заблуждение. Несколько сотрудников заходят через Microsoft Remote Desktop для iOS: https://itunes.apple.com/ru/app/microsoft-remote-desktop/id714464092?mt=8 Сервер Windows 2008 + Remote Desktop.

azoo: Sergy,спасибо за подсказку. Проверил. С помощью Remote Desktop Client (Android) можно заходить на сервер терминалов. Можно использовать для удаленного доступа сотрудников. Далее запускать Windows-приложение в терминальной сессии и смотреть что надо как будто работаешь в Windows. Открывать БД и т.п. Единственное может понадобиться адаптация рабочей программы для работы через сенсорный экран. Например кнопки побольше, поля ввода.

SergKis: Sergy вот еще вариант (сборка под hb 2.0 msvc), в hb 3.2 это contrib\hbhttpd http://gfile.ru/a8uig запуск app.exe, readmy _app.txt

Dima: SergKis пишет: вот еще вариант (сборка под hb 2.0 msvc), в hb 3.2 это contrib\hbhttpd Можно перезалить а то не тянется.

SergKis: Dima Можно перезалить а то не тянется. Перезалил http://tempfile.ru/file/3089089

Dima: SergKis Спасибо. Стянул. Запускаю APP.EXE и висяк проги , что не так делаю ? PS Есть рабочий и самодостаточный пример ?

SergKis: Dima app.exe - это http сервер на hb, _app.txt - инструкция. запускаешь Explorer, Crome, ..., вводишь адрес из _app.txt, имеем окно login, база user-ов пустая, вводишь новый, свой и получишь вход в (меню) задачу ... поработав, для остановки сервера запускаешь bat (из _app.txt). всё.

Dima: SergKis Получилось. Спасибо !

Dima: SergKis Файлы *.tpl чем создавать ?

SergKis: Dima пишет:Файлы *.tpl чем создавать ? редактором, это, я так понимаю, шаблоны html с языком вставок данных из dbf по идее взятой из (см. readmy.txt) from web2py python web framework. I like {{loop}} ... {{endloop}} much more than <loop> ... </loop> при беглом просмотре, увидел реализацию <a>...</a>, <table>.... подробнее надо изучать, но это все чистый hb, а дизайн - css+html+js+дизайнерская мысль (можно из сети и книг)

Dima: SergKis пишет: дизайн - css+html+js+дизайнерская мысль (можно из сети и книг) я в этом полный 0

SergKis: Dima пишет:я в этом полный 0 не печалься - это временно.

ММК: azoo пишет: Sergy,спасибо за подсказку. Проверил. С помощью Remote Desktop Client (Android) можно заходить на сервер терминалов. Можно использовать для удаленного доступа сотрудников. Далее запускать Windows-приложение в терминальной сессии и смотреть что надо как будто работаешь в Windows. Открывать БД и т.п. Единственное может понадобиться адаптация рабочей программы для работы через сенсорный экран. Например кнопки побольше, поля ввода. Собрал небольшой примерчик меню в стиле "метро" . Вот только незадача - нет на чем проверитью Как на сенсорном экране работает "палец" ?. Хотя бы определиться - работает ли он вообще ? http://filesmail.ru/y4qfy0fv41zp.html

Veeha: ММК пишет: Собрал небольшой примерчик меню в стиле "метро" . Вот только незадача - нет на чем проверитью Как на сенсорном экране работает "палец" ?. Хотя бы определиться - работает ли он вообще ? Работает ...

ММК: Veeha пишет: Работает ... Большое спасибо !

Andrey: ММК пишет: http://filesmail.ru/y4qfy0fv41zp.html Зашел, нажал, подождал, скачал вроде.... Почему то при установке закачался и установился браузер Амиго... А его просил устанавливаться... Потом Касперский начал орать: А в программе сделай надпись - проведите пальцем по экрану... пока догадался Думал что уже на 8-ке не работает... Красочная программа, мне такие нравятся ! А есть перечень цветов для плиток ? А то я для себя под МиниГуи сделал, а мне не хватает таких цветов как на FW.

ММК: Andrey пишет: А есть перечень цветов для плиток ? А то я для себя под МиниГуи сделал, а мне не хватает таких цветов как на FW. Так их "миллион" :) Вот примерчик для восьмерки с "плиточным" меню. Левой кл.мышки можете перетаскивать плитки.Правой выбирайте color и подбирайте любой цвет плитки,любой яркости ... Или цвет надписи и т.д. "Палец" отключен .... http://tempfile.ru/file/3089860

Andrey: ММК пишет: Правой выбирайте color и подбирайте любой цвет плитки,любой яркости ... У тебя же в примере предыдущем цвета уже поставлены. Вот этот список цветов и хотелось бы получить... Или при написании этой программы - нужно каждый цвет задавать вручную через массив {?,?,?} ? Я же по тексту вижу: DEFINE METROBUTTON oBtn OF oMetro ; COLOR CLR_HBLUE,CLR_WHITE Где то же есть ch файл с цветами... Вот и прошу поделиться этим файлом.... Заранее большое спасибо !

ММК: Andrey пишет: Где то же есть ch файл с цветами... Вот и прошу поделиться этим файлом.... Заранее большое спасибо ! Это стандартный набор (клипперный). Но "по жизни" им пользуются редко. Берете пример ,что я выложил , подбираете нужный цвет, записываете его цифровое отоброжение и потом используете в своей пр-ме. А делается это следующим образом - #define CLR_NBROWN nRGB( 130, 99, 53) #define CLR_NBLUE nRGB( 128, 128, 192) #define CLR_1 nRGB( 100, 215, 100 ) #define CLR_2 nRGB( 40, 255, 255 ) #define CLR_3 nRGB( 217, 217, 255 ) и т.д. Т.е. любой набор с любыми именами.... И далее : DEFINE METROBUTTON oBtn OF oMetro ; COLOR CLR_2,CLR_NBROWN или любой другой вариант. И для остальных объектов...

ММК: #ifndef _COLORS_CH #define _COLORS_CH #translate RGB( <nRed>, <nGreen>, <nBlue> ) => ; ( <nRed> + ( <nGreen> * 256 ) + ( <nBlue> * 65536 ) ) //ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД// // Low Intensity colors //ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД// #define CLR_BLACK 0 // RGB( 0, 0, 0 ) #define CLR_BLUE 8388608 // RGB( 0, 0, 128 ) #define CLR_GREEN 32768 // RGB( 0, 128, 0 ) #define CLR_CYAN 8421376 // RGB( 0, 128, 128 ) #define CLR_RED 128 // RGB( 128, 0, 0 ) #define CLR_MAGENTA 8388736 // RGB( 128, 0, 128 ) #define CLR_BROWN 32896 // RGB( 128, 128, 0 ) #define CLR_HGRAY 12632256 // RGB( 192, 192, 192 ) #define CLR_LIGHTGRAY CLR_HGRAY //ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД// // High Intensity Colors //ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД// #define CLR_GRAY 8421504 // RGB( 128, 128, 128 ) #define CLR_HBLUE 16711680 // RGB( 0, 0, 255 ) #define CLR_HGREEN 65280 // RGB( 0, 255, 0 ) #define CLR_HCYAN 16776960 // RGB( 0, 255, 255 ) #define CLR_HRED 255 // RGB( 255, 0, 0 ) #define CLR_HMAGENTA 16711935 // RGB( 255, 0, 255 ) #define CLR_YELLOW 65535 // RGB( 255, 255, 0 ) #define CLR_WHITE 16777215 // RGB( 255, 255, 255 ) #endif

Andrey: Понятно. Спасибо. Я для МиниГуи сделал свой .ch * Show examples test Metro interface colors * Copyright 2013 Verchenko Andrey <verchenkoag@gmail.com> #define COLOR_BACK_DARK_CYAN { 0,64,80 } // темно-синий #define COLOR_BACK_DARK_GREEN { 0,62, 0 } // темно-зеленый #define COLOR_BACK_DARK_PURPLE {37, 0,64 } // темно-фиолетовый #define COLOR_BACK_DARK_YELLOW {215,166, 0} // темно-желтый #define COLOR_BACK_BRIGHT_GREEN {105,182,34} // ярко-зеленый #define COLOR_BACK_YELLOW_ORANGE {149,67, 1 } // желто-оранжевый #define COLOR_DARK_BLUE { 0,155,173} // темно-голубой #define COLOR_BLUE { 40,122,237} // голубой #define COLOR_BLUE_BLUE { 9, 77,181} // сине-голубой #define COLOR_BLUE_SKYPE { 0,176,240} // голубой, как SKYPE #define COLOR_LIGHT_BLUE {159,191,236} // Office_2003 Blue #define COLOR_OF2003_BLUE {159,191,236} // Office_2003 Blue #define COLOR_LIGHT_2BLUE {123,140,253} // светло-синий-голубой #define COLOR_ORANGE {210, 71, 38} // оранжевый #define COLOR_BRIGHT_ORANGE {239, 71, 38} // ярко-оранжевый #define COLOR_LIGHT_ORANGE {255,160, 66} // светло-оранжевый #define COLOR_YELLOW {231,178, 30} // желтый #define COLOR_BRIGHT_BROWN {138, 85, 77} // ярко-коричневый #define COLOR_OF2003_ORANGE {251,230,148} // Office_2003 ORANGE #define COLOR_PURPLE { 94, 59,185} // фиолетовый #define COLOR_DARK_PURPLE { 82, 0,141} // темно-фиолетовый #define COLOR_BRIGHT_PURPLE {151, 0,160} // ярко-фиолетовый #define COLOR_GREEN { 0,145, 0} // зеленый #define COLOR_BRIGHT_GREEN { 35,179, 15} // ярко-зеленый #define COLOR_LIGHT_GREEN_LIME { 0,255, 153} // ярко-зеленый-салатовый #define COLOR_LIGHT_GREEN {195,224,133} // светло-зеленый #define COLOR_OF2003_GREEN {234,240,207} // Office_2003 GREEN #define COLOR_RED {189, 30, 73} // красный #define COLOR_BRIGHT_RED {254, 73, 83} // ярко-красный #define COLOR_LIGHT_RED {255,178,178} // светло-красный #define COLOR_DARK_RED {128, 0, 0} // темно-красный #define COLOR_BRIGHT_GREY {240,240,240} // ярко-серый #define COLOR_GREY {221,221,221} // серый #define COLOR_DARK_GREY { 91, 91, 91} // темно-серый #define COLOR_OF2003_SILVER {225,226,236} // Office_2003 SILVER // --------------------- Office_2003 ----------------------------- #define COLOR_AZURE1 {222, 218, 202} #define COLOR_AZURE2 {242, 240, 234} #define COLOR_AZURE3 {192, 185, 154} #define COLOR_AZURE4 { 29, 27, 18} #define COLOR_DARK_BLUE1 { 89, 135, 214} #define COLOR_DARK_BLUE2 {224, 233, 248} #define COLOR_DARK_BLUE3 { 4, 57, 148} #define COLOR_DARK_BLUE4 { 0, 9, 7} #define COLOR_LIGHT_GREEN1 {235, 245, 214} #define COLOR_LIGHT_GREEN2 {249, 252, 243} #define COLOR_LIGHT_GREEN3 {195, 224, 133} #define COLOR_LIGHT_GREEN4 { 37, 49, 13}

MIKHAIL: Сам задумывался над написанием приложения под мобильные OS, но изучив отзывы по подобным решениям, пришел к выводу, что наиболее универсальным решением будет обычный сайт (для мобильных устройств оптимизированный или адаптивный дизайн) в связке PHP+MYSQL+Jquery(JQuery-Mobile). Так как стандарт HTML одинаков для всех OS, то нет нужды переписывать под каждую платформу в отдельности в случае развития системы. Сам давно уже работатю так. Данные из БД выгружаются в формате CSV и загружаются в MySQL. Актуальность данных зависит от частоты обновления. Можно с провайдером договориться и пробросить порт к серверу MySQL, я уже обсуждал такую возможность, тогда данные станут на 100% актуальные, если связать с текущей БД. Гибкость поисковых систем и навигации неограничена.

azoo: MIKHAIL пишет: Можно с провайдером договориться и пробросить порт к серверу MySQL, я уже обсуждал такую возможность, тогда данные станут на 100% актуальные, если связать с текущей БД. Текущая БД это .DBF ? Тогда как связать DBF и MySQL ? Всё той же ручной выгрузкой и загрузкой через CSV

MIKHAIL: azoo пишет: Текущая БД это .DBF ? Тогда как связать DBF и MySQL ? Всё той же ручной выгрузкой и загрузкой через CSV я думаю есть разные медиаторы и драйверы БД для MySQL Кроме того выгрузка не ручная, а вполне можно автоматизировать с любой периодичностью, минимальное время обновления полагаю устанавливается из размера самой выгружаемой БД а именно складывается из времени подготовки данных для выгрузки в файле CSV и собственно самого времени отправки. Кроме того можно использовать разные виды сжатия, что позволит данные выгружать быстрее.

azoo: MIKHAIL, кроме проблем с обновлением базы ещё интерфейс пользователя через браузер будет очень убогим. С учетом сенсорного ввода будет вдвойне неудобно работать с таблицами. Обычный скроллинг базы данных сделать затруднительно.

SergKis: azoo пишет:С учетом сенсорного ввода будет вдвойне неудобно работать с таблицами Это дело навыка. Дочка на планшете работает с таблицами (ввод) быстрее чем на настольном PC. интерфейс пользователя через браузер будет очень убогим это зависит от знаний CMS, html, js, jquery, дизайнерских фантазий... MIKHAIL пишет: для выгрузки в файле CSV а в hb разве нет доступа к MySql, для работы в прямую ?

MIKHAIL: SergKis пишет: это зависит от знаний CMS, html, js, jquery, дизайнерских фантазий... Согласен, web интерфейс наиболее универсальный и легко масштабируемый инструмент в мобильных устройствах, если клиентов очень много, мощьность сервера можно легко нарастить. SergKis пишет: а в hb разве нет доступа к MySql, для работы в прямую ? Безусловно, просто изначально средство разработки не уточнялось, только тип файла БД... Я гружу из Clipper и мне не требуется ежеминутное обновление, потому решение CSV , но можно наверное и медиатор подключить, если требуется....

MIKHAIL: azoo пишет: ещё интерфейс пользователя через браузер будет очень убогим. Т.е. вы не видели ни одного сайта для мобильных устройств с хорошим интерфейсом??? Бедные миллионы и миллионы юзеров...)))) Интерфейс любого устройства ограничен только разрешением экрана и вашей фантазией... а web интерфейс или десктопное приложение разницы никакой....

SergKis: Если интересно: [url=http://w2ui.com/web/demos/#!grid/grid-1]примеры интерфейса через броузер[/url]

SergKis: Глюкнуло. Повторю. [url=http://w2ui.com/web/demos/#!grid/grid-1]примеры интерфейса через броузер [/url]

SergKis: Опять глюк со ссылкой.

Dima: _http://w2ui.com/web/demos/#!grid/grid-1 тогда так

SergKis: Dima пишет:тогда так ссылка Предпросмотр идет нормально и с переходом, а пост вставляется хз как. пробую еще раз: [url=http://w2ui.com/web/demos/#!grid/grid-1]http://w2ui.com/web/demos/#!grid/grid-1[/url]

SergKis: Упс, тоже самое. w2ui.com/web/demos

SergKis: Ура, получилось.



полная версия страницы