22 октября, понедельник 10:17
Bankir.Ru

Объявление

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

Можно - ли в "Кворуме" создать диалог динамически ?

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

  • Можно - ли в "Кворуме" создать диалог динамически ?

    Думаю, что нельзя.

    Но может, все-же можно ? Особенно если очень хочется!

  • #2
    Ага, хочется...
    А еще очень хочется научиться в динамически созданном диалоге создать интерфейс для просмотра/редактирования произвольной таблицы БД. Типа grid. С определенными столбцами, с выбранным индексом сортировки, с интерфейсными переменными... ну и т.д.
    Но тоже не знаю как. Абыдно ?

    Комментарий


    • #3
      В самом "Кворуме" нельзя, а вот написать динамическую библиотеку с соответствующими функциями и использовать их из репортера - пожалуйста.

      Комментарий


      • #4
        Chikov А как ???

        Да, в диллинге это можно сделать.

        А в "обычном" кворуме ???
        Поделись высшим знанием, пожалуйсто !

        Комментарий


        • #5
          Пусть у нас есть динамическая библиотека mylib32.dll (32 в конце обязательно!)
          с экспортируемыми в приложение "Кворум" функциями:
          procedure GiveSession(ALDA: pointer); pascal;
          {передача параметров только в формате pascal}

          procedure Идентификатор1>(Параметры1>); pascal;
          procedure Идентификатор2>(Параметры2>); pascal;
          ...
          procedure ИдентификаторN>(ПараметрыN>); pascal;


          Создаем файл типа mylib.prj

          /U+/N+/A-
          /L+
          /M+/B-
          /c
          /project:zmylib
          /R:zmylib

          //z впереди имени проекта и ресурса должно стоять обязательно

          mylib.def


          Затем создаем файл типа mylib.def

          // ALDA - указатель на структуру PLDA
          // в репортере нужно использовать OracleSessionLDA
          // Пример: GiveSession(OracleSessionLDA) передает параметры основной сессии
          public procedure GiveSession(ALDA: pointer); import MYLIB; default;

          public procedure Идентификатор1>(Параметры1>); import MYLIB; default;
          public procedure Идентификатор2>(Параметры2>); import MYLIB; default;
          ...
          public procedure ИдентификаторN>(ПараметрыN>); import MYLIB; default;


          Затем в командной строке пишем
          asc.exe /c:mylib.prj

          Компилятор asc.exe можно взять в поставляемом с базовой версией дистрибутиве

          Получаем на выходе файл zmylib.res


          Чтобы подключить ресурс добавьте эти строки в CFG приложения "Кворум"
          /lib:zmylib.res
          /mod:mylib

          Размещаете в директории запуска файлы mylib32.dll и zmylib.res и можете использовать функции библиотеки в репортере!

          Комментарий


          • #6
            Ух ты!

            С помощью чего лучше библиотеки создавать (версия паскаля)?

            Комментарий


            • #7
              А что это она за паскалевские файлы генерит (UserExt.id UserExt.inc UserExt.pas )?

              Комментарий


              • #8
                Все равно. Берем дельфак любой и ваяем. Хоть 3-ий, хоть 7-ой.
                Если очень нужно, то можно и на си писать и т.д., просто обертку паскалевскую делаем. Хотя за деньги можно сделать абсолютно все.
                Те файлы, что генерит asc можно удалять, они в этом случае не нужны.

                Комментарий


                • #9
                  RedPank
                  Что, получается ?
                  Если да, то это еще один гигантский аргумент в пользу перехода на оракловую версию !

                  Комментарий


                  • #10
                    heg
                    Вот именно! ) Хотя бтривные банки и сейчас могут использовать данную возможность, преобретя лицензию на консольную версию (недорого).

                    Комментарий


                    • #11
                      heg Есче не пробовал ...

                      Комментарий


                      • #12
                        Что-то не получается ...

                        1. Создал и откомпелировал файл
                        library test32;
                        uses
                        SysUtils,
                        Classes;
                        function getintvalue : Integer; pascal;
                        begin
                        Result := 101;
                        end;
                        exports
                        getintvalue;
                        begin
                        end.

                        2. tesr.prg
                        /U+/N+/A-
                        /L+
                        /M+/B-
                        /c
                        /project:ztest
                        /R:ztest

                        3. test.def
                        public function getintvalue; import TEST; default;

                        4. Выполняем ASC32.EXE /c:tesr.prg
                        Собрано с дефайном "OC"...
                        Лицензионность не проверяется...
                        ASC Atlantis Version 2.12.32 (special) Copyright (c) 1992-99 xGroup
                        Build 12.09.2001
                        Проинициализирован ресурс ztest.res
                        Поджимаю ресурс ztest.res
                        Информация: Ресурсный файл X:\PROJECTS\QUORUM\ztest.res
                        Информация: Сегмент данных "ZTEST" 0 байт(а)
                        Информация: Сегмент кода "ZTEST" 0 байт(а)

                        5. в credit.cfg
                        /#LIB:"Q:\ORACLE\EXE\print15.res;zTest.res"
                        /mod:"zTest"

                        6. Модуль запускается. DLL и RES файлы кладем в каталог запуска

                        7. Создаем процедуру

                        Formula
                        {
                        PutMessage(String(GetIntValue));
                        }

                        8. Компилируем ...
                        Формула(4,32) Ошибка: Неизвестный идентификатор


                        Чего не доделали ???

                        Комментарий


                        • #13
                          RedPank
                          В tesr.prg необходимо добавить строку:
                          test.def

                          Получим
                          2. tesr.prg
                          /U+/N+/A-
                          /L+
                          /M+/B-
                          /c
                          /project:ztest
                          /R:ztest
                          test.def

                          Комментарий


                          • #14
                            :-((

                            Ошибка инициализации функции "GETINTVALUE " в Dll "TEST32.DLL "
                            Ошибка: Ошибка инициализации модуля "ZTEST"
                            Exception EAccessViolation in module CREDIT.EXE at 0004A7CE.
                            Access violation at address 0044A7CE in module 'CREDIT.EXE'. Read of address 000
                            00000.


                            Может надо ф-ию как-то по другому описать или в саму библиотеку чего добавить ?
                            Или параметры Дельфи настроить ?

                            Комментарий


                            • #15
                              RedPank

                              1. Компилить нужно ASC.EXE, а не ASC32.EXE
                              2. Вместо public function getintvalue; import TEST; default;
                              нужно public function getintvalue: integer; import TEST; default;
                              3. Вместо
                              exports
                              getintvalue;
                              нужно
                              exports
                              getintvalue name 'getintvalue';


                              И все дела!

                              Комментарий


                              • #16
                                RedPank
                                И еще моя ошибка

                                5. в credit.cfg
                                /#LIB:"Q:\ORACLE\EXE\print15.res;zTest.res"
                                /mod:"zTest"

                                Нужно

                                5. в credit.cfg
                                /#LIB:"Q:\ORACLE\EXE\print15.res;zTest.res"
                                /mod:"Test"

                                Комментарий


                                • #17
                                  Ура! Заработало!

                                  Комментарий


                                  • #18
                                    Сообщение от RedPank
                                    Ура! Заработало!
                                    И что-же теперь со всем этим делать?
                                    Для начала нужно иметь описание внутренних структур данных ...
                                    А есть ли такое описание ?

                                    Комментарий


                                    • #19
                                      RedPank
                                      Исходники словаря: *.dii
                                      А лучше сформулировать требования и заказать доработку Кворуму. Я думаю, выйдет и быстрее и дешевле, плюс сопровождение всего этого.

                                      Комментарий


                                      • #20
                                        Я имел ввиду не то ...
                                        Словарем мы пользуемся - без этого никуда.

                                        Поразумевалось структуры вроде той, которую вы описываете в своем примере: "// ALDA - указатель на структуру PLDA"

                                        Допустим я хочу написать свой диалог. сразу встает вопрос: "Как нарисовать 'окошко' ?" Писать свою библиотеку - западло ...

                                        А лучше сформулировать требования и заказать доработку Кворуму Всего неназакажешся! Да и времени много уходит.

                                        Комментарий


                                        • #21
                                          RedPank
                                          )) Очень интересно... А кто же будет писать эту библиотеку?!
                                          Кворум предоставляет механизм работы с внешними библиотеками, а уж с какими... это дело конечного пользователя. Можете рисовать свое окошко как хотите и в какой угодно среде.
                                          По поводу
                                          // ALDA - указатель на структуру PLDA
                                          // в репортере нужно использовать OracleSessionLDA
                                          Это пример функции импорта указателя на ораклиную сессию во внешнее приложение. Зачем это нужно, думаю объяснять не стоит.

                                          Комментарий


                                          • #22
                                            А зачем кто-то должен "писать библиотеку".
                                            Будет просто в кайф, если есть возможность использовать Кворумовскую библиотеку для рисования окошек (доступ к БД тоже нужен)!
                                            Вот только можно-ли из DLL достучаться к функциям этой библиотеки ? Насколько я понимаю она (библиотека) "зашита" в exe-шнике.

                                            Комментарий


                                            • #23
                                              RedPank
                                              А зачем кто-то должен "писать библиотеку".
                                              Будет просто в кайф, если есть возможность использовать Кворумовскую библиотеку для рисования окошек (доступ к БД тоже нужен)!

                                              Что такое "Кворумовская библиотека для рисования окошек"? Я 8 лет работаю в Кворуме и об этом первый раз слышу. По поводу доступа к БД, я писал про механизм передачи сессии во внешнюю библиотеку, а там, используя любые компоненты доступа к Ораклу (BDE, ODAC, DOA и т.д.), можно с этой самой БД делать все что угодно.

                                              Вот только можно-ли из DLL достучаться к функциям этой библиотеки ? Насколько я понимаю она (библиотека) "зашита" в exe-шнике.

                                              Вы, наверное, имеете ввиду функции доступные в репортере... Доступа к ним без соответствующей модификации кода Вы не получите - это точно. Хотя можете использовать дилинговую библиотеку quorum32.dll с соответствующим набором функций.
                                              Я не совсем понимаю, зачем Вам нужна внешняя библиотека, если сами Вы писать ничего не планируете. Пишите на репортере.

                                              Комментарий


                                              • #24
                                                Что такое "Кворумовская библиотека для рисования окошек"? Я 8 лет работаю в Кворуме и об этом первый раз слышу А что программисты каждое окно заново кодят через вывод данных прямиком на экран (как в старые добрые времена! Кхе-кхе-...где моя кислородная подушка) Когда про TurboVision от Borland никто в России не слыхал ?

                                                любые компоненты доступа к Ораклу (BDE, ODAC, DOA и т.д.), можно с этой самой БД делать все что угодно.
                                                Не слишком ли жирно для одной программы ?


                                                Я не совсем понимаю, зачем Вам нужна внешняя библиотека
                                                Те средства для создания пользовательского интерфейса, которые есть в репортере, устарели уже давно и бесповоротно (вместе с атлантисом). Конечно с их помощью можно написать многое! Но не хочется лишний раз подтверждать аксиому: "На любом языке программирования можно написать любую программу ... при наличае неограниченных ресурсов времени и памяти"

                                                Например на репортере нельзя написать интерфейс для редактирования таблицы-справочника. (Вернее можно! Я и сам писал такое ... просто плакать хочется (:-(( )
                                                Нельзя написать диалог с возможностью выбора значений поля из справочника "по F3". Приходиться "приляпывать" рядом с полем кнопочку
                                                Нельзя написать интерфейс со скролингом.
                                                И.т.д.


                                                P.S.
                                                В Диасофте 5NT, вообще, нет средств для создания интерфейсов.

                                                Комментарий


                                                • #25
                                                  RedPank
                                                  ..............Будет просто в кайф, если есть возможность использовать Кворумовскую библиотеку для рисования окошек.............

                                                  ...............Те средства для создания пользовательского интерфейса, которые есть в репортере, устарели уже давно и бесповоротно (вместе с атлантисом). Конечно с их помощью можно написать многое! Но не хочется лишний раз подтверждать аксиому: "На любом языке программирования можно написать любую программу ... при наличае неограниченных ресурсов времени и памяти"

                                                  Например на репортере нельзя написать интерфейс для редактирования таблицы-справочника. (Вернее можно! Я и сам писал такое ... просто плакать хочется (:-(( )
                                                  Нельзя написать диалог с возможностью выбора значений поля из справочника "по F3". Приходиться "приляпывать" рядом с полем кнопочку
                                                  Нельзя написать интерфейс со скролингом.
                                                  И.т.д.............................


                                                  Я немного не понял, что же Вы все-таки хотите? Под "Кворумовской библиотекой" Вы имеете ввиду Turbo Vision? Если да, то во-первых эту библиотеку можно надыбать где-угодно, а во-вторых она тоже безнадежно устарела.

                                                  Садитесь за комп и в среде Delphi (или другой) ваяйте GUI, а затем используйте эти видимые элементы в "Кворуме"

                                                  Комментарий


                                                  • #26
                                                    Садитесь за комп и в среде Delphi (или другой) ваяйте GUI, а затем используйте эти видимые элементы в "Кворуме"
                                                    А Вы пробовали ? Я первым делом это попробовал.
                                                    С наскоку не получилось. Наверное нужен код инициализации этого самого GUI. Или что-то есче.
                                                    Я не большой знаток Дельфей (вернее сказать почти никакой) и в идеале хотелось - бы иметь "заготовку" для написания подобного рода интерфейсов от программистов Кворума.


                                                    Вы имеете ввиду Turbo Vision? Если да, то во-первых эту библиотеку можно надыбать где-угодно, а во-вторых она тоже безнадежно устарела
                                                    А я ее скачал первым делом. (в сети валяется большое количество ее версий. нужно есче разобраться какой пользоваться. Наверняка "Кворум" тоже ее правил.)
                                                    Только опять не все просто: нужно как-то весь ее код в DLL запихнуть. Вот и возвращаемся к сути вопроса: А можно не "запихивать" ? Она ведь уже есть в модуле! Что касается ее древности, то ведь и Кворум древен! А ничего, работает. И до светлого будующего NEXT есче года 3-4 (а то и более) работать будет.

                                                    Комментарий


                                                    • #27
                                                      RedPank
                                                      Могу посоветовать лишь одно: приходите к нам работать, заодно и подучитесь.
                                                      Хотя, если есть желание, можете заказать обучение у нас. Я специально программу составлю. После этого сможете переделать всю систему под свой лад, включая exe и res. Исходники мы все равно по договору предоставляем, а править и собирать научим.
                                                      З.Ы.
                                                      Мне кажется, что Вам лучше было бы походить на какие-нить курсы по программированию, думаю после этого таких бы вопросов не возникало. Вернее они бы закончились фразой

                                                      Ура! Заработало!

                                                      Комментарий


                                                      • #28
                                                        Мне кажется, что Вам лучше было бы походить на какие-нить курсы по программированию

                                                        Я так и думал что закончиться чем-то подобным.
                                                        Ну что на это ответить?
                                                        Ну давайте вспомним, что сейчас конец квартала. А для "банковского" программиста это что-то да значит. Так что обучение откладывается ...
                                                        Или процетируем К.Пруткова: "Нельзя объять необъятное".
                                                        Или вспомним, что всегда лучше пользоваться тем, что уже кто-то написал (для этого и нужны стандартные библиотеки !), а не "изобретать велосипед".

                                                        Тут из "К" пришло письмо с фразой: Реализуется механизм обработки нового макета, в качестве языка разметки текста в котором используется язык XML. При обработке макетов будет использован программный продукт Microsoft XML Parser 4.0, связь с которым модуля "Платежный
                                                        документооборот" обеспечит язык Jscript. На рабочей станции обязательно должна стоять 32-х разрядная операционная систеиа
                                                        .

                                                        может и доступ к GUI окошкам появиться?
                                                        Неплохо было-бы об этом задуматься.

                                                        Комментарий


                                                        • #29
                                                          RedPank
                                                          может и доступ к GUI окошкам появиться?
                                                          Неплохо было-бы об этом задуматься.


                                                          Он есть! Я описывал механизм подключения внешних библиотек.

                                                          Комментарий


                                                          • #30
                                                            Опять 25!
                                                            Если ОН ЕСТЬ, то где описание как это сделать? Где примеры? Меня интересует не чисто теоретическая возможность. Меня интересует практическая реализация.
                                                            Представте, что MS выпустил-бы свой NET без описаний, документации, примеров программирования, встоенной помощи. Много-бы нашлось желающих с ним работать? Не думаю.

                                                            Я описывал механизм подключения внешних библиотек. Спасибо. Это действительно ценное свойство.


                                                            P.S. Тема переросла во флуд ...

                                                            Комментарий

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

                                                            Свернуть

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

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