Приветствую,


1. в таблицу БД partsapp необходимо добавить поле для цены


2. на форме frmPartApp добавить текстовое поле, где можно будет указать цену.


таким образом на этой форме вы будете одновременно указывать количество и цену.
но отчеты придется также переделывать, чтобы учитывалась цена из нового поля.

Приветствую,


это возможно сделать только с использованием скриптов и языка запросов SQL.
Как я понимаю, цвет должен говорить о неком статусе записи, поэтому можно сделать так:


1. В таблице базы данных завести поле, в котором будет хранится статус записи.


2. При нажатии по кнопке, выполнять функцию SQLExecute, которая с помощью SQL запроса изменит статус выбранной записи, затем вызвать метод компонента TableGrid.dbUpdate, чтобы сработало событие OnChange


3. Воспользоваться событием OnChange, в которой написать код, который раскрасит строки с необходимым статусом.
http://myvisualdatabase.com/forum/viewtopic.php?id=451

neitrino wrote:

Кстати, обратите внимание в Group Box "Информация о технике" ни в одном из ComboBox, в настройках, невозможно выбрать таблицы БД.

дело в том, что у вас в структуре базы данных пока нет связей (внешних ключей), в настройке ForeignKey компонента ComboBox указывается внешний ключ.


neitrino
Ответил по емейл по поводу вашего проекта.

neitrino
пришлите пожалуйста ваш проект на support@drive-software.com
со ссылкой на эту тему, постараюсь помочь.

9,130

(1 replies, posted in Script)

Yes,


procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
   OpenFile('notepad.exe');
end;

9,131

(3 replies, posted in Russian)

2) Для этого необходимо воспользоваться скриптом, создал у компонента Label событие OnClick
(как создать событие, можно прочитать тут http://myvisualdatabase.com/help_ru/scr … view.html)


ссылка на форму

procedure Form1_Label1_OnClick (Sender: string);
begin
     Form2.ShowModal;
end;

ссылка в интернет

procedure Form1_Label1_OnClick (Sender: string);
begin
     OpenURL('http://google.com');
end;

Приветствую,


это можно сделать с помощью скрипта

procedure Form1_CheckBox2_OnClick (Sender: string);
begin
     Form1.CheckBox1.Checked := not Form1.CheckBox2.Checked;
end;

procedure Form1_CheckBox1_OnClick (Sender: string);
begin
     Form1.CheckBox2.Checked := not Form1.CheckBox1.Checked;
end;


на счет второго вопроса, попробуйте так

procedure Form1_CheckBox1_OnClick (Sender: string);
begin
     Form1.Edit1.Enabled := Form1.CheckBox1.Checked;
end;

begin
   Form1.Edit1.Enabled := Form1.CheckBox1.Checked;
end.

9,133

(5 replies, posted in General)

All you need, this, for get id from TableGrid:

FillAContainer.TableGrid1.dbItemID;

dbItemID
Returns the value -1 if the entry in the table is not selected.


Example:

ShowMessage ('ID record:' + IntToStr (Form1.TableGrid1.dbItemID)); // Get selected record id 
Form1.TableGrid1.dbItemID: = 5; // Highlight row in the table, which is a record with ID 5

9,134

(7 replies, posted in General)

tcoton
It happens to all projects?


also try download beta version 1.44 for test
https://www.dropbox.com/s/2phoggh5kfu88 … 4.zip?dl=0

9,135

(12 replies, posted in Script)

Hello,


You can do it in the beta version 1.44
https://www.dropbox.com/s/2phoggh5kfu88 … 4.zip?dl=0


Project example
http://myvisualdatabase.com/forum/misc. … download=1


code:

procedure Form1_TableGrid1_OnChange (Sender: string);
var
    i,c: integer;
begin
    c := Form1.TableGrid1.RowCount - 1;
    for i := 0 to c do
    begin
         if Form1.TableGrid1.Cells[3,i] = 'Fantasy' then Form1.TableGrid1.Cell[3,i].Color := clBlue;
         if Form1.TableGrid1.Cells[3,i] = 'Thrillers' then Form1.TableGrid1.Cell[3,i].Color := clRed;
    end;
end;

9,136

(12 replies, posted in Script)

try this:

var
   idRecord: integer;
begin
   SQLExecute ('DELETE FROM omada1 WHERE id = ' + IntToStr(idRecord) );

If you need SQL query, you should use function SQLExecute('Here SQL query');

Пришлите пожалуйста проект  на support@drive-software.com
постараюсь разобраться.

9,138

(2 replies, posted in General)

1. You should use field type DATE/TIME in database

2. For example, you need to keep the database at the same time the time and date for that you need to connect two components, one of which is a major, and display time, and the second slave, his name must be entered in the Calendar property of the main component, the component can be subordinate Date / Time with the property Kind = Date, or Calendar component.

A slave component, there is no need to define properties TableName and FieldName, it should be done only at the main component.

9,139

(237 replies, posted in Russian)

savage
при синтаксической ошибки, курсор автоматически встает на ее место.
на счет этого правда был баг, скачайте снова бета версию 1.44, поправил )

