8,676

(16 replies, posted in Russian)

baster.89 wrote:

1. Желательно переделать счётчик записей следующим образом: отображается количество пациентов только за выбранный месяц (допустим, в таблицах отображаются только те пациенты, которые поступили в октябре => счётчик выводит количество только этих пациентов).

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

baster.89 wrote:

2. В таблицу добавить столбец с нумерацией (именно не id записи, а просто номер по порядку от 1 до N, где N-последняя запись). При сортировке по ФИО/дате/полу и т.д. данный столбец остаётся в неизменном состоянии (т.е. также от 1 до N).

сделал для TableGrid1 (хиругия)
в настройках компонента просто добавьте поле # для остальных компонентов TableGrid


baster.89 wrote:

5. Настроить ввод заглавными буквами в поле ФИО (простое использование маски типа >llllllllllllllllll не нравится).

сделал
redaktor.Edit1.CharCase := ecUpperCase; // преобразование текста в верхний регистр

baster.89 wrote:

6. Что-то сделать с датами. При импорте из CSV пациентов, рожденных до 1960 года в таблице отображается некорректный год рождения (т.е. если родился в 1925-1959, то при импорте записывается 2025-2059)... (в системных настройках стоит промежуток 1930-2029). Из-за этого пришлось перейти на формат даты dd/MM/yy.

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

baster.89 wrote:

7. Отказался от Бэкапа при старте программы (вылетает ошибка о нарушении структуры скрипта, если я правильно понял, хотя при первых запусках бэкапилось всё замечательно). Так же при многократных запусках создаётся много копий БД smile По причине многократности копий отказался от бэкапа при выходе (в скрипте можно поудалять // в соответсвующих процедурах)

поправил ошибку, два раза было создано событие procedure main_OnShow



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

8,677

(2 replies, posted in Russian)

vojaka wrote:

Снова возник вопрос по выборке из базы. Проблемный момент находится по пути - кнопка отчеты - объем задания - вкладка по степеням - кнопка отчет.

В SQL запросе для отчета вы использовали переменную $id, но не выбрали компонент таблицы, с которого брать данный идентификатор
более подробней об $id можно прочитать здесь
http://myvisualdatabase.com/help_ru/com … eport.html



vojaka wrote:

P.S. еще один вопрос возник. В дальнейшем мне будет необходимо выводить данные по всей базе данных с группировкой по командам, в них во отделам. И следующая проблема это вывод всего задания со сроками поставки по часам (значения берутся из справочника времена (timeos, timeoj). Два времени по причине того что имеется два времени поставки, так же как две степени поставки.

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

kunar80
Думаю нужна проверка

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     if Form1.DBFile1.dbFileName <> '' then OpenFile(Form1.DBFile1.dbFileName)
     else ShowMessage('Файла нет');
end;

8,679

(6 replies, posted in Russian)

Владислав Косяков

Можно, каждый раз при нажатии кнопки, будет добавляться вкладка.
Предварительно на форму необходимо поместить PageControl1

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   TabSheet: TTabSheet;
begin
     TabSheet := TTabSheet.Create(Form1);
     TabSheet.Caption := 'TabName';
     TabSheet.PageControl := Form1.PageControl1;
end;

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


Для этого воспользуйтесь вычисляемым полем, которое создается на вкладке "Таблицы базы данных"
Я сделал для вас простой проект с примером, со стоимостью товаром и их количеством, в вычисляемом поле total происходит умножение.

8,681

(7 replies, posted in Russian)

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


можно с помощью скриптов, пожалуйста, скачайте этот проект в качестве примера

8,682

(11 replies, posted in Reports)

Please, send me your project to support@drive-software.com
with description, from which TableGrid you need data for report.

8,683

(23 replies, posted in Russian)

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

8,684

(23 replies, posted in Russian)

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


можно, скачайте пожалуйста данный проект для примера
http://myvisualdatabase.com/forum/misc. … download=1


окно с заставкой появляется на 5 сек, затем само закрывается, либо можно закрыть его кнопкой.

8,685

(2 replies, posted in General)

Hello,


In the current version is not implemented.


You can check the uniqueness using script, here you can download example:
http://myvisualdatabase.com/forum/misc. … download=1

kunar80
Вам необходимо изменить путь для второго DBFile через свойство CopyTo в инспекторе объектов.
Подробней о свойстве
http://myvisualdatabase.com/help_ru/com … opyto.html


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

8,687

(34 replies, posted in Russian)

delphinsl
Отправил вам исправленный проект на e-mail )

Возможно в вашем проекте главная с помощью скриптов скрывается (Form1.Visible := False)
и когда вы закрываете второстепенную форму, думаете что проект закрылся, но на самом деле это не так, проект будет закрыть тогда, когда будет закрыта главная форма
пришлите пожалуйста проект на support@drive-software.com


посмотрю, так ли это.

К сожалению отключить пункт меню Open folder with file не получится, но можно скрыть правую кнопку в компоненте DBFile

Form1.DBFile1.RightButton.Visible := False;

и рядом расположить еще одну кнопку, которая будет открывать файл из данного компонента, но по умолчанию она должна быть скрыта (Form1.Button1.Visible := False;)

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     OpenFile(Form1.DBFile1.dbFileName);
end;

тогда код будет таким

// проверка прав администратора
          s := VarToStr( SQLExecute('SELECT administrator FROM users WHERE (login = ''' + sUser + ''');') );
          if s='0' then 
          begin
              frmChoice.bSetting.Enabled := False; // если пользователь не обладает правами администратора, отключить кнопку
              Form1.DBFile1.RightButton.Visible := False; // скрываем правую кнопку
              Form1.Button1.Visible := True; // показываем кнопку, через которую можно будет открыть фай
          end;

Встроенной функции в компонент к сожалению нету, поэтому можно реализовать так

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   i,c, index: integer;
   ColumnName: string;
begin
   index := -1; // -1 если не найдено
   ColumnName := 'First Name'; // ищем данное имя колонки

   // перебор колонк в цикле с проверкой их имени
   c := Form1.TableGrid1.Columns.Count - 1;
   for i := 0 to c do
   begin
        if Form1.TableGrid1.Columns[i].Header.Caption = ColumnName then // если найдено
        begin
             index := i; // в переменной index будет хранится номер колонки
             break;
        end;
   end;

   ShowMessage(IntToStr(index)); // вывод результата
end;

8,691

(11 replies, posted in Reports)

Hello,


Added this function in latest beta version 1.47, first please download:
https://www.dropbox.com/s/bhwao1izh5q4y … 7.zip?dl=0



Here you can download example project:

8,692

(34 replies, posted in Russian)

Можно, необходимо в SQL запрос добавить поле id, в вашем случае это скорей всего BDog.id


Более подробно можно прочитать здесь, в самом низу страницы.
http://myvisualdatabase.com/help_ru/com … n_sql.html

8,693

(41 replies, posted in Russian)

Владислав Косяков
К сожалению пока такой механизм "однозадачного" редактора не реализован и вряд ли смогу реализовать в ближайшее время.


Как временная альтернатива, могу предложить оплатить $20, затем прислать мне свой проект и я его скомпилирую с лицензией (повторные компиляции проекта бесплатны). И вышлю инструкцию, как можно обнулить триал программы My Visual Database.

jazzitcool
Честно говоря так получилось по ошибке, эта надпись не планировалась, можете скачать бета версию 1.46, которая бесплатна
https://www.dropbox.com/s/30ysr48sd8ca4 … 6.zip?dl=0

8,695

(237 replies, posted in Russian)

savage
Встроить такую возможность непосредственно в компонент DBFile затруднительно, так как в данном случае необходима будет отдельная таблица в базе данных для хранения нескольких файлов. Пока не ясно как это реализовать просто, нужно подумать )


компонент DBFile может хранить ссылку на папку.

Приветствую, попробуйте так

procedure Form1_BtnExit_OnClick (Sender: string; var Cancel: boolean);
begin
   if MessageDlg('Вы действительно хотите выйти ?', mtConfirmation, mbYes + mbNo,0)=mrYes then 
form1.close;
end;

8,697

(6 replies, posted in Russian)

motorolla
у компонента Edit есть свойство Filter = %s%
но в этом случае поиск будет не только первым буквам, вам необходимо поиск именно по первым буквам?

8,698

(11 replies, posted in Russian)

Необходимо создать событие OnPress у формы, скрипт будет выглядеть так:

procedure Form1_OnKeyPress (Sender: string; var Key: Char);
begin
     if Key = #13 then
     begin
          ShowMessage('Enter button');
     end;
end;


begin
     Form1.KeyPreview := True; // это необходимо, чтобы событие срабатывало, даже если фокус ввода находится на другом компоненте
end.


Можете скачать проект с данным примером

Доработал проект )

Компоненту можно задать его время с помощью скрипта, например так, установить в нем текущее время:

Form1.DateTimePicker1.DateTime := now;

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