Доп. пункт в меню

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

beatlov
Посетитель
Сообщения: 31
Зарегистрирован: 29 сен 2009, 13:29
Откуда: Ухта

Re: Доп. пункт в меню

Сообщение beatlov »

edward_K , а можно аналогично по меню интерфейса 'L_BASEDOC::VSCHETB' подсказать... как формируется выпадающее меню? Заранее спасибо.
I just shot John Lennon
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Доп. пункт в меню

Сообщение edward_K »

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

cmHotKeys:
  case CurTable of
  //--------------
    #BaseDoc:
      {
        ChangeEnabledCommands(true);

        var bSopr108: boolean;

        bSopr108 := RecordExists KatSopr where (( StepDoc.NRec == KatSopr.cStepDoc
                                              AND word(108)    == KatSopr.VidSopr )) = tsOk;

        var sDynMenuName: string;

        sDynMenuName := if (bSopr108, 'L_BaseDoc::mnuVschetb108', 'L_BaseDoc::mnuVschetb');

        sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuVschetbCont';

        // динамически добавляется меню
        // связь с книгой финансовых операций (Sanny)
        sDynMenuName := MakeMenuWithViewFpOborot(sDynMenuName);

        // высвобождение платежа (Garik)
        sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuVSchetBDORet';

        // просмотр налоговых накладных
        if (wGetTune('Country') = ccUkr)
          sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuNalNaklDoc';

        PutHotCommand(RunDynMenu(sDynMenuName + ';SEPARATOR;C_Common::AttrClass_HotKeys'));
      }
  //--------------
    else
      {
        if IsValid(#KatStroy)
          SetEnableCommand(cmDocBas, FALSE);

        if NOT UKS_Used
          SetEnableCommand(cmMulSelDO, FALSE);
        else
          SetEnableCommand(cmValue41, FALSE);

        ChangeEnabledCommands(SpStep.PrMc <> 1 AND KatUsl.TypeUsl = 1);

        SetEnableCommand(cmNal, SpStep.PrMc = 1);

        var sDynMenuName: string;

        if ( (CurField = #NamTovar) or (CurField = #Nomenkl) )
        {
          sDynMenuName := 'L_BaseDoc::mnuVschetb1';

          CASE wGetTune('OPER.BUY.CTRLF3') OF
            0 : sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuVschetb1_2';
            1 : sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuVschetb1_1';
          END ;

          PutHotCommand(RunDynMenu(sDynMenuName + ';SEPARATOR;L_BaseDoc::mnuVschetb1_3'));
        }
        else
          PutHotCommand(RunMenu('mnuVschetb3'));

        ChangeEnabledCommands(TRUE);

        SetEnableCommand(cmDocBas, TRUE);
        SetEnableCommand(cmNal   , TRUE);
      }
  //--------------
  end; // case
beatlov
Посетитель
Сообщения: 31
Зарегистрирован: 29 сен 2009, 13:29
Откуда: Ухта

Re: Доп. пункт в меню

Сообщение beatlov »

Спасибо!;)
I just shot John Lennon
Ответить