Страница 1 из 2
[6.3] [7.3] А можно ли сделать так...
Добавлено: 11 Август 2011, 17:20
Bum
Есть несколько совершенно чайничьих вопросов. С Кларой не работал ооочень давно, весь опыт остался во временах досковых CPD-2.1 и Cla3 (или 3.5? не помню уже), так что сейчас приходится всё изучать заново. "Плохо, когда не знал да ещё и забыл"
Можно ли вообще, и если да, то как, в самых общих чертах, сделать следующее:
1. "Не очень реляционную" структуру данных. Например некий прайс (каталог) "для всего", от овощей до техники, с соотв. атрибутикой, вроде
- Фрукты / Яблоки / цвет : (выбор) - зелёный|красный
Фрукты / Яблоки / производитель : (вводить) - текст
Техника / Сотовые / gps : (выбор) - есть|нет
Техника / Сотовые / стандарт : (выбор) - gsm|cdma|dect
и при этом настраиваемой самим пользователем? Т.е. юзер должен иметь возможность
сам добавить, скажем,
- Техника / Автомобили / литраж : (вводить) - число, меряется кубиками
2. Использовать пред. структуру для построения экранных форм. Т.е. на основе данных, описанных выше, юзеру для работы (ввода разных партий яблок и новых соток) выдаётся форма, в которой, в зависимости от первоначального выбора
будут поля для ввода
цвета и страны или же
стандарта и наличия навигатора.
3. Ну и, разумеется -- как лучше сохранять
такие данные? Ясно, конечно, что делается база-"словарь" с автонумерацией и затем юзаются ссылки на её элементы, но что-то подсказывает, что не всё так просто...
Утрируя, можно сказать, что нужно "
повторить часть 1С или Лотуса"

