Думаю можно так:


     Form1.ComboBox1.dbFilter := 'id_usertype = 3';
     UpdateDatabase('users');

при условии, что в таблице пользователей, есть например поле id_usertype, которое определяет тип пользователя


либо можно так

     Form1.ComboBox1.dbFilter := '(username = "sale") or (username = "spec1") '; // в списке комбо будут только перечисленные имена пользователей, остальные будут скрыты
     UpdateDatabase('users');

9,002

(4 replies, posted in Russian)

SelectedRow - Возвращает порядковый номер выбранной строки.
пример:

ShowMessage('Выбрана строка: ' + IntToStr(Form1.TableGrid1.SelectedRow));

страница документации по TableGrid
http://myvisualdatabase.com/help_ru/scr … egrid.html

9,003

(4 replies, posted in Russian)

Код явно с ошибками.

frmZayavRashodMat.TableGrid1.dbItemID
возвращает идентификатор записи из базы данных (поле id)
он не является порядковым номером


зачем вы подставляете этот идентификатор записи в Cells[11,i]
я не понимаю )

In current version you can do it using script, but it is not convenient.


Here you can download example project.

1. Можно, добавил такую возможно в бета версию 1.45, скачайте ее
https://www.dropbox.com/s/88lx13h9cw5ro … 5.zip?dl=0


задать имя столбца можно так

Form1.TableGrid1.Columns[0].Header.Caption := 'Первая колонка';


2. Необходимо вручную экранировать кавычки, попробуйте так

procedure Form2111_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   s1, s2: string;
begin
    s1 := ReplaceStr(Form2111.Edit1.Text, '"', '""');
    s2 := ReplaceStr(Form2111.Edit2.Text, '"', '""');

   SQLExecute('INSERT INTO Contractors (record_count, LongName, ShortName) VALUES ("'+Form2111.EditCounter1.Text+'","'+s1+'","'+s2+'")');
   Form211.TableGrid1.dbUpdate;
   Form2111.Close;
end;

3. Скачайте проект с примером по ссылке ниже

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

svalute := SQLExecute('SELECT id FROM CurrancyEx WHERE (date = ' + sDate + ') AND (id_Currancy = ' +  ValuteID + ');');
               if svalute = '' then  SQLExecute ('INSERT INTO CurrancyEx (date, id_Currancy, sum) VALUES ('+ sDate +','+ ValuteID +','+arrStr[2] +');');
               if svalute <> '' then  SQLExecute ('UPDATE CurrancyEx SET sum = ' + arrStr[2] + ' WHERE id = ' + svalute);

           
код не тестировал )

Доработал бета версию 1.45, скачайте сначала ее
https://www.dropbox.com/s/88lx13h9cw5ro … 5.zip?dl=0



Данные файлы распакуйте в папку с проектом с заменой, затем запустите проект новой версией My Visual Database

1. В отчете необходимо создать событие компонента Reportnumber, OnBeforePrint

procedure ReportnumberOnBeforePrint(Sender: TfrxComponent);
begin
       MasterData1.Visible := <Report."number"> <> '';                                               
end;

2. http://myvisualdatabase.com/forum/viewtopic.php?id=98

9,009

(3 replies, posted in Script)

sonixax


May be you have old version? Please, download latest 1.44 version.
Or please, send me your project to support@drive-software.com


I'll try to help you.

9,010

(1 replies, posted in Russian)

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


1. Пока это можно сделать только с помощью скрипта, используя событие OnChange компонента TableGrid

procedure Form1_TableGrid1_OnChange (Sender: string);
begin
     Form1.TableGrid1.Columns[0].Alignment := taRightJustify; // выравнивание к правому краю
     Form1.TableGrid1.Columns[1].Alignment := taCenter; // выравнивание по центру
     Form1.TableGrid1.Columns[2].Alignment := taLeftJustify; // выравнивание к левому краю
end;

2. Покажите пожалуйста скриншот, пока такого не встречалось.

Поправил немного, и квитанцию настроил, только ее нужно оформить как следует )

+ Form_redakt_idtv.Edit11.Text + '","'
+ Form_redakt_idtv.Edit10.Text + '","'
+ FormatDateTime('yyyy-MM-DD 00:00:00.000', Form_redakt_idtv.DateTimePicker1.DateTime) + '","'
+ FormatDateTime('yyyy-MM-DD 00:00:00.000', Form_redakt_idtv.DateTimePicker2.DateTime) + '",'
+ b2 + ','
+ b1 + ','
+ IntToStr(Form_redakt_idtv.ComboBox1.dbItemID) + ','
+ IntToStr(Form_redakt_idtv.ComboBox2.dbItemID) + ','
.......

