View previous topic :: View next topic |
Author |
Message |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 24 Apr 2007 16:33 Post subject: опять InitList() |
|
|
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 |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 24 Apr 2007 17:45 Post subject: |
|
|
aIn[] это наименование внутрненнего зарезервированного массива в программе БЭСТ.
Он используется в различных местах по мере необходимости, в вводе/корректировке, поиске/сортировке, справочниках и т.п.
В данном месте суть его очень простая - в нем лежат значения, которые вы видите в диаоговом окне при вводе. Если бы Вы запустили отладчик из bPreGet, то однаружили бы что aIn[] уже появился.
Нумерация его элементов соответтвует последовательности элементов aHeads.
В сортировке/поиске там тоже есть диалоговое окно и стало быть свой aIn в каждой отдельно взято строке сортировки.
Его число элементов также соответствует размеру массива полей(переменных) которые участвуют в организации поиска/сортировки |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 24 Apr 2007 18:23 Post subject: |
|
|
вот ВАМ моё ОГРОМНОЕ!!!  |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 24 Apr 2007 21:49 Post subject: |
|
|
и ещё (офф) я бы очень хотел узнать вот такую вещь...
я когда уроки смотрю - видно, что народ (большенство) в курсе, что где берётся, какие параметры у этой функции (подфункци и т. д...)
Я почему-то я никак не могу найти это место, где лежит подробная инфа (ну например, про тот же самый initlist()...) у него же куча параметров, у каждого из которых, в свою очередь, тоже куча параметров и т. д... Был бы немеренно признателен, если бы кто-нибудь дал мне ссылочку, или на мыло прислал бы это подробное описаие... я же ни за что не догадался бы, что означает тот же самый aIn[] и откуда беруться его эллементы... |
|
Back to top |
|
 |
mrs_2005
Joined: 22 Jun 2005 Posts: 105 Location: Михайлов Р.С. Occupation: ООО "Предприятие "Виктория-Юг" Interests: г. Краснодар
|
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 25 Apr 2007 15:20 Post subject: |
|
|
У нас было это выложено. Просто погибло вместе с форумом.
Пишите, что интересует. Исходны текст InitList() Выложу сегодня в тему функций БЭСТа |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 25 Apr 2007 17:07 Post subject: |
|
|
заранее благодарен... хотя инфа про инитлист с того самого питерского сайта есть...
У меня ещё 2 вопроса
1) как сделать sortseek сразу по двум параметрам (на примере поиска в mlabel.dbf позиции по группе и номенклатурному номеру?)... Был бы рад, если бы мне расписали aSortSeek() с нужными параметрами и объяснениями, где, что и откуда берётся.
2)как заставить инитлист показывать только нужные позиции (например, мне надо видеть не весь mlabel, а только те позиции, где mlabel->status!='1') |
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 25 Apr 2007 18:11 Post subject: |
|
|
Notwar wrote: | заранее благодарен... хотя инфа про инитлист с того самого питерского сайта есть...
У меня ещё 2 вопроса
1) как сделать sortseek сразу по двум параметрам (на примере поиска в mlabel.dbf позиции по группе и номенклатурному номеру?)... Был бы рад, если бы мне расписали aSortSeek() с нужными параметрами и объяснениями, где, что и откуда берётся. |
Давайте сделам по-моему плз.
Вы тут напишите скжем с одним параметром как Вы aSortSeek() написать можете и думаю я смогу рассказать как по двум.
Там есть индекс по штрих-коду TAG_NNUM/
Вот по нему напишите как Вы думаете а я сделаю разбор полетов
Quote: | 2)как заставить инитлист показывать только нужные позиции (например, мне надо видеть не весь mlabel, а только те позиции, где mlabel->status!='1') |
Это не инитлист - это перед открытием базы инитлистом, Вам сначала на нее надо скоб наложить по индексу и все.
Обратите внимание в mlabel для этого все индексы практически с поля STATUS начинаю |
|
Back to top |
|
 |
itman

Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 26 Apr 2007 10:42 Post subject: |
|
|
Notwar wrote: | заранее благодарен... хотя инфа про инитлист с того самого питерского сайта есть...
|
spb - Справочник Пользователя БЭСТ4.
Рекомендую еще инструментарий скачать в примерах есть исходные коды, довольно быстро можно разобраться и потестирова |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 26 Apr 2007 12:42 Post subject: |
|
|
Quote: | Рекомендую еще инструментарий скачать в примерах есть исходные коды, довольно быстро можно разобраться и потестировать. | Большое!!! оочень помогло
Quote: | Это не инитлист - это перед открытием базы инитлистом, Вам сначала на нее надо скоб наложить по индексу и все.
Обратите внимание в mlabel для этого все индексы практически с поля STATUS начинаются | sorry, торможу (вчера тормозил )
Quote: | Давайте сделам по-моему плз.
Вы тут напишите скжем с одним параметром как Вы aSortSeek() написать можете и думаю я смогу рассказать как по двум.
Там есть индекс по штрих-коду TAG_NNUM/ | ммм... штрих кодами мы не пользуемся, но тем не менее...
aSortSeek:={{"-по *** коду","введите *** код",{'***'},'aIn[*],,,,,"TAG_NNUM''}}
как-то так? |
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 26 Apr 2007 12:50 Post subject: |
|
|
Notwar wrote: |
aSortSeek:={{"-по *** коду","введите *** код",{'***'},'aIn[*],,,,,"TAG_NNUM''}}
как-то так? |
Почти.
А теперь второй параметр сделайте массивом из двух: введите группу,
введите номер
Второй массив тоже ему соответствующий из полей GRUP,NNUM
а дальше строка поиска соответствующая индексному ключу, но на
значениях введеннх - а они в aIn[1] и aIn[2] соответственно.
Теперь напишите что у Вас получило |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 26 Apr 2007 13:19 Post subject: |
|
|
Quote: | Теперь напишите что у Вас получилось |
как-то так...
aSortSeek:={{'-по Группе и Ном.№',{'код группы:','Номенкл.№:'},{'Grup','NNum'},'aIn[1]+aIn[2]'}}
у меня почему-то вылезает "Неверный аргумент" Что не так? |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 26 Apr 2007 13:32 Post subject: |
|
|
Та-ак, с этим разобрался(синтаксическая ошибка)... F7 нажимается, ввожу группу и номенкл.№ , нажимаю Enter, вылезает "Ошибка выполнения, переполнение массива" |
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 26 Apr 2007 14:26 Post subject: |
|
|
Code: | asortlabs:={{'- по группе и номенклатуре',{'Введите код группы :','Введите ном.номер :'},{'GRUP','NNUM'},'UPPER(" "+aIn[1]+aIn[2])',,,{"grupss"},"MLABEL_S"}} |
Вот Вам рабочий вариант - сравнивайт |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 26 Apr 2007 16:58 Post subject: |
|
|
да, есть такое дело... действительно - рабочий вариант... теперь группа и наименование...
{'- наименованиям внутри групп',{'код группы: ','наименование'},{'grup','name'},'UPPER(" "+aIn[2]+aIn[4])',,,{"grupss"},"MLAB_ST"}
Где ошибка??? Говорит - переполнение массива=( я даже понимаю почему (чёт не так с 'name') |
|
Back to top |
|
 |
|
|
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
|