[6.3] [7.3] А можно ли сделать так...

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Bum
Новичок
Сообщения: 12
Зарегистрирован: 11 Август 2011, 16:22
Контактная информация:

[6.3] [7.3] А можно ли сделать так...

Сообщение Bum »

Есть несколько совершенно чайничьих вопросов. С Кларой не работал ооочень давно, весь опыт остался во временах досковых CPD-2.1 и Cla3 (или 3.5? не помню уже), так что сейчас приходится всё изучать заново. "Плохо, когда не знал да ещё и забыл" :)

Можно ли вообще, и если да, то как, в самых общих чертах, сделать следующее:

1. "Не очень реляционную" структуру данных. Например некий прайс (каталог) "для всего", от овощей до техники, с соотв. атрибутикой, вроде
  • Фрукты / Яблоки / цвет : (выбор) - зелёный|красный
    Фрукты / Яблоки / производитель : (вводить) - текст
    Техника / Сотовые / gps : (выбор) - есть|нет
    Техника / Сотовые / стандарт : (выбор) - gsm|cdma|dect
и при этом настраиваемой самим пользователем? Т.е. юзер должен иметь возможность сам добавить, скажем,
  • Техника / Автомобили / литраж : (вводить) - число, меряется кубиками
2. Использовать пред. структуру для построения экранных форм. Т.е. на основе данных, описанных выше, юзеру для работы (ввода разных партий яблок и новых соток) выдаётся форма, в которой, в зависимости от первоначального выбора
  • яблоки/сотовые
будут поля для ввода цвета и страны или же стандарта и наличия навигатора.

3. Ну и, разумеется -- как лучше сохранять такие данные? Ясно, конечно, что делается база-"словарь" с автонумерацией и затем юзаются ссылки на её элементы, но что-то подсказывает, что не всё так просто...

Утрируя, можно сказать, что нужно "повторить часть 1С или Лотуса" :shock: Надеюсь, это не бред?
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение BOB »

Не сложно на sql и кларион шарп. Там можно обойтись без драйверов и описания файла , и вообще куча гемора отпадает.
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение kreator »

Сделать-то можно всё. И в задаче не вижу ничего "нереляционного". Я бы начал так. Создал бы таблицу, скажем "Товаров", предусмотрев работу с ней как с "деревом по одному файлу". А уже эту таблицу связывать с другими таблицами (настраиваемые гибкие свойства, цены и т.д.). Другое дело - позволить юзеру рисовать свои формы. Это надо писать макро язык некий. И будет копия 1С. Насчет макро языка и 1С гуру меня поправят.
We are hard at work… for you. :)
Bum
Новичок
Сообщения: 12
Зарегистрирован: 11 Август 2011, 16:22
Контактная информация:

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение Bum »

[похлопав глазами] Спасибо... :)

BOB,
С шарпом не знаком абсолютно :( Что там такое особенное есть?

И что означает "без описания файла" рядом с "sql"? Ведь, насколько я понимаю, всё отличие лишь в месте хранения и способе обращения, а так -- что из фалов по каскаду ключей, что из сиквеля вложенными запросами -- данные-то всё равно сначала как-то нужно структурировать... Что я недопонял?

kreator,
я тоже знаю про "можно всё" :)

Поясни, пожалуйста, выражение "деревом по одному файлу".

Не знаю, понял ли я правильно насчёт "связывать с другими" и "гибких свойств", но представил примерно как-то так:
  • товар : название, цена, индекс набора свойств, индекс описухи
    свойства : неуникальный индекс, название, тип
    описуха : неуникальный индекс, индекс свойства, значение
    Или что-то такое. Т.е. выбираем товар, затем все привязанные свойства, затем все привязанные описухи. Само собой, это совсем навскидку и ни разу не нормализовано.
Верно?

Но! О каком-то "рисовании форм" речи вовсе не идёт! "Хочется странного" (но более простого) -- что-то вроде того, как если бы (в голову лезут старые термины) сделать Брауз с Лукапом, но только в прокручиваемом браузе вместо полей были бы элементы ввода.

Т.е. форма делится по горизонтали на две части, в верхней части экрана два-три поля ввода, среди которых "категория" и "название", а после выбора "категории" в нижней половине появляется произвольное (пусть она даже листается по вертикали при необходимости) количество полей ввода произвольного типа (текст/цифры/радио)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение Дед Пахом »

Если позволите, то моё мнение не тратить на это время, не окупится.
С уважением, ДП
Bum
Новичок
Сообщения: 12
Зарегистрирован: 11 Август 2011, 16:22
Контактная информация:

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение Bum »

ДП,
с учётом нынешней политики 1С небольшая самостоятельная программа типа "сеть ларьков" клиентам может быть выгодна, а реализация таких фичек для такой прожки будет очень полезна, придаст гибкости.
А что, всё настолько плохо? А если убрать из моего пред. поста определение "произвольное"? Пусть, скажем, будет 10 с запасом...
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение StillZero »

Дед Пахом писал(а):Если позволите, то моё мнение не тратить на это время, не окупится.
плюсую... закажите у кого нибудь
Все сайты закрыты...
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение 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 все как-то проще на порядок , я перешел на него и не жалею .
Bum
Новичок
Сообщения: 12
Зарегистрирован: 11 Август 2011, 16:22
Контактная информация:

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение Bum »

Оба-на, "нет ничего нового под солнцем" :? Вот почти то же самое, что я пытался описывать выше.

StillZero, "с деньгами и дурак купит"(с)анекдот ;)

BOB,
спасибо, про sql понял.
BOB писал(а):в net все как-то проще на порядок, я перешел на него и не жалею
с НЕТом меня всегда смущали 1) требование наличия самой платформы 2) глюки с её корявыми инсталляциями (во всяких Зверях да и просто так) и 3) плохая переносимость (нативный экзешник под вайном отн. легко запустить, а МОНО вроде бы полную совместимость не даёт). Насколько мои опасения правильны?

ОК, а как представить "каркас" (полученный, скажем, по эскизу BOB в пред. посте) юзеру? Если упрощать совсем уж до предела, то всё очень легко: получается простейшая табличка вроде "индекс; название; буковка" где "буковка" будет "л" для логических, "ц" для цифровых", а "с" для строковых значений -- и понятно, и хранить легко, и редактировать. Но это приемлемо для какого-нибудь конфиг-файла, а юзерам-то надо понагляднее.

Можно ли в рантайме менять тип экранных полей? Или, может, заготовить "блоки" из совмещённых в одном месте полей разных типов, и показывать какое-то одного из каждого блока?
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение BOB »

По поводу 1 и 2 не понятно .Нет 2 устанавливается с полпинка если его еще нет в операционке .
3 - не имею опыта кроме XP и win8 64 bit ошибок не видел.
Можно ли в рантайме менять тип экранных полей?
если вы имеете ввиду лист , то в нет это легче чем в вин . Если поля для ввода , то не пробовал , но опять же думаю не сложнее чем в вин.
и хранить легко, и редактировать.
А зачем хранить ? файл можно парсить после чтения и получить и имена и размерность и тип полей . Я представляю так. Создаете файл с одним полем id остальные поля добавляет юзер предварительно описывая их по шаблону . Программа вставляет поле в файл и не хранит его описание . При чтении файла разбираете его структуру по косточкам . Описания его стуктуры в программе нет . При таком подходе кларионские драйвера не нужны . Правда это простейший вариант не учитывающий cвязей между файлами . По поводу нет вообще, слишком много у него пользователей чтобы сомневаться в его будущем , слишком он удобен чтобы на нем не работать , клирионский queue как высшее достижение и рядом не стоит с нетовской таблицей правда клишин нетовский лист оказался удобней нетовского грида , но опять же нетовский а не вин и тд. И последнее . Долго проживет кларион ? не уверен , и с чем я останусь ? а так переход например на c# уже наполовину облегчен .
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение Алексей- Софт-Центр »

