24 ноября, пятница 14:12
Bankir.Ru

Объявление

Свернуть
1 из 2 < >

Выбираем Золотого пользователя - 2017

2 из 2 < >

Выбираем Золотого модератора - 2017

Показать больше
Показать меньше

Ф-ия WriteOrc2Form. Расскажите что за зверь ! (-)

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

  • Ф-ия WriteOrc2Form. Расскажите что за зверь ! (-)

    Очень хочется сформировать отчет целиком из Pl/sql!

  • #2
    RedPank Кворум нарисовал пакет EVENTMAN, в котором прописал необходимые функции для текстового файла непосредственно из серверной процедуры. Поскольку 232-П на текущий момент актуально, то первое, что приходит в голову в качестве примеров, так это реализация в ACCLFUNC.RepResRpt (RepRes.Rpt в ACCL), ACCLFUNC.CalcResRpt_1 (CalcRes.rpt в ACCL)...

    Комментарий


    • #3
      Спасибо, разобрался

      Комментарий


      • #4
        А для чего событие 'fedoloop' ???

        Комментарий


        • #5

          Цикл служит для повторения содержащегося в нем фрагмента формы любое заданное число раз. Начало и конец цикла помечаются точкой, за которой сразу же следует открывающая или закрывающая фигурная скобка (“.{“ - начало цикла, “.}” - конец цикла). Фрагмент формы между началом и концом цикла будет повторен несколько раз, сколько именно - определяется в теле формулы. Чаще всего цикл представляет из себя одну строку таблицы и повторяется столько раз, сколько найдено записей, по которым нужно выдать отчет. Цикл может быть “горизонтальным”, например:
          .{ля-.}ля

          В результате выполнения этого цикла в файл отчета будет помещена строка “ля-ля” или, скажем “ля-ля-ля-ля-ля”, в зависимости от того, сколько раз feDoLoop выполнить.
          Старая кворумовская дока по репортеру, короче... Может быть, еще работает!

          Комментарий


          • #6
            2 Battledwarf Не понял. Про feBreak - ясно: Цикл .{ЛЯ.} Выполняется пока нет PutEvent(feBreak);

            Код:
            FORM
            .{
            @@@@@@@@@@@@@@@@@@@@
            .} 
            
            ...
            ...
            
            DO { Write(Accounts.NewAccNum);
               } While (Accounts.GetNext = tsOk) ;
            PutEvent(frBrerak);
            получили список счетов.

            А feDoLoop ???

            Комментарий


            • #7
              ... в котором нет полей, заполняемых оператором write(), вообще!

              Комментарий


              • #8
                При выполнениие кода
                Код:
                Form ('OUT\xxx.txt')
                
                .{=.}
                
                EndForm
                
                formula
                {
                
                PutEvent(feDoLoop);
                PutEvent(feDoLoop);
                PutEvent(feDoLoop);
                PutEvent(feDoLoop);
                
                Flush;
                EditFile(fileName, vfRunModal+vfMacroSIze, '');
                
                }
                получаем:

                Код:
                =
                =
                =
                =

                Только почему по вертикали а не по горизонтали ?

                Комментарий


                • #9
                  Догадаллся! Нужно писать

                  .{=.}=

                  тогда получиться

                  =====

                  Комментарий


                  • #10
                    А вообще формирование отчетов из ORACLE-а напрямую мне понравилось! Просто и со вкусом!

                    Комментарий

                    Пользователи, просматривающие эту тему

                    Свернуть

                    Присутствует 1. Участников: 0, гостей: 1.

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