View previous topic :: View next topic |
Author |
Message |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 07 May 2007 18:49 Post subject: |
|
|
Quote: | Function Main()
LOCAL aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc,aHeads,aRef,bDel,aSortSeek
aSet:=SaveSet()
aSetKey:=SaveSetKey()
NetUse("Mlabel",loadpath()+"\sclad\mlabel.dbf",,.F.)
NetUse("Mgrup",loadpath()+"\sclad\mgrup.dbf",,.F.)
NetUse("Mkart",LoadPath()+"\sclad\mkart.dbf",,.F.)
Mlabel->(OrdSetFocus("MLAB_ST"))
MLabel->(dbcreateindex('C:\temp\mlbl','upper(GRUP+NNUM+" ")'))
Mgrup->(OrdSetFocus("MGrup"))
MKart->(OrdSetFocus("MKart_P10"))
Mkart->(SetScope(UPPER(GRUP+NNUM+PARTIA+SCLAD)))
MKart->(dbgotop())
DBPUSH("Mlabel","MlBL","",{'upper(GRUP+NNUM+" ")',Mkart->(UPPER(GRUP+NNUM+PARTIA+SCLAD))})
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:={"Ценовая группа группа ном.номер Наименование "}
aBlockCols:={{{||FIELD->gr_cen},4},{{||FIELD->grup},19},{{||FIELD->nnum},24},{{||LEFT(FIELD>NAME,37)},41}}
cCurProc:={||"2"}
aHeads:={;
{"Ценовая группа......:","gr_cen"},;
{"Группа..............:","grup"},;
{"Номенклатурный №....:","nnum"},;
{"Наименование........:","name",0},;
{"Цена до 2-х тн......:","oCena1"},;
{"Цена c 2-х до 5и тн.:","oCena2"},;
{"Цена c 5-и тн.......:","oCena3"},;
{"Спец. цена..........:","oCena4"}}
Mgrup->(MakeRefer("grupss","Справочник групп",2,{"Группа","Наименование"},{3,23,7},"n/w,w+/n",{"CODE"},{"aIn[1]"},,{{||FIELD->Code},{||FIELD->Name}}))
aRef:={,,,,,,"grupss"}
bDel:={||.T.}
aSortSeek:={{'- номерам ТМЦ внутри групп ',{'Код группы?:','Ном. номер?: '},{'Grup','NNum'},'UPPER(aIn[1]+aIn[2])',,,{"grupss"},"MLABEL"},;
{'- наименованиям внутри групп',{'Код группы: ','Наименование:'},{'grup','Space(10)'},'UPPER(" "+aIn[1]+aIn[2])',,,{"grupss"},"MLAB_ST"}}
Mlabel->(InitList(nTop,nBot,cColHead,aBlockCols,cCurProc,aHeads,aRef,,,,,bDel,,aSortSeek))
mgrup->(dbclosearea())
RestSetKey(aSetKey)
RestSet(aSet)
return
|
Где-то я ступарюсь=(
Учёт партионный (для каждой номенклатуры есть пустая карточка - её и берём).
Соответственно надо объединить Мкарт и Млабел по (груп+ннум+партия(5пробелов)+Прайс (1пробел))
КАК??? Ну помогите пожалуйста!
PS мне ответы типа "Ну да можно F_SETRALATION(), но здесь я бы воспользовался дбсикоком()" ничего не говорят... Я бы хотел примерчик с коментариями для новичк |
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 10 May 2007 15:21 Post subject: |
|
|
Был в небольшом отпуске
Я честно говоря так и не могу понять чего Вы хотите добиться.
Вы открываете Mlabel - это я вижу. Вы что отфильтровать хотите mlabel только по позициям включенным в прайс-лист или что ?
Или просто информация нужна на экране из mkart ? |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 10 May 2007 15:47 Post subject: |
|
|
Quote: | Вы что отфильтровать хотите mlabel только по позициям включенным в прайс-лист или что ? |
ДА!!! Я хочу из Mlabel брать только те позиции, которые в прайсе висят.
и ещё вопрос... можно-ли запустить на одном экране сразу 2 initlist, что бы, двигая курсором по верхней половине, на нижней он автоматически перемещался. (опять на примере mkart+Mlabel). |
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 10 May 2007 17:41 Post subject: |
|
|
Вы хотите экран по примеру типовых операци |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 11 May 2007 10:52 Post subject: |
|
|
ну, например... но это так, для общего развития... а конкретно сейчас мне надо понять как отфильтровать Mlabel по MKart->Price=" " |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 11 May 2007 12:39 Post subject: |
|
|
первый вопрос остаётся в силе. Очень хочу увидеть примерчик фильтра...
а вот такой вопрос... Чё не так??? Tab-ами окошки переключаются (правда на подсыеченной области пропадает cColHead. Сначала он был Local, но всё равно пропадал ) и... Tab нажимается, следующее окошко подсвечивается, а если нажать стрелочку вниз (или PageDown) начинают мелькать окнна (как будто Tab зажат), потом, секунд через 20 прога вываливается в главное меню
Quote: | FUNCTION Main()
Private mcur1,mcur2,_numrec
aSet:=SAVESET()
aSetKey:=SAVESETKEY()
_numrec:=1
NetUse("_Mgrup",loadpath()+"\sclad\mgrup.dbf",,.F.)
_Mgrup->(OrdSetFocus("MGrup"))
_Mgrup->(MakeRefer("grupss","Справочник групп",2,{"Группа","Наименование"},{3,23,7},"n/w,w+/n",{"CODE"},{"aIn[1]"},,{{||FIELD->Code},{||FIELD->Name}}))
NetUse("Mkart",LoadPath()+"\sclad\mkart.dbf",,.F.)
NetUse("Mlabel",loadpath()+"\sclad\mlabel.dbf",,.F.)
DO WHILE INIT1(.T.).AND.INIT2(.T.)
ENDDO
//INIT1()
//INIT2()
RESTSETKEY(aSetKey)
RESTSET(aSet)
MKart->(DBCLOSEAREA())
_Mgrup->(DBCLOSEAREA())
Mlabel->(DBCLOSEAREA())
RETURN NIL
Function Init2(lFlag1)
LOCAL aSet,aSetKey,nTop,nBot,aBlockCols,cCurproc,aHeads,aRef,bDel,aSortSeek
Private hnRowAct,cColHead1
Mlabel->(OrdSetFocus("MLAB_ST"))
DispBox(2,0,23,79,(CHR(201)+CHR(205)+CHR(187)+CHR(186)+CHR(188)+CHR(205)+CHR(200)+CHR(186)+' ' ),"W+/B")
nTop:=14
nBot:=22
cColHead1:={"Ценовая группа группа ном.номер Наименование "}
aBlockCols:={;
{{||FIELD->gr_cen},4},;
{{||FIELD->grup},19},;
{{||FIELD->nnum},24},;
{{||LEFT(FIELD->NAME,37)},41};
}
cCurProc:={||mcur2(lFlag1,@hnRowAct,m->_numrec,RecNo())}
cHead:='Прайс глист'
cHead1:='Ацтой'
cHelp:="ENTER:Правка F4:Ввод F3:Сортировка F6/Alt-F6:Фильтр F7/Alt-F7:поиск"
aHeads:={;
{"Ценовая группа......:","gr_cen"},;
{"Группа..............:","grup"},;
{"Номенклатурный №....:","nnum"},;
{"Наименование........:","name",0},;
{"Цена до 2-х тн......:","oCena1"},;
{"Цена c 2-х до 5и тн.:","oCena2"},;
{"Цена c 5-и тн.......:","oCena3"},;
{"Спец. цена..........:","oCena4"}}
bDel:={||.T.}
aSortSeek:={{'- номерам ТМЦ внутри групп ',{'Код группы?:','Ном. номер?: '},{'Grup','NNum'},'UPPER(aIn[1]+aIn[2])',,,{"grupss"},"MLABEL"},;
{'- наименованиям внутри групп',{'Код группы: ','Наименование:'},{'grup','Space(10)'},'UPPER(" "+aIn[1]+aIn[2])',,,{"grupss"},"MLAB_ST"}}
@ 13,1 SAY REPLICATE("─",7 COLOR "w/b" //это не смайлик, это "8 )" без пробела
SHADOWBOX("ENTER:Правка F4:Ввод F3:Сортировка F6/Alt-F6:Фильтр F7/Alt-F7:поиск",23,3,23,75,"W/B")
Mlabel->(InitList(nTop,nBot,cColHead1,aBlockCols,cCurProc,aHeads,aRef,,,,,bDel,,aSortSeek,,,,,,,,,,,,,,,hnRowAct))
RETURN LASTKEY()!=27
FUNCTION INIT1(lFlag)
LOCAL aSet,aSetKey,nTop,nBot,aBlockCols,cCurproc,aHeads,aRef,bDel,aSortSeek
Private hnRowAct,cColHead2
MKart->(OrdSetFocus("MKart_P2"))
MKart->(OrdSetFocus("MKart_P10"))
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:=12
//nLeft:=1
cColHead2:={"Группа ном.№ Наименование На складе Резерв Склад№"}
aBlockCols:={{{||FIELD->grup},1},;
{{||RIGHT(FIELD->nnum,5)},8},;
{{||LEFT(FIELD->Name,32)},15},;
{{||RIGHT(STR(FIELD->koltek),10)},48},;
{{||RIGHT(STR(FIELD->kolres),10)},59},;
{{||FIELD->sclad},71} }
cCurProc:={||mcur1(lFlag,@hnRowAct,m->_numrec,RecNo())}
aHeads:={;
{"Группа..............:","grup"},;
{"Номенклатурный №....:","nnum"},;
{"Наименование........:","name",0}}
//{"Цена до 2-х тн......:","oCena1"},;
//{"Цена c 2-х до 5и тн.:","oCena2"},;
//{"Цена c 5-и тн.......:","oCena3"},;
//{"Спец. цена..........:","oCena4"}}
aRef:={,,,,,,"grupss"}
bDel:={||.T.}
aSortSeek:={{'- номерам ТМЦ внутри групп ',{'Код группы?:','Ном. номер?: '},{'Grup','NNum'},'UPPER(aIn[1]+aIn[2])',,,{"grupss"},"Mkart_P10"},;
{'- наименованиям внутри групп',{'Код группы: ','Наименование:'},{'grup','Space(10)'},'UPPER(" "+aIn[1]+aIn[2])',,,{"grupss"},"MKart_P2"}}
@ 13,1 SAY REPLICATE("─",7 COLOR "w/b" //это тоже не смайлик
SHADOWBOX("ENTER:Правка F4:Ввод F3:Сортировка F6/Alt-F6:Фильтр F7/Alt-F7:поиск",23,3,23,75,"W/B")
MKart->(InitList(nTop,nBot,cColHead2,aBlockCols,cCurProc,aHeads,aRef,,,,,bDel,,aSortSeek,,,,,,,,,,,,,,,hnRowAct))
RETURN LASTKEY()!=27
FUNCTION mcur1(_xlActiv,hnRowAct,xRec,xRec1)
LOCAL m1end,m1Ar
m1End:=2
m1Ar:=MKart->(QScroll())
hnRowAct:=m1Ar[6]
IF LASTKEY()=9
mkart->(QOFF())
SETLASTKEY(0)
m1End:=0
ELSE
IF xRec == NIL.OR.xRec<>xRec1
Init2(.F.)
m->_numrec:=xRec1
ENDIF
IF _xlActiv
m1End:=2
ELSE
(QOff())
m1End:=0
ENDIF
ENDIF
RETURN m1end
FUNCTION mcur2(_lActiv,hnRowAct,xRec,xRec1)
LOCAL m2end,m2Ar
m2Ar:=MLabel->(QScroll())
hnRowAct:=m2Ar[6]
IF LASTKEY()=9
(QOff())
SETLASTKEY(0)
m2End:=0
ELSE
IF xRec == NIL.OR.xRec<>xRec1
Init1(.F.)
m->_numrec:=xRec1
ENDIF
IF _lActiv
m2End:=2
ELSE
QOff()
m2End:=0
ENDIF
ENDIF
RETURN m2end
|
и... как мне сделать так, чтобы перемещая курсор по верхней половине экрана он по нижней сам передвигался??? |
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 11 May 2007 13:27 Post subject: |
|
|
На первый вопрос мне надо немножко подумать (пару-тройку рабочих дней) чтобы получше способ предложить или образец из исходника БЭСТа дать.
А вот по второму вопросу и предваряя будущие вопросы у меня к Вам есть такое предложение.
Давайте научимся пользоваться отладчиком и на многие вопросы Вы самостоятельно и оперативно ответы видеть будете.
Согласны ? |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 11 May 2007 13:46 Post subject: |
|
|
я постараюсь...  |
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 11 May 2007 18:49 Post subject: |
|
|
Я к тому что готов помогать и направлять в этом вопросе.
Хотите откроем тему-урок и в ней попробуем совместно с отладчиком поработать на Вашем примере ? |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 14 May 2007 10:42 Post subject: |
|
|
КОНЕЧНО ХОЧУ!!! Я об этом даже и не мечтал
Нужно сделать модуль "Прайс с ценовыми группами"
Для этого в Mlabel добавляем поле "Cen_Gr" C3. При этом надо 2 инитлиста (Mkart и Mlabel), чтобы передвигая курсор по первому - во втором он автоматически перемещался. Плюс поиск/сортировка позиций по Mlabel->Cen_Gr, и Hot Key (например Alt+R) "Применить цену по всей ценовой группе" То есть что бы не вбивать одинаковые цены, а разбить их по группам, потом вбить цены в одну (любую) позицию и применить цену ко всей ценовой группе.
Сложно??? |
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 14 May 2007 12:31 Post subject: |
|
|
ОК вечером поработаю над темо |
|
Back to top |
|
 |
Notwar
Joined: 21 Sep 2005 Posts: 101 Location: Notwar Dan Occupation: mlst(it) Interests: Moscow
|
Posted: 14 May 2007 13:20 Post subject: |
|
|
НЕСКАЗАННО БЛАГОДАРЕН!!!!!!!  |
|
Back to top |
|
 |
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 15 May 2007 12:40 Post subject: |
|
|
Переходим в тему строчкой выше  |
|
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
|