Поиск актов ОФ.

Автор:CyBear
Дата:07.04.2004
Просмотров:2080
Скачиваний:643
Оценка: - , Оценок - 0
Скачать (rar-файл; Размер - 2713)

Обсудить в форуме

Описание

Поиск актов ОФ.

При написании макроса печати актов ОФ и инвентарной карты в Excel мне понадобилось отладить свой макрос. Для облегчения этого этапа мне нужно было знать, у какой инвентарной карты содержиться тот или иной акт.

Так был написан сей макрос.

CyBear.

Текст примера

 Import name;
File mvm ("movemean.dbt", "bsmeans.def") Key 0;
Var NameOper    = "Без описания",
    idoc        = 0,
    Найдено     = 0,
    MenuFindUse = -1;

Array MenuFind;

 MenuFind (0) = "   Переоценка (РП)                    ";
 MenuFind (1) = "   Приемка-передача объекта (ПР)      ";
 MenuFind (2) = "   Передачи объекта (ПП)              ";
 MenuFind (3) = "   Сисание объекта (СП)               ";
 MenuFind (4) = "   Амортизация объекта (РА)           ";
 MenuFind (5) = "   Модернизация (МД)                  ";
 MenuFind (6) = "   Передача объекта в МБП (МВ)        ";
 MenuFind (7) = "   Частичная ликвидация (ЧЛ)          ";
 MenuFind (8) = "   Расчета амортизации для НО (АН)    ";
 MenuFind (9) = "   Включение стоимости ОФ в МР (МР)   ";

Macro Печать_актов;
 ПОИСК_ОПЕРАЦИИ (mvm.DirectOper, mvm.CodeOper, NameOper);
 Message ("~Найден ", NameOper, " инвентарной карты №~ ", mvm.InvNumb);
 If  (Найдено == 0)
[┌───────────────────┬───────────────────────────────────────────────┬──────┐
 │Инвентарная карта №│Описание                                       │№ акта│];
 Else
[├───────────────────┼───────────────────────────────────────────────┼──────┤
 │###################│###############################################│######│]
(mvm.InvNumb, NameOper, mvm.Nstmt);
 End;
 Найдено = Найдено + 1;
End;

Macro Найти_выбранные_акты;
 MenuFindUse  = Menu (MenuFind, "~Задайте критерий поиска актов инвентарных карт БУ~ ", " Поиск актов инвентарных карт БУ ", Null, Null, 0);
 If (MenuFindUse < 0)
    Exit (1);
 End;

 ReWind (mvm);
 InitProgress (NRecords (mvm), null, "Поиск актов:" + MenuFind (MenuFindUse));
  While (Next (mvm)) // Ищем акты
        Message ("~Найдено актов:~ ", Найдено);
        If   (MenuFindUse == 0)
             If ((mvm.DirectOper ==  3) And (mvm.TypeGroup == 2)) // Переоценка (РП)
                Печать_актов;
             End
        Elif (MenuFindUse == 1)
             If ((mvm.DirectOper ==  0) And (mvm.TypeGroup == 1)) // Приемка-передача объекта (ПР)
                Печать_актов;
             End
        Elif (MenuFindUse == 2)
             If ((mvm.DirectOper ==  2) And (mvm.TypeGroup == 1)) // Передачи объекта (ПП)
                Печать_актов;
             End
        Elif (MenuFindUse == 3)
             If ((mvm.DirectOper ==  1) And (mvm.TypeGroup == 1)) // Сисание объекта (СП)
                Печать_актов;
             End
        Elif (MenuFindUse == 4)
             If ((mvm.DirectOper ==  4) And (mvm.TypeGroup == 2)) // Амортизация объекта (РА)
                Печать_актов;
             End
        Elif (MenuFindUse == 5)
             If ((mvm.DirectOper ==  5) And (mvm.TypeGroup == 1)) // Модернизация (МД)
                Печать_актов;
             End
        Elif (MenuFindUse == 6)
             If ((mvm.DirectOper ==  6) And (mvm.TypeGroup == 1)) // Передача объекта в МБП (МВ)
                Печать_актов;
             End
        Elif (MenuFindUse == 7)
             If ((mvm.DirectOper ==  7) And (mvm.TypeGroup == 1)) // Частичная ликвидация (ЧЛ)
                Печать_актов;
             End
        Elif (MenuFindUse == 8)
             If ((mvm.DirectOper == 13) And (mvm.TypeGroup == 6)) // Расчета амортизации для НО (АН)
                Печать_актов;
             End
        Elif (MenuFindUse == 9)
             If ((mvm.DirectOper == 12) And (mvm.TypeGroup == 5)) // Включение стоимости ОФ в МР (МР)
                Печать_актов;
             End
        End;
        UseProgress (idoc);
        idoc = idoc + 1;
  End;
 If (Найдено != 0)
[└───────────────────┴───────────────────────────────────────────────┴──────┘];
 End;
[

  Критерий поиска актов: #

  Найдено актов: #.
](MenuFind (MenuFindUse):l, Найдено:l);
 RemProgress ();
End;
Найти_выбранные_акты;