Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.116.102] |
|
Страницы: (6) [1] 2 3 ... 5 6 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
скачал 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 переписать в него... |
Сообщ.
#2
,
|
|
|
по всем не скажу сразу, смотреть нужно
по 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 как я понимаю, он просто добавил в обычный грид новые возможности с помощью файлов настройки грида Прикреплённый файлopengridpropertyeditor.zip (7.58 Кбайт, скачиваний: 322) |
Сообщ.
#3
,
|
|
|
спасибо что прикрепили скомпилированный файл 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> спасибо |
Сообщ.
#4
,
|
|
|
у меня тоже не работает
если не шаманить ставиш грид прописываеш datasource при выполнении пустая страница если просмотрть исходник полученной страницы то там в конце сообщение об ошибке <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 там такая функция function readGridURL() { $key=$this->readGridKey(); $url = $GLOBALS[ 'PHP_SELF' ]."?gkey=$key&".urlparams(); return($url); } функцию urlparams() , на которую ругается, не нашёл тогда шаманим делаем так 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/ вот только откуда их скачать непонятно |
Сообщ.
#5
,
|
|
|
обнаружил, что у OpenGrid есть дополнительные темы
в инспекторе список не даёт выбирать, но можно ввести вручную свойство Theme названия тем: basic coffee green sand шаблоны лежат здесь opengrid\jqGrid\themes так что можно и свою сделать правда в дизайнере формы показывает только basic остальные отрисовываются только при выполнении |
Сообщ.
#6
,
|
|
|
как у нас с Вами по разному работает OpenGrid
темы у меня показывает и в дизайнере формы (зеленая становиться и тд) а вот - и даже показывает данные в процессе дизайна формы - не показывает - пусто видно только после запуска и работает странно - редактирование прямо в строке не сохраняется и в окне редактирования по нажатию кнопки внизу грида не сохраняются результаты редактирования а вот по кнопке "вставить строку "- все сохраняется а кнопка "удалить строку " - не работает может это у меня так криво все ? если можно - проверьте это у себя бо если так все криво - я его брошу а если у Вас работает - буду ковырять у себя спасибо |
Сообщ.
#7
,
|
|
|
как будет время проверю
а запускал в DelphiForPhp 1-й версии может по этому не одинаково на второй потом посмотрю во время дизайна местами тоже всё очищается а после запуска видно но иногда если какое то свойство дёрнуть то срабатывает и в дизайнере этот грид в работе не использовал хотя сейчас посмотрел кое что понравилось возможно буду использовать в каких то случаях мы делали свой компонент грида полегче для браузера, без javascript под задачу т.к. не нужна была особая динамика на клиенте основное чего во всех этих гридах мне не хватает это авторастяжку по панели на которой он находится а вот у грида из ExtJS она есть |
Сообщ.
#8
,
|
|
|
У меня Delphi for PHP 2/0
а мне - основное чего не хватает - так это знаний и времени продолжу копать и буду ждать , может Вы чего подскажете мне нужен грид полнофункциональный - активная работа с базой в PlatinumGrid наверное все тип топ(скачал триал посмотрел ) но он платный crack не нашел OpenGrid все таки посмотрю - не может быть чтобы автор оставлял неработающие компоненты |
Сообщ.
#9
,
|
|
|
Цитата Zajigaev @ и работает странно - редактирование прямо в строке не сохраняется и в окне редактирования по нажатию кнопки внизу грида не сохраняются результаты редактирования а вот по кнопке "вставить строку "- все сохраняется а кнопка "удалить строку " - не работает проверил всё работает но есть особеноости 1. если использовать Table, то редактирование в строке работает, а если использовать Query, то для того что бы работало редактирование в строке нужно у Query дополнительно к запросу в свойстве SQL прописать в свойство TableName имя таблицы 2. В обоих случаях для того что бы пользоваться кнопкой Редактировать снизу таблицы нужно отключить редактирование в таблице свойствои ReadOnly = 1 иначе в открывающемся окне появляется тег INPUT у открытого на редактирования поля в таблице и из-за этого не срабатывает 3. у меня удаление записи работает особенностей не заметил там есть хорошее свойство BlockOnAjax если поставить =1, то грид блокируется на время выполнения редактирования, добавления и удаления ещё есть AlternateRows=true тогда грид будет полосатым |
Сообщ.
#10
,
|
|
|
вроде у меня тоже счас все устаканилось (хотя ничего не делал)
редактирование в OpenGrid ReadOnly =0 - можно редактировать прямо в гриде, но в окне редактирования вместо значения выделенной ячейки - текст ReadOnly = 1- нельзя редактировать прямо в гриде, а в окне редактирования все нормально отредактированные значения сохраняются в базе в обоих случаях странно при выставлении на форму 2-го OpenGrida (даже если связаны с разными базами) во втором гриде отображаются данные только после нажатия кнопки Reload Grid к тому же Theme разные тоже им не поставишь во время дизайна показывает напр OpenGrid1 basic OpenGrid2 - green в браузере тема у обоих одинаковая - та что у Opengrid1 те OpenGrid2 как-то зависит от OpenGrid1 и какой аналог JScript On ChangeRow? не получается создать MasterDetail OpenGrid1-OpenGrid2 как это побороть? спасибо |
Сообщ.
#11
,
|
|
|
Цитата Zajigaev @ ReadOnly =0 - можно редактировать прямо в гриде, но в окне редактирования вместо значения выделенной ячейки - текст ReadOnly = 1- нельзя редактировать прямо в гриде, а в окне редактирования все нормально отредактированные значения сохраняются в базе в обоих случаях странно ну с этим всё понятно компонент универсальный, а т.к. работать приходится с javascript и html то нужно учитывать особенности т.е. зачем сразу давать редактировать и в гриде и кнопкой нужно выбирать что то одно, тогда проблем не будет и компонент это даёт сделать разработчику а когда хочеш и то и другое, получается, что во время редактирования в гриде в ячейке не значение а подставлен тег input естественно, javascript вытащит в окно редактирования то что в ячейке, т.е. input |
Сообщ.
#12
,
|
|
|
Цитата Zajigaev @ и какой аналог JScript On ChangeRow? событий там предостаточно а как работать с данными нужно читать про jQuery здесь например: это событие выведет значение 1-й колонки в текущей строке грида OpenGrid2 срабатывает по выбору ячейки если у гида свойство readonly=1 function OpenGrid2JSCellSelect($sender, $params) { ?> //Add your javascript code here alert(jQuery('#OpenGrid2').getGridParam('selrow')); <?php } это событие выведет значение указанных колонок в текущей строке грида OpenGrid2 срабатывает по выбору ячейки если у гида свойство readonly=1 здесь вытаскиваются колонки с названием полей PR_ID,PR_DATE 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 } вот ещё несколько функций для доступу к параметрам грида 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 } |
Сообщ.
#13
,
|
|
|
Цитата Zajigaev @ к тому же Theme разные тоже им не поставишь во время дизайна показывает напр OpenGrid1 basic OpenGrid2 - green в браузере тема у обоих одинаковая - та что у Opengrid1 здесь тоже всё понятно стили у гридов в тегов прописаны с определёнными названиями но грузятся из разных css файлов т.е. первый грид делает ссылку на css одной темы откуда загружаются стили но второй грид подтягивает после этого файлы другой темы у которой названия стилей такие же следовательно они переопределяют предыдущие и получаем у всех гридов один стиль, который загружается последним исходя из этого можно или переделать компонент или на одной странице всегда отображать таблицы в одном стиле скорее всего что последнее подойдёт для большинства случаев кроме программистов любящих попугаев |
Сообщ.
#14
,
|
|
|
вот такая конструкция работает с встроенным Grid (связка master - detail)Delphi php безупречно
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] |
Сообщ.
#15
,
|
|
|
посмотрел MasterDetail у OpenGrid
сразу не въехал стандартный код предыдущего поста действительно не работает при этом у Opengrid есть своё свойство MasterGrid если второму гриду указать мастером первый то при переходе между строками первого второй обновляется в принципе остаётся добавить фильтрацию второго, но у меня не получилось |