На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
Страницы: (6) [1] 2 3 ...  5 6 все  ( Перейти к последнему сообщению )  
> установить easyGrid, OpenGrid , помогите правильно установить
    скачал Easygrid
    http://405hp.net/d4php/easygrid.php (спасибо)

    сделал
    Make a copy of your dbgrids.inc.php file which is located in: C:\Program Files\CodeGear\Delphi for PHP\2.0\vcl\dbgrids.inc.php
    Better safe than sorry!
    Then replace it with dbgrids.inc.php included in this zip.
    Move the jsmin-1.1.1.php into the vcl folder also.

    это не понятно:
    easygrid.layout.php

    This is a control file, you clone (create a copy) one of these for each grid you want modified. *Replace easygrid with the name of your dbgrid.* and then make your changes to it.

    List of colors available:

    color.layout.php
    run it and it will display the colors.


    короче где этот easyGrid и как его выставить на форму?
    спасибо

    попробовал OpenGrid
    установил Packages
    все пучком
    вот только не работает
    если есть свойства в инспекторе (Columns) значит не надо руками в код?
    короче база не отображается, показывает только в IDE то что забито в opengrid.inc изначально
    при запуске - ничего нет
    как завести Columns?
    может кто видел видеоурок по этому делу или пример напишите
    спасибо

    упд
    Поставил PlatinumGrid - всё меняется, ничо сложного, ток платная она.
    EasyGrid - всё сделал по инструкции, покопался в коде - там же просто одни переменные, как вставить сам ДБгрид? делаю инклуд - ессесна ничего не появляется. И пример ихний не пашет, опять же грида не видно...
    Похоже на то что просто обычный грид засунуть и както переменные из *.layout.php переписать в него...
    Сообщение отредактировано: Zajigaev -
      по всем не скажу сразу, смотреть нужно

      по OpenGrid и свойству Columns:
      зайди в папку OpenGrid там лежит папка propertyeditor
      и в ней проект для Delphi редактора свойств для Columns OpenGrid (проект для обычного Delphi :) )
      компилируеш проект в Delphi (Delphi7 у меня не работало, скомпилировалось в Delphi 2007)
      получаеш файл opengridpropertyeditor.bpl
      этот файл кидаеш сюда ...Program Files\CodeGear\Delphi for PHP\2.0\plugins
      перезапускаеш IDE и должно работать


      т.е. редакторы свойств компонент Delphi For Php можно создавать самому в обычном Delphi

      можеш попробовать ещё грид из компонент ExtJS


      а в EasyGrid вроде есть Readme
      Сделайте копией вашего dbgrids.inc.php файла, который расположен в:
      C:\Program Files\CodeGear\Delphi для Лучшего сейфа PHP\1.0\vcl\dbgrids.inc.php
      Затем замените это dbgrids.inc.php

      easygrid.layout.php
      Это - управляющий файл, Вы клонируете (создайте копию) одно из этих для каждой сетки Вы хотите модифицировать.
      и затем сделайте ваши изменениям.

      Список доступных цветов :
      color.layout.php

      как я понимаю, он просто добавил в обычный грид новые возможности
      с помощью файлов настройки грида
      Сообщение отредактировано: vicis -

      Прикреплённый файлПрикреплённый файлopengridpropertyeditor.zip (7.58 Кбайт, скачиваний: 322)
        спасибо что прикрепили скомпилированный файл opengridpropertyeditor.bpl
        у меня Delphi7 и не компилируется - не открывается и виснет

        свойство Columns теперь редактируется в Insp Ob но не работает проект (это OpenGrid)

        тут вставляются данные из opengrid.inc (те не реагирует на содержимое DataSourse)- наверное ошибка в этом
        как это убрать ? в Inspector Ob указан нужный DataSource (DBGrid из стандартной поставки работает нормально)

        var mydata = [ {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"4",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"7",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"} ];

        for(var i=0;i<=mydata.length;i++) jQuery("#OpenGrid1").addRowData(i+1,mydata[i]);
        });
        </script>
        <table id="OpenGrid1" class="scroll" cellpadding="0" cellspacing="0"></table>
        <div id="OpenGrid1_pager" class="scroll" style=" font-family: Verdana; font-size: 10px; "></div>

        спасибо
        Сообщение отредактировано: Zajigaev -
          у меня тоже не работает
          если не шаманить

          ставиш грид
          прописываеш datasource
          при выполнении пустая страница

          если просмотрть исходник полученной страницы
          то там в конце сообщение об ошибке
          ExpandedWrap disabled
                    <script type="text/javascript">
                        jQuery(document).ready(function(){
                        jQuery("#OpenGrid1").jqGrid({
                        <br />
            <b>Fatal error</b>:  Call to undefined function urlparams() in <b>D:\Program Files\CodeGear\Delphi for PHP\1.0\vcl\opengrid\opengrid.inc.php</b> on line <b>1348</b><br />


          смотрим исходник opengrid.inc.php
          там такая функция
          ExpandedWrap disabled
                function readGridURL()
                {
                    $key=$this->readGridKey();
             
                    $url = $GLOBALS[ 'PHP_SELF' ]."?gkey=$key&".urlparams();
                    return($url);
                }

          функцию urlparams() , на которую ругается, не нашёл

          тогда шаманим
          делаем так

          ExpandedWrap disabled
                function readGridURL()
                {
                    $key=$this->readGridKey();
             
                    $url = $GLOBALS[ 'PHP_SELF' ]."?gkey=$key&";//.urlparams();
                    return($url);
                }


          после этого грид заработал
          и даже показывает данные в процессе дизайна формы
          повлияет ли это изменение на что то, нужно разбираться

          кстати в исходнике написано что грид сделан на базе
          jquery plugin jqGrid
          ссылка http://www.trirand.com/blog/
          там у них есть примеры
          http://trirand.com/jqgrid/jqgrid.html

          если разберёшся откуда взялся urlparams(), то отпиши здесь

          примеры работы с OpenGrid есть здесь http://www.qadram.com/vcl4php/samples/OpenGrid/
          вот только откуда их скачать непонятно
          Сообщение отредактировано: vicis -
            обнаружил, что у OpenGrid есть дополнительные темы
            в инспекторе список не даёт выбирать, но можно ввести вручную
            свойство Theme
            названия тем:
            basic
            coffee
            green
            sand
            шаблоны лежат здесь
            opengrid\jqGrid\themes
            так что можно и свою сделать
            правда в дизайнере формы показывает только basic
            остальные отрисовываются только при выполнении
            Сообщение отредактировано: vicis -
              как у нас с Вами по разному работает OpenGrid :crazy:
              темы у меня показывает и в дизайнере формы (зеленая становиться и тд)
              а вот - и даже показывает данные в процессе дизайна формы - не показывает - пусто
              видно только после запуска
              и работает странно - редактирование прямо в строке не сохраняется и в окне редактирования по нажатию кнопки внизу грида не сохраняются результаты редактирования
              а вот по кнопке "вставить строку "- все сохраняется
              а кнопка "удалить строку " - не работает

              может это у меня так криво все ?
              если можно - проверьте это у себя
              бо если так все криво - я его брошу
              а если у Вас работает - буду ковырять у себя

              спасибо
                как будет время проверю
                а запускал в DelphiForPhp 1-й версии
                может по этому не одинаково
                на второй потом посмотрю

                во время дизайна местами тоже всё очищается
                а после запуска видно
                но иногда если какое то свойство дёрнуть то срабатывает и в дизайнере

                этот грид в работе не использовал
                хотя сейчас посмотрел
                кое что понравилось
                возможно буду использовать в каких то случаях

                мы делали свой компонент грида полегче для браузера, без javascript
                под задачу
                т.к. не нужна была особая динамика на клиенте

                основное чего во всех этих гридах мне не хватает это авторастяжку по панели на которой он находится
                а вот у грида из ExtJS она есть
                Сообщение отредактировано: vicis -
                  У меня Delphi for PHP 2/0
                  а мне - основное чего не хватает - так это знаний и времени
                  продолжу копать и буду ждать , может Вы чего подскажете
                  мне нужен грид полнофункциональный - активная работа с базой
                  в PlatinumGrid наверное все тип топ(скачал триал посмотрел ) но он платный
                  crack не нашел
                  OpenGrid все таки посмотрю - не может быть чтобы автор оставлял неработающие компоненты
                  :)
                  Сообщение отредактировано: Zajigaev -
                    Цитата Zajigaev @
                    и работает странно - редактирование прямо в строке не сохраняется и в окне редактирования по нажатию кнопки внизу грида не сохраняются результаты редактирования
                    а вот по кнопке "вставить строку "- все сохраняется
                    а кнопка "удалить строку " - не работает

                    проверил
                    всё работает
                    но есть особеноости
                    1. если использовать Table, то редактирование в строке работает,
                    а если использовать Query, то для того что бы работало редактирование в строке нужно у Query дополнительно к запросу в свойстве SQL прописать в свойство TableName имя таблицы
                    2. В обоих случаях для того что бы пользоваться кнопкой Редактировать снизу таблицы
                    нужно отключить редактирование в таблице свойствои ReadOnly = 1
                    иначе в открывающемся окне появляется тег INPUT у открытого на редактирования поля в таблице
                    и из-за этого не срабатывает
                    3. у меня удаление записи работает
                    особенностей не заметил

                    там есть хорошее свойство BlockOnAjax
                    если поставить =1, то грид блокируется на время выполнения редактирования, добавления и удаления

                    ещё есть AlternateRows=true тогда грид будет полосатым
                    Сообщение отредактировано: vicis -
                      вроде у меня тоже счас все устаканилось (хотя ничего не делал)

                      редактирование в OpenGrid
                      ReadOnly =0 - можно редактировать прямо в гриде, но в окне редактирования вместо значения выделенной ячейки - текст
                      ReadOnly = 1- нельзя редактировать прямо в гриде, а в окне редактирования все нормально
                      отредактированные значения сохраняются в базе в обоих случаях :-? странно

                      при выставлении на форму 2-го OpenGrida (даже если связаны с разными базами) во втором гриде отображаются данные только после нажатия кнопки Reload Grid
                      к тому же Theme разные тоже им не поставишь
                      во время дизайна показывает напр OpenGrid1 basic OpenGrid2 - green
                      в браузере тема у обоих одинаковая - та что у Opengrid1
                      те OpenGrid2 как-то зависит от OpenGrid1

                      и какой аналог JScript On ChangeRow?
                      не получается создать MasterDetail OpenGrid1-OpenGrid2

                      как это побороть?
                      спасибо
                      Сообщение отредактировано: Zajigaev -
                        Цитата Zajigaev @
                        ReadOnly =0 - можно редактировать прямо в гриде, но в окне редактирования вместо значения выделенной ячейки - текст
                        ReadOnly = 1- нельзя редактировать прямо в гриде, а в окне редактирования все нормально
                        отредактированные значения сохраняются в базе в обоих случаях странно

                        ну с этим всё понятно
                        компонент универсальный, а т.к. работать приходится с javascript и html
                        то нужно учитывать особенности
                        т.е. зачем сразу давать редактировать и в гриде и кнопкой
                        нужно выбирать что то одно, тогда проблем не будет
                        и компонент это даёт сделать разработчику
                        а когда хочеш и то и другое, получается, что во время редактирования в гриде в ячейке не значение а подставлен тег input
                        естественно, javascript вытащит в окно редактирования то что в ячейке, т.е. input
                          Цитата Zajigaev @
                          и какой аналог JScript On ChangeRow?

                          событий там предостаточно
                          а как работать с данными нужно читать про jQuery
                          здесь

                          например:
                          это событие выведет значение 1-й колонки в текущей строке грида OpenGrid2
                          срабатывает по выбору ячейки
                          если у гида свойство readonly=1

                          ExpandedWrap disabled
                                          function OpenGrid2JSCellSelect($sender, $params)
                                           {
                             
                                           ?>
                                           //Add your javascript code here
                                            alert(jQuery('#OpenGrid2').getGridParam('selrow'));
                             
                                           <?php
                             
                                           }

                          это событие выведет значение указанных колонок в текущей строке грида OpenGrid2
                          срабатывает по выбору ячейки
                          если у гида свойство readonly=1
                          здесь вытаскиваются колонки с названием полей PR_ID,PR_DATE

                          ExpandedWrap disabled
                                           function OpenGrid2JSCellSelect($sender, $params)
                                           {
                             
                                           ?>
                                           //Add your javascript code here
                             
                                           var id = jQuery("#OpenGrid2").getGridParam('selrow');
                                           if (id)
                                             {
                                             var ret = jQuery("#OpenGrid2").getRowData(id);
                                             alert("column pr_id="+ret.PR_ID+" column pr_date="+ret.PR_DATE+"...");
                                             }
                                             else { alert("Please select row");}
                             
                                           <?php
                             
                                           }


                          вот ещё несколько функций для доступу к параметрам грида

                          ExpandedWrap disabled
                                          
                            function Button2JSClick($sender, $params)
                                           {
                             
                                           ?>
                                           //Add your javascript code here
                                           alert(jQuery('#OpenGrid2').getGridParam('url'));  // зачем это не понял пока
                                           alert(jQuery('#OpenGrid2').getGridParam('sortname')); // имя колонки в гриде по которой сейчас отсортированы данные
                                           alert(jQuery('#OpenGrid2').getGridParam('sortorder')); // порядок сортировки
                                           alert(jQuery('#OpenGrid2').getGridParam('selrow'));  // значение первой колонки в строке
                                           alert(jQuery('#OpenGrid2').getGridParam('page'));  // номер отображаемой страницы
                                           alert(jQuery('#OpenGrid2').getGridParam('rowNum')); // по сколько записей выводится на странице
                                           alert(jQuery('#OpenGrid2').getGridParam('datatype'));  // тип данных
                                           alert(jQuery('#OpenGrid2').getGridParam('records'));   // количесто записей в таблице базы данных
                             
                                           <?php
                             
                                           }
                            Цитата Zajigaev @
                            к тому же Theme разные тоже им не поставишь
                            во время дизайна показывает напр OpenGrid1 basic OpenGrid2 - green
                            в браузере тема у обоих одинаковая - та что у Opengrid1

                            здесь тоже всё понятно
                            стили у гридов в тегов прописаны с определёнными названиями
                            но грузятся из разных css файлов
                            т.е. первый грид делает ссылку на css одной темы откуда загружаются стили
                            но второй грид подтягивает после этого файлы другой темы
                            у которой названия стилей такие же
                            следовательно они переопределяют предыдущие
                            и получаем у всех гридов один стиль, который загружается последним

                            исходя из этого можно или переделать компонент
                            или на одной странице всегда отображать таблицы в одном стиле
                            скорее всего что последнее подойдёт для большинства случаев
                            кроме программистов любящих попугаев ;)
                              вот такая конструкция работает с встроенным Grid (связка master - detail)Delphi php безупречно


                              ExpandedWrap disabled
                                function DBGrid1JSRowChanged($sender, $params)
                                       {
                                       ?>
                                      //Add your javascript code here
                                      id=DBGrid1.getTableModel().getValue(0, DBGrid1.getFocusedRow());
                                      params=id;
                                       <?php
                                 echo $this->OpenGrid1->ajaxCall("updateDetail");
                                       }
                                         function updateDetail($sender, $params)
                                   {
                                      $this->tbsef->id = $params; // мастер таблица
                                      $this->tbequipment->Refresh();// detail table
                                      $this->tbsef->Cancel();
                                   }
                                 
                                 
                                }

                              почему не работает с OpenGrid? (должно работать?)
                              спасибо

                              M
                              не забываем про теги [сode=php] ... [/сode]
                              Сообщение отредактировано: ViktorXP -
                                посмотрел MasterDetail у OpenGrid
                                сразу не въехал
                                стандартный код предыдущего поста действительно не работает

                                при этом у Opengrid есть своё свойство MasterGrid
                                если второму гриду указать мастером первый
                                то при переходе между строками первого второй обновляется
                                в принципе остаётся добавить фильтрацию второго, но у меня не получилось
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (6) [1] 2 3 ...  5 6 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0441 ]   [ 15 queries used ]   [ Generated: 3.05.24, 12:28 GMT ]