Страница 1 из 1

Не работает Pick

Добавлено: 09 ноя 2012, 11:54
Semi-bit
Уважаемые господа, вы моя последняя надежда. Есть такой код:

Код: Выделить всё

cmPick:{
  case CurField of
  #PodrFilter: if RunInterface(GetAnyPodr, 0h, 14) = cmDefault then {
    var Count: integer;
    Count := 0;
    if tsOk = GetFirst Pick where ((word(11) == Pick.wList)) then
    do { Inc(Count); } while (tsOk = GetNext Pick where ((word(11) == Pick.wList)));
    case Count of
    0: Set PodrFilter := '';
    1: Set PodrFilter := KatPodr.Name;
    else
      Set PodrFilter := 'Выбрано ' + RowCount + ' подразделений';
    end;
  }
  #MolFilter: if RunInterface(GetSomeMol) = cmDefault then {
    _loop Pick where ((word(8) == Pick.wList)) {}
    case RowCount of
    0: Set MolFilter := '';
    1: Set MolFilter := KatMol.Name;
    else
      Set MolFilter := 'Выбрано ' + RowCount + ' лиц';
    end;
  }
  end;
}
И он не работает, то есть после любого выбора в обоих вызываемых интерфейсах поля остаются пустыми. ИЧСХ, результаты выбора от вызова к вызову сохраняются, но их не видно извне. Проверил всё, что только можно. Остаются только шаманские методы, коих, я надеюсь, вы мне подкинете.

Re: Не работает Pick

Добавлено: 09 ноя 2012, 12:06
RAJAH
Возможно, нужны какие-то инклюды, указание статус-строки, перерисовка интерфейса...

Re: Не работает Pick

Добавлено: 09 ноя 2012, 12:24
Semi-bit
Инклюды подключены, прога компилируется. Статус-строки не нужны, интерфейсы вызываются, горячие клавиши в них работают. Перерисовка интерфейса осуществляется оператором Set. Я выложил только проблемный кусок, могу полный код привести.
P.S. Система, стыдно признаться, Галактика 7.12.

Re: Не работает Pick

Добавлено: 09 ноя 2012, 15:14
Masygreen
попробуйте все же RescanPanel .. Redraw принудительно

Re: Не работает Pick

Добавлено: 10 дек 2012, 08:38
Semi-bit
Пробовал, не помогает :( Похоже, придётся писать своё окно выбора.

Re: Не работает Pick

Добавлено: 10 дек 2012, 09:29
KATZ
1. При выборе подразделения переменная для счетчика названа Count. Есть функции с такими же именами. Возможно, причина в совпадении имен.

2. При выборе МОЛ используется RowCount. Она, как пишет документация, "возвращает количество обработанных записей при групповых операциях модификации". Вы ничего не модифицировали, просто прошлись по всем записям. Вполне логично, что функция вернет 0.

Re: Не работает Pick

Добавлено: 10 дек 2012, 11:17
Semi-bit
Насчёт Count'а вы правы, нашёл функцию с таким названием. Но замена на Cnt (просится другое название) ничего не изменила. Далее, попробовал _loop заменить на delete - RowCount так же выводит 0, а при вызове интерфейса выбора результаты не очищаются. Такое ощущение, что вызываемый и вызывающий интерфейсы работают в разных базах, но это бред. Использование ReScanPanel выглядит наиболее целесообразным, но тоже не помогает, даже ReReadRecord не помогает.
И раньше в документации было указано, что RowCount также подсчитывает количество пройденных строк в операции loop, сейчас такой информации нет.

Re: Не работает Pick

Добавлено: 10 дек 2012, 12:45
KATZ
Чудес не бывает. Для визуализации оператора set должно хватать. Выложите полный код, с ним яснее станет.

З. Ы. Что-то я в документации не встретил функцию Inc, она точно есть в "Галактике"? Если вместо нее написать Cnt:=Cnt+1, то что-нибудь меняется?

Re: Не работает Pick

Добавлено: 10 дек 2012, 13:24
Semi-bit
ОК, выкладываю.

Код: Выделить всё

#make "DisposalAct.frm"

#include GalNet.Inc
end;
/*table struct CntMove
(
  dmove :date,
  cmove : comp, 
  cpodr : comp,
  cmol  : comp
)
with index
(
  CntMove01 =  cpodr + cmol + dmove (unique)
)
; */
//type TCntMove = record as table CntMove;
 
Interface Create_For_Sip_Manual 'Галактическое безобразие' ('', hcNoContext, sci1Esc);
show at(,,50,5);
var
   dfrom, dto : date;
  // cntMBPIn : TCntMove;
   Marker : longint;

create view GetReq
var
  PodrFilter, MolFilter: string;
as select *
from
  MBPMove, Synonym MBPMove MBPMoveCreate,  Synonym MBPMove CntMove/* IsAUTO*/,
  MBPIn,
  MBPOUT, Synonym MBPOut MBPOutCreate,
  SoprHoz,
  MagOper,
  Pick,
  Pick PickPodr,
  Pick PickMol,
  KatPodr,
  KatMol
   
where
((
      word(0) == MBPin.extmod    
  and word(1) == MBPIn.status  (noindex) // введено в эксплуатацию
 // and word(4) == MBPIn.instate (noindex) // только по вводу в эксплуатацию
  and word(1) == MBPIn.inekspl (noindex)
  
  and dfrom <<= MBPIn.dateeksp (noindex) 
  and dto   >>= MBPIn.dateeksp (noindex) 
  and MBPin.cmbp == katmbp.nrec
  and 'AUTO' == CntMove.descr
  and MBPin.cpodr == CntMove.cpodrt (noindex)
  and MBPin.cmol  == CntMove.cmolt(noindex)
 // and date(0,0,0) == mbpin.datespis (noindex)
  and date(last_day(MBPIn.DATEEKSP), month(MBPIn.DATEEKSP), year(MBPIn.DATEEKSP)) == CntMove.DMOVE

  and PickPodr.cRec == KatPodr.nRec
  and PickMol.cRec == KatMol.nRec
))
bounds byPodr as MBPIn.cPodr /== PickPodr.cRec and word(11) == PickPodr.wList
bounds byMol as MbpIn.cMol /== PickMol.cRec and word(8) == PickMol.wList
condition  SIZ as ((substr(KatMBP.KodGr, 7, 2) = '01') or (substr(KatMBP.KodGr, 1, 9) = '120000003'))
;

#include tranfunc.vpp

Function InitFunction : boolean;
{
  InitFunction := false 
  //set dfrom :=  date(1,month(cur_date)-3, year(cur_date)) ;
  set dfrom := date(1,1,2007);
  //set dto := date(last_day(cur_date), month(cur_date), year (cur_date));
  set dto := date(30,4,2012);
  //set dto := date(31,10,2011);
  Marker := InitMarker('Marker' , 8, 100, 10);
  PushCondition (tcSIZ);
  rereadrecord;
  InitFunction := true;   
};


Function GetNum (tip : word) : string;
var
   chislo : integer;
   rec : comp; 
{
  case tip of  
  1: { rec:= comp(4001672163BFB58Fh);
       Update LastNumD  Where (rec=LastNumD.nrec) set LastNumD.LndNum:= Doubletostr(integer(LastNumD.LndNum) + 1, '777777');  // нельзя терять нули впереди

       GetNum:= LastNumD.LndNum;
  };
  end;    
} ;

Function CreateOUT(dend : date) : boolean;
var
  i : integer;
begin
  CreateOUT  := false;
  
  ClearBuffer (tnMBPOutCreate);
  MBPOutCreate.NOM      := GetNum (1);
  MBPOutCreate.STATUS   := 4;
  MBPOutCreate.DOUT     := dend;
  MBPOutCreate.TKOL     := MBPIn.KOLfact;
  MBPOutCreate.TPERCENT := MBPIn.TPERCENT;
  MBPOutCreate.TSUMMA   := MBPIn.SUMFACT;
  MBPOutCreate.TSUMMAISN:= MBPIn.SUMISNF;
  MBPOutCreate.KOL      := MBPIn.KOLfact;
  MBPOutCreate.PERCENT  := 0;
  MBPOutCreate.SUMMA    := MBPIn.SUMFACT;
  MBPOutCreate.SUMMAisn := MBPIn.SUMISNF;
  MBPOutCreate.CMOVE    := MBPMoveCreate.nrec;
  MBPOutCreate.CMBPIN   := MBPIn.nrec;
  MBPOutCreate.NOMSOPRD := MBPIn.NOMSOPRD;
  MBPOutCreate.nrec     := 0h;
!  if (Insert current MBPMoveCreate) = 0 then message('good') else message('bad');
!  if (Insert current MBPMoveCreate) <> 0 then exit;
  if (Insert current MBPOutCreate) <>0 then exit; 

  
  ClearBuffer(tnSoprHoz);     
  SoprHoz.DATOB       := dend;
  SoprHoz.CSOPRDOC    := MBPOutCreate.nrec;
  SoprHoz.TIPDOC      := word(19);
  SoprHoz.TIDKGAL     := word(19);
  SoprHoz.DESCR       := sGetTune('User.Descr');
  SoprHoz.DESGR       := sgetTune('USER.DESGR');
  SoprHoz.NameSHO  := 'Списание '+String(MBPOutCreate.Kol)+' ед. МБП по цене '+ String(MBPIn.Price)+
                   If(MBPOutCreate.tPercent>0.0001
                   , ' (ранее нач.износ:'+string(MBPOutCreate.tPercent)+'%)'
                   , ' износ не начислялся' );
  SoprHoz.SUMMA       := MBPOutCreate.kol*MBPIn.price;
  SoprHoz.DIRECT      := word(2);
  SoprHoz.VHSUMHOZ    := Chr('+');
!  if (insert current SoprHoz) = 0 then message('good') else message('bad');
  if (Insert current SoprHoz) <> 0 then exit;

  for (i:=0; i<2; Inc(i)){
      ClearBuffer(tnMagOper);
      MagOper.TIPDOC      := word(19);
      MagOper.CSOPRDOC    := MBPOutCreate.nrec;
      MagOper.DHOZOPER    := dend;
      MagOper.CPLANSSCH   := if (i=0,0000000000000005h,4001AD7D0FF15F6Dh);
      MagOper.dESCR       := sGetTune('User.Descr');
      MagOper.DESGR       := sgetTune('USER.DESGR');
      MagOper.CSOPRHOZ    := SoprHoz.nrec;
!      if (insert current MagOper) <>0 then message('good') else message('bad');
      if (insert current MagOper) <>0 then exit;                      
  }

  CreateOUT  := true;    
end;


Function UpdateMBPIn (dend : date): boolean;

begin
  UpdateMBPIn := false;
  
  MBPIn.KOLFACT  := 0;
  MBPIn.SUMFACT  := 0;
  MBPIn.STATUS   := 0;
  MBPIn.DATESPIS := dend;
  MBPIn.DATEZERO := dend;
  if (UpDate current MBPIN) <> 0 exit;
  
  UpdateMBPIn := true;
end;


Function CreateMove(dend : date) : boolean;
begin
  CreateMove := false;

  ClearBuffer(tnMBPMoveCreate);
  MBPMoveCreate.NOM    := GetNum(1);
  MBPMoveCreate.DMOVE  := dend;
  MBPMoveCreate.CPODRF := MBPIn.CPODRF; 
  MBPMoveCreate.CMOLF  := MBPIn.CMOLF;
  MBPMoveCreate.CPODRt := MBPIn.CPODR;
  MBPMoveCreate.CMOLt  := MBPIn.CMOL;
  MBPMoveCreate.STATUS := 5;
  MBPMoveCreate.SUMMA  := MBPIn.SUMFACT;
  MBPMoveCreate.SUMMAISN:= MBPIn.SUMISNF;
  MBPMoveCreate.CVALOLD:= to_days (dend);
  MBPMoveCreate.DESCR  := 'ADMIN';
  if (Insert current MBPMoveCreate) <> 0 then {exit};
  
  if not CreateOUT (dend) then {/*MESSAGE('not CreateOUT '+KatMBP.nrec + '  '+katmbp.name);*/exit};
  if not UpDateMBPIn (dend) then {exit};

  CreateMove := true;                               
end;

Function UpdateMove(rec : comp; dend : date) : boolean;
begin

  UpdateMove := false;
  if getfirst MBPMoveCreate where ((rec == MBPMoveCreate.nrec)) <> 0 then exit;

  MBPMoveCreate.SUMMA  := MBPMoveCreate.SUMMA + MBPIn.SUMMA;
  MBPMoveCreate.SUMMAISN:= MBPMoveCreate.SUMMAISN + MBPIn.SUMMAISNN;
  MBPMoveCreate.DESCR  := 'ADMIN';
  if (Update Current MBPMoveCreate) <> 0 then exit;
    
  if not CreateOUT(dend) then exit;
  if not UpDateMBPIn(dend) then exit;
  
  UpdateMove := true; 
end;
              
Window winMBPin;
show at (, , ,);
Browse brMBPin;
show at (,,,20);
table MBPIN
fields
   MBPIN.nom :[6], protect;
   MBPIN.din : [6],  protect;
   KatMBP.name: [10], protect;
   KatMBP.KodGr : [10], protect;
   if (MBPIn.status=1, 'в эксплуатации', 'серенькая') :[15], protect;
   
end;
Screen ScrMBPIN;
show at (,21,,);
buttons
cmOk;
<<
  <. Окей .>
>>
end;
HandleEvent  
cmOk : {
  var i : integer;
  var HasSuchMove : boolean;

  PushCondition (tcSIZ);
   
  BegTrans;
  StartNewVisual( vtRotateVisual, vfTimer + vfBreak + vfConfirm, '',1);
  SetVisualTitle('Подождите пожалуйста...');
  SetVisualHeader('Производится формирование актов списания...');
  _Loop MBPIn
  {
       SetVisualHeader('проверяется карточка '+MBPin.nom + ' от '+datetostr(MBPIn.din, 'DD.MM.YY'));
       if not nextVisual then {
          StopVisual ('Прервано пользователем ',1);
          break;
       };
      if (getfirst CntMove = 0 )
      then      
      { 
         if not UpdateMove(cntMove.nrec,  CntMove.dmove)
         {
            message('Обновление существующего акта списания прошло неудачно.'#13 + 'Осуществляю откат изменений ... ');
            AbortTrans;
            //StopVisual ('',0);
            break;//exit;
         };
      }
      else
      {    
         if not CreateMove (date(last_day(MBPIn.DATEEKSP), month(MBPIn.DATEEKSP), year(MBPIn.DATEEKSP)))
         {  
            message('Вставка акта списания прошлa неудачно.'#13 + 'Осуществляю откат изменений ... ');
            AbortTrans;
           // StopVisual ('',0);
            break;//exit;
         }
      };
  }
  StopVisual ('',0);
  DoneTrans;
  PopCondition (tcSIZ);

}
end;//handleevent
end;//window

Screen scEnterParams 'Введите параметры' ('', hcNoContext, sci1Esc);
Fields
  dFrom: [10], noprotect;
  dTo: [10], noprotect;
  PodrFilter (,,sci13Esc): protect, PickButton;
  MolFilter (,,sci13Esc): protect, PickButton;
Buttons
  cmOk;
  cmCancel;
<<
   ` Период с ` .@@@@@@@@@ ` по ` .@@@@@@@@@
   ` Подразделение ` .@@@@@@@@@@@@@@@@@@@@@@
   ` МОЛ `           .@@@@@@@@@@@@@@@@@@@@@@
          <. ОК .>         <. Отмена .>
>>
End;

form Report('DisposalAct.out', 'Disposal_Act');

#include function_date.inc 
HandleEvent
cminit:
{ 
  if not InitFunction then Abort;
}
cmPick:{
  case CurField of
  #PodrFilter: if RunInterface(GetAnyPodr, 0h, 14) = cmDefault then {
    if BoundActive(tbByPodr) then
      SubBounds(tbByPodr);
    var Cnt: Integer;
    Cnt := 0;
    GetReq._loop Pick where ((word(11) == Pick.wList)) { Inc(Cnt); }
    case Cnt of
    0: Set PodrFilter := '';
    1: Set PodrFilter := KatPodr.Name;
    else
      Set PodrFilter := 'Выбрано ' + Cnt + ' подразделений';
    end;
    if PodrFilter <> '' then
      if not BoundActive(tbByPodr) then
        AddBounds(tbByPodr);
  }
  #MolFilter: if RunInterface(GetSomeMol) = cmDefault then {
    if BoundActive(tbByMol) then
      SubBounds(tbByMol);
    _loop Pick where ((word(8) == Pick.wList)) {}
    case RowCount of
    0: Set MolFilter := '';
    1: Set MolFilter := KatMol.Name;
    else
      Set MolFilter := 'Выбрано ' + RowCount + ' лиц';
    end;
    if MolFilter <> '' then
      if not BoundActive(tbByMol) then
        AddBounds(tbByMol);
  }
  end;
}
cmOk:{
    //RunWindowModal('winMBPin');
//---------------------------------------------------------------------------------------------------------------
  //if not (cur_date = last_workday_in_month()) then {abort; exit;}
  if (integer(dFrom) = 0) or (integer(dTo) = 0) or (dFrom > dTo) then {
    Message('Неверно задан период!', Error + CancelButton);
    Abort;
    Exit;
  }
  Var    FileName , LogString: string;
//  FileName :=  '\\ptc-adem\programmers\Solonnikova\AUTOSFO.LOG';
//  LogString := '--------Запуск Интерфейса Create_For_Sip в ручном режиме-------';
//  LogStrToFile (FileName, LogString);
//  LogString := string(cur_date) + ', начало запуска: ' + TimeToStr(cur_time, 'HH:MM:SS');
//  LogStrToFile (FileName, LogString);


  var i : integer;
  var HasSuchMove : boolean;

  PushCondition (tcSIZ);

  BegTrans;
  StartNewVisual( vtRotateVisual, vfTimer + vfBreak + vfConfirm, '',1);
  SetVisualTitle('Подождите пожалуйста...');
  SetVisualHeader('Производится формирование актов списания...');
  Report.write(Cur_Date);
  Report.write(PodrFilter);
  Report.write(MolFilter);
  Report.write('СИЗ');
  _Loop MBPIn
  {
       SetVisualHeader('проверяется карточка '+MBPin.nom + ' от '+ DateToStr(MBPIn.din, 'DD.MM.YY'));
       if not nextVisual then {
          StopVisual ('Прервано пользователем ',1);
          break;
       };
      if (getfirst CntMove = 0 )
      then
      {
         if not UpdateMove(cntMove.nrec,  CntMove.dmove)
         {
           // message('Обновление существующего акта списания прошло неудачно.'#13 + 'Осуществляю откат изменений ... ');
            LogString := 'Обновление существующего акта списания прошло неудачно.'
//            LogStrToFile (FileName, LogString);
            SetVisualHeader(LogString);
            AbortTrans;
            //StopVisual ('',0);
            break;//exit;
         };
      }
      else
      {
         if not CreateMove (date(last_day(MBPIn.DATEEKSP), month(MBPIn.DATEEKSP), year(MBPIn.DATEEKSP)))
         {
           // message('Вставка акта списания прошлa неудачно.'#13 + 'Осуществляю откат изменений ... ');
            LogString := 'Вставка акта списания прошлa неудачно.'
//            LogStrToFile (FileName, LogString);
            SetVisualHeader(LogString);
//            AbortTrans;
           // StopVisual ('',0);
            break;//exit;
         }
      };
      Report.PutEvent(feDoLoop);
      Report.write(KatMbp.Name);
      Report.write(KatMbp.NNumber);
      Report.write(MbpOutCreate.Kol);
      Report.write(MbpIn.Price);
      Report.write(MbpOutCreate.Summa);
      Report.write(MbpIn.dIn);
      Report.write(MbpIn.Nom);
  }
//  LogString := string(cur_date) + ', конец  запуска: ' + TimeToStr(cur_time, 'HH:MM:SS');
//  LogStrToFile (FileName, LogString);
  StopVisual ('',0);
//  DoneTrans;
  PopCondition (tcSIZ);
   if (Marker <> 0) DoneMarker(Marker, '');

  if not Report.Error then
    Report.ShowFile('DisposalAct.out');
  else
    Report.AbortForm;

//---------------------------------------------------------------------------------------------------------------
}

 /*cmDone: 
 {    abort;
  exit;     
 };    */
end;
end.
DisposalAct.frm:

Код: Выделить всё

.form Disposal_Act
.fields
// шапка
FormDate: date
Podr
Mol
Grp
// спецификация
NameMc
BarKod
Kol: double
Price: double
Cost: double
EnterDate: date
EnterNum
.endfields
^ ^ ^ ^
.{CheckEnter
^ ^ ^ ^ ^ ^ ^
.}
.endform
function_date.inc:

Код: Выделить всё

Function Last_workday_in_month : date;
var
  need_day, lastday : date;
begin
  lastday := date(Last_day(cur_date), month(cur_date), year(cur_date));
  case day_of_week(Lastday) of 
  7: need_day := date (day(lastday)-2, month(lastday), year(lastday));
  6: need_day := date (day(lastday)-1, month(lastday), year(lastday));
  else  need_day := lastday;
  end;
  Last_workday_in_month := need_day; 
end;

Re: Не работает Pick

Добавлено: 10 дек 2012, 14:00
Den

Код: Выделить всё

Interface testpick;
  create view
   var  p: string;
        i: integer;
  ;

Screen Scr1
 viewtable;
  fields
    p : [25],pickbutton;
<<

   .@@@@@@@@@@@@@@@@@@@@@@@@
>>
end;

 HandleEvent
  CmPick:{
   	       delete all from pick where ((word(11) == Pick.wList));

    	   if RunInterface('Z_KATPODR::GetSomePodr')=cmDefault
    	   {

    	    _loop pick where  ((word(11) == Pick.wList))
    	    {
    	     inc(i)
    	    }
    	    p:='выбрано '+string(i)+' подразделений';
    	   }
           ReScanPanel(tnnotable);
         }
 CmInit:{
            p:='а давайте зададим подразделения !';
        }
 end;
end.
У Вас
...
Screen scEnterParams 'Введите параметры' ('', hcNoContext, sci1Esc);
Fields
...

Выдержки из доки :
"
<анкетный-редактор> = screen <имя> [<текст-лепестка-вкладки>]
[<контексты>];
[ <координаты> ] [ <лист> ] <анкета>
end;

Лист это имя физической таблицы, которая является корневой для данного видимого элемента. Лист может находиться в одном из 3-х режимов: table, viewTable, noTableNavigation.

<лист> = (table <имя-узла>) | viewTable | noTableNavigation
{, eventNavigation | cartesian };
Ключевое слово table связывает редактор с физической таблицей <имя-узла>.

Ключевое слово viewTable связывает редактор с логической таблицей. В результате в данной области ввода будет видна вся логическая таблица. Пользователь будет видеть перед собой результат предложения select, на котором построена выборка.
"

А вообще viewTable глючная вроде как. Лучше всегда связывайте с какой нить table

Re: Не работает Pick

Добавлено: 10 дек 2012, 15:45
KATZ
Посмотрел ваш код, даже скомпилировал на 8.1, поудаляв лишнее. Для случая Cnt>1 всё нормально отрабатывает, при Cnt==1 проблема, т. к. в этом случае берется NAME из KATPODR или KATMOL, но позиции в этих таблицах никак не связаны со сделанным выбором. Ситуацию Cnt==0 при RunInterface()==cmDefault не воспроизвести.

Re: Не работает Pick

Добавлено: 12 дек 2012, 13:31
Semi-bit
KATZ писал(а):Посмотрел ваш код, даже скомпилировал на 8.1, поудаляв лишнее. Для случая Cnt>1 всё нормально отрабатывает, при Cnt==1 проблема, т. к. в этом случае берется NAME из KATPODR или KATMOL, но позиции в этих таблицах никак не связаны со сделанным выбором. Ситуацию Cnt==0 при RunInterface()==cmDefault не воспроизвести.
А что конкретно лишнее поудаляли? И работало ли с этим лишним?
P.S. Даже если добавить

Код: Выделить всё

Insert PickPodr Set wList := 11;
_loop PickPodr...
всё равно не заходит в этот луп :-(

Re: Не работает Pick

Добавлено: 12 дек 2012, 15:11
Den
а если заблокировать condition SIZ везде в коде ? (да хотя бы в cminin)то тоже не зайдет ?

Re: Не работает Pick

Добавлено: 12 дек 2012, 21:03
KATZ
Semi-bit писал(а):А что конкретно лишнее поудаляли? И работало ли с этим лишним?
1. Инклудится tranfunc.vpp, самого файла нет. Удалил обращения к отсутствующим функциям.
2. В таблице MAGOPER нет некоторых полей. То ли их в 8.1 не стало, то ли у вас модифицированный словарь.
3. Убрал всё, что делается после нажатия cmOK.
4. Убрал из проекции таблицы, на которые компилятор ругался, что они не были явно использованы.
5. Может, что-то еще по мелочи.
Работало ли с лишним - не проверял. Кстати, совет Den-а дельный, попробуйте без condition.

Re: Не работает Pick

Добавлено: 13 дек 2012, 08:54
Semi-bit
Да-да-да, после убирания кондишна всё заработало :grin:
Всем большое спасибо!