Базы данных для К3

Модераторы: Лабутин Сергей Евгеньевич, Алек(андр

Базы данных для К3

Сообщение Рыжий Пёс » 16 янв 2012 13:19

Всем здравствуйте.
В этой теме предлагаю размещать вопросы, связанные с изменениями, дополнениями или полной заменой базы данных для К3.
Скажу сразу, что меня стандартная БД вместе с оболочкой не устраивает категорически.
Первый вопрос: какой модуль создаёт файлы Shkaf.ptm и прочие? Хочу вынести его запуск на отдельную кнопку, чтобы не перезапускать К3.
Второй вопрос: возможно ли в принципе избавиться от ptm и pts?
Аватара пользователя
Рыжий Пёс
 
Сообщения: 365
Зарегистрирован: 06 фев 2010 00:11

Re: Базы данных для К3

Сообщение Роман Николаевич » 16 янв 2012 14:20

Рыжий Пёс писал(а):Всем здравствуйте.
В этой теме предлагаю размещать вопросы, связанные с изменениями, дополнениями или полной заменой базы данных для К3.
Скажу сразу, что меня стандартная БД вместе с оболочкой не устраивает категорически.
Первый вопрос: какой модуль создаёт файлы Shkaf.ptm и прочие? Хочу вынести его запуск на отдельную кнопку, чтобы не перезапускать К3.
Второй вопрос: возможно ли в принципе избавиться от ptm и pts?

1. В Библиотеке прототипов есть кнопка "Библиотека для К3-Мебель". Собственно она создает файлы *.ptm.
2. В версии 7.1 от них уже избавились.
Техническая поддержка К3-Мебель roman@k3info.ru
Центр "ГеоС", Нижний Новгород
http://www.k3-mebel.ru
Аватара пользователя
Роман Николаевич
 
Сообщения: 802
Зарегистрирован: 30 ноя 2010 12:29

Re: Базы данных для К3

Сообщение Рыжий Пёс » 23 мар 2012 10:38

konstra писал(а):Cp1=objCp1.Fields(0)
'--------------------------------------------------------
SQLStr = "SELECT * FROM " +tabl+ " WHERE PANELPOS = "&Cp1
objCp1.Open SqlStr,objCp


Так, собственно, чему равно Ср1?
Аватара пользователя
Рыжий Пёс
 
Сообщения: 365
Зарегистрирован: 06 фев 2010 00:11

Re: Базы данных для К3

Сообщение konstra » 23 мар 2012 11:04

Cp1=objRs1.Fields(0) ' НОМЕР ПАНЕЛИ. Тут уже все норм.Но номер панели, тока увидел, не соответствует значению поля PANELPOS в таблице. Хотя в ДОКах писано что именно в этом поле оно должно быть.Сейчас ошибка уже по другому поводу. BOF или EOF имеет значение TRUE.Теперь надо сначала выудить UnitPos ,а потом вот уже и дальше рулить.Во блин Б@яН
Или из раных таблиц тянуть инфу
Аватара пользователя
konstra
 
Сообщения: 199
Зарегистрирован: 12 дек 2011 09:52

Re: Базы данных для К3

Сообщение Rinat74 » 23 мар 2012 12:51

В помощь начинающим... Зёрна от плевел отделять самостоятельно, сильно сомневаюсь, что встретите там где-нибудь упоминание К3, т.к. там вообще не про К3, а так, "о скитаниях вечных и о Земле"...

VBScript
Программирование для администраторов
Windows Script Host для Windows 2000/XP

SQL
Алан Бьюли: Изучаем SQL
Мартин Грабер: SQL
Rinat74
 
Сообщения: 42
Зарегистрирован: 16 сен 2011 09:29

Re: Базы данных для К3

Сообщение Рыжий Пёс » 23 мар 2012 14:22

Windows Script Host для Windows 2000/XP
- очень неплохая книжка, Либрусек просто так скачать не даёт, я скопипи...скопипастил, сохранил в Worde.
Аватара пользователя
Рыжий Пёс
 
Сообщения: 365
Зарегистрирован: 06 фев 2010 00:11

Re: Базы данных для К3

Сообщение Рыжий Пёс » 02 апр 2012 10:29

Роман Николаевич писал(а):1. В Библиотеке прототипов есть кнопка "Библиотека для К3-Мебель". Собственно она создает файлы *.ptm.
2. В версии 7.1 от них уже избавились.

Это хорошо, вот только К3 (точнее, ф-ия PriceInfo) не "цепляет" эти новые файлы.
Поэтому заменяю PriceInfo, где только возможно на макрос:
Код: Выделить всё
// Вместо функции PriceInfo
// строка вызова:
// macro Protopath+"mf_macro\\GetTPriceField.mac" PriceID, "FieldName", "DefaultValue", resArr;
getPar PriceID, FieldName, DefaultValue, resValue;   // resValue - массив
global ProtoPath,K3BaseConn;
if isvardef("DefaultValue")==6 // строка
   { res=initArray(resValue,"") }
else
   { res=initArray(resValue,0) }
if !isvardef("K3BaseConn")
{ K3BaseConn=0 }
if K3BaseConn<=0
{
   K3Base=ProtoPath-6+"tmguidesV6.mdb"
   K3BaseConn=adbCon("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+K3Base);
   if K3BaseConn<=0
     { putMsg("GetTPriceField.mac  ! Не удалось подключить БД "+K3Base+" !",0); exit }
}
resValue[1]=DefaultValue
Zapros=adbOpen(K3BaseConn,"SELECT "+FieldName+" FROM TPrice WHERE PriceID="+str(PriceID));
NPricePos=adbRecCount(Zapros);
if NPricePos>0
  {
   resValue[1]=adbGetValue(Zapros,0,DefaultValue)
  }
res=adbClose(Zapros);
// res=adbDiscon(K3BaseConn)   // если не нужно сохранять соединение, убрать комментарий
exit
Аватара пользователя
Рыжий Пёс
 
Сообщения: 365
Зарегистрирован: 06 фев 2010 00:11

Re: Базы данных для К3

Сообщение Алек(андр » 10 апр 2012 20:41

Зачем к Tmguides ? Как это не работает? Можно и к Tmguides, конечно, но теперь это вариант из неверных.
Итак, теперь мы имеем вместо одного справочника два. справочник номенклатуры и справочник сборочных изделий. Избавились от ограничения числа свойств N1 N2 N3 S1 S2 S3. Теперь их может быть сколь угодно много и они могут иметь удобные для пользователя имена. Появились новые типы Перечисляемые и Кортежи.

Функция PriceInfo живет и здравствует. Наряду с ней появились NPGetByWhere, NPGetByProps .
Инструкция по макроязыку 7.1 писал(а):VARIANT PriceInfo(INT <PrMater>, STRING <FieldName>, VARIANT <N>[, INTEGER <TableID>[, STRING <ArrName>]])
Функция возвращает информацию из поля или свойства с именем <FieldName> записи
(материала) с номером <PrMater> справочника номенклатуры. Если данное поле для данной
записи содержит NULL, функция возвращает значение по умолчанию <N>.
Необязательный параметр <TableID> определяет источник данных:
1 - номенклатурный справочник;
2 - справочник изделий.
Если этот параметр не указан, используется номенклатурный справочник.
<ArrName> - имя создаваемого массива, в который будут занесены все элементы
перечисляемого или множественного свойства Каждый элемент заполняет два элемента
массива:
первый значение элемента (число или строка в зависимости от типа значений свойства);
второй название элемента (строка);
Если задано <ArrName>, то <FieldName> должно задавать идентификатор
перечисляемого или множественного свойства, а функция возвратит количество элементов у
этого свойства (размерность массива <ArrName> будет в два раза больше)
Аватара пользователя
Алек(андр
 
Сообщения: 1208
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Базы данных для К3

Сообщение Рыжий Пёс » 14 апр 2012 18:11

Версия 6.4. Есть уже свои таблицы со свойствами и функции для работы с ними, так что Геос немножко сзади.
Аватара пользователя
Рыжий Пёс
 
Сообщения: 365
Зарегистрирован: 06 фев 2010 00:11

Re: Базы данных для К3

Сообщение Алек(андр » 14 апр 2012 18:22

Ну у меня все это и в 5,5 было. :)
Аватара пользователя
Алек(андр
 
Сообщения: 1208
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Базы данных для К3

Сообщение Рыжий Пёс » 25 апр 2012 10:03

Есть длинные имена папок для каталогов с моделями. В таблице TK3Groups исправил размер поля со 100 на 255. Теперь при запуске К3 пишет "Размер поля не достаточен..." Как исправить?
Аватара пользователя
Рыжий Пёс
 
Сообщения: 365
Зарегистрирован: 06 фев 2010 00:11

Re: Базы данных для К3

Сообщение Алек(андр » 27 апр 2012 08:15

Рыжий Пёс писал(а):Есть длинные имена папок для каталогов с моделями. В таблице TK3Groups исправил размер поля со 100 на 255. Теперь при запуске К3 пишет "Размер поля не достаточен..." Как исправить?

Самый верный способ не применять длинные имена папок. Оставь первые и последние символы например штук по 5. или замени имена папок на хешкод по имени папки.

по другому видимо это поле связано с другими полями и не проходит по размеру где то там.
Аватара пользователя
Алек(андр
 
Сообщения: 1208
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Базы данных для К3

Сообщение Рыжий Пёс » 27 апр 2012 10:09

Сокращать имена папок нежелательно, т.к. они совпадают с названиями групп изделий в каталоге. Это на крайний случай.
Я предполагаю, что размер поля надо увеличить в какой-то таблице dbf, но не могу понять, в какой.
Аватара пользователя
Рыжий Пёс
 
Сообщения: 365
Зарегистрирован: 06 фев 2010 00:11

Re: Базы данных для К3

Сообщение Алек(андр » 10 май 2012 07:44

Рыжий Пёс писал(а):Сокращать имена папок нежелательно, т.к. они совпадают с названиями групп изделий в каталоге. Это на крайний случай.
Я предполагаю, что размер поля надо увеличить в какой-то таблице dbf, но не могу понять, в какой.

Измените таблицу bTK3Groups в K3Base...mdb. Это шаблон создаваемой dbf таблицы там размер поля 100. Может поможет.
Аватара пользователя
Алек(андр
 
Сообщения: 1208
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Базы данных для К3

Сообщение Рыжий Пёс » 10 май 2012 10:09

Алек(андр писал(а):Измените таблицу bTK3Groups в K3Base...mdb. Это шаблон создаваемой dbf таблицы там размер поля 100. Может поможет.
Не помогает. Наверное, те, кто создавал эту базу, умерли и секрет утрачен навсегда.
Аватара пользователя
Рыжий Пёс
 
Сообщения: 365
Зарегистрирован: 06 фев 2010 00:11

След.

Вернуться в К3-Мебель. Программа для производства и продажи мебели.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2