Спасибо, исправлю )

попробуйте так

// показать в комбобоксе последний введенный тип задачи
procedure NewTask_ButTypeEd_OnAfterClick (Sender: string);
begin
  if NewTask.Visible then NewTask.ComboBox_Type.dbItemID := Last_Insert_id('TaskType');
  NewTask.ComboBox_Type.DoOnChange;
end;

savage
Вы об этом примере?
Form1.TableGrid1.Cell[3,4].Color := clRed;
к сожалению не нашел ошибку, можете подробней?

9,143

(12 replies, posted in Script)

Here you can find Beginner SQL Tutorial
http://www.w3schools.com/sql/sql_intro.asp
http://beginner-sql-tutorial.com/sql.htm

9,144

(1 replies, posted in General)

Hello,


Sorry, but no, in current version you can change only background of TextBox

9,145

(4 replies, posted in Russian)

Видимо  у  вас  версия с ошибкой, которую я исправил без уведомления о выходе  новой  версии,  пожалуйста скачайте последнюю версию My visual Database, запустите проект и ошибка исчезнет
http://myvisualdatabase.com/download/myvisualdb.exe


glkonst79 wrote:

И еще один вопрос вдогонку, почему у меня выводятся поля № счета не у всех заявок.
В основном если число строк в номенклатуре не рона количеству строк у поставщика. Хотя не понятно как они связаны с собой

Связано с наличием лишнего внешнего ключа id_Appcontractor в таблице Application
ключи id_Appnomenklature и id_consumption так же думаю являются лишними.

9,146

(1 replies, posted in General)

I added new property of ComboBox, Filter, where you can write condition, example: active=1
Please, download latest beta version 1.44
https://www.dropbox.com/s/2phoggh5kfu88 … 4.zip?dl=0


Also you can use TableGrid instead ComboBox, in settings of TableGrid there is an option "3. Filter"

9,147

(5 replies, posted in General)

Unfortunately I do not know how to configure this.


May be will be better use TableGrid instead ComboBox, if you are using TableGrid you can use function Find (Ctrl+F)
Also you can use TextBox, button search and property Increm. Search of TableGrid for filtering record in TableGrid.


More info about property Increm. Search
https://translate.googleusercontent.com … p4hGUvVCSA

9,148

(12 replies, posted in Script)

SQLExecute ('INSERT INTO omada1 (omada1)  VALUES ("'+ Form1.Edit1.Text +'")');
SQLExecute ('INSERT INTO omadaA (omada2) VALUES ("' + Form1.Edit2.Text +'")'); 

for delete

var
   idRecord: integer;
begin
   SQLExecute ('DELETE FROM omada1 WHERE id = ' + IntToStr(idRecord) +');

where idRecord it's id of record


Also you can delete records using by standart component TableGrid and button with action DELETE RECORD

Приветствую,


1. создайте глобальную переменную
var
   idUser: integer;


2. в коде, где выполняется условие, в случае успешной авторизации, запомните id пользователя
idUser := FormLogin.ComboBoxLogin.dbItemID;


3. В событии формы OnShow для создания/редактирования записи напишите следующий код, который при создании новой записи, автоматически выберет в ComboBox текущего пользователя
procedure Form2_OnShow (Sender: string; Action: string);
begin
   if Action = 'NewRecord' then Form2.cbUser.dbItemID := idUser;
end;


4. Желательно компонент Form2.cbUser сделать заблокированным, чтобы пользователь сам не мог менять в нем значение
Form2.cbUser.Enabled := False;

9,150

(12 replies, posted in Script)

You can do it using by script, example

SQLExecute ('INSERT INTO table1 (field1, field2) VALUES ("value1", "value2")');
SQLExecute ('INSERT INTO table2 (field1, field2) VALUES ("value1", "value2")');