Q34PM32O54G6130
А зачем? я ведь ответил уже на вопросы )
My Visual Database → Posts by DriveSoft
Q34PM32O54G6130
А зачем? я ведь ответил уже на вопросы )
pha1984
1.
К сожалению не могу открыть ваш проект, нажат на кнопку Демонстрация, ничего не происходит.
Также не ясно, что именно не получается? если данные наполняются с помощью кнопки Поиск, то в ней вы также можете указать, по какому именно полю необходимо отсортировать результат поиска.
2. Необходимо установить свойство формы:
Code.KeyPreview := True;
в событии формы OnShow либо в самом низу скрипта между begin и end.
3. Это одно и тоже, просто для новых версий тоже самое можно написать короче
Form1.GridEmployees.sqlValue
вместо
inttostr(Form1.GridEmployees.dbitemid)
Приветствую,
Если ли скрипты, которые обращаются к базе данных?
Приложите проект, посмотрю в чем может быть причина.
Sergey
Каким образом появляется форма, на которой расположен TableGrid?
Если форма появляется с помощью скрипта, тогда TableGrid вам необходимо обновить также с помощью скрипта, например:
Form2.TableGrid1.dbUpdate; // обновляем содержимое компонента
Form2.Show; // показываем форму
If I understood you correctly, you should use ComboBox instead TextBox, then create event OnShow of the current form, and place this script to enable quick search in ComboBox:
procedure Form1_OnShow (Sender: string; Action: string);
begin
Form1.ComboBox1.Style := csDropDown;
end;
Also you can attach your project (zip-file without exe and dll)
I'll try to help you.
Thank you very much.Even If I don't know a lot from programming it is almost very helpful with the example that sent me.
Could you please if this Line is common wih all programs? "(Sender: string; Action: string);"
And if I would like to restore the database from back up,how I should do that?
Thank you again for helping me with this.
(Sender: string; Action: string)
It's not use in this example, here you can get more info about events OnShow and OnClose
http://myvisualdatabase.com/help_en/script/form.html
Database is just one file. To restore the database, you should copy database file from backup folder to the current folder of your project and rename it to "sqlite.db"
Hello,
Usually you don't need any script when you using scanner, you need just set focus to textbox after scanning you will see code from barcode in the textbox, because scanner will send code like keystrokes.
В настройках грида вы можете указать по какой колонке необходимо отсортировать данные.
Попробуйте так
ORDER BY tasks.dateCompletion, details.dateCompletion
Вконце запроса добавить
ORDER BY tasks.dateCompletion
К сожалению скриптом это не реализовать.
Журнал посещений - Form10
Компоненты для заполнения - Form11
Поправил.
pha1984
2. Действительно ли есть практический смысл показывать в гриде все 5000 записей?
FoxPro скорей всего подгружает новые данные в грид по мере скролла.
kunar80
SELECT
tasks.contentTask,
strftime('%d.%m.%Y',tasks.dateCompletion),
details.contentDetails,
strftime('%d.%m.%Y',details.dateCompletion),
(CASE WHEN ((SELECT Count(*) FROM details WHERE details.id_tasks=tasks.id AND details.status=1) > 0 OR details.status=1) then 'НА КОНТРОЛЕ' else '' end),
department.department,
otdel.otdel,
pozition.pozition,
abonents.person
FROM tasks
LEFT OUTER JOIN details ON details.id_tasks = tasks.id
LEFT OUTER JOIN department ON details.id_department = department.id
LEFT OUTER JOIN otdel ON details.id_otdel = otdel.id
LEFT OUTER JOIN pozition ON details.id_pozition = pozition.id
LEFT OUTER JOIN abonents ON details.id_abonents = abonents.id
Попытался обойтись без sql и сделать все обычным скриптом. Но вновь столкнулся с проблемой.
У нас есть таблица. В ней 3 колонки (имя пользователя, дата входа и дата выхода). При открытии главной формы кнопкой сохраняется имя пользователя и текущее время. При закрытии главной формы 2-ой кнопкой сохранения записываем в таблицу последнюю дату. Информация должна сохраниться в одной строке, но на деле сохраняется отдельно в 2-х строках. Подобный пример на картинке. Можно ли как-то обойти это? Спасибо)
Приложите пожалуйста ваш проект, посмотрю почему так происходит.
C именем пользователя получилось. А вот с датами к сожалению нет. Версия программы 1.46.
для версии 1.46 можно так
SQLExecute('INSERT INTO autorisationjournal (date/time_enter, date/time_exit) VALUES ('''+FormatDateTime('yyyy-MM-DD hh:nn:ss.000', Form1.DateTimePicker1.DateTime)+''','''+FormatDateTime('yyyy-MM-DD hh:nn:ss.000', Form1.DateTimePicker2.DateTime)+''');');
Hello,
Yes.
A form with only the "close"
procedure Form1_OnShow (Sender: string; Action: string);
begin
Form1.BorderIcons := biSystemMenu;
end;
A form without buttons
procedure Form1_OnShow (Sender: string; Action: string);
begin
Form1.BorderIcons := 0;
end;
Ув. Дмитрий, почему когда я открываю проект и хочу ввести данные то возникают тормоза. Например на форме NovayaForma при вводе записи в поле Имя, Фамилия, Отчество буквы пишутся очень медленно. В чем проблема? Проект можете скачать с 2 поста выше текушего.
об этом я уже вам говорил ранее, у вас с каждым нажатием кнопки происходит обновление гридов, что бессмысленно
procedure NovayaForma_OnKeyDown (Sender: string; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
......
psih12
Согласен, данные свойства я планирую вынести в инспектор объектов, чтобы это можно было сделать визуально, пока есть проблема в компоненте "Инспектор объектов", который является сторонней разработкой, очень медленно начинает работать, если в нем много свойств.
Alex
Посмотреть с какой целью? )
Nervis
1. попробуйте так:
SQLExecute('INSERT INTO autorisationjournal (name_of_user) VALUES ('''+sUser+''');');
2. и так, если все равно будет ругаться на sqlDateTime, скорей всего у вас старая версия программы
SQLExecute('INSERT INTO autorisationjournal (date/time_enter, date/time_exit) VALUES ('+Form1.DateTimePicker1.sqlDateTime+','+Form1.DateTimePicker2.sqlDateTime+');');
1. Хотелось бы, чтобы для поля базы данных была возможность проверки данных, как это сделано в Excel. Примеры: выбран тип данных "Дата" - чтобы была возможность указания промежутка, в пределах которого можно ввести дату. Если выбран тип "число", то также чтобы была возможность указать, в каком диапазоне можно вводить данные. Например, поле названо "День рождения", значит можно вводить только числа от 1 до 31. Ну и т.п.
2. Необходима "защита от дурака". Например, если нажать на кнопку "Script", удалить сам скрипт и запустить проект, то выдает ошибку "BEGIN Expected at 2:1", что не есть хорошо.
1.
Вы можете задать максимальную и минимальную дату с помощью скрипта
например:
Form1.DateTimePicker1.MaxDate := ...
Form1.DateTimePicker1.MInDate := ...
Для компонента Edit можно сделать следующий скрипт
procedure Form1_Edit1_OnChange (Sender: string);
begin
if (Form1.Edit1.Value < 1) or (Form1.Edit1.Value > 31) then Form1.Edit1.Value := 1;
end;
2. Согласен, необходимо поправить.
И еще вопросик. Таких ячеек под 100.
Есть-ли возможность посчитать сколько красных и сколько зеленых (пустых, непустых)?
Спасибо.
Можно, необходимо завести две переменные, в которых можно это подсчитать, например
var
iRed, iGreen: integer;
begin
....
iRed := 0;
iGreen := 0;
if Form1.TableGrid1.Cells[2,i] = '' then
begin
Form1.TableGrid1.Cell[1,i].Color := clGreen;
Inc(iGreen); // каждый раз прибавляем 1 в переменную
end else
begin
Form1.TableGrid1.Cell[1,i].Color := clRed;
Inc(iRed); // каждый раз прибавляем 1 в переменную
end;
// выводим значение этих переменных например в компонент Label
Form1.Label1.Caption := IntToStr(iGreen);
Form1.Label2.Caption := IntToStr(iRed);
My Visual Database → Posts by DriveSoft
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi