Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

БЭСТ-4 становиться системой-конструктором
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4
View previous topic :: View next topic  
Author Message
ZKS



Joined: 24 Jan 2003
Posts: 82
Location: ZKS


PostPosted: 09 Apr 2004 04:25    Post subject: Reply with quote

Magistr wrote:
Титов Александр wrote:
ZKS wrote:
Ключ RainBow в БЭСТе ищется быстрее по протоколу IPX. Вы не собираетесь делать то же самое по протоколу TCP/IP. Или чтобы можно было в настройке указать по какому протоколу работать. Было бы неплохо.

Такая работа запланирована. Настройка на протокол и сейчас есть.


Я полагаю, имеется в виду работа по "чистому" TCP/IP без NetBios, т.к в сетях W2K NetBios не нужен. А без NeBios ключ не виден.

Да я имею в виду чистый TCP/IP.
Back to top
View user's profile Send private message
alexzt



Joined: 09 Mar 2004
Posts: 92
Location: лбн
Occupation: ъфу
Interests: лТБУОПЗПТУЛ

PostPosted: 12 Apr 2004 14:48    Post subject: Reply with quote

а где жа обещанная документация по программированию?
Back to top
View user's profile Send private message
Титов Александр



Joined: 26 Jul 2002
Posts: 975
Location: Титов Александр Александрович
Occupation: Компания БЭСТ
Interests: Москва

PostPosted: 12 Apr 2004 15:20    Post subject: Reply with quote

alexzt wrote:
а где жа обещанная документация по программированию?

Best410\News\Develop\*.*
_________________
С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо
Back to top
View user's profile Send private message Visit poster's website
alexzt



Joined: 09 Mar 2004
Posts: 92
Location: лбн
Occupation: ъфу
Interests: лТБУОПЗПТУЛ

PostPosted: 12 Apr 2004 16:13    Post subject: Reply with quote

спасибо
Back to top
View user's profile Send private message
SantechNik



Joined: 31 Dec 2001
Posts: 1696
Location: Гусев Михаил

Interests: Москва

PostPosted: 12 Apr 2004 17:09    Post subject: Reply with quote

Есть ли возможность в FileEval создать CDX индексы? В том числе с условиями.
В примерах только IDX индексы.
Попытки создать CDX не увенчались успехом.
_________________
http://santech.chat.ru/bro.zip - удобный броузер/редактор БД
Back to top
View user's profile Send private message Send e-mail
Титов Александр



Joined: 26 Jul 2002
Posts: 975
Location: Титов Александр Александрович
Occupation: Компания БЭСТ
Interests: Москва

PostPosted: 13 Apr 2004 19:21    Post subject: Reply with quote

SantechNik wrote:
Есть ли возможность в FileEval создать CDX индексы? В том числе с условиями.
В примерах только IDX индексы.
Попытки создать CDX не увенчались успехом.

Да можно, конечно. Если можно создать IDX, значит можно создать и CDX. Обычно cdx создается следующими двумя функциями:
OrdCondSet() и ordCreate(), см. описание в справке NG.
Чтобы понять, почему не получилось, надо посмотреть более конкретно сам текст программы, кидай на titov@bestnet.ru, разберемся.
_________________
С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо
Back to top
View user's profile Send private message Visit poster's website
Krosh



Joined: 13 Oct 2003
Posts: 97
Location: КИА
Occupation: СТ
Interests: Москва

PostPosted: 14 Apr 2004 08:57    Post subject: Reply with quote

Титов Александр wrote:
SantechNik wrote:
Есть ли возможность в FileEval создать CDX индексы? В том числе с условиями.
В примерах только IDX индексы.
Попытки создать CDX не увенчались успехом.

Да можно, конечно. Если можно создать IDX, значит можно создать и CDX. Обычно cdx создается следующими двумя функциями:
OrdCondSet() и ordCreate(), см. описание в справке NG.
Чтобы понять, почему не получилось, надо посмотреть более конкретно сам текст программы, кидай на titov@bestnet.ru, разберемся.

1. А зачем так "приватно"? Теперь эта информация должна быть доступна всем, если БЭСТ это система-конструктор.
2. Зачем вам что-то посылать. ИМХО ИС должен должен ответить на поставленный вопрос.
Дайте пример, как сделать дополнительные тэги (TAG) в дополнительном (временном) CDX-файле, например для MDOCM, "следующими двумя функциями: OrdCondSet() и ordCreate()".
В ваших примерах про это НИ ЕДИНОГО СЛОВА.
Back to top
View user's profile Send private message
Титов Александр



Joined: 26 Jul 2002
Posts: 975
Location: Титов Александр Александрович
Occupation: Компания БЭСТ
Interests: Москва

PostPosted: 14 Apr 2004 12:02    Post subject: Reply with quote

Krosh wrote:

1. А зачем так "приватно"? Теперь эта информация должна быть доступна всем, если БЭСТ это система-конструктор.

Эта информация и доступна всем. В составе поставке есть справка по Клипперу.

Krosh wrote:

2. Зачем вам что-то посылать. ИМХО ИС должен должен ответить на поставленный вопрос.

Мы считаем честью помогать профессионалам типа SantechNik'а. В том числе и приватно

Krosh wrote:

Дайте пример, как сделать дополнительные тэги (TAG) в дополнительном (временном) CDX-файле, например для MDOCM, "следующими двумя функциями: OrdCondSet() и ordCreate()".
В ваших примерах про это НИ ЕДИНОГО СЛОВА.

А как Вы пытались? В справке по Клипперу про это все написано.
Если это реальная производственная задача, стоящая перед Вами, наверное некоторые варианты у Вас уже есть. Готовы помочь.
Примеры на все случаи жизни мы, естественно, не напише
_________________
С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо
Back to top
View user's profile Send private message Visit poster's website
SantechNik



Joined: 31 Dec 2001
Posts: 1696
Location: Гусев Михаил

Interests: Москва

PostPosted: 14 Apr 2004 12:21    Post subject: Reply with quote

Quote:
В составе поставки есть справка по Клипперу.
Да, справка есть. Но в этой справке нет ни слова о функциях OrdCondSet() и ordCreate(). Данная справка по Clipper'у 5.1 а CDX это расширение от третьего разработчика.
Quote:
А как Вы пытались?
Я, например, пытался сделать индекс CDX с помощью указанных функций. Не получается.
Есть ощущение, что данные функции "не работают внутри FileEval" или дополнительно должны быть использованы какие-то внутренние функции БЭСТа.
Нельзя ли все же дать маленький пример использования этих функций именно внутри FileEval, а не просто в абстрактной Clipper программе, где указанные фукции, действительно, прекрасно работают.
_________________
http://santech.chat.ru/bro.zip - удобный броузер/редактор БД
Back to top
View user's profile Send private message Send e-mail
Титов Александр



Joined: 26 Jul 2002
Posts: 975
Location: Титов Александр Александрович
Occupation: Компания БЭСТ
Interests: Москва

PostPosted: 14 Apr 2004 18:50    Post subject: Reply with quote

SantechNik wrote:
Quote:
В составе поставки есть справка по Клипперу.
Да, справка есть. Но в этой справке нет ни слова о функциях OrdCondSet() и ordCreate(). Данная справка по Clipper'у 5.1 а CDX это расширение от третьего разработчика.

Да, действительно, это в отдельной справке (по SIX-драйверу). Не положили в поставку. Виноват, не предполагал, что так сразу глубоко начнете копать. Положим завтра в пакет.
SantechNik wrote:

Я, например, пытался сделать индекс CDX с помощью указанных функций. Не получается.
Нельзя ли все же дать маленький пример использования этих функций именно внутри FileEval, а не просто в абстрактной Clipper программе, где указанные фукции, действительно, прекрасно работают.

Если такие вопросы возникают, отвечу поподробнее.
1. Лучше для внутренних целей использовать .IDX, они работают быстрее. Только создавать их надо как временные файлы, потом убирать.
2. Можно создавать и .CDX - работающий пример (Пример 1) приведен ниже, проверен в банке.
3. Если необходимо создавать индексы к существующим файлам, например MDOC, то надо иметь ввиду, что они создаются локально и будут активны для использования только во время работы программы на конкретной рабочей станции.
Если нужен индекс для общего использования, то лучше включить его описание в BASES_XX.DBF. Но в этом случае самому поддерживать при апгрейдах.

Пример. Создание .CDX - индекса.

Code:
PRIVATE cDBF,cCDX,aStru,cValString
PRIVATE i,cTagFormula,cOutString,cForFormula
dbPush()
aStru := {} //Создание массива структуры
AADD(aStru,{"NAME","C",1,0})
AADD(aStru,{"VALUE","C",1,0})
cValString := "abcdefghijklmnopqrstuvxyz"
cDBF := "c:\MyTable.dbf"
cCdx := "c:\MyTable.cdx"
dbCREATE(cDBF,aStru) //Создание DBF
NetUse("MyTable",cDBF) // Открытие для работы
i := 1
WHILE i <= LEN(cValString) //Добавляем записи
   IF MyTable->(AddRec())   
       MyTable->Name := SUBSTR(cValString,i,1)
       MyTable->VALUE := SUBSTR(cValString,LEN(cValString)+1-i,1)
       MyTable->(f_dbUnLock())
   ENDIF
   i := i+1
ENDDO
cTagFormula := "Upper(NAME)"
cForFormula := "!DELETED().AND.(VALUE $ 'abcdefg')"
MyTable->(ORDCondSet(cForFormula, FormulParsBlock(cForFormula,{""}))) //Определяем FOR-условие

// Создание первого тэга
MyTable->(ORDCreate(cCDX,"TAG_NAME",cTagFormula)) 
// Создание второго тэга
cTagFormula := "Upper(VALUE)"
MyTable->(ORDCreate(cCDX,"TAG_VALUE",cTagFormula))

//Проверка работы в разных тэгах
MyTable->(OrdSetFocus("TAG_NAME"))
i := 1
cOutString := ""
MyTable->(dbGoTop())
While !MyTable->(EOF().OR.BOF())
   cOutString := cOutString+MyTable->NAME
   MyTable->(dbSkip())
ENDDO
SayAndWait({"Установлен тэг TAG_NAME",cOutString})

MyTable->(OrdSetFocus("TAG_VALUE"))
i := 1
cOutString := ""
MyTable->(dbGoTop())
While !MyTable->(EOF().OR.BOF())
   cOutString := cOutString+MyTable->NAME
   MyTable->(dbSkip())
ENDDO
SayAndWait({"Установлен тэг TAG_VALUE",cOutString})
MyTable->(dbCloseArea())
dbPop()

_________________
С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо
Back to top
View user's profile Send private message Visit poster's website
Krosh



Joined: 13 Oct 2003
Posts: 97
Location: КИА
Occupation: СТ
Interests: Москва

PostPosted: 15 Apr 2004 09:52    Post subject: Reply with quote

1. Жаль, что только вопросы монстров, таких как SantechNik, сподвигают ИС на ответ. А остальные воросы как-то вяловато...
Боюсь с такой поддержкой БЭСТ не станет "конструктором", т.к. "умрёт" раньше. ИМХО.
2. Благодаря вышеприведённому примеру разобрался, как делать тэги в CDX. Это хорошо. Спасибо ИС, и г-ну Титову лично.
Но!...
3. В примере используется ф-ция FormulParsBlock(), которая делает блок-кода. Описания её в документации нет. Догадаться о её назначении из примеров программ, где она была впервые указана, конечно можно, но почему "догадываться", почему не написать в хелпе?

Т.о. подтверждается предположение, что "конструкция" из "конструктора" в общем работать не будет, без знания всяких "волшебных слов", известных только особам приближённым к императорам.

С такой политикой БЭСТ проиграет "первойЦ" совсем быстро...
Back to top
View user's profile Send private message
Титов Александр



Joined: 26 Jul 2002
Posts: 975
Location: Титов Александр Александрович
Occupation: Компания БЭСТ
Interests: Москва

PostPosted: 15 Apr 2004 10:48    Post subject: Reply with quote

Krosh wrote:
1. Жаль, что только вопросы монстров, таких как SantechNik, сподвигают ИС на ответ. А остальные воросы как-то вяловато...
Боюсь с такой поддержкой БЭСТ не станет "конструктором", т.к. "умрёт" раньше. ИМХО.

Мы и другим монстрам (и даже немонстрам) отвечаем
В плане поддержки, если имеются ввиду вопросы по "конструктору", то я пока не вижу не отвеченных вопросов. Что касается Вашего вопроса, то он пересекался с сантехниковским, поэтому ответ был дан на него.
Krosh wrote:

3. В примере используется ф-ция FormulParsBlock(), которая делает блок-кода. Описания её в документации нет. Догадаться о её назначении из примеров программ, где она была впервые указана, конечно можно, но почему "догадываться", почему не написать в хелпе?

В примере можно было обойтись и без нее, это просто преобразование строки в блок кода, таких примеров много в хелпе по клипперу, описание функции включим в руководство, вот текст функции:

/*
FUNCTION: FormulParsBlock(cFormul, aPars)
Назначение.........Преобразование строки символов в блок кода
cFormul - преобразуемая строка
aPars - массив параметров для блока кода
*/
Function FormulParsBlock(cFormul, aPars)
Local cPar := "{|"
AEval(aPars, {|x, i| cPar += x + If(i == Len(aPars), "|", ",")})
Return (&(cPar + AllTrim(cFormul) + "}"))

Krosh wrote:

Т.о. подтверждается предположение, что "конструкция" из "конструктора" в общем работать не будет, без знания всяких "волшебных слов", известных только особам приближённым к императорам.
С такой политикой БЭСТ проиграет "первойЦ" совсем быстро...

Есть же другой путь, вместо того, чтобы "помирать и проигрывать".
По возникающим у пользователей вопросам дополнять Руководство по программированию, и поэтапно давать толкование этих самых "волшебных слов", поскольку сразу мы не в состоянии описать сотни и тысячи функций, наработанных за десять с лишним лет. Если интерес к программированию БЭСТ будет нарастать, то в конце концов это приведет к созданию добротного хелпа для программиста. ИМХО
_________________
С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо
Back to top
View user's profile Send private message Visit poster's website
alexzt



Joined: 09 Mar 2004
Posts: 92
Location: лбн
Occupation: ъфу
Interests: лТБУОПЗПТУЛ

PostPosted: 15 Apr 2004 11:29    Post subject: Reply with quote

а как отлаживать программы?
Back to top
View user's profile Send private message
Титов Александр



Joined: 26 Jul 2002
Posts: 975
Location: Титов Александр Александрович
Occupation: Компания БЭСТ
Interests: Москва

PostPosted: 15 Apr 2004 11:41    Post subject: Reply with quote

alexzt wrote:
а как отлаживать программы?

Отладка пока только через через отладочную печать. Если появится много вопросов по поводу отладки, то будем в этом направлении работать.
_________________
С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо
Back to top
View user's profile Send private message Visit poster's website
Krosh



Joined: 13 Oct 2003
Posts: 97
Location: КИА
Occupation: СТ
Interests: Москва

PostPosted: 15 Apr 2004 14:32    Post subject: Reply with quote

Титов Александр wrote:

Return (&(cPar + AllTrim(cFormul) + "}"))

О как! Макроподстановка!
Дык, естественно, это текст ф-ции на Clipper, в котором она работает.
А в FileEval это "синтаксическая ошибка".
А как "можно было обойтись и без нее"? Как сделать произвольный блок кода без вашей ф-ции, а?

Титов Александр wrote:

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

А не замучаетесь ПОСТОЯННО отвечать?
Может "оптом" ответить?
Да не верю я, что ВСЕ тысячи ф-ций применимы в FileEval.

Титов Александр wrote:
Если интерес к программированию БЭСТ будет нарастать, то в конце концов это приведет к созданию добротного хелпа для программиста.

Может именно наличие ХОРОШЕГО, ПОЛНОГО хелпа по программированию в FileEval ПРИВЕДЁТ "интересу к программированию БЭСТ" и к самому БЭСТ, в конечном итоге?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4 All times are GMT + 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru