I made an example for you:
5,677 2016-01-19 18:12:35
Re: avoid repeated data (8 replies, posted in Script)
Added a duplicate check in your project.
5,678 2016-01-19 17:58:28
Re: Start-stop-elapsed day time (15 replies, posted in Script)
Hi Dmitry and Tcoton,
Yes, I want try to count the difference between the two dates. Ex. New repair IN date time - repair OUT date time = TOTAL repair spend.
Thanks, Carlo
Where you need to see result? In a TableGrid or in a TextBox?
Because if you need result in a TableGrid, you should using calculated field, if result should be in a TextBox, you should use a script.
5,679 2016-01-19 17:55:51
Re: Переменные в fastreport (15 replies, posted in Russian)
Пожалуйста, для каждого вопроса создавайте отдельную тему.
5,680 2016-01-19 17:54:37
Re: Возможно ли? (8 replies, posted in Russian)
wertyby
Доработал скрипт, также в таблицу БД пришлось добавить поле year, поэтому вам также необходимо добавить данное поле в вашу актуальную базу данных. Теперь номер тома будет сбрасываться с каждым новым годом.
5,681 2016-01-19 00:08:18
Re: Одно окно поиска для нескольких таблиц сразу (3 replies, posted in Russian)
Такой поиск можно реализовать с помощью SQL запроса, пример:
SELECT
employees.lastname
,employees.firstname
,groups.groupname
,employees.id
FROM
employees
LEFT OUTER JOIN groups ON groups.id=employees.id_groups
WHERE
(employees.lastname LIKE '%{edSearch}%') OR
(employees.firstname LIKE '%{edSearch}%') OR
(employees.phone LIKE '%{edSearch}%') OR
(groups.groupname LIKE '%{edSearch}%');
Также можете скачать проект с данным примером:
5,682 2016-01-18 23:57:57
Re: Поиск между дат (3 replies, posted in Russian)
В данном случае поиск придеться реализовать с помощью SQL запроса, пример:
SELECT
lastname,
firstname,
strftime('%d.%m.%Y', startwork),
strftime('%d.%m.%Y', endwork),
id
FROM employees
WHERE
CASE WHEN IFNULL({DateTimePicker1}, 1)=1 THEN 1=1 ELSE
{DateTimePicker1} >= startwork AND {DateTimePicker1} <= endwork
END
также можете скачать проект с примером:
5,683 2016-01-18 23:42:42
Re: Появление экранной клавиатуры (1 replies, posted in Russian)
Приветствую,
1. Пока нет такой возможности, но я постараюсь в ближайшее время изучить этот вопрос.
5,684 2016-01-18 17:22:44
Re: SelectedRow in a TableGrid (7 replies, posted in Script)
Hello,
try fix this line
Web.Navigate(Google + Form1.TableGrid1.Cells[5,Form1.TableGrid1.SelectedRow]+ ',' + Form1.TableGrid1.Cells[6,Form1.TableGrid1.SelectedRow]);
5,685 2016-01-18 17:06:49
Re: Переменные в fastreport (15 replies, posted in Russian)
Вы забыли закрыть и очистить TfrxDBDataset
frxDBDataset3.DataSet.Close; и frxDBDataset3.Free;
в итоге скрипт будет таким:
procedure Form1_bReport_OnClick (Sender: string; var Cancel: boolean);
var
frxDBDataset1, frxDBDataset2,frxDBDataset3: TfrxDBDataset;
Results1,Otchet, Results2: TDataSet;
sql: string;
sFile: string;
sDest: string;
begin
//Data for first dataset
if isAdmin then
sql := 'SELECT employees.Формулировка,employees.id,employees.Начало, employees.Изменение, employees.Срок,users.login FROM employees LEFT OUTER JOIN users ON users.id=employees.id_users ORDER BY employees.id'
else
sql := 'SELECT employees.Формулировка, employees.Начало, employees.Изменение, employees.Срок, users.login FROM employees LEFT OUTER JOIN users ON users.id=employees.id_users WHERE ' + 'id_users='+IntToStr(idUser);
SQLQuery(sql, Results1);
// Data for second dataset
if isAdmin then
sql := 'SELECT employees.Формулировка, employees.Начало, employees.Изменение, employees.Срок, users.login FROM employees LEFT OUTER JOIN users ON users.id=employees.id_users'
else
sql := 'SELECT employees.Формулировка, employees.Начало, employees.Изменение, employees.Срок, users.login FROM employees LEFT OUTER JOIN users ON users.id=employees.id_users WHERE ' + 'id_users='+IntToStr(idUser);
SQLQuery(sql, Results2);
// Data for 3 datase
SQLQuery('SELECT '+Form1.Date_report.sqlDateTime+' as DateField,'+Form1.Report_memo.sqlValue + ' as TextField', Otchet);
//SQLQuery('SELECT '+Form1.DateTimePicker1+','+Form1.Memo1.sqlValue, Results);
// create first DataSet
frxDBDataset1 := TfrxDBDataset.Create(Form1);
frxDBDataset1.UserName := 'Report1';
frxDBDataset1.CloseDataSource := True;
frxDBDataset1.OpenDataSource := True;
frxDBDataset1.DataSet := Results1;
// create second DataSet
frxDBDataset2 := TfrxDBDataset.Create(Form1);
frxDBDataset2.UserName := 'Report2';
frxDBDataset2.CloseDataSource := True;
frxDBDataset2.OpenDataSource := True;
frxDBDataset2.DataSet := Results2;
// create 3 DataSet
frxDBDataset3 := TfrxDBDataset.Create(Otchet);
frxDBDataset3.UserName := 'Otchet';
frxDBDataset3.CloseDataSource := True;
frxDBDataset3.OpenDataSource := True;
frxDBDataset3.DataSet := Otchet;
// set up report
Form1.frxReport.Clear;
Form1.frxReport.DataSets.Clear;
Form1.frxReport.DataSets.Add(frxDBDataset1);
Form1.frxReport.DataSets.Add(frxDBDataset2);
Form1.frxReport.DataSets.Add(frxDBDataset3);
// DESIGN MODE
Form1.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Report\print.fr3');
Form1.frxReport.DesignReport;
// OPEN REPORT IN PDF
Form1.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Report\print.fr3');
Form1.frxReport.PrepareReport();
Form1.frxRTFExport1.FileName := ChangeFileExt(GetTempFileName+'32', '.rtf');
Form1.frxRTFExport1.ShowDialog := False;
Form1.frxReport.Export(Form1.frxRTFexport1);
// PREVIEW MODE
//frxDBDataset1.DataSet.Close;
//frxDBDataset2.DataSet.Close;
//frxDBDataset3.DataSet.Close;
//Form1.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Report\print.fr3');
//Form1.frxReport.ShowReport;
frxDBDataset1.Free;
frxDBDataset2.Free;
frxDBDataset3.Free;
sFile := Form1.frxRTFExport1.FileName;
//Form1.frxRTFExport1.FileName:=ChangeFileExt(sUser+' '+FormatDateTime('YYYY-MM-DD.', frmEmployee.dtDateOfBirth.Date), '.rtf');
sDest := 'R:\Report4\'+FormatDateTime('YYYY', now)+'\'+FormatDateTime('MM-MMMM', now)+'\'+sUser+'\';
if ForceDirectories(sDest) then
begin
CopyFile(sFile, sDest+sUser+' '+FormatDateTime('YYYY-MM-DD.', Form1.Date_report.Date)+'rtf');
end;
ShowMessage('Файл отчета сохранен по адресу:'#13'Free/qq/'+FormatDateTime('YYYY-MM-DD', now)+'\'+sUser+'\'+#13+'Под именем:'+' '+sUser+' '+FormatDateTime('YYYY-MM-DD.', Form1.Date_report.Date)+'rtf' );
DeleteFile(sFile);
end;
5,686 2016-01-18 16:32:52
Re: Переменные в fastreport (15 replies, posted in Russian)
memult
Сложно сказать, т.к. у вас скриптом создается отчет, возможно забыли где то TDataSet очистить, пришлите проект на support@drive-software.com со ссылкой на данную тему.
5,687 2016-01-18 14:21:47
Re: Переменные в fastreport (15 replies, posted in Russian)
Да, перепутал, у компонента DateTimePicker нужно использовать свойство sqlDateTime
И да, нудно добавить AS
SQLQuery('SELECT '+Form1.Date_report.sqlDateTime+' as DateField,'+Form1.Report_memo.sqlValue + ' as TextField', Otchet);
5,688 2016-01-18 13:23:48
Re: Переменные в fastreport (15 replies, posted in Russian)
примерно так
SQLQuery('SELECT '+Form1.DateTimePicker1.sqlValue+','+Form1.Memo1.sqlValue, Results);
5,689 2016-01-18 13:16:51
Re: Combobox в Multireport. (3 replies, posted in Russian)
Благодарю за помощь, т.е все комбобоксы в проекте нужно объединять LEFT JOIN, как в примере выше?
Речь идет про про внешние ключи в таблицах БД, их необходимо объединять с помощью LEFT JOIN
5,690 2016-01-18 12:38:22
Re: Переменные в fastreport (15 replies, posted in Russian)
Можно пример реализации этого?
Пожалуйста.
5,691 2016-01-18 12:32:46
Re: Создание ссылкы на папку с документацией (8 replies, posted in Russian)
Пожалуйста, создавайте отдельные темы для разных вопросов.
Спасибо.
5,693 2016-01-18 12:29:56
Re: Combobox в Multireport. (3 replies, posted in Russian)
Вы неверно связываете таблицы в SQL запросе, правильный запрос
sql := 'SELECT Combb.combb,employees.firstname, employees.lastname, strftime(''%d.%m.%Y'', employees.dateofbirth) as dateofbirth, users.login FROM employees LEFT OUTER JOIN users ON users.id=employees.id_users LEFT OUTER JOIN Combb ON Combb.id=employees.id_Combb'
также в запросе изменен формат даты на ДД.ММ.ГГГГ
5,694 2016-01-18 12:12:31
Re: Start-stop-elapsed day time (15 replies, posted in Script)
You need to know how many days between two dates?
5,695 2016-01-18 12:05:18
Re: Нужна помощь (28 replies, posted in Russian)
1. Добавляю поле.
2. Запускаю проект.
3. Открываю прибор через форму редактирования.
4. Появляется ошибка.По первому вопросу есть какие-нибудь предложения?
Спасибо за найденную ошибку, скачайте пожалуйста бета версию 2.4
https://www.dropbox.com/s/ro1hs53q8rdv5 … a.zip?dl=0
открой проект в данной версии, затем удалите поле foto и снова его создайте.
5,696 2016-01-18 10:57:11
Re: Нужна помощь (28 replies, posted in Russian)
Попробуйте этот скрипт
procedure main_mainGrid_OnChange (Sender: string; Action: string);
var
i, mNow, yNow, c, q, e : integer;
iRow, iCol : integer;
k : integer;
DD, YY, MM: word;
begin
c := main.mainGrid.RowCount - 1;
i := main.mainGrid.Columns.Count-1;
for iRow := 0 to c do
begin
if (not ValidInt(main.mainGrid.Cells[13,iRow])) or (not ValidInt(main.mainGrid.Cells[14,iRow])) then continue;
for iCol := 0 to i do
begin
q := StrToInt (main.mainGrid.Cells[13,iRow]); // определяем квартал поверки
e := StrToInt (main.mainGrid.Cells[14,iRow]); // определяем год поверки
DecodeDate(Now, YY, MM, DD); // декодируем текущую дату
mNow := StrToInt ((IntToStr(MM))); // извлекаем месяц
yNow := StrToInt ((IntToStr(YY))); // извлекаем год
if (mNow >=1) and (mNow <=3) then k := 1; // определяем текущий квартал
if (mNow >=4) and (mNow <=6) then k := 2;
if (mNow >=7) and (mNow <=9) then k := 3 ;
if (mNow >=10) and (mNow <=12) then k := 4;
if (e < yNow) then main.mainGrid.Cell[iCol,iRow].Color := clRed; // если год меньше текущего
if (e = yNow)and (q < k) then main.mainGrid.Cell[iCol,iRow].Color := clRed; // год совпадает квартал меньше текущего
if (e = yNow)and (q = k) then main.mainGrid.Cell[iCol,iRow].Color := clYellow; // квартал и год совпадает с текущим
if (e = yNow)and (q - k = 1) then main.mainGrid.Cell[iCol,iRow].Color := clGreen; // квартал и год совпадает с текущим
main.Edit3.Text := 'Списан';
main.Edit4.Text := 'На списание';
main.mainGrid.BestFitColumns(bfBoth); // автоподбор ширины по содержимому ячеек и названия колонок
end;
end;
end;
я добавил проверку чисел в ячейках, что они являются числами, ведь там может быть и пустое значение, что вызывает ошибку
if (not ValidInt(main.mainGrid.Cells[13,iRow])) or (not ValidInt(main.mainGrid.Cells[14,iRow])) then continue;
5,697 2016-01-17 22:40:25
Re: Графическое процентное отображение (11 replies, posted in Russian)
memult
Пожалуйста, создайте для каждого вопроса отдельную тему.
5,698 2016-01-17 22:34:45
Re: adding a date? (2 replies, posted in General)
Please check out this example:
http://myvisualdatabase.com/forum/misc. … download=1
5,699 2016-01-17 22:30:23
Re: error in your SQL syntax (1 replies, posted in Russian)
Для MySQL слово read является системным, поэтому попробуйте его обрамить обратными кавычками в SQL запросе
`read`
также возможно у вас есть слово `write`
5,700 2016-01-16 18:22:23
Re: Смена строк местами (17 replies, posted in Russian)
Да,на главной форме. Динамическую ширину я добавил бы уже потом в таблице на главной форме.
Готово.