Если нечем занять мозги - плиз! помогите ;))
Модераторы: 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
    ));- 
				edward_K
 - Заслуженный деятель интернет-сообщества
 - Сообщения: 5189
 - Зарегистрирован: 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