Спасибо, постараюсь попробовать на днях )
9,077 2014-09-28 20:50:10
Re: [Решено] Открытие файла из грида - не открывает xlsx и ругается на xls (7 replies, posted in Russian)
Данная функция необходима для сохранения файла непосредственно из файла базы данных, в вашем проекте файл в базу данных не сохраняется, а содержит просто ссылку на файл, поэтому в вашем случае код открытия файла будет таким
procedure Form1_Button9_OnClick (Sender: string; var Cancel: boolean);
var
f: string;
begin
f := SQLExecute('SELECT file_project_filename FROM Tasks WHERE id = ' + IntToStr(Form1.TabGr_TaskList.dbItemID) );
OpenFile(f);
end;
9,078 2014-09-28 20:37:08
Re: Вопрос по SQL отчет (1 replies, posted in Russian)
Приветствую,
нет никакой связи между тем, что находится в Grid и что попадет в отчет.
Возможно вы неверно создали шаблон отчета, поэтому видите только одну запись.
Отправьте пожалуйста ваш проект на support@drive-software.com с описанием проблемы, постараюсь помочь.
9,079 2014-09-28 20:34:19
Re: Как перевести запрос с параметром с кнопки в скрипт (1 replies, posted in Russian)
так можно подставить идентификатор выделенной записи из компонента TableGrid
s := SQLExecute ( 'SELECT SUM(quanty*parts.price) as total FROM partsapp WHERE id_application=' + IntToStr(Form1.TableGrid.dbItemID));
тоже самое можно сделать на форме редактирования записи, получив идентификатор записи от кнопки сохранения
s := SQLExecute ( 'SELECT SUM(quanty*parts.price) as total FROM partsapp WHERE id_application=' + IntToStr(Form2.Button1.dbGeneralTableId ));
но в этом случае, нужно понимать, что этот идентификатор записи известен только при редактировании записи, при создании новой записи, идентификатор будет равен -1, т.к. запись еще не сохранена и свой идентификатор не получила.
9,080 2014-09-28 20:26:37
Re: [Решено] Открытие файла из грида - не открывает xlsx и ругается на xls (7 replies, posted in Russian)
Пожалуйста, приложите проект.
9,081 2014-09-28 20:23:51
Re: [Решено] странное поведение кнопки "Показать запись" (2 replies, posted in Russian)
Поправил проект, ошибка была в скриптах, а именно в процедуре
procedure NewTask_TabGrSubTasks_OnChange (Sender: string);
данный SQL запрос может вернуть пустую строку, если нет данных удовлетворяющих поиску, поэтому необходимо делать проверку
sDate := SQLExecute('SELECT min(start_pf) FROM SubTasks WHERE SubTasks.id_Tasks = "' + IntToStr(idTask) + '";');
if sDate <> '' then NewTask.DateTimePicker3.DateTime := SQLDateTimeToDateTime(sDate);
можете скачать исправленный проект
9,082 2014-09-28 20:01:36
Re: Изменение цвета строки в выдаче при условии (16 replies, posted in Russian)
savage
к сожалению нет, чтобы раскрасить всю строку, придется раскрасить все ячейки этой строки.
9,083 2014-09-28 09:34:54
Re: хотелки (237 replies, posted in Russian)
Пока не знаю, надо подумать )
9,084 2014-09-28 08:59:15
Re: хотелки (237 replies, posted in Russian)
savage
Но ведь маркер курсора может находится и в теле уже другой процедуры.
9,085 2014-09-28 08:58:01
Topic: Бета версия 1.45 (7 replies, posted in Russian)
Скачать бета версию 1.45:
https://www.dropbox.com/s/88lx13h9cw5ro … 5.zip?dl=0
Что нового?
- Добавлена возможность множественного выбора компонентов в дизайнере форм (удерживая Shift) (28.09.2014)
а также их копирование и удаление.
- Добавлена функция для скрипта, позволяющая заменять произвольные символы в строке (28.09.2014)
ReplaceStr(const AText, AFromText, AToText: string): string
- Добавлена функция для скрипта (в отчетах), позволяющая преобразовать денежную сумму прописью (29.09.2014)
Проект с примером реализации: http://myvisualdatabase.com/forum/misc. … download=1
- Добавлена функция для скрипта SplitString (04.10.2014)
SplitString(const S, Delimiters: string): array of string
- Для компонента DBFile добавлено свойство CopyTo (04.10.2014)
Если у компонента в свойстве Type выбрано LinkFile, то свойство CopyTo позволяет указать, куда необходимо автоматически скопировать файл относительно пути расположения файла базы данных
Возможные значения свойство CopyTo:
\ - файл будет автоматически скопирован в папку с файлом базы данных
files - в папке расположения файла базы данных, будет создана папка files, куда файлы будут автоматически скопированы, допускается указать цепочку папок, например files\docs, данные папки будут созданы автоматически
- Добавлены новые функции для скрипта (08.10.2014)
function CopyFile(ExistingFileName, NewFileName: string;
function DeleteFile(const FileName: string): Boolean
function RenameFile(const OldName, NewName: string): Boolean
function ExtractFilePath(const FileName: string): string
function ExtractFileDir(const FileName: string): string
function ExtractFileDrive(const FileName: string): string
function ExtractFileName(const FileName: string): string
function ExtractFileExt(const FileName: string): string
function ToWords(value: real; currencyName: string = ''usd''): string
function ToWordsRu(value: real; currencyName: string = ''rub''): string
- Добавлены новые методы для ComboBox (09.10.2014)
dbAddRecord(id: integer; s: string);
dbEditRecord(id: integer; s: string);
dbDeleteRecord(id: integer);
9,086 2014-09-28 08:50:47
Re: Точка или запятая ? Что делать ? (7 replies, posted in Russian)
Моя ошибка, то что SQL запрос ругается Под Button2, исправил, скачайте пожалуйста бета версию 1.45
https://www.dropbox.com/s/88lx13h9cw5ro … 5.zip?dl=0
вводите числа с разделителем - запятой, т.к. именно она задана у вас в региональных настройках.
и не забудьте для компонента Edit3 указать свойства TableName и FieldName, чтобы система знала, что данный компонент должен содержать число с плавающей запятой.
Также добавил новую функция в скрипт, позволяющая заменить в строке один символ, на другой
ReplaceStr(const AText, AFromText, AToText: string): string
т.о. перед использованием StrToFloat, если вам необходимо, можете на всякий случай проверять правильность пользовательского ввода и исправлять десятичный разделитель, т.к. пользователю может быть неизвестно, какой знак используется в качестве разделителя, например так
if not ValidFloat(sFloat) then sFloat := ReplaceStr(ReplaceStr, '.', ','); // если строка не может быть приведена к FLOAT, меняет точку на запятую
if not ValidFloat(sFloat) then sFloat := ReplaceStr(ReplaceStr, ',', '.'); // если строка не может быть приведена к FLOAT, меняет запятую на точку
9,087 2014-09-27 23:01:29
Re: Точка или запятая ? Что делать ? (7 replies, posted in Russian)
Приветствую,
Странно, судя по описанию не должно быть ошибки.
Какая именно функция подразумевается под "А функции преобразований для FLOAT" ?
ошибка возникает при использовании скриптов или SQL запроса?
можете отправить мне свой проект на support@drive-software.com
постараюсь помочь.
9,088 2014-09-27 22:54:55
Re: HI, i need code ,,Refresh Form1 Every 1Second,, (1 replies, posted in Script)
Hi,
You can't refresh form, but you can refresh TableGrid on the Form by automatically pressing button for Search or using method: Form1.TableGrid.dbUpdate;
Here you can download example project
9,089 2014-09-27 12:42:01
Re: for data entry (1 replies, posted in General)
I'm afraid not exactly understand the question.
You can change number of field in settings button with action "Search", or you can create second button for Search, fist button will be with fours fields, second button will be with five fields.
9,090 2014-09-27 11:48:16
Re: [Решено] Фильтр в TableGrid (6 replies, posted in Russian)
думаю так:
id_TpodstSostojnTV = 2
9,091 2014-09-27 10:52:14
Re: [Решено] Сохранение в две таблицы (13 replies, posted in Russian)
Используйте событие OnAfterClick от кнопки сохранения, в основную таблицу S сохраняйте информацию с помощью кнопки с действием Сохранить запись, а в таблицу D с помощью данного скрипта
procedure Form1_Button1_OnAfterClick (Sender: string);
begin
SQLExecute( 'INSERT INTO D (X, Y, Z) VALUES ("' + Form2.Edit1.Text + '","' + Form2.Edit2.Text + '","' + Form2.Edit3.Text +'")' );
end;
9,092 2014-09-27 10:06:09
Re: [Решено] Фильтр в TableGrid (6 replies, posted in Russian)
Отвечает Александр Друзь.
шутка )
в поле Фильтр вам необходимо указать условие, примерно такого вида:
id_status = 2
к сожалению не знаю как точно называется внешний ключ в таблице бд, который ссылается на таблицу статусов.
9,093 2014-09-26 12:37:16
Re: Работа с Checkbox (1 replies, posted in Russian)
1. Вам необходимо создать 4 поля в таблице базы данных с типом ДА/НЕТ
2. На форме создания/редактирования записи, расположить 4 компонента CheckBox и присвоить каждому из них свое поле из таблицы базы данных (с помощью свойств TableName и FieldName)
3. На форме для поиска, в настройках кнопки с действием Поиск, добавить эти 4 поля, которые будут видны в результате поиска.
9,094 2014-09-26 10:18:08
Re: склад с оповещением о 0-х остатках? (2 replies, posted in Russian)
Добавил в проект Клиент-Мастер контроль остатков при списании.
Контроль осуществляется на форме frmPartApp, при событии OnClick на кнопке OK
Код:
procedure frmPartApp_Button1_OnClick (Sender: string; var Cancel: boolean);
var
s: string;
begin
// если не выбрали запчасть
if frmPartApp.GridPart.dbItemID = -1 then
begin
Cancel := True;
ShowMessage('Выберите запчасть.');
Exit;
end;
// делаем SQL запрос, чтобы узнать количество выбранной детали в GridPart на складе
s := SQLExecute ('SELECT (SUM(quanity*(id_operation=1)) - SUM(quanity*(id_operation=2))) - '+
'ifnull((SELECT SUM(partsapp.quanty) as result FROM partsapp WHERE partsapp.id_parts = '+ IntToStr(frmPartApp.GridPart.dbItemID) +'),0) '+
'FROM sklad '+
'WHERE sklad.id_parts = ' + IntToStr(frmPartApp.GridPart.dbItemID));
// проверяем, не привышаем ли расход
if StrToInt(frmPartApp.edQunity.Text) > StrToInt(s) then
begin
Cancel := True;
ShowMessage('Вы пытаетесь исрасходовать ' + frmPartApp.edQunity.Text + ' запчастей при наличии только ' + s + ' запчастей.');
end;
end;
Можете скачать проект с данной реализацией по ссылке ниже
9,095 2014-09-25 22:04:42
Re: SQL запрос в кнопке поиск (2 replies, posted in Russian)
Приветствую,
В вашем случае UNION не нужен, и не верно была связана таблица Prefix (LEFT OUTER JOIN)
Исправленный SQL запрос:
SELECT
Podrazdelenie.id as 'id',
Prefix.PrefixOP,
Podrazdelenie.Gorod,
Podrazdelenie.Obl,
Podrazdelenie.TelMob,
Podrazdelenie.FIOBK
FROM Podrazdelenie
LEFT OUTER JOIN Prefix ON Prefix.id =Podrazdelenie.id_Prefix
WHERE
(TelMob LIKE '%{EdFIOBK}%') OR
(FIOBK LIKE '%{EdFIOBK}%') OR
(prefop LIKE '%{EdFIOBK}%') OR
(Obl LIKE '%{EdFIOBK}%') OR
(case when '{EdFIOBK}'='' then 1=1 else PrefixOP LIKE '%{EdFIOBK}%' end);
9,096 2014-09-25 16:15:52
Re: [Решено] Script - вычисление курса по дате (15 replies, posted in Russian)
можно так
Form1.Label1.Caption := FormatFloat('0.00', 0.654354);
9,097 2014-09-25 16:13:38
Re: save record action for button (2 replies, posted in General)
Example, event of button with action SAVE RECORD
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
if Form1.Edit1.Text='' then
begin
ShowMessage('Empty value.');
Cancel := True; //it cancels the action button
end;
end;
9,098 2014-09-25 13:55:53
Re: [Решено] Script - вычисление курса по дате (15 replies, posted in Russian)
Проверил, у меня этот код работает для всех валют, если есть курс на указанную дату.
Может быть вы забыли компонент frmAddPay.edSumEuro внести в список сохраняемых в настройках кнопки Сохранить?
9,099 2014-09-25 13:46:55
Re: send the cursor back to a missed field (1 replies, posted in General)
You can set focus for control, example:
Form1.Edit1.SetFocus;
Also you can change backgroung color of TextBox:
Form1.Edit1.Color := clRed;
but don't forget after that return default color, for example in the event of the form OnClose
Form1.Edit1.Color := clWindow;
9,100 2014-09-25 10:21:50
Re: Из Edit в ComboBox (4 replies, posted in Russian)
можно так
Form1.ComboBox1.dbItemID := SQLExecute('SELECT id FROM Таблица WHERE fieldname LIKE "' + Form1.Edit1.Text + '");
а с какой целью это необходимо?