Приветствую,
поправил, в настройках грида необходимо добавлять колонку непосредственно из поля dva.w
first.id_dva содержит только идентификатор записи из таблицы dva
My Visual Database → Posts by DriveSoft
Приветствую,
поправил, в настройках грида необходимо добавлять колонку непосредственно из поля dva.w
first.id_dva содержит только идентификатор записи из таблицы dva
i think you have wrong path to file, please try to open this on Explorer:
\\AIRMITI$\AIRPF001\Z:\WIP\WIP.accdb
it's works?
if you need to make reports, the SQL is required in current version, but I plan to do to create reports without SQL.
In the future, the program will be paid )
Any way, MyVDb uses the popular technology (SQL and Pascal script (Delphi)) that may be useful to you and without MyVDb.
Обновить данные с помощью скрипта в гриде можно методом dbUpdate, пример
Form1.TableGrid1.dbUpdate
но тут нужно придумать механизм, который будет обновлять автоматически данные в гридах, при изменении данных в базе данных, первое что приходит на ум, это создать еще одну таблицу в базе данных, и вешаем скрипт на кнопку Сохранить, чтобы она писала в эту таблицу случайное число. Так же в скрипте необходимо создать объект TTimer, который будет периодически читать это случайное число из таблицы БД и запоминать его, в случае если оно изменилось, то вызывать метод dbUpdate у необходимого грида.
Вы это вполне сможете реализовать если знакомы с Delphi.
Thank you for idea, it is planned to develop.
это можно сделать только с помощью скрипта, пример:
// событие OnAfterClick кнопки поиска
procedure Form1_bSearch_OnAfterClick (Sender: string);
var
i,c: integer;
begin
c := Form1.TableGrid1.RowCount-1; // получаем количество строк в гриде
for i := 0 to c do // цикл перебора всех строк
begin
// красим ячейку в зависимости от текста в ней, в колонке 7
if Form1.TableGrid1.Cells[7,i] = 'Принято' then Form1.TableGrid1.Cell[1,i].Color := clYellow;
if Form1.TableGrid1.Cells[7,i] = 'Ремонтируется' then Form1.TableGrid1.Cell[1,i].Color := clRed;
if Form1.TableGrid1.Cells[7,i] = 'Готов' then Form1.TableGrid1.Cell[1,i].Color := clGreen;
end;
end;
как видно, красятся ячейки только по нажатию на кнопку Поиск.
перед использование данного скрипта, скачайте последнюю неофициальную версию 1.41
https://www.dropbox.com/s/fr76z69sc69l1 … 201.41.zip
kodecs
Извиняюсь, забыл ответить.
>Больше половины вопроса отпала сама собой (методом научного тыка)
данный запрос просто перемешает все данные.
Запрос должен быть примерно такого вида, выведеь данные сотрудника, который был выбран в гриде TabSotrudniki
SELECT 0 as "sort", Familia as "Tip", Ymia as "inventarnii", Otchestvo as "seriinii", login as "servisniy"
FROM Sotrudniki WHERE Sotrudniki.id = {TabSotrudniki}
UNION
SELECT 1 as "sort", TypeComp, Inventar№, Servisniy№, Seriyniy№
FROM Komputers WHERE Komputers.id_Sotrudniki = {TabSotrudniki}
UNION
SELECT 2 as "sort", TypeMonitor, Inventar№, Servisniy№, Seriyniy№
FROM Monitor WHERE Monitor.id_Sotrudniki = {TabSotrudniki}
ORDER BY sort;
carlo_dj
Please, download unofficial 1.41 version
https://www.dropbox.com/s/fr76z69sc69l1 … 201.41.zip
Do you mean, calculate result in TextBox3, when user input values in TextBox1 and TextBox2?
procedure Form1_Edit1_OnChange (Sender: string);
begin
try
Form1.Edit3.Text := IntToStr( StrToInt(Form1.Edit1.Text) * StrToInt(Form1.Edit2.Text) );
except
Form1.Edit3.Text := '';
end;
end;
procedure Form1_Edit2_OnChange (Sender: string);
begin
try
Form1.Edit3.Text := IntToStr( StrToInt(Form1.Edit1.Text) * StrToInt(Form1.Edit2.Text) );
except
Form1.Edit3.Text := '';
end;
end;
Извиняюсь, допустил ошибку, попробуйте так
procedure OborudAdd_ButtonAddDoc_OnClick (Sender: string; var Cancel: boolean);
var
id: integer;
begin
id := OborudAddDoc.OborudAddDocTab.dbItemID;
SQLexecute('UPDATE Oborud SET id_DocS = '+ IntToStr(BD.TabDoc.dbItemID) +' WHERE id = ' + IntToStr(id) );
OborudAddDoc.ButtonCancel.Click;
end;
закрыть форму
OborudAddDoc.Close;
I have made some changes, please, check it.
Syntax is correct, do you get any message of error?
Hello,
it is planned, thanks )
Владислав Косяков
id := OborudAddDoc.OborudAddDocTab.dbItemID;
SQLexecute('UPDATE Oborud SET id_DocS = '+ cbDocs.dbItemID +' WHERE id = ' + IntToStr(id) );
где cbDocs это комбобокс с нужным выбранным значением документа или TableGrid
There is no email in the post, please send me to email.
Hello,
1. Please, send me project folder, where you can't save picture.
support@drive-software.com
2. In current version you can make export from TableGrid to Excel using button with action "Open in Excel"
For create report, you should use SQL query, in the future it will be possible without SQL.
Thanks.
Please, send me a whole folder of project, i need all files.
support@drive-software.com
Also you can see video lesson, how to create phone book
https://www.youtube.com/watch?v=bG30pqCrw8k
But in you case, instead of phone numbers, you will have orders.
2. it automatically work with doubleclick or rightclick and choose the "Show Record" if you have button with action "Show Record"
I think it is logical to have a button for editing.
4. You can make footer in tablegrid, please see images for details:
http://myvisualdatabase.com/forum/myfil … search.png
http://myvisualdatabase.com/forum/myfil … r_grid.png
also you can download project with footer grid:
http://myvisualdatabase.com/database_ex … nvoice.zip
you should not keep the sum of purchases in database, it is not correct, it should always be calculated.
Yes, you can place database file in shared folder or network drive, then go to "Options" > "Database location" for select path to database file
after that restart your application.
Hello,
You can use freeware program SQLiteStudio for import data from dBase(DBF), also you can make first export to universal format CSV and then make import also by using SQLiteStudio
Hello,
I was able to check it, works.
OpenFile ('Z:\WIP\WIP.accdb');
when you double click on file WIP.accdb, it opens automatically by Access?
Да.. в данном случае сортировка поможет
SELECT
"Оборудование, всего",
Count(Oborud.id),
-1 as "id"
FROM Oborud
UNION
SELECT
StatusObS.statusob,
Count(Oborud.id),
StatusObS.id
FROM Oborud
LEFT OUTER JOIN StatusObS ON Oborud.id_StatusObS = StatusObS.id
GROUP BY StatusObS.statusob ORDER BY id;
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
id: integer;
begin
id := Form1.TabDocOborud.dbItemID; // получаем id записи оборудования
if id <> -1 then SQLexecute('UPDATE Oborud SET id_DocS = null WHERE id = ' + IntToStr(id)); // если id не равно -1, то выполняет SQL запрос по удалению значения id_DocS
end;
при выполнении этого скрипта, будет выведено сообщение об ошибке, не обращайте пока на него внимание, будет исправлено в версии 1.41
In current version, you can do it only using script with SQL query.
Hello,
1.
Yes, you can use symbols % and _
Also you can set property of TextBox.Filter = %s%
2. Small bug, i should hide this item without button for Show Record, thanks.
3. Thank you, fixed.
4. What do you mean? Create footer in grid with Sum? or get sum value from footer grid by using script?
My Visual Database → Posts by DriveSoft
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi