kunar80
Пришлите пожалуйста проект, с файлом, который пытаетесь импортировать )
посмотрю, где ошибка.
8,501 2014-12-01 12:02:04
Re: Импорт и журнал действий. Как связать? (18 replies, posted in Russian)
8,502 2014-12-01 11:44:18
Re: Дата в комбобоксе (8 replies, posted in Russian)
Речь точно про компонент ComboBox?
Для даты необходимо использовать компонент DateTimePicker, в свойсте которого Format, нужно написать необходимый формат даты, в вашем случае например так: d.MMMM
8,503 2014-12-01 10:39:25
Re: формат даты (9 replies, posted in Russian)
Чучкин Евгений
тогда просто напишите там о вашем проекте, я сам добавлю файл к вашему сообщению )
8,504 2014-12-01 10:36:28
Re: My visual Database User´s manual (24 replies, posted in General)
Hello The Engineer
Well I'm waiting for DriveSoft's response about your traduction
To know if I go on with mine or if yours is OK for him
I go ahead with an operating mode about creating application with MDBYY
Thank you also for your help )
I will use translations by The Engineer.
8,505 2014-12-01 10:32:48
Re: My visual Database User´s manual (24 replies, posted in General)
I have complete the English Manual v1.0 and sent the pdf file to be evaluated by Drive Software.
It as been created by The Engineer in UK
Thank you for the help.
Excellent translation!
8,506 2014-12-01 10:19:21
Re: формат даты (9 replies, posted in Russian)
Чучкин Евгений
Пожалуйста, выложите ваш проект лучше в этой теме
http://myvisualdatabase.com/forum/viewtopic.php?id=84
а то здесь он затеряется.
8,507 2014-12-01 09:39:40
Re: Выравнивание текста по центру в заголовках колонок грида (1 replies, posted in Russian)
должно все работать, проверил в своем примере, все ок.
Пришлите пожалуйста ваш проект на support@drive-software.com
8,508 2014-12-01 09:36:06
Re: Скидка участникам форума 50% (15 replies, posted in Russian)
Sergius
Приветствую,
К сожалению даже примерно не могу сказать, слишком не скоро это будет )
8,509 2014-11-30 22:22:40
Re: PageActive control Question? (1 replies, posted in General)
Hello,
Thank you for bug report.
Bug is fixed, please, download again 1.48 beta version:
https://www.dropbox.com/s/6rz92s72djtmv … 8.zip?dl=0
function Form1.PageControl1.Color = clBtnFace; gives me error Undeclared Identifier: 'Color' at 398: 25
This property (Form1.PageControl1.Color) not exists, you can't change color of PageControl
8,510 2014-11-30 20:12:51
Topic: Бета версия 1.48 (18 replies, posted in Russian)
Скачать бета версию 1.48:
https://www.dropbox.com/s/6rz92s72djtmv … 8.zip?dl=0
- Для компонента TableGrid добавлен метод BestFitRow (30.11.2014)
позволяет для указанной строки автоматически изменить ее высоту, в зависимости от содержимого ячеек
- Реализована возможность создания новых полей в БД без потери данных (08.01.2015)
- Реализована возможность создания и удаления таблиц в БД без потери данных (09.01.2015)
- Реализована возможность удаления полей из таблиц БД без потери данных (10.01.2015)
- Реализована возможность редактирования полей из таблиц БД без потери данных (14.01.2015)
- Реализована новая функция для скрипта SQLQuery (12.01.2015)
Позволяет получить результат SQL запроса в объект TDataSet
Пример, выводит список всех фамилий и имен в компонент Memo:
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
Results: TDataSet;
begin
SQLQuery('SELECT FirstName, LastName FROM person', Results);
while not Results.Eof do
begin
Form1.Memo1.Lines.Add( Results.FieldByName('FirstName').AsString+' '+ Results.FieldByName('LastName').AsString);
Results.Next;
end;
Results.Free;
end;
- Для компонента TableGrid добавлено свойство dbLimit (14.01.2015)
Позволяет задать максимальное количество записей, которое будет выведено в компонент.
Данное свойство работает только в том случае, когда в компонент выводится информация с помощью кнопки с действием "Поиск" или если используется опция компонента "Включить автовыполнение запроса"
пример:
Form1.TableGrid1.dbLimit := 1000;
Form1.TableGrid1.dbLimit := 0; // снимает ограничение на количество записей
8,511 2014-11-30 20:12:33
Re: Динамическая высота строк в гриде (2 replies, posted in Russian)
Для компонента TableGrid добавил метод BestFitRow,
скачайте последнюю бета версию 1.48
https://www.dropbox.com/s/6rz92s72djtmv … 8.zip?dl=0
пример использования
procedure Form1_GridEmployees_OnColumnResize (Sender: string; ACol: Integer);
begin
Form1_GridEmployees_OnChange ('');
end;
procedure Form1_GridEmployees_OnChange (Sender: string);
var
i, c: integer;
begin
// settings for header
//Form1.GridEmployees.HeaderSize := 50;
//Form1.GridEmployees.Columns[0].Header.MultiLine := True;
//Form1.GridEmployees.Columns[0].Header.Caption := 'One line' + #13 + 'Two line';
Form1.GridEmployees.Options := Form1.GridEmployees.Options or goRowResizing;
c := Form1.GridEmployees.Columns.Count - 1;
for i := 0 to c do
begin
Form1.GridEmployees.Columns[i].VerticalAlignment := taAlignTop;
Form1.GridEmployees.Columns[i].WrapKind := wkWordWrap;
end;
c := Form1.GridEmployees.RowCount - 1;
for i := 0 to c do Form1.GridEmployees.BestFitRow(i);
end;
Можете скачать проект с данным примером:
8,512 2014-11-30 20:05:31
Re: Ошибка "no such column" (13 replies, posted in Russian)
mihel
Отправьте пожалуйста ваш проект на support@drive-software.com
посмотрю, где ошибка.
8,513 2014-11-30 18:55:20
Re: Импорт и журнал действий. Как связать? (18 replies, posted in Russian)
Извиняюсь, запутался уже в этих проектах )
https://www.dropbox.com/s/pncndbsl1hk72 … 5.zip?dl=0
8,514 2014-11-30 13:42:59
Re: Импорт и журнал действий. Как связать? (18 replies, posted in Russian)
Попробуйте так
//============== ИМПОРТ_1 =================================================
procedure frmChoice_bImportNAF_OnClick (Sender: string; var Cancel: boolean);
var
OpenDialog: TOpenDialog;
sl: TStringList;
arrStr: array of string;
i,c: integer;
sid_sked: string; //опись
sid_type: string; //тип дела
sDocNum: string; //номер дела
sDocName: string; //название
sid_year: string; //год формирования
sBeginDate: string; //начато
sEndDate: string; //окончено
sid_period: string; //срок хранения
sPages: string; //количество страниц
sid_room: string; //комната
sid_scaff: string; //стеллаж
sid_rack: string; //полка
sNote: string; //примечание
YY, MM, DD: string;
sCurrentDate: string;
sForm: string;
sOperation: string;
sSked: string;
sType: string;
sYear: string;
sPeriod: string;
sRoom: string;
sScaff: string;
sRack: string;
sFileYes: string;
begin
OpenDialog := TOpenDialog.Create(frmChoice);
OpenDialog.InitialDir := 'd:\Archive 1.01\ImportCSV';
if OpenDialog.Execute then
begin
sl := TStringList.Create;
sl.LoadFromFile (OpenDialog.FileName); ///открытие файла
c := sl.Count - 1;
for i := 1 to c do
begin
arrStr := SplitString(sl[i], ';');
//0 sid_sked
if arrStr[0] <> '' then
begin
sid_sked := SQLExecute ('SELECT id FROM sked WHERE sked LIKE "' + arrStr[0] +'"');
if sid_sked = '' then
begin
SQLExecute ('INSERT INTO sked (sked) VALUES ("'+ arrStr[0] +'");');
sid_sked := IntToStr(Last_Insert_id('sked'));
if sid_sked = '-1' then sid_sked := 'NULL';
end;
end else sid_sked := 'NULL';
//1 sid_type
if arrStr[1] <> '' then
begin
sid_type := SQLExecute ('SELECT id FROM type WHERE type LIKE "' + arrStr[1] +'"');
if sid_type = '' then
begin
SQLExecute ('INSERT INTO type (type) VALUES ("'+ arrStr[1] +'");');
sid_type := IntToStr(Last_Insert_id('type'));
if sid_type = '-1' then sid_type := 'NULL';
end;
end else sid_type := 'NULL';
//2 sDocNum
if arrStr[2]<>'' then sDocNum := '"'+arrStr[2]+'"' else sDocNum := 'NULL';
//3 sDocName
if arrStr[3]<>'' then sDocName := '"' + ReplaceStr(arrStr[3], '"', '""') + '"' else sDocName := 'NULL';
//4 sid_year
if arrStr[4] <> '' then
begin
sid_year := SQLExecute ('SELECT id FROM year WHERE year LIKE "' + arrStr[4] +'"');
if sid_year = '' then
begin
SQLExecute ('INSERT INTO year (year) VALUES ("'+ arrStr[4] +'");');
sid_year := IntToStr(Last_Insert_id('year'));
if sid_year = '-1' then sid_year := 'NULL';
end;
end else sid_year := 'NULL';
//5 sBeginDate
if arrStr[5]<>'' then
sBeginDate := '"'+ FormatDateTime('yyyy-MM-DD 00:00:00.000', StrToDate(arrStr[5])) + '"'
else sBeginDate := 'NULL';
//6 sEndDate
if arrStr[6]<>'' then
sEndDate := '"'+ FormatDateTime('yyyy-MM-DD 00:00:00.000', StrToDate(arrStr[6])) + '"'
else sEndDate := 'NULL';
//7 sid_period
if arrStr[7] <> '' then
begin
sid_period := SQLExecute ('SELECT id FROM period WHERE period LIKE "' + arrStr[7] +'"');
if sid_period = '' then
begin
SQLExecute ('INSERT INTO period (period) VALUES ("'+ arrStr[7] +'");');
sid_period := IntToStr(Last_Insert_id('period'));
if sid_period = '-1' then sid_period := 'NULL';
end;
end else sid_period := 'NULL';
//8 sPages
if arrStr[8]<>'' then sPages := '"'+arrStr[8]+'"' else sPages := 'NULL';
//9 sid_room
if arrStr[9] <> '' then
begin
sid_room := SQLExecute ('SELECT id FROM room WHERE room LIKE "' + arrStr[9] +'"');
if sid_room = '' then
begin
SQLExecute ('INSERT INTO room (room) VALUES ("'+ arrStr[9] +'");');
sid_room := IntToStr(Last_Insert_id('room'));
if sid_room = '-1' then sid_room := 'NULL';
end;
end else sid_room := 'NULL';
//10 sid_scaff
if arrStr[10] <> '' then
begin
sid_scaff := SQLExecute ('SELECT id FROM scaff WHERE scaff LIKE "' + arrStr[10] +'"');
if sid_scaff = '' then
begin
SQLExecute ('INSERT INTO scaff (scaff) VALUES ("'+ arrStr[10] +'");');
sid_scaff := IntToStr(Last_Insert_id('scaff'));
if sid_scaff = '-1' then sid_scaff := 'NULL';
end;
end else sid_scaff := 'NULL';
//11 sid_rack
if arrStr[11] <> '' then
begin
sid_rack := SQLExecute ('SELECT id FROM rack WHERE rack LIKE "' + arrStr[11] +'"');
if sid_rack = '' then
begin
SQLExecute ('INSERT INTO rack (rack) VALUES ("'+ arrStr[11] +'");');
sid_rack := IntToStr(Last_Insert_id('rack'));
if sid_rack = '-1' then sid_rack := 'NULL';
end;
end else sid_rack := 'NULL';
//12 sNote
if arrStr[12]<>'' then sNote := '"'+arrStr[12]+'"' else sNote := 'NULL';
SQLExecute ('INSERT INTO one (id_sked, id_type, [docNum], [docName], id_year, [beginDate], [endDate], id_period, [pages], id_room, id_scaff, id_rack, [note]) VALUES ('+
sid_sked +','+
sid_type +','+
sDocNum +','+
sDocName +','+
sid_year +','+
sBeginDate +','+
sEndDate +','+
sid_period +','+
sPages +','+
sid_room +','+
sid_scaff +','+
sid_rack +','+
sNote +
');');
sCurrentDate := '"' + FormatDateTime('yyyy-MM-DD hh:nn:ss.000', now) + '"';
sForm := '"NULL"';
sSked := '"'+arrStr[0]+'"';
sType := '"'+arrStr[1]+'"';
sYear := '"'+arrStr[4]+'"';
sPeriod := '"'+arrStr[7]+'"';
sPages := '"'+frmDocProcessingNAF.edPages.Text+'"';
sRoom := '"'+arrStr[9]+'"';
sScaff := '"'+arrStr[10]+'"';
sRack := '"'+arrStr[11]+'"';
sNote := '"'+frmDocProcessingNAF.mNote.Text+'"';
sFileYes := '"NULL"';
sOperation := '"Додано"';
SQLExecute ('INSERT INTO logNAF (date, user, form, operation, sked, type, docNum, docName, year, beginDate, endDate, period, pages, room, scaff, rack, note, FileYes)' +
'VALUES ('+sCurrentDate+', "'+sUser+'", '+sForm+','+sOperation+','+sSked+','+sType+','+sDocNum+','+sDocName+', '+sYear+', '+sBeginDate+', '+sEndDate+', '+sPeriod+', '+sPages+', '+sRoom+', '+sScaff+', '+sRack+', '+sNote+', '+sFileYes+')');
frmChoice.Label8.Caption := IntToStr(i) + ' з ' + IntToStr(c);
Application.ProcessMessages;
end;
sl.Free;
UpdateDatabase('sked');
UpdateDatabase('type');
UpdateDatabase('year');
UpdateDatabase('period');
UpdateDatabase('room');
UpdateDatabase('scaff');
UpdateDatabase('rack');
frmChoice.TableGrid1.dbUpdate;
frmActions.tgActions.dbUpdate;
end;
OpenDialog.Free;
frmChoice.bSearch1.Click; ////!!!!!Нажатие на кнопку ПОИСК (при этом видимые записи таблицы обновляются)
end;
//====================================================================
также можете скачать проект, в который я добавил данное изменение
https://www.dropbox.com/s/9cah43ts9yeyo … l.zip?dl=0
8,515 2014-11-30 13:16:11
Re: Дублирование данных в столбцах в гриде (9 replies, posted in Russian)
zoomix
Дело в том, что на форме frmEmployee
некоторые компоненты лежали на компоненте Panel1, а некоторые просто
по верх этого компонента, вы можете это заметить, если попытаетесь
подвигать компонент Panel1, таким образом, не возможно было правильно
настроить TabOrder, исправил эту ошибку в вашем проекте. Проект отправил вам на e-mail.
8,516 2014-11-30 11:33:45
Re: Не пойму как работает ВЫЧИСЛ.ПОЛЕ (3 replies, posted in Russian)
А как из разных таблиц поля калькулировать?
Для этого, в вычисляемых полях придется воспользоваться языком запросов SQL
Можете мне прислать свой проект, с описанием, какие именно поля необходимо калькулировать, постараюсь помочь.
8,517 2014-11-30 11:12:37
Re: Adding timer (1 replies, posted in Script)
Hello,
I made example for you.
var
Timer: TTimer;
procedure Form1_OnShow (Sender: string; Action: string);
begin
Timer := TTimer.Create (nil);
Timer.OnTimer := @OnTimer;
Timer.Interval := 600000 ; // value in ms = 10 min
Timer.Enabled := True;
end;
procedure OnTimer;
var
s: string;
begin
s := SQLExecute ('SELECT COUNT(id) FROM employees WHERE lastname = "Smith"');
if StrToInt(s) > 0 then ShowMessage('Record found');
end;
procedure Form1_OnClose (Sender: string; Action: string);
begin
Timer.Free;
end;
begin
end.
Here you can download example project:
8,518 2014-11-30 11:02:19
Re: Не пойму как работает ВЫЧИСЛ.ПОЛЕ (3 replies, posted in Russian)
К сожалению не вижу вашего проекта. Можете отправить его на support@drive-software.com
Также, можете скачать данный пример:
8,519 2014-11-29 23:18:04
Re: Дублирование данных в столбцах в гриде (9 replies, posted in Russian)
zoomix
не должно быть никаких проблем с TabOrder, возможно другие компонент TextBox расположены на другом родительством элементе? тогда нумерация работает не много по другому.
Отправьте пожалуйста ваш проект на support@drive-software.com
со ссылкой на данное сообщение, посмотрю в чем причина.
8,520 2014-11-29 09:34:59
Re: Sort combobox Options! (5 replies, posted in General)
Can you send me project, where it's don't work?
support@drive-software.com
8,521 2014-11-29 01:03:21
Re: Ошибка в проекте, создаваемом по примеру. (3 replies, posted in Russian)
Приветствую,
1. На форме Form1, в настройках кнопки "Поиск", вы добавили компонент TableGrid в список "1. Выберите компоненты учавствующие в поиске", компонент не может одновременно участвовать в поиске и содержать результаты поиска.
2. На форме FrmAbonent, в настройках кнопки "OK", вы добавили компонент TableGrid1 в список сохраняемых компонентов, этого не нужно было делать, данный компонент просто содержит дочерние записи.
3. На форме FrmAbonent, в свойствах компонента EdLastName, FieldName выбрано ошибочно.
4. На форме FrmAbonent, в настройках компонента TableGrid1 необходимо снять галочку с опции "Включить автовыполнение запроса (Показать все записи таблицы)", в данном случае вам не нужны в этом компоненте все записи таблицы. Более подробней о настройках данного компонента можно прочитать здесь:
http://myvisualdatabase.com/help_ru/com … /grid.html
Исправленный проект приложил к сообщению.
8,522 2014-11-28 20:52:00
Re: Помогите с оптимизацией кода (3 replies, posted in Russian)
На событии OnClick завязано обновление грида (бывают моменты когда на одном компьютере добавили запись а на другом пока не обновить грид она не появляется, и еще через OnClick показывается детальная информация в других гридах
к сожалению пока нет автоматического метода обновления данных в TableGrid, если другой пользователь внес изменения в базу.
В качестве оптимизации, можно вместо кнопки с действием "Поиск" использовать кнопку с действием "SQL запрос", где можно ограничивать количество выводимых записей в TableGrid, например не более 100, ведь редко когда нужен список всех записей.
8,523 2014-11-28 20:25:33
Re: Помогите с оптимизацией кода (3 replies, posted in Russian)
Приветствую,
Раскрашивать TableGrid в событии OnMouseMove плохая идея, вместо этого, используйте событие компонента OnChange, тогда раскраска будет происходить один раз, сразу после обновления содержимого компонента TableGrid.
Не совсем понял, а зачем постоянно обновлять таблицу на событии OnClick?
8,524 2014-11-28 20:19:55
Re: Sort combobox Options! (5 replies, posted in General)
Hello,
Please, see an attach image file for detail: