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

опять InitList()
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Notwar



Joined: 21 Sep 2005
Posts: 101
Location: Notwar Dan
Occupation: mlst(it)
Interests: Moscow

PostPosted: 24 Apr 2007 16:33    Post subject: опять InitList() Reply with quote

2nordk
Помогите пожалуйста разобраться...
Мне надо написать доп. модуль прайса...
Я пошёл в ваши "уроки написания модуля" и... у меня появилась куча вопросов, и я никак не могу нарыть инфу=(
мне надо сделать сортировку/поиск строк по заданным параметрам в mlabel.dbf
у меня ОГРОМНЫЙ вопрос! Что есть такое aIn[] и откуда он берётся??? потому что...

Quote:

FUNCTION Main()

LOCAL aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc,aHeads,bDel,aWhen,aPic,nUniMode

aSet:=SAVESET()

aSetKey:=SAVESETKEY()



NETUSE("WORK",LOADPATH()+"\real\work.dbf",,.F.)



DISPBOX(2,0,23,79,( CHR( 201 ) + CHR( 205 ) + CHR( 187 ) + CHR( 186 ) + CHR( 188 ) + CHR( 205 ) + CHR( 200 ) + CHR( 186 )+' ' ),"W+/B")

nTop:=3

nBot:=22

cColHead:={" Дата Номер НАИМЕНОВАНИЕ Кол-во Цена Сумма "}

cCurProc:={||"2"}

aBlockCols:={{{||FIELD->tek_data},0},{{||FIELD->tek_nomer},9},{{||LEFT(FIELD->NAME,25)},16},;

{{||STR(FIELD->kol,6)},44},{{||STR(FIELD->cena,9,2)},51},{{||STR(FIELD->summa,12,2)},61}}

aHeads:={{"Введите дату работ.................:","TEK_DATA"},;

{"Введите номер документа............:","TEK_NOMER"},;

{"Наименование работ.................:","NAME"},;

{"Количество.........................:","KOL","1","1","0"},;

{"Цена...............................:","CENA","1","1","0"},;

{"Сумма (руб.).......................:","SUMMA"}}

bDel:={||.T.}

nUniMode:=2

aWhen:={,,,,,{||aIn[6]:=aIn[4]*aIn[5],.T.}}
Quote:
например здесь
Quote:
aWhen:={,,,,,{||aIn[6]:=aIn[4]*aIn[5],.T.}}


aPic:={,,,,,"999999999.99"}


WORK->( INITLIST(nTop,nBot,cColHead,aBlockCols,cCurProc,;

aHeads,,aPic,aWhen,,;

nUniMode,bDel,,,,))

WORK->( DBCLOSEAREA() )

RESTSETKEY(aSetKey)

RESTSET(aSet)

RETURN NIL


-- работает (сам проверял), а aIn[] никак не инициализирован! Откуда берутся его значения и чему они равны??? и Вообще, что это такое???
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 24 Apr 2007 17:45    Post subject: Reply with quote

aIn[] это наименование внутрненнего зарезервированного массива в программе БЭСТ.
Он используется в различных местах по мере необходимости, в вводе/корректировке, поиске/сортировке, справочниках и т.п.

В данном месте суть его очень простая - в нем лежат значения, которые вы видите в диаоговом окне при вводе. Если бы Вы запустили отладчик из bPreGet, то однаружили бы что aIn[] уже появился.
Нумерация его элементов соответтвует последовательности элементов aHeads.
В сортировке/поиске там тоже есть диалоговое окно и стало быть свой aIn в каждой отдельно взято строке сортировки.
Его число элементов также соответствует размеру массива полей(переменных) которые участвуют в организации поиска/сортировки
Back to top
View user's profile Send private message Send e-mail
Notwar



Joined: 21 Sep 2005
Posts: 101
Location: Notwar Dan
Occupation: mlst(it)
Interests: Moscow

PostPosted: 24 Apr 2007 18:23    Post subject: Reply with quote

вот ВАМ моё ОГРОМНОЕ!!!
Back to top
View user's profile Send private message
Notwar



Joined: 21 Sep 2005
Posts: 101
Location: Notwar Dan
Occupation: mlst(it)
Interests: Moscow

PostPosted: 24 Apr 2007 21:49    Post subject: Reply with quote

и ещё (офф) я бы очень хотел узнать вот такую вещь...
я когда уроки смотрю - видно, что народ (большенство) в курсе, что где берётся, какие параметры у этой функции (подфункци и т. д...)
Я почему-то я никак не могу найти это место, где лежит подробная инфа (ну например, про тот же самый initlist()...) у него же куча параметров, у каждого из которых, в свою очередь, тоже куча параметров и т. д... Был бы немеренно признателен, если бы кто-нибудь дал мне ссылочку, или на мыло прислал бы это подробное описаие... я же ни за что не догадался бы, что означает тот же самый aIn[] и откуда беруться его эллементы...
Back to top
View user's profile Send private message
mrs_2005



Joined: 22 Jun 2005
Posts: 105
Location: Михайлов Р.С.
Occupation: ООО "Предприятие "Виктория-Юг"
Interests: г. Краснодар

PostPosted: 24 Apr 2007 22:15    Post subject: Reply with quote

Можно здесь посмотреть


http://www.spb4plus.ru/
Back to top
View user's profile Send private message Send e-mail Visit poster's website
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 25 Apr 2007 15:20    Post subject: Reply with quote

У нас было это выложено. Просто погибло вместе с форумом.
Пишите, что интересует. Исходны текст InitList() Выложу сегодня в тему функций БЭСТа
Back to top
View user's profile Send private message Send e-mail
Notwar



Joined: 21 Sep 2005
Posts: 101
Location: Notwar Dan
Occupation: mlst(it)
Interests: Moscow

PostPosted: 25 Apr 2007 17:07    Post subject: Reply with quote

заранее благодарен... хотя инфа про инитлист с того самого питерского сайта есть...
У меня ещё 2 вопроса
1) как сделать sortseek сразу по двум параметрам (на примере поиска в mlabel.dbf позиции по группе и номенклатурному номеру?)... Был бы рад, если бы мне расписали aSortSeek() с нужными параметрами и объяснениями, где, что и откуда берётся.
2)как заставить инитлист показывать только нужные позиции (например, мне надо видеть не весь mlabel, а только те позиции, где mlabel->status!='1')
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 25 Apr 2007 18:11    Post subject: Reply with quote

Notwar wrote:
заранее благодарен... хотя инфа про инитлист с того самого питерского сайта есть...
У меня ещё 2 вопроса
1) как сделать sortseek сразу по двум параметрам (на примере поиска в mlabel.dbf позиции по группе и номенклатурному номеру?)... Был бы рад, если бы мне расписали aSortSeek() с нужными параметрами и объяснениями, где, что и откуда берётся.

Давайте сделам по-моему плз.
Вы тут напишите скжем с одним параметром как Вы aSortSeek() написать можете и думаю я смогу рассказать как по двум.
Там есть индекс по штрих-коду TAG_NNUM/
Вот по нему напишите как Вы думаете а я сделаю разбор полетов

Quote:
2)как заставить инитлист показывать только нужные позиции (например, мне надо видеть не весь mlabel, а только те позиции, где mlabel->status!='1')

Это не инитлист - это перед открытием базы инитлистом, Вам сначала на нее надо скоб наложить по индексу и все.
Обратите внимание в mlabel для этого все индексы практически с поля STATUS начинаю
Back to top
View user's profile Send private message Send e-mail
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 26 Apr 2007 10:42    Post subject: Reply with quote

Notwar wrote:
заранее благодарен... хотя инфа про инитлист с того самого питерского сайта есть...

spb - Справочник Пользователя БЭСТ4.

Рекомендую еще инструментарий скачать в примерах есть исходные коды, довольно быстро можно разобраться и потестирова
Back to top
View user's profile Send private message Send e-mail
Notwar



Joined: 21 Sep 2005
Posts: 101
Location: Notwar Dan
Occupation: mlst(it)
Interests: Moscow

PostPosted: 26 Apr 2007 12:42    Post subject: Reply with quote

Quote:
Рекомендую еще инструментарий скачать в примерах есть исходные коды, довольно быстро можно разобраться и потестировать.
Большое!!! оочень помогло
Quote:
Это не инитлист - это перед открытием базы инитлистом, Вам сначала на нее надо скоб наложить по индексу и все.
Обратите внимание в mlabel для этого все индексы практически с поля STATUS начинаются
sorry, торможу (вчера тормозил )
Quote:
Давайте сделам по-моему плз.
Вы тут напишите скжем с одним параметром как Вы aSortSeek() написать можете и думаю я смогу рассказать как по двум.
Там есть индекс по штрих-коду TAG_NNUM/
ммм... штрих кодами мы не пользуемся, но тем не менее...

aSortSeek:={{"-по *** коду","введите *** код",{'***'},'aIn[*],,,,,"TAG_NNUM''}}

как-то так?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 26 Apr 2007 12:50    Post subject: Reply with quote

Notwar wrote:


aSortSeek:={{"-по *** коду","введите *** код",{'***'},'aIn[*],,,,,"TAG_NNUM''}}

как-то так?

Почти.
А теперь второй параметр сделайте массивом из двух: введите группу,
введите номер
Второй массив тоже ему соответствующий из полей GRUP,NNUM
а дальше строка поиска соответствующая индексному ключу, но на
значениях введеннх - а они в aIn[1] и aIn[2] соответственно.
Теперь напишите что у Вас получило
Back to top
View user's profile Send private message Send e-mail
Notwar



Joined: 21 Sep 2005
Posts: 101
Location: Notwar Dan
Occupation: mlst(it)
Interests: Moscow

PostPosted: 26 Apr 2007 13:19    Post subject: Reply with quote

Quote:
Теперь напишите что у Вас получилось

как-то так...
aSortSeek:={{'-по Группе и Ном.№',{'код группы:','Номенкл.№:'},{'Grup','NNum'},'aIn[1]+aIn[2]'}}

у меня почему-то вылезает "Неверный аргумент" Что не так?
Back to top
View user's profile Send private message
Notwar



Joined: 21 Sep 2005
Posts: 101
Location: Notwar Dan
Occupation: mlst(it)
Interests: Moscow

PostPosted: 26 Apr 2007 13:32    Post subject: Reply with quote

Та-ак, с этим разобрался(синтаксическая ошибка)... F7 нажимается, ввожу группу и номенкл.№ , нажимаю Enter, вылезает "Ошибка выполнения, переполнение массива"
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 26 Apr 2007 14:26    Post subject: Reply with quote

Code:
asortlabs:={{'- по группе и номенклатуре',{'Введите код группы :','Введите ном.номер  :'},{'GRUP','NNUM'},'UPPER(" "+aIn[1]+aIn[2])',,,{"grupss"},"MLABEL_S"}}

Вот Вам рабочий вариант - сравнивайт
Back to top
View user's profile Send private message Send e-mail
Notwar



Joined: 21 Sep 2005
Posts: 101
Location: Notwar Dan
Occupation: mlst(it)
Interests: Moscow

PostPosted: 26 Apr 2007 16:58    Post subject: Reply with quote

да, есть такое дело... действительно - рабочий вариант... теперь группа и наименование...
{'- наименованиям внутри групп',{'код группы: ','наименование'},{'grup','name'},'UPPER(" "+aIn[2]+aIn[4])',,,{"grupss"},"MLAB_ST"}

Где ошибка??? Говорит - переполнение массива=( я даже понимаю почему (чёт не так с 'name')
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 1, 2, 3  Next
Page 1 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