8 апреля, среда 08:57
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Универсальные транзакции

Свернуть
Это важная тема.
X
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Подскажите, почему не работает процедура обработчик в даднной конструкции
    PROMPT('date','Введите дату', '99/99/99','',''‚50,'','F1=calend')

    Комментарий


    • PROMPT('date','Введите дату', '99/99/99','',''‚50,'','F1=calend')
      Если речь идет об обработчике calend, то обработчик должен отвечать определенным соглашениям по параметрам. Я согласен, что это неудобно, но это пока так. Т.е. если нужно вызывать календарик, то надо написать свою процедуру-обертку, например, назвать ее mycalend.p

      Код:
      DEFINE INPUT  PARAMETER idate AS CHARACTER  NO-UNDO.
      RUN calend.p.
      и изменить вызов:

      PROMPT('date','Введите дату', '99/99/99','',''‚50,'','F1=mycalend.p')

      Комментарий


      • Более красивый пример:

        Код:
        {globals.i}
        DEFINE INPUT  PARAMETER idate AS DATE  NO-UNDO.
        pick-value = STRING(idate).
        RUN calend.p.

        Комментарий


        • Сообщение от Andry
          beloll см. функцию Классиф()
          Функция классиф позволяет только выбирать значение из клаччификатора, а если необходимо при вводе иметь возможность
          сразу добавить в классификатор значение и выбрать его, т.е. полноценный браузер.
          Например, в случае когда заполняются паспортные данные по каким-либо валютным документам и заполняется допреквизит с кодом в классификаторе с этими данными. В таком случае можно будет и выбрать существующий пасп. данные и добавить новые если таких еще нет. Очень удобно при валютных переводах.
          Попробовал ф. ОБЪЕКТ - не получилось.
          Помогите какое то решение
          С уважением, Дмитрий.

          Комментарий


          • А можно из НТ вызвать пересчет кредитного договора?
            Чем больше связей, тем меньше степеней свободы.

            Комментарий


            • Сообщение от Чернушка
              А можно из НТ вызвать пересчет кредитного договора?
              Функция ПЕРЕСЧИТАТЬ_СОСТОЯНИЕ из библиотеки ploan

              Комментарий


              • Ага, спасибо. Тогда, может быть, еще подскажете, как элегантнее задать пересчет на конец месяца. Спец.функции в pdate я не нашла. Сижу, извращаюсь с массивами и строками.
                Чем больше связей, тем меньше степеней свободы.

                Комментарий


                • Чернушка

                  ИНТЕРВАЛ_ОКОНЧ(iDate>,iPeriod>) , где iPeriod> = 'М'

                  Комментарий


                  • Эээ, а в какой библиотеке? Что-то не найду.
                    Чем больше связей, тем меньше степеней свободы.

                    Комментарий


                    • Эээ, а в какой библиотеке? Что-то не найду.
                      pbudg. Для просмотра всех функций системы нажмите F2 в функциях любой библиотеки.

                      Комментарий


                      • А, может быть, теперь вы мне еще скажете, как подвязать сформированную проводку к договору, чтобы поменьше вопросов/ответов было у операциониста?
                        Чем больше связей, тем меньше степеней свободы.

                        Комментарий


                        • Чернушка ПРИВЯЗАТЬ_ПРОВОДКУ(@Contract(10),@Cont-Code(10),'Кр_10')
                          в "выполнить после" шаблона создания проводки.

                          Комментарий


                          • Не вижу здесь плановой даты...
                            Чем больше связей, тем меньше степеней свободы.

                            Комментарий


                            • Чернушка плановая дата берется из реквизита contract-date документа.

                              Комментарий


                              • Сообщение от Чернушка
                                Не вижу здесь плановой даты...
                                Берется из op.contract-date

                                Комментарий


                                • Спасибо Кстати (офф), только что обнаружила пункт - Оценить сообщение И сразу же заценила вашу помощь, господа
                                  Чем больше связей, тем меньше степеней свободы.

                                  Комментарий


                                  • Кстати, функция ПЕРЕСЧИТАТЬ_СОСТОЯНИЕ проверяет соответствие loan.since дате пересчета или проверяем сами, чтобы лишний раз не гонять?

                                    Комментарий


                                    • Ну, она сообщает, что договор пересчитан на такую-то дату. И, кажется, все-равно, делает попытку пересчета.
                                      И эти пересчеты просто как бич. Мне сначала надо пересчитать на плановую дату, получить сумму процентов, потом пересчитать обратно, чтобы проводку провести. Может и здесь туплю?
                                      Чем больше связей, тем меньше степеней свободы.

                                      Комментарий


                                      • Чернушка
                                        А зачем обратно? При вводе запрос на плановую дату. Пересчет договора на нее, а проводки - в текущий день с помощью ДАТА(). Правда осторожнее с contract-date. Скорее всего, она должна быть плановой (хотя может и на любителя).

                                        Комментарий


                                        • beloll Я проверяю сам перед вызовом ПЕРЕСЧИТАТЬ_СОСТОЯНИЕ.

                                          Комментарий


                                          • Andry
                                            Да я тоже, только задумался - а не лишний это оператор.

                                            Комментарий


                                            • Это только у меня или всеобщая тенденция - при вводе недопустимого символа в назначении платежа в документах созданных универсальными транзакциями никакого сообщения не выводится, документ просто не вводится? И пользователь с упорством, достойным лучшего применения, давит CTRL+Enter, пока не обратится к специалисту.

                                              Комментарий


                                              • Всеобщая.
                                                Чем больше связей, тем меньше степеней свободы.

                                                Комментарий


                                                • При запуске УТ с процедурой SEHLL запускающей perl-кий файл гасится экран "черный фон с просьбой нажмите пробел". После выполнения предложеного все становится в норму, транзакция отрабатывается правельно. Вопрос, можно ли избежать данного спецэфекта?

                                                  Комментарий


                                                  • Не подскажете ALL , можно ли из процедуры 4gl запустить новую транзакцию?

                                                    Комментарий


                                                    • Сообщение от Dima_M
                                                      При запуске УТ с процедурой SEHLL запускающей perl-кий файл гасится экран "черный фон с просьбой нажмите пробел". После выполнения предложеного все становится в норму, транзакция отрабатывается правельно. Вопрос, можно ли избежать данного спецэфекта?
                                                      Я проверил, подобного эффекта не обнаружил. Может быть опубликуете свой вызов функции SHELL и фрагмент перлового скрипта? Попутно вопрос об ОС, на которой крутится Бисквит?

                                                      Комментарий


                                                      • Сообщение от simsimd
                                                        Не подскажете ALL , можно ли из процедуры 4gl запустить новую транзакцию?
                                                        Можно, достаточно вызвать процедуру g-trans.p, передав ей дату опердня и RECID op-kind. В принципе так можно вызвать любую ст. транзакцию не обязательно универсальную, правда вызывать надо процедуру указанную в поле ПРОЦЕДУРА.

                                                        Комментарий


                                                        • bulklodd
                                                          ОС SunOS 5.9
                                                          SHELL('perl ./cpas/convert.pl')
                                                          в convert.pl
                                                          @files = ./cpas/*.dsl>; foreach (@files) { $f = $_; }

                                                          open(inp ,$f);

                                                          open(OUT ," > ./cpas/pdbase.txt");
                                                          $rez = "";



                                                          while (inp>) {

                                                          $str = $_;

                                                          $str =~s/\r//g;

                                                          @fild = split(/ /,$str);

                                                          $_ = "\n";

                                                          if ($fild[0] =~ /#PP_Kem/) {
                                                          chomp($fild[1]);
                                                          $rez =$rez.$fild[1]." | ";
                                                          }

                                                          if ($fild[0] =~ /#PP_Date/) {
                                                          chomp($fild[1]);
                                                          $rez =$rez.$fild[1]." | ";
                                                          }

                                                          if ($fild[0] =~ /#PP_Podr/) {
                                                          chomp($fild[1]);
                                                          $rez =$rez.$fild[1]." | ";
                                                          }

                                                          if ($fild[0] =~ /#PP_SurName/) {
                                                          chomp($fild[1]);
                                                          $rez =$rez.$fild[1]." ";
                                                          }

                                                          if ($fild[0] =~ /#PP_Name/) {
                                                          chomp($fild[1]);
                                                          $rez =$rez.$fild[1]." ";
                                                          }

                                                          if ($fild[0] =~ /#PP_SecName/) {
                                                          chomp($fild[1]);
                                                          $rez =$rez.$fild[1]." | ";
                                                          }

                                                          if ($fild[0] =~ /#PP_BirthDate/) {
                                                          chomp($fild[1]);
                                                          $rez =$rez.$fild[1]." | ";
                                                          }

                                                          if ($fild[0] =~ /#PP_BirthPlace/) {
                                                          chomp($fild[1]);
                                                          $rez =$rez.$fild[1]." | ";
                                                          }
                                                          if ($fild[0] =~ /#PP_Ser$/) {
                                                          chomp($fild[1]);
                                                          $rez =$rez.$fild[1]." | ";
                                                          }

                                                          if ($fild[0] =~ /#PP_Num$/) {

                                                          $rez =$rez.$fild[1];
                                                          }


                                                          }


                                                          print OUT $rez;



                                                          close(OUT);
                                                          close(inp);

                                                          unlink ./cpas/*.dsl>;

                                                          Комментарий


                                                          • Сообщение от Dima_M
                                                            @files = ./cpas/*.dsl>;
                                                            foreach (@files) {
                                                            $f = $_;
                                                            }

                                                            # тут, очевидно, в $f оказалось последнее имя файла

                                                            # тут была всякая обработка

                                                            unlink ./cpas/*.dsl>;
                                                            # тут Вы стёрли _все_ файлы
                                                            Вопрос не по теме о НТ, но мне он кажется важным. Это ТОЧНО та самая функциональность, которую Вы хотели?

                                                            Я бы, кстати, входные файлы не стирал, а перемещал в архив. А архив можно чистить и по крону, через find -type=f -mtime +10. Например.
                                                            /kiv

                                                            Комментарий


                                                            • Кто-нибудь в НТ счета открывает/закрывает?
                                                              Чем больше связей, тем меньше степеней свободы.

                                                              Комментарий

                                                              Обработка...
                                                              X