Если нечем занять мозги - плиз! помогите ;))
Модераторы: m0p3e, edward_K, Модераторы
Если нечем занять мозги - плиз! помогите ;))
Господа профессианалы и просот образованые люди!
Мине, значидь, поставили задачу, а я в ВИПе ни бум-бум. Все говоряд, что проще осваивать на конкретном примере - может поможите. Дела такое: необходимо сформировать отчет, содержащий движение ТМЦ, полученых в результате инвентаризации\демонтажа (GroupParty.Kode='1111111111'). А также остатки на начало и конец задаваемого периода. Я даже выборку построить не могу!
Есть похожие протатипы, но если их брать, то формироваться отчет будет вечность. ХЕЛБ ПЛИЗ!
Мине, значидь, поставили задачу, а я в ВИПе ни бум-бум. Все говоряд, что проще осваивать на конкретном примере - может поможите. Дела такое: необходимо сформировать отчет, содержащий движение ТМЦ, полученых в результате инвентаризации\демонтажа (GroupParty.Kode='1111111111'). А также остатки на начало и конец задаваемого периода. Я даже выборку построить не могу!
Есть похожие протатипы, но если их брать, то формироваться отчет будет вечность. ХЕЛБ ПЛИЗ!
Viva la resistans
ну если я правельно понял задачу то тема примерно такая
вот звязка таблиц
из нее ты можешь выдернуть все мц, все текущие остатки по этим МЦ, все партии, при этом есть инфа по МОЛ-у, подразделению и групп МЦ.
пере работой надо заполнить таблицу TmpSaldo1
для того чтоб поиметь по каждому МЦ и каждой ее партии сопроводительный документ со спецификацией можно заюзать такую связочку
для новичка связать таблицы пожалуй самое сложное, далее уже дело техники, выбирай нужнуе тебе данные в нужном ракурсе и пиши отчет
вот звязка таблиц
Код: Выделить всё
where
((
TmpSaldo1.cMc == KatMc.Nrec
and KatMc.cEd == Kated.Nrec
and TmpSaldo1.cMc == KatParty.cMC
and TmpSaldo1.cMol == KatMol.Nrec
and TmpSaldo1.cPodr == KatPodr.Nrec
and TmpSaldo1.cGroupMc == GroupMc.Nrec
and TmpSaldo1.cMC == SpOrder.cMC(NoIndex)
and TmpSaldo1.cParty == SpOrder.cParty(NoIndex)
and TmpSaldo1.cMOl == SpOrder.ccMOl(NoIndex)
and TmpSaldo1.cPodr == SpOrder.ccPodr(NoIndex)
));
пере работой надо заполнить таблицу TmpSaldo1
Код: Выделить всё
Store_Init;
Store_ReInit;
Store_Run(data_, mc_, podr_, mol_, party_, true, true, true);
Store_Done;
Код: Выделить всё
create view ViewSklOrder
var
CurMC : comp;
CurParty : comp;
as select *
from
synonym SpOrder SpOrder111
,synonym SklOrder SklOrder111
,synonym KatSopr KatSopr111
where
((
CurMC == SpOrder111.cMC(NoIndex)
and CurParty == SpOrder111.cParty(NoIndex)
and SpOrder111.cSklOrder == SklOrder111.NRec
and SklOrder111.cSopr == KatSopr111.Nrec
));
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Можно понять так.
Включить журнализацию на все таблы(впрочем здесь справочники, а на них уж точно должна быть). Перезайти в галку, выполнить привязку - посмотреть в сапорте какие таблы менялись и какие поля под вами.
Второй вариант найти dict.opi - там не все, но в основном все связки прописаны.
привязка на данную таблу такая
KatParty.cGroupParty == GroupParty.NRec
могет быть GroupParty.сMc == Katmc.nrec но эт вроде Мц по умолчанию.
Или вы не ту таблу берете за основу - есть еше GroupMc.
Включить журнализацию на все таблы(впрочем здесь справочники, а на них уж точно должна быть). Перезайти в галку, выполнить привязку - посмотреть в сапорте какие таблы менялись и какие поля под вами.
Второй вариант найти dict.opi - там не все, но в основном все связки прописаны.
привязка на данную таблу такая
KatParty.cGroupParty == GroupParty.NRec
могет быть GroupParty.сMc == Katmc.nrec но эт вроде Мц по умолчанию.
Или вы не ту таблу берете за основу - есть еше GroupMc.
Богом моль, не ругайтесь, но ..... зачем эти строки
Store_Init;
Store_ReInit;
Store_Run(data_, mc_, podr_, mol_, party_, true, true, true);
Store_Done;
и для чего они вообще нуны. Похоже на какую-то функцию, но нигде не могу найти ее описание
Я вообще пока синтаксиса ВИПовского не знаю толком
МЛЯТЬ, КАК ЖЕ Я НЕНАВИЖУ СВОЮ ТУПУЮ БАШКУ !!
Store_Init;
Store_ReInit;
Store_Run(data_, mc_, podr_, mol_, party_, true, true, true);
Store_Done;
и для чего они вообще нуны. Похоже на какую-то функцию, но нигде не могу найти ее описание
Я вообще пока синтаксиса ВИПовского не знаю толком
МЛЯТЬ, КАК ЖЕ Я НЕНАВИЖУ СВОЮ ТУПУЮ БАШКУ !!
Viva la resistans
не надо трагедий
а описание ты где ишешь? в хелпе? их там нет
это библиотечные ф-ции, если у вашей конторы есть исходники галактики то можешь их там посмотреть, хотя толку от того скорее всего не будет, по крайней мере мне это не чего не дало
а общая суть этих ф-ций в том чтоб пересчитать остатки по псем позициям МЦ
ладно, время есть попишу малость
есть таблица Pick, она служебная, то есть когда тебе надо фильтрации пометить пометить какието записи из каталога, например МОЛ или МЦ, то Nrec-и этих записей заганяют в таблицу Pick. Чтоб потом не путать, чей же это Nrec, для каждой записи идентифицирующий ее код
итак, Pick.cRec - это пемеченный Nrec, а Pick.wList - это код, если wList = 11 то это подразделение, если 7 - МЦ, если 10 - партия, если 27 - МОЛ .............
это то что касается таблицы Pick. Так вот теперь можно вернуться к параметрам ф-ции Store_Run();
data - на какую дату произвести расчет остатков МЦ
mc_ - если устоновил фильтр по МЦ и в Pick-е у тебя есть помеченные записи с кодом 7 то передаешь в качестве паратера -2, в противном случае 0
по аналогии и параметры podr_, mol_, party_
насчет последних трех не помню, видно лажа какая то и можно оставлять без изменений ,
вобще хочу сказать что если у вас нет исходников галки то постижение будет не излегких, а вот если есть то читай их как мусульманин каран читает, там есть ответы на ВСЕ вопросы, я хелпом почти не пользуюсь, надо что делать, я ищу похожий интерфейс в галке, потом беру его исходники и разбираюсь, лично мне так проще и быстрее
есть похожий отчет, могу поделиться исходниками, думаю он тебе подойдет, ну или на крайняк что то подправишь
а описание ты где ишешь? в хелпе? их там нет
это библиотечные ф-ции, если у вашей конторы есть исходники галактики то можешь их там посмотреть, хотя толку от того скорее всего не будет, по крайней мере мне это не чего не дало
а общая суть этих ф-ций в том чтоб пересчитать остатки по псем позициям МЦ
ладно, время есть попишу малость
есть таблица Pick, она служебная, то есть когда тебе надо фильтрации пометить пометить какието записи из каталога, например МОЛ или МЦ, то Nrec-и этих записей заганяют в таблицу Pick. Чтоб потом не путать, чей же это Nrec, для каждой записи идентифицирующий ее код
итак, Pick.cRec - это пемеченный Nrec, а Pick.wList - это код, если wList = 11 то это подразделение, если 7 - МЦ, если 10 - партия, если 27 - МОЛ .............
это то что касается таблицы Pick. Так вот теперь можно вернуться к параметрам ф-ции Store_Run();
data - на какую дату произвести расчет остатков МЦ
mc_ - если устоновил фильтр по МЦ и в Pick-е у тебя есть помеченные записи с кодом 7 то передаешь в качестве паратера -2, в противном случае 0
по аналогии и параметры podr_, mol_, party_
насчет последних трех не помню, видно лажа какая то и можно оставлять без изменений ,
вобще хочу сказать что если у вас нет исходников галки то постижение будет не излегких, а вот если есть то читай их как мусульманин каран читает, там есть ответы на ВСЕ вопросы, я хелпом почти не пользуюсь, надо что делать, я ищу похожий интерфейс в галке, потом беру его исходники и разбираюсь, лично мне так проще и быстрее
есть похожий отчет, могу поделиться исходниками, думаю он тебе подойдет, ну или на крайняк что то подправишь
Спасибо за уделенное время! За исходник был бы крайне признателен. Если хотите - можно на мыло кинуть или как вам будет удобнее... Насичет исходников Галки, то их полно, да еще куча специфичных разработок и доработок в придачу, поэтому учится мне - непереучится . Меня бесит то, что я , вроде в инстетуте считался неплохим программером, уже 4-ю неделю не могу разобраться с ВИПом. Очень хочется побыстрее стать максимально полезным.
Еще проблема - в моем случае пересчет сальдовых остатков очен ьспецифичен, поэтому стандартные исходники мне сказали не трогаь - ничего не получится. У них тут написана какая то спец функция на этот счет. С ней я и парюсь.
Еще проблема - в моем случае пересчет сальдовых остатков очен ьспецифичен, поэтому стандартные исходники мне сказали не трогаь - ничего не получится. У них тут написана какая то спец функция на этот счет. С ней я и парюсь.
Viva la resistans
Что за чьёр - при компиляции выдает ошибку "Необходим ключ CPARTY+DORD+DORD", если раскоменчиваю ограничения на дату:
Код: Выделить всё
Interface TMCmove 'Параметры отчета';
Show at (1,1,40,10);
Create view TMCmoveview
var
Begdate,EndDate: Date;
as select *
from
GroupParty, Katparty, SpOrder,KatSopr, SklOrder
where((
1111111111 == GroupParty.Kod and
GroupParty.nRec == Katparty.cGroupParty and
KatParty.nRec == SpOrder.cParty and
SpOrder.cSklOrder == SklOrder.nRec and
SklOrder.cSopr == KatSopr.nrec and
KatMc.nRec == SpOrder.cMc
// begdate <<= sporder.dord and
// enddate >>= sporder.dord
));
Form frm_TMCmove ('TMCmove.out','TMCmove');
Screen TMCmove;
Fields
begdate ('Введите начальную дату'): [,'DD/MM/YYYY'],noprotect;
enddate ('Введите конечную дату'): [,'DD/MM/YYYY'],noprotect;
Buttons
cmOk, default,,'OK';
cmCancel,,,'Отмена';
<<
Начало периода .@@@@@@@@@@
Конец периода .@@@@@@@@@@
<.Принять.> <.Выход.>
>>
end;// Screen
Viva la resistans
???
Последний раз редактировалось Saltava 02 авг 2006, 07:09, всего редактировалось 1 раз.
Viva la resistans
???
Последний раз редактировалось Saltava 02 авг 2006, 07:08, всего редактировалось 1 раз.
Viva la resistans