Change if 7 = MessageDlg to if 6 = MessageDlg
8,927 2014-10-17 13:47:48
Re: show form from scripts (7 replies, posted in Script)
sonixax
Please, send me your project, i'll check it.
support@drive-software.com
8,928 2014-10-17 13:46:07
Re: Backup (10 replies, posted in Script)
carlo_dj
you forgot to write Begin and End after Then
procedure Form1_btBackup_OnClick (Sender: string; var Cancel: boolean);
begin
if 7 = MessageDlg('Create / Update the SqLiteDB? Best choice is every day on the end of the shift back it up.', mtConfirmation, mbYes + mbNo, 0) then
begin
Cancel := True; // I think it is not necessary
CopyFile('sqlite.db', 'Backup\sqlite.db'); // Application path
//CopyFile('sqlite.db', 'I:\TP2014\Backup\sqlite.db'); // Reserve path
//P:\C\CF\CF3\TEST GA en MB\TP2014\Backup\sqlite.db // Backup path workplace
end;
end;
8,929 2014-10-17 13:41:23
Re: i want code Expire soft on Year,Month,Day (6 replies, posted in General)
First, please download beta version 1.46
https://www.dropbox.com/s/30ysr48sd8ca4 … 6.zip?dl=0
Example, how to make trial period
procedure Form1_OnShow (Sender: string; Action: string);
var
reg: TRegistry;
iDays: integer;
begin
reg := TRegistry.Create;
reg.Access := KEY_ALL_ACCESS;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('software\MyVisualDatabaseTrial',true);
if not reg.ValueExists('StartDate') then reg.WriteDate('StartDate', Now+10); // trial period is 10 days
iDays := Trunc(reg.ReadDate('StartDate')) - Trunc(Now); // time left days
reg.CloseKey;
reg.Free;
if iDays < 1 then
begin
ShowMessage('Trial period is over.');
Form1.Close;
end;
ShowMessage('Demo version. Time left: ' + IntToStr(iDays));
end;
Also you can download example project.
8,930 2014-10-17 13:38:44
Re: Триал счетчик или ограничение на количество записей (2 replies, posted in Russian)
Приветствую,
Можно, в бета версию 1.46 добавил возможность писать в системный реестр, где и можно хранить дату первого запуска, и затем сравнить ее с текущей.
Скачайте бета версию:
https://www.dropbox.com/s/30ysr48sd8ca4 … 6.zip?dl=0
Код можно поместить в событие OnShow главной формы:
procedure Form1_OnShow (Sender: string; Action: string);
var
reg: TRegistry;
iDays: integer;
begin
reg := TRegistry.Create;
reg.Access := KEY_ALL_ACCESS;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('software\MyVisualDatabaseTrial',true);
if not reg.ValueExists('StartDate') then reg.WriteDate('StartDate', Now+10); // trial period is 10 days
iDays := Trunc(reg.ReadDate('StartDate')) - Trunc(Now); // time left days
reg.CloseKey;
reg.Free;
if iDays < 1 then
begin
ShowMessage('Trial period is over.');
Form1.Close;
end;
ShowMessage('Demo version. Time left: ' + IntToStr(iDays));
end;
также можете скачать готовый проект с данной реализацией
8,931 2014-10-17 11:06:30
Re: Auto Select first row in grid after enter text in a textbox. (7 replies, posted in Script)
Sorry )
procedure frmProdModel_Button1_OnAfterClick (Sender: string);
begin
frmProdModel.GridProdMod.SelectedRow := 0;
frmProdModel.lblCompType.Caption := frmProdModel.GridProdMod.Cells[3, 0];
frmProdModel. EdProdModel.Text := frmProdModel.GridProdMod.Cells[2, 0];
end;
8,932 2014-10-17 10:52:38
Re: avoid the same input if it exist in table ? (30 replies, posted in Script)
function for check:
function CheckDublicate (Action, sTable, sField, sValue: string; id: integer;): boolean;
var
s: string;
begin
result := False;
if Action = 'NewRecord' then
begin
s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE '+sField+' LIKE "' + sValue + '"');
if StrToInt(s) > 0 then result := True;
end;
if Action = 'ShowRecord' then
begin
s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE ('+sField+' LIKE "' + sValue + '") AND (id <> '+ IntToStr(id) +')');
if StrToInt(s) > 0 then result := True;
end;
end;
// Event OnClick of button for save record
procedure frmEmployee_Button2_OnClick (Sender: string; var Cancel: boolean);
begin
if CheckDublicate(frmEmployee.dbAction, 'employees', 'lastname', frmEmployee.edLastName.Text, frmEmployee.ButtonSave.dbGeneralTableId) AND
CheckDublicate(frmEmployee.dbAction, 'employees', 'firstname', frmEmployee.edFistName.Text, frmEmployee.ButtonSave.dbGeneralTableId) then
begin
ShowMessage('Person already exists.');
Cancel := True;
end;
end;
Please, download this project example:
8,933 2014-10-17 10:48:56
Re: Backup (10 replies, posted in Script)
Please, download latest version 1.45
http://myvisualdatabase.com/download/myvisualdb.exe
8,934 2014-10-17 08:28:42
Re: Backup (10 replies, posted in Script)
Hello,
if the file sqlite.db in the project folder, also you should create folder "Backup"
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
CopyFile('sqlite.db', 'Backup\sqlite.db');
end;
8,935 2014-10-17 08:18:30
Re: Auto Select first row in grid after enter text in a textbox. (7 replies, posted in Script)
try this
procedure frmProdModel_Button1_OnAfterClick (Sender: string);
begin
frmProdModel.GridProdMod.SelectedRow := 0;
frmProdModel.lblCompType.Caption := frmProdModel.GridProdMod.Cells[3, ARow];
frmProdModel. EdProdModel.Text := frmProdModel.GridProdMod.Cells[2, ARow];
end;
8,936 2014-10-17 00:20:00
Re: Multiple Image selection + copy function (5 replies, posted in General)
also, how can I show the file_filename in grid ?!
You shoud create calculated fied with value: fieldname_filename
8,937 2014-10-17 00:18:33
Re: Multiple Image selection + copy function (5 replies, posted in General)
thanks a lot,
But another question,
how can I get root folder address of exe file ?!
I want to copy file inside the program "root/images" directory!
Just set property of component DBFile:
CopyTo=/images
and file will be copied automatically to this folder
Of course I want to rename them in the new directory!
Thanks a lot
if a file with the same name already exists, it will be automatically renamed.
8,938 2014-10-16 22:27:54
Re: Auto Select first row in grid after enter text in a textbox. (7 replies, posted in Script)
Hello,
You should use event OnAfterClick of button for search and use this script:
Form1.TableGrid1.SelectedRow := 0;
8,939 2014-10-16 22:22:43
Re: Multiple Image selection + copy function (5 replies, posted in General)
Hello,
In one field may be only one image.
In the current version, to select multipe images can only be done using a script, but it is quite difficult.
For save in database only image name and copy image file in a specific folder, you can use component DBFile,
set the property of the component Type = Link File and CopyTo, here you can get more inmormation about property CopyTo:
https://translate.googleusercontent.com … WCnwsx7Cbg
8,940 2014-10-16 19:32:08
Re: more than one data at same time (5 replies, posted in Script)
in your case, you need another table
Please, download project
8,941 2014-10-16 19:10:59
Re: Вопрос по обновлению таблицы. (5 replies, posted in Russian)
К сожалению тут без таймера не обойтись, попробуйте перед обновлением таблицы, запоминать выделенную строку, а после обновления снова ее выделять,
var
i: integer;
begin
i := Form1.TableGrid1.SelectedRow; // запоминаем номер выбранной строки
Form1.TableGrid1.dbUpdate; // обновление грида
Form1.TableGrid1.ScrollToRow(i); // скролим, чтобы было видно выбранную строку
Form1.TableGrid1.SelectedRow := i; // восстанавливаем выделение выбранной строки
но постоянно обновлять грид конечно не лучшее решение, можно завести глобальную переменную, в которой будем хранить последний добавленный id записи, который можем узнать воспользовавшись функцией:
Last_Insert_id(TableName: string): integer
и в таймере сравнивать значение функции Last_Insert_id и значение в глобальной переменной, если значение не равны, значит была добавлена новая запись и грид можно обновить.
8,942 2014-10-16 17:30:02
Re: View respective Reference data from one grid to there grid (7 replies, posted in General)
Hello,
Unfortunately I do not see your attach file.
Please, try this example:
http://myvisualdatabase.com/forum/misc. … download=1
8,943 2014-10-16 13:36:25
Re: День рождения (5 replies, posted in Russian)
на DateTimePicker повесил скрипт
procedure Main_DateTimePicker1_OnChange (Sender: string; ACol, ARow: Integer);
begin
Main.button2.click;
end;
у компонента DateTimePicker1 (у других также) есть свойство Increm. Search, где вы можете выбрать кнопку с действием Поиск либо SQL запрос, которая будет автоматически нажиматься при изменении содержимого компонента.
Т.о. можно обойтись без этой части скрипта (Main_DateTimePicker1_OnChange)
8,944 2014-10-16 09:22:42
Re: День рождения (5 replies, posted in Russian)
Приветствую,
К сожалению в текущей версии это можно сделать только с помощью действия кнопки SQL запрос, но спасибо за идею, реализую в будущем режим компонента DateTimePicker позволяющий искать только по месяцу.
SQL запрос поиска только по месяцу для кнопки с действием "SQL запрос":
SELECT
lastname
,firstname
,strftime('%d.%m.%Y', dateofbirth)
,id
FROM employees
WHERE strftime('%m', dateofbirth) = strftime('%m', {DateTimePickerM})
К сообщению прикрепил проект, с данной реализацией поиска. Но перед этим скачайте бета версию программы 1.46, т.к. пришлось исправить одну ошибку для корректной работы данного проекта
https://www.dropbox.com/s/30ysr48sd8ca4 … 6.zip?dl=0
8,945 2014-10-16 08:35:44
Re: Export to Excel problem (2 replies, posted in General)
Hello,
Unfortunately not yet solved this problem.
8,946 2014-10-16 07:54:09
Re: more than one data at same time (5 replies, posted in Script)
Using script and SQL query, you can do it
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
SQLExecute('INSERT INTO table1 (data1, data2) VALUES ("' + Form1.edData11.Text + '","' + Form1.edData21.Text + '")');
SQLExecute('INSERT INTO table1 (data1, data2) VALUES ("' + Form1.edData12.Text + '","' + Form1.edData22.Text + '")');
SQLExecute('INSERT INTO table1 (data1, data2) VALUES ("' + Form1.edData13.Text + '","' + Form1.edData23.Text + '")');
Form1.TableGrid1.dbUpdate;
end;
Please, download example project.
8,947 2014-10-15 19:44:03
Re: [Решено] Удалить запись с получением id для послед действия (19 replies, posted in Russian)
честно говоря не пойму структуру, почему в таблице Task есть внешний ключ на таблицу SubTask (подзадачи), должно быть наоборот, в таблице SubTask, внешний ключ на таблицу Task
т.к. задача, может иметь много подзадач, и при создании внешнего ключа в таблице SubTask (id_Task) можно включить поддержку целостности при удалении, т.о. при удалении задачи, ее подзадачи удалялись бы автоматически.
8,948 2014-10-15 14:03:44
Re: save and clear the field using enter (1 replies, posted in Script)
Yes, you should use event OnAfterClick, this event occurs after the action of button.
Example:
procedure Form1_Button1_OnAfterClick (Sender: string);
begin
Form1.Edit1.Clear;
end;
8,949 2014-10-15 13:59:58
Re: Beta version 1.45 (6 replies, posted in General)
atanubehigh
Unfortunately this is not possible.
To work through the internet, I suggest you use Remote Desktop Connection.
8,950 2014-10-15 09:41:46
Re: Show data in labels (2 replies, posted in Script)
Hello,
I sent updated project to your e-mail.