ОК, Сенкс заработало. Немного комбобоксы по другому стали отрабатывать, но вполне нормально.
27 2018-04-03 10:00:49
Re: Апостроф (13 replies, posted in Russian)
попробуйте так
procedure All_koresp_Button10_OnClick (Sender: string; var Cancel: boolean); // В зависимости от введенных данных в поиске формируем условие WHERE в SQL запросе var s, sWhere: string; begin sWhere := ''; if All_koresp.ComboBox1.Text <> '' Then sWhere := sWhere + 'kan_grup.id_kan_tip= {ComboBox1} AND '; if All_koresp.ComboBox2.Text <> '' Then sWhere := sWhere + 'documentiki.id_kan_grup= {ComboBox2} AND '; if All_koresp.ComboBox3.Text <> '' Then sWhere := All_koresp.Edit11.Text + 'documentiki.id_organization={ComboBox3} AND '; if All_koresp.Edit6.Text <> '' Then sWhere := sWhere + 'documentiki.god_docum LIKE ''{Edit6}'' AND '; if All_koresp.Edit8.Text <> '' Then sWhere := sWhere + 'documentiki.Reg_nom LIKE ''%{Edit8}%'' AND '; if All_koresp.Edit7.Text <> '' Then sWhere := sWhere + 'documentiki.kr_soder LIKE ''%{Edit7}%'' AND '; if All_koresp.Edit9.Text <> '' Then sWhere := sWhere + 'documentiki.Reg_nom_otprav LIKE ''%{Edit9}%'' AND '; if All_koresp.CheckBox1.State = cbChecked Then begin sWhere := sWhere + 'documentiki.Ob_prosm=1' end; if All_koresp.CheckBox1.State = cbUnchecked Then begin if (All_koresp.Edit3.Text <> '') and (All_koresp.Edit4.Text <> '') Then sWhere := sWhere + '((documentiki.DP1 LIKE ''{Edit3}'' AND documentiki.DP2 LIKE ''{Edit4}'') OR (documentiki.PP1 LIKE ''{Edit3}'' AND documentiki.PP2 LIKE ''{Edit4}''))'; if (All_koresp.Edit3.Text = '') and (All_koresp.Edit4.Text = '') Then sWhere := sWhere + '1=1'; if (All_koresp.Edit3.Text <> '') and (All_koresp.Edit4.Text = '') Then sWhere := sWhere + '(documentiki.DP1 LIKE ''{Edit3}'' OR documentiki.PP1 LIKE ''{Edit3}'')'; end; s := All_koresp.Button9.dbSQL; s := ReplaceStr(s, '{Edit11}', sWhere); All_koresp.Button9.dbSQL := s; end;
Помогло для первой сортировки, при дальнейшем выборе критериев сортировки в коде
s := All_koresp.Button9.dbSQL;
s := ReplaceStr(s, '{Edit11}', sWhere);
All_koresp.Button9.dbSQL := s;
'{Edit11}' уже нет в тексте полученным
s := All_koresp.Button9.dbSQL;
а содержит уже предыдущее значение s
28 2018-04-03 07:35:58
Re: Вопросы по TreeView (14 replies, posted in Russian)
Скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/5x7vjreoju45z … a.zip?dl=0Теперь не должно быть проблем с отображением веток при переносе.
Добрый день, проблем с переносом теперь не наблюдается, но появилось следующее, в записи которая так сказать первого уровня (TOP), и последняя в списке в поле Parrent ID сидит какое то число, т.е при раскраске по условию:
procedure new_poruch_TreeView1_OnChange (Sender: TObject); // Раскрашиваем Дерево
var
c, i:integer;
begin
//new_poruch.TreeView1.Columns[1].Visible:= False; //Скрываем колонку ID Parrent
new_poruch.TreeView1.BeginUpdate;
c := new_poruch.TreeView1.RowCount - 1;
for i := 0 to c do
begin
if new_poruch.TreeView1.Cells[1,i] = '0' then //если запись первого уровня то делаем раскраску
begin
new_poruch.TreeView1.SelectedRow :=0; //перемещаем курсор на первую строку
new_poruch.TreeView1.Cell[0,i].TextColor := $008A4500; //если стартовое поручение то окрашиваем текст в синий цвет
new_poruch.TreeView1.Cell[0,i].FontStyle := fsBold; //Если поручение Раздел то делаем его жирным
new_poruch.TreeView1.Cell[0,i].Color := $00E0E0E0; // Заливаем фон
new_poruch.TreeView1.Cell[1,i].Color := $00E0E0E0; // Заливаем фон
new_poruch.TreeView1.Cell[2,i].Color := $00E0E0E0; // Заливаем фон
new_poruch.TreeView1.Cell[3,i].Color := $00E0E0E0; // Заливаем фон
end;
end;
new_poruch.TreeView1.EndUpdate;
end;
Последняя запись не проходит на условие равенства нулю и не раскрашивается.
Скрин во вложении
29 2018-04-02 06:46:41
Re: Вопросы по TreeView (14 replies, posted in Russian)
Проверкую можно сделать так
function CheckTreeOk(TreeView: TdbTreeView; FromIndex, ToIndex: integer): boolean; var i: integer; begin result := True; i := ToIndex; while TreeView.GetLevel(i) > 0 do begin i := TreeView.GetParent(i); if i = FromIndex then begin Result := False; Break; end; end; end; procedure perenos_Button1_OnClick (Sender: TObject; var Cancel: boolean); begin if CheckTreeOk(Form1.TreeView1, Form1.TreeView1.SelectedRow, perenos.TreeView1.SelectedRow) then begin //Перед перемещением помогите сделать проверку чтобы нельзя было переносить ниже по этой ветке SQLExecute('UPDATE skup SET ParrentID='+IntToStr(perenos.TreeView1.dbItemID)+' WHERE id='+IntToStr (Form1.TreeView1.dbItemID)+' ');// Переносим записи меняем Parrent ID у выбранной записи Form1.TreeView1.dbUpdate; perenos.Close; end else ShowMessage('You can''t'); end;
А вот то, что ветки не отображается, это ошибка в программе, поправлю.
Круто, работает. Можно пояснить некоторые команды:
i := ToIndex;
i = FromIndex
30 2018-03-30 12:49:19
Re: Как убрать иконку программы с панели задач в область уведомлений? (3 replies, posted in Russian)
а как кодом свернуть?
new_poruch.WindowState := wsMinimized; // сворачиваем форму
Сворачивает все равно в панель задач
31 2018-03-30 11:23:12
Re: Апостроф (13 replies, posted in Russian)
С апострофом заметил следующее
допустим условие WHERE для SQL запроса формируется у меня так:
All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'documentiki.god_docum LIKE ''{Edit6}'' AND ';
Потом в SQL запросе подставляю сформированное условие:
WHERE {Edit11}
после SQL условие выглядит так:
WHERE documentiki.god_docum LIKE ''2018''
Тоже самое сделал с кнопкой поиск и посмотрел каким SQL запросом сформирована таблица показало такое условие
WHERE `documentiki`.`god_docum` LIKE '2018'
т.е. разница в двух кавычках, это после обновления программы так стало. Может это и является проблемой? Подскажите как поправить можно в моем формировании условия:
All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'documentiki.Reg_nom LIKE ''%{Edit8}%'' AND ';
32 2018-03-29 11:44:31
Re: Апостроф (13 replies, posted in Russian)
Evgeniy D
Не смог найти ошибку, приложите пожалуйста ваш проект, протестирую.
ссылка на проект https://yadi.sk/d/jmAVXvO-3TsiDE
Вряд ли поможет, проект большой, база на MySQL.
Форма - All_koresp
Кнопка формирования условия - Button10
Кнопка SQL запроса - Button9
Можно ли раннюю версию программы еще раз выложить которую здесь давали http://myvisualdatabase.com/forum/viewtopic.php?id=4155
33 2018-03-29 05:56:35
Re: Апостроф (13 replies, posted in Russian)
При компилировании в последней версии стала выпадать ошибка (см. вложение).
(в предыдущей версии такой ошибки небыло)
скорее всего по другому стал определятся код в редакторе.
кодом формировал условие WHERE в текстовом поле и подствлял в SQL запросе по заполнению таблицы.
код такой
procedure All_koresp_Button10_OnClick (Sender: string; var Cancel: boolean); // В зависимости от введенных данных в поиске формируем условие WHERE в SQL запросе
begin
All_koresp.Edit11.Text := '';
if All_koresp.ComboBox1.Text <> '' Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'kan_grup.id_kan_tip= {ComboBox1} AND ';
if All_koresp.ComboBox2.Text <> '' Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'documentiki.id_kan_grup= {ComboBox2} AND ';
if All_koresp.ComboBox3.Text <> '' Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'documentiki.id_organization={ComboBox3} AND ';
if All_koresp.Edit6.Text <> '' Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'documentiki.god_docum LIKE ''{Edit6}'' AND ';
if All_koresp.Edit8.Text <> '' Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'documentiki.Reg_nom LIKE ''%{Edit8}%'' AND ';
if All_koresp.Edit7.Text <> '' Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'documentiki.kr_soder LIKE ''%{Edit7}%'' AND ';
if All_koresp.Edit9.Text <> '' Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'documentiki.Reg_nom_otprav LIKE ''%{Edit9}%'' AND ';
if All_koresp.CheckBox1.State = cbChecked Then
begin
All_koresp.Edit11.Text := All_koresp.Edit11.Text + 'documentiki.Ob_prosm=1'
end;
if All_koresp.CheckBox1.State = cbUnchecked Then
begin
if (All_koresp.Edit3.Text <> '') and (All_koresp.Edit4.Text <> '') Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + '((documentiki.DP1 LIKE ''{Edit3}'' AND documentiki.DP2 LIKE ''{Edit4}'') OR (documentiki.PP1 LIKE ''{Edit3}'' AND documentiki.PP2 LIKE ''{Edit4}''))';
if (All_koresp.Edit3.Text = '') and (All_koresp.Edit4.Text = '') Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + '1=1';
if (All_koresp.Edit3.Text <> '') and (All_koresp.Edit4.Text = '') Then All_koresp.Edit11.Text := All_koresp.Edit11.Text + '(documentiki.DP1 LIKE ''{Edit3}'' OR documentiki.PP1 LIKE ''{Edit3}'')';
end;
end;
Ругается скорее всего по текстовым полям кавычки стоят, может теперь по другому надо использовать
34 2018-03-29 05:45:55
Re: Вопросы по TreeView (14 replies, posted in Russian)
Видимо тут необходимо проверить, не является ли узел родительским по отношению того места, куда данный узел хотят переместить.
Для этого можно пройтись по дереву с помощью метода GetParent (пока GetLevel > 0), чтобы проверить, не встретится ли данный узел.
Если не получиться самостоятельно, приложите ваш проект, в котором релизован механизм перемещения веток, постараюсь помочь.
Проект прикладываю, помогите с проверкой, еще там в архиве в Ворде небольшой вопрос по определенному переносу записи перестают отображаться в дереве
35 2018-03-29 04:08:17
Re: Апостроф (13 replies, posted in Russian)
Чето половина таблиц стала ругаться после этого обновления, посыпались ошибки, где предыдущую версию можно скачать
36 2018-03-27 04:30:05
Re: Вопросы по TreeView (14 replies, posted in Russian)
Добрый день.
Еще вопрос, подскажите не совсем понимаю какой из вышеуказанных методов можно применить при перемещении записи саму в себя и выдать запрет на такое перемещение т.к. ветка размыкается. Пример действия которое нужно запретить на картинке во вложении.
37 2018-03-22 12:34:37
Re: Что реализовать в первую очередь? (396 replies, posted in Russian)
Компоненты Диаграмма Ганта существуют? возможно ли в недалеком будущем и такой компонент добавить?
38 2018-03-22 12:18:29
Re: Вопросы по TreeView (14 replies, posted in Russian)
И еще вопрос, по формированию дерева, описание проблемки с картинками во вложении
39 2018-03-22 09:59:59
Re: Финальная версия 4.3 (25 replies, posted in Russian)
И еще вопрос, по формированию дерева, описание проблемки с картинками во вложении
40 2018-03-22 05:29:32
Re: Финальная версия 4.3 (25 replies, posted in Russian)
Evgeniy D wrote:По TreeView остается актуальным вопросы.
Допустим для реализации задача - подзадача ..... актуально для определенных пользователей видеть или не видеть определенные подуровни, т.е. требуется сделать некоторые подуровни скрытыми.
Можно ли загружать данные в дерево попадающие под определенные условия а не все? Например с помощью кнопки Поиск или SQL поиск.В настройках компонента есть опция Фильтр, в котором вы можете указать условие. Но важно понимать, что если будет скрыт родительский узел, тогда дочерние записи данного узла невозможно будет показать.
Сделал для вас проект с примером. За видимост узла отвечает поле AdminOnly
Опцию фильтр если менять кодом это меняется свойство dbFilter? Если да, то тогда следующий вопрос, какой принцип работы dbFilter? Ранее наблюдалось что dbFilter, при большом количестве записей работает гораздо медленное если таблицу заполнять SQL запросом.
41 2018-03-22 05:18:15
Topic: Вопросы по TreeView (14 replies, posted in Russian)
В продолжении темы http://myvisualdatabase.com/forum/viewtopic.php?id=4096
При переносе уровней (SQL запросом) дерева как проверить что ветку собираются перенести в себя уровнем ниже?
42 2018-03-21 09:31:36
Re: Финальная версия 4.3 (25 replies, posted in Russian)
По TreeView остается актуальным вопросы.
Допустим для реализации задача - подзадача ..... актуально для определенных пользователей видеть или не видеть определенные подуровни, т.е. требуется сделать некоторые подуровни скрытыми.
Можно ли загружать данные в дерево попадающие под определенные условия а не все? Например с помощью кнопки Поиск или SQL поиск.
Как можно подуровни менять местами? например
задача 1
Подзадача 1.1
Подзадача 1.2
как Подзадача 1.2. поменять местами с Подзадачей 1.1.
Еще не понятно как после переноса подуровней (с помощь кода меняю ParrenID) обновить компонент, обновляется только после перезапуска проекта. обновляю так
new_poruch.TreeView1.dbUpdate;
43 2018-03-21 05:22:03
Re: Помогите создать структуру БД (4 replies, posted in Russian)
Сделал по вашим советам, теперь подскажите как примерно выглядит запрос чтобы вывести записи от родителя и ниже и отсортировать по порядку записи?
44 2018-03-17 08:25:27
Topic: Использование переменной (1 replies, posted in Russian)
Коллеги подскажите можно ли и как использовать в запросе переменную
допустим в этом кусочке у меня поля могут меняться от N1 до N10,
newnum := SQLexecute('SELECT MAX(N2)+1 FROM skup WHERE parrentID = "'+IntToStr (new_poruch.TableGrid1.dbItemID)+'"');
Чтобы не плодить кучу разных запросов хотел поле формировать и подставлять в запрос например:
pole := 'N2';
newnum := SQLexecute('SELECT MAX("'+pole+'")+1 FROM skup WHERE parrentID = "'+IntToStr (new_poruch.TableGrid1.dbItemID)+'"');
не выдает ошибку, но и не воспринимает значение.
Подскажите можно ли как то пользоваться переменными?
45 2018-03-14 11:47:20
Re: Свернуть скриптом все открытые формы (4 replies, posted in Russian)
Сенкс
46 2018-03-14 11:21:31
Re: Свернуть скриптом все открытые формы (4 replies, posted in Russian)
Именно другая не скрыть форму а свернуть - имитация при нажатии кнопки управления на форме "_"
47 2018-03-14 10:49:04
Topic: Свернуть скриптом все открытые формы (4 replies, posted in Russian)
Всем привет, собственно вопрос - Как Свернуть скриптом все открытые формы, ну или хотя бы текущую форму
48 2018-03-13 06:20:38
Re: Windows Terminal Server (WTS / Thin Client). Ужасно медленно (8 replies, posted in Russian)
такая же проблема была. На сервере почтовик и еще программы крутились, пока на отдельный комп не перенес также по 10 мин запускалось приложение.
49 2018-02-27 07:32:20
Re: Финальная версия 4.3 (25 replies, posted in Russian)
Круто.
По TreeView можно ли в пример добавить?
Как перемещать ветку.
Как скрыть один из уровней
Как программно создать подуровень
50 2018-02-19 04:31:09
Topic: Отобразить определенное количестово записей в таблице (4 replies, posted in Russian)
Добрый день. Есть пример http://myvisualdatabase.com/forum/viewtopic.php?id=3864
В нем с помощью dbLimit устанавливают количество записей выводимых в таблицу.
Можно ли как то сделать допустим выводим 500 записей, а при нажатии на кнопку например "показать следующие 500 записей" и при этом показались следующие 500 записей а предыдущие 500 не показывались и т.д.