9,526

(9 replies, posted in Russian)

А как это? )

9,527

(13 replies, posted in Russian)

frost666
Пожалуйста.

gulmirch1k
скорей всего нет, расскажите пожалуйста, что именно вы хотите реализовать таким образом?

9,529

(13 replies, posted in Russian)

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

пример, кнопку располагаем на Form2

procedure Form2_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     Form2.Close; // закрывает текущую форму
     Form3.Show; // открывает форму Form3
end;

9,530

(2 replies, posted in Russian)

Думаю лучше указывать дату рождения, а возраст вычислять с помощью вычисляемого поля:
date('now') - birthdate + (case when strftime('%m-%d', 'now') < strftime('%m-%d', birthdate) then -1 else 0 end)


где birthdate - дата рождения.


зачем на всех формах, предназначенных для добавления/редактирования записи присутствует TableGrid?

masterxpit
это реализуемо с помощью скриптов

9,532

(237 replies, posted in Russian)

Roman.SHmakov
Спасибо за идеи.

1-3. Запланировано, появится со временем.
4. Не совсем понял, что имеется ввиду, вы всегда можете самостоятельно написать документацию и распространять ее вместе с базой данных.
5. В принципе программа в установке не нуждается, можете скопировать папку My Visual Database на флешку.
6. Ок )

9,533

(2 replies, posted in General)

You can use function SQLExecute for read database table

Example, how to compare date from DateTimePicker and database field

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   sDate: string;
   sResult: string;
begin
     sDate := FormatDateTime('yyyy-MM-DD 00:00:00.000', Form1.DateTimePicker1.DateTime); // get date like string with format yyyy-MM-DD 00:00:00.000
     sResult := VarToStr(SQLExecute('SELECT count(id) FROM person WHERE datefield="'+sDate+'"')); // SQL query for calculate count of records with same date in DateTimePicker1
     ShowMessage(sResult); // show count
end;

9,534

(9 replies, posted in Russian)

My Visual database 1.41
скачать: http://myvisualdatabase.com/download/myvisualdb.exe


Что нового?
Добавлены функции для скрипта
- SQLExecute
- OpenFile
- OpenURL


Добавлены многие методы компонентов для использования в скриптах


Обновлена документация (раздел Скрипты)
http://myvisualdatabase.com/help_ru/


Исправлены ошибки.

9,535

(10 replies, posted in Russian)

SQL запросы нужны для скрипта, но тут  в двух словах не рассказать.


не понял вопроса на счет TableGrid2


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

9,536

(10 replies, posted in Russian)

в принципе это возможно, но необходимо писать скрипт с использованием SQL запросов.


как вариант, вместо ComboBox можно все таки использовать TableGrid на форме заказа, в котором будут видны все покупатели, и вы просто выбираете в нем необходимого покупателя.

9,537

(10 replies, posted in Russian)

ComboBox так же может содержать несколько полей, в качестве примера, свойство FieldName может быть такого вида:
{lastname} {firstname} Адрес: {address}


таким образом все что в фигурных скобках, это название полей

9,538

(10 replies, posted in Russian)

У заказа может быть только один покупатель? тогда вам не нужен TableGrid1, вместо него разместите ComboBox где вы и будете выбирать покупателя для данного заказа.

ifnull(a1,a2)
функция возвращает первый аргумент, который не равен NULL

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

mitrich45
не понял вопроса

9,541

(10 replies, posted in Russian)

записи в базах данных не перемещаются между таблицами, а только лишь устанавливаются связи, возможно вы не правильно спроектировали структуру базы данных либо я не правильно понял вопроса )

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

,ifnull(

(SELECT SUM(detall.price) FROM detall WHERE detall.id_application = application.id)

,0) AS SumDetallPrice

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

urkov1987
данный пример проекта будет работать только в версии 1.41, которую я сегодня обновил, скачайте ее по ссылке ниже
https://www.dropbox.com/s/fr76z69sc69l1 … 201.41.zip

попробуйте вместо SUM использовать TOTAL

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

9,547

(237 replies, posted in Russian)

Niema
пока не могу сказать, не изучал этот вопрос, но если это востребовано, то конечно появится со временем.

1. К сожалению не понял вопроса )

2. Используем событие OnAfterClick от кнопки, отвечающую за поиск

procedure Form1_bSearch_OnAfterClick (Sender: string);
var
   i,c: integer;
   sDate: string;
begin
     c := Form1.GridSearch.RowCount-1; // узнаем количество строк в гриде                                                                         
     for i := 0 to c do // цикл перебора всех строк в гриде                                                                                                
     begin
          sDate := Form1.GridSearch.Cells[0,i]; // получаем из первого столбца текстовое значение даты                                                                                                                                 
          if ValidDate(sDate) then // на всякий случай проверяем, верный ли формат даты                                                                                                                            
             if StrToDate(sDate) <= (Date-3) then Form1.GridSearch.Cell[0,i].Color := clYellow; // сравниваем дату в ячейке с текущей датой +3 дня, если дата меньше или равно, то окрашиваем в желтный                                                                                                                                                                                                                                            
     end;
end;

3. В текущей версии это не поддерживается.

4. К сообщению прикреплен тестовый проект, с примером реализации, добавлен пункт в подменю File и непосредственно в меню
но перед этим скачайте версию 1.41
https://www.dropbox.com/s/fr76z69sc69l1 … 201.41.zip

9,549

(8 replies, posted in Russian)

Для этого вам потребуется создать два события


// событие клика по чекбоксу
procedure Form1_CheckBox1_OnClick (Sender: string);
begin
     Form1.ComboBox1.Enabled := Form1.CheckBox1.Checked;
end;

// событие в момент появления формы
procedure Form1_OnShow (Sender: string; Action: string);
begin
     Form1.ComboBox1.Enabled := Form1.CheckBox1.Checked;
end;

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


atempbox
планируется, цена для коммерческого индивидуального использования будет в пределах $100

у меня особо не дергается, но кое что поправил, посмотрите, сейчас ок?