9,013

(7 replies, posted in Russian)

zc13569
пришлите еще раз ваш проект с актуальной базой, теперь думаю должно получится.

9,014

(3 replies, posted in Reports)

Hello,


You can, but not directly.
You should use button with action "Report" and use the same settings like in button with action Search.


Thus, you'll get the same result in report.

9,015

(7 replies, posted in Russian)

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

Спасибо за найденный баг, исправил, скачайте бета версию 1.45
https://www.dropbox.com/s/88lx13h9cw5ro … 5.zip?dl=0

No, it's not support.

9,018

(7 replies, posted in Russian)

savage wrote:
  • когда через шифт выделяешь элементы в составе группы (GroupBox) - сначала входящий в группу контролл, следом - всей группы, то выскакивает окошко с предупреждением "Invalid pointer operation" и прога виснет. Аналогично, если сначала была выделена группа, а потом случайно тыкнул на поле вкладки

к сожалению не смог добиться этого, либо неверно понял,
например в GroupBox есть две кнопки, выделяю эти две кнопки, затем и сам GroupBox, ошибки нет.


savage wrote:
  • почему-то вставка после копирования происходит со смещением на +8 от левого края формы (вкладка базовая -> вкладка куда копирую). У меня группы и гриды на базовой вкладке идут с отступом в 8. Копирую и вставляю на следующей - отступ уже 16...

это удобно если происходит копирование на туже самую форму, чтобы было видно компонент который вставили, но такое поведение лишнее если копируется на другую форму, пока не доделал, поправлю )


savage wrote:
  • при работе необходимо учитывать тот факт, что ты сначала должен выделить 1 "жертву", а потом уже использовать shift (нет защиты от дурака). Например, если я работаю с контроллами на вкладке, то она по умолчанию выделена. Нажав сразу shift, я сразу начинаю выделать все объекты, включая уже выделенные до этого, с соответствующими последствиями... Имхо, было бы лучше, чтобы режим группового выделения начинал работать при его явном включении - нажал - включил режим и первый выбранный объект после нажатия должен быть, действительно, первым

это стандартное поведение для таких операций, тоже самое в среде Delphi или даже в проводнике при выделении папок, думаю лучше не менять.


savage wrote:
  • по поводу выделения еще 1 нюанс - если нечаянно выделил лишний объект - как его опять сделать неактивным?Приходится переходить на другую вкладку, просто повторный клик на выделенный объект приводит к 2 выделению...

согласен, нужно доработать )


savage wrote:
  • неплохо было бы предусмотреть доп. защиту от дурака  - когда у меня много контроллов, то часто я нечаянно выделяю всю форму (просто промахнувшись мимо). Возможно, лучше сделать так, чтобы нельзя было выделять формы и вкладки целиком

это стандартное поведение для таких  операций, лучше оставить как все привыкли.

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

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

sval := SQLExecute('SELECT id FROM currency WHERE (date = ' + sDate + ') AND (id_valute = ' +  ValuteID + ') AND (value = ' + arrStr[2] + ') ;');
if sval = '' then SQLExecute ('INSERT INTO currency (date, id_valute, value) VALUES ('+ sDate +','+ ValuteID +','+arrStr[2] +');');  
procedure frmEmployee_OnShow (Sender: string; Action: string);
begin
   frmEmployee_ComboBox1_OnChange ('');
end;

procedure frmEmployee_ComboBox1_OnChange (Sender: string);
begin
     frmEmployee.Edit1.Text := SQLExecute ('SELECT bic FROM bank WHERE id = ' + IntToStr(frmEmployee.ComboBox1.dbItemID) );
     frmEmployee.Edit2.Text := SQLExecute ('SELECT Account FROM bank WHERE id = ' + IntToStr(frmEmployee.ComboBox1.dbItemID) );
end;

Также можете скачать проект с примером данной реализации.

9,022

(5 replies, posted in Russian)

Пришлите пожалуйста ваш проект на support@drive-software.com
посмотрю в чем дело.

9,023

(5 replies, posted in Russian)

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

9,024

(237 replies, posted in Russian)

CrazyWetEr

скачайте ее еще раз )

Да.. у нас просто разные форматы дат в региональных настройках, поэтому мой csv файл был некорректный относительно ваших региональных настроек.