Надеюсь, это не бред?
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 11 Август 2011, 18:45
BOB
Не сложно на sql и кларион шарп. Там можно обойтись без драйверов и описания файла , и вообще куча гемора отпадает.
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 11 Август 2011, 19:29
kreator
Сделать-то можно всё. И в задаче не вижу ничего "нереляционного". Я бы начал так. Создал бы таблицу, скажем "Товаров", предусмотрев работу с ней как с "деревом по одному файлу". А уже эту таблицу связывать с другими таблицами (настраиваемые гибкие свойства, цены и т.д.). Другое дело - позволить юзеру рисовать свои формы. Это надо писать макро язык некий. И будет копия 1С. Насчет макро языка и 1С гуру меня поправят.
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 11 Август 2011, 22:37
Bum
[похлопав глазами] Спасибо...
BOB,
С шарпом не знаком
абсолютно 
Что там такое особенное есть?
И что означает "без описания файла" рядом с "sql"? Ведь, насколько я понимаю, всё отличие лишь в месте хранения и способе обращения, а так -- что из фалов по каскаду ключей, что из сиквеля вложенными запросами -- данные-то всё равно сначала как-то нужно структурировать... Что я недопонял?
kreator,
я тоже знаю про "можно всё"
Поясни, пожалуйста, выражение "деревом по одному файлу".
Не знаю, понял ли я правильно насчёт "связывать с другими" и "гибких свойств", но представил примерно как-то так:
- товар : название, цена, индекс набора свойств, индекс описухи
свойства : неуникальный индекс, название, тип
описуха : неуникальный индекс, индекс свойства, значение
Или что-то такое. Т.е. выбираем товар, затем все привязанные свойства, затем все привязанные описухи. Само собой, это совсем навскидку и ни разу не нормализовано.
Верно?
Но! О каком-то "рисовании форм" речи вовсе не идёт! "Хочется странного" (но более простого) -- что-то вроде того, как если бы (в голову лезут старые термины) сделать Брауз с Лукапом, но только в прокручиваемом браузе вместо полей были бы элементы ввода.
Т.е. форма делится по горизонтали на две части, в
верхней части экрана два-три поля ввода, среди которых "категория" и "название", а после выбора "категории" в
нижней половине появляется
произвольное (пусть она даже листается по вертикали при необходимости) количество полей ввода
произвольного типа (текст/цифры/радио)
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 11 Август 2011, 23:13
Дед Пахом
Если позволите, то моё мнение не тратить на это время, не окупится.
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 12 Август 2011, 0:11
Bum
ДП,
с учётом нынешней политики 1С небольшая самостоятельная программа типа "сеть ларьков" клиентам может быть выгодна, а реализация таких фичек для такой прожки будет очень полезна, придаст гибкости.
А что, всё настолько плохо? А если убрать из моего пред. поста определение "произвольное"? Пусть, скажем, будет 10 с запасом...
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 12 Август 2011, 3:05
StillZero
Дед Пахом писал(а):Если позволите, то моё мнение не тратить на это время, не окупится.
плюсую... закажите у кого нибудь
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 12 Август 2011, 4:29
BOB
данные-то всё равно сначала как-то нужно структурировать
1. в sql не надо открывать файл чтобы обратиться к нему , достаточно коннекта к базе и знать имя файла .
2. sqladapter прочитает ваш файл и ему пофигу структура (он возмет ее прямо на сервере).
3. разобрать структуру прочитанного в dbtable (аналог queue) пара пустяков .
4. Формировать list можно автоматически .
5. Изменять структуру файла sql не сложно .
Вот пример чтения и вывода на экран.
Код: Выделить всё
connects = 'select * from baza.dbo.file'
self.sqladapter = new system.data.sqlclient.sqldataadapter(connects,conn)
self.dbtable = new system.data.datatable()
self.sqladapter.fill(self.dbtable)
self.list1.datasource &= self.dbtable
Будет готовый list где имена столбиков из имен полей файла . Или можно сформировать list ручками со всякими прибамбасами и это легче чем в win.
Получается мне не надо хранить структуру файла , ее можно узнать по факту .
Если еще использовать редактирование по месту , то ...
Кстати в self.sqladapter есть возможность автоматической генерации insert и update .
Вот и вся программа .
Вообще в net все как-то проще на порядок , я перешел на него и не жалею .
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 12 Август 2011, 10:18
Bum
Оба-на, "нет ничего нового под солнцем"
Вот почти то же самое, что я пытался описывать выше.
StillZero, "с деньгами и дурак купит"(с)анекдот
BOB,
спасибо, про sql понял.
BOB писал(а):в net все как-то проще на порядок, я перешел на него и не жалею
с НЕТом меня всегда смущали 1) требование наличия самой платформы 2) глюки с её корявыми инсталляциями (во всяких Зверях да и просто так) и 3) плохая переносимость (нативный экзешник под вайном отн. легко запустить, а МОНО вроде бы полную совместимость не даёт). Насколько мои опасения правильны?
ОК, а как представить "каркас" (полученный, скажем, по эскизу
BOB в пред. посте) юзеру? Если упрощать совсем уж до предела, то всё очень легко: получается простейшая табличка вроде "
индекс; название; буковка" где "буковка" будет "л" для логических, "ц" для цифровых", а "с" для строковых значений -- и понятно, и хранить легко, и редактировать. Но это приемлемо для какого-нибудь конфиг-файла, а юзерам-то надо понагляднее.
Можно ли в рантайме менять тип экранных полей? Или, может, заготовить "блоки" из совмещённых в одном месте полей разных типов, и показывать какое-то одного из каждого блока?
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 12 Август 2011, 11:11
BOB
По поводу 1 и 2 не понятно .Нет 2 устанавливается с полпинка если его еще нет в операционке .
3 - не имею опыта кроме XP и win8 64 bit ошибок не видел.
Можно ли в рантайме менять тип экранных полей?
если вы имеете ввиду лист , то в нет это легче чем в вин . Если поля для ввода , то не пробовал , но опять же думаю не сложнее чем в вин.
и хранить легко, и редактировать.
А зачем хранить ? файл можно парсить после чтения и получить и имена и размерность и тип полей . Я представляю так. Создаете файл с одним полем id остальные поля добавляет юзер предварительно описывая их по шаблону . Программа вставляет поле в файл и не хранит его описание . При чтении файла разбираете его структуру по косточкам . Описания его стуктуры в программе нет . При таком подходе кларионские драйвера не нужны . Правда это простейший вариант не учитывающий cвязей между файлами . По поводу нет вообще, слишком много у него пользователей чтобы сомневаться в его будущем , слишком он удобен чтобы на нем не работать , клирионский queue как высшее достижение и рядом не стоит с нетовской таблицей правда клишин нетовский лист оказался удобней нетовского грида , но опять же нетовский а не вин и тд. И последнее . Долго проживет кларион ? не уверен , и с чем я останусь ? а так переход например на c# уже наполовину облегчен .
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 12 Август 2011, 11:37
Алексей- Софт-Центр
Добрый день!
Оба-на, "нет ничего нового под солнцем" Вот почти то же самое, что я пытался описывать выше.
"Меня терзают смутные сомнения" (с) к/ф "Иван Васильевич...".
Уважаемый BUM, а не разводите ли Вы нас на простую рекламу Вашего программного продукта???????
Алексей
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 12 Август 2011, 14:24
kreator
Ну упрощать совсем то уж не надо. Я имел ввиду вот что. Каталог товаров обычно делают в виде дерева. Почему по одному файлу? Потому что количество подуровней неизвестно. Поэтому создается таблица с полями - id, pid, name. В кларионе есть шаблон - дерево по одному файлу. Дальше. Надо создавать таблицу свойств товара. Если у товара разнородные свойства, то либо разные таблицы свойств, либо одна таблица с огромным количеством полей, которые надо либо отображать либо скрывать. Как то так.
Мне если честно непонятно слово "поле ввода произвольного типа". И вообще как можно юзеру позволить добавить поле в таблицу? Тогда это не юзер а программист, или по крайней мере администратор БД. А администратор БД наверняка не сможет нарисовать экранную форму. Опять же, если есть 1С с такой схемой работы, зачем изобретать велосипед?
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 12 Август 2011, 17:23
Bum
Алексей- Софт-Центр писал(а):а не разводите ли Вы нас на простую рекламу
Нет, никакой рекламы. Честно-честно! В смысле "по-правде честно". Это, увы, не мой продукт, я его нечаянно нашёл и -- пока не посмотрел цены

-- был очень и очень зол "на него, на себя и на жиссь ваще"
kreator писал(а): непонятно слово "поле ввода произвольного типа". И вообще как можно юзеру позволить
Под "произвольным типом" я подразумевал некое абстрактное "поле вообще" и особенно со всеми его
экранными атрибутами. Т.е.
если оно должно быть логическим -- юзеру
показывается чекбокс, если выборным -
показывается набор радио или дроплист, если текстовым... -- и т.д.
В общем-то, чуть ранее я давал ссылку, и (с учётом приоритетов авторства и т.п.) речь идёт о том, чтобы по сути "передрать" это.
А всё "позволение" юзерам состоит только в том, что
как только некая точка
вдруг начинает кроме фруктов (
название/сорт/цвет/страна) заниматься ещё и сотками (
модель/тип сети/диапазон/прибамбас-1/прибамбас-2), то юзер сам может добавлять нужные атрибуты, безо всяких перекомпиляций и пр.
1С (при "честном" использовании) очень проигрывает по цене: 1С (сама по себе) + конфа (для
этой задачи) + подписка на ИТС (без которой сейчас никак) + кол-во "точек" = много. По сути -- "расколюсь"-таки -- речь о том, чтобы действительно "передрать" часть функционала (а именно каталог товаров) вышеуказанной проги.
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 12 Август 2011, 17:49
kreator
В принципе это философский разговор. У того кто занимается торговыми системами есть этот функционал в той или иной форме. Можно посоветовать вот что. Если есть SQL версия 1С и есть доступ как администратора к MS SQL, то можно посмотреть там как организованы таблицы и связи между ними именно для нужного Вам функционала. А реализация клиентской части - это второй вопрос.
Re: [6.3] [7.3] А можно ли сделать так...
Добавлено: 13 Август 2011, 18:09
Bum
Всем спасибо за мысли. Теперь и собственные идеи получше упорядочились, и даже по некоторому размышлению нашёл в старых наработках уже работавший древовидный справочник произвольной вложенности. Правда, на Лотусе

Энивей с данными всё в общем-то уже ясно.
Вот только один (и теперь самый главный) момент остался деликатно обойдён всеми -- какие-либо идеи/методы экранного представления.