Добрый день!
Оба-на, "нет ничего нового под солнцем" Вот почти то же самое, что я пытался описывать выше.
"Меня терзают смутные сомнения" (с) к/ф "Иван Васильевич...".
Уважаемый BUM, а не разводите ли Вы нас на простую рекламу Вашего программного продукта??????? :?:

Алексей
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение kreator »

Ну упрощать совсем то уж не надо. Я имел ввиду вот что. Каталог товаров обычно делают в виде дерева. Почему по одному файлу? Потому что количество подуровней неизвестно. Поэтому создается таблица с полями - id, pid, name. В кларионе есть шаблон - дерево по одному файлу. Дальше. Надо создавать таблицу свойств товара. Если у товара разнородные свойства, то либо разные таблицы свойств, либо одна таблица с огромным количеством полей, которые надо либо отображать либо скрывать. Как то так.
Мне если честно непонятно слово "поле ввода произвольного типа". И вообще как можно юзеру позволить добавить поле в таблицу? Тогда это не юзер а программист, или по крайней мере администратор БД. А администратор БД наверняка не сможет нарисовать экранную форму. Опять же, если есть 1С с такой схемой работы, зачем изобретать велосипед?
We are hard at work… for you. :)
Bum
Новичок
Сообщения: 12
Зарегистрирован: 11 Август 2011, 16:22
Контактная информация:

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение Bum »

Алексей- Софт-Центр писал(а):а не разводите ли Вы нас на простую рекламу
Нет, никакой рекламы. Честно-честно! В смысле "по-правде честно". Это, увы, не мой продукт, я его нечаянно нашёл и -- пока не посмотрел цены ;) -- был очень и очень зол "на него, на себя и на жиссь ваще" :)
kreator писал(а): непонятно слово "поле ввода произвольного типа". И вообще как можно юзеру позволить
Под "произвольным типом" я подразумевал некое абстрактное "поле вообще" и особенно со всеми его экранными атрибутами. Т.е. если оно должно быть логическим -- юзеру показывается чекбокс, если выборным - показывается набор радио или дроплист, если текстовым... -- и т.д.
В общем-то, чуть ранее я давал ссылку, и (с учётом приоритетов авторства и т.п.) речь идёт о том, чтобы по сути "передрать" это.
А всё "позволение" юзерам состоит только в том, что как только некая точка вдруг начинает кроме фруктов (название/сорт/цвет/страна) заниматься ещё и сотками (модель/тип сети/диапазон/прибамбас-1/прибамбас-2), то юзер сам может добавлять нужные атрибуты, безо всяких перекомпиляций и пр.

1С (при "честном" использовании) очень проигрывает по цене: 1С (сама по себе) + конфа (для этой задачи) + подписка на ИТС (без которой сейчас никак) + кол-во "точек" = много. По сути -- "расколюсь"-таки -- речь о том, чтобы действительно "передрать" часть функционала (а именно каталог товаров) вышеуказанной проги.
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение kreator »

В принципе это философский разговор. У того кто занимается торговыми системами есть этот функционал в той или иной форме. Можно посоветовать вот что. Если есть SQL версия 1С и есть доступ как администратора к MS SQL, то можно посмотреть там как организованы таблицы и связи между ними именно для нужного Вам функционала. А реализация клиентской части - это второй вопрос.
We are hard at work… for you. :)
Bum
Новичок
Сообщения: 12
Зарегистрирован: 11 Август 2011, 16:22
Контактная информация:

Re: [6.3] [7.3] А можно ли сделать так...

Сообщение Bum »

Всем спасибо за мысли. Теперь и собственные идеи получше упорядочились, и даже по некоторому размышлению нашёл в старых наработках уже работавший древовидный справочник произвольной вложенности. Правда, на Лотусе :) Энивей с данными всё в общем-то уже ясно.

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