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

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

Добавлено: 06 ноя 2015, 20:13
beatlov
edward_K , а можно аналогично по меню интерфейса 'L_BASEDOC::VSCHETB' подсказать... как формируется выпадающее меню? Заранее спасибо.

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

Добавлено: 07 ноя 2015, 11:58
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

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

Добавлено: 09 ноя 2015, 19:17
beatlov
Спасибо!;)