3,576

(5 replies, posted in Russian)

bemorhona-qt wrote:

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

Да, при необходимости его можно создать с помощью скрипта, доработал пример:

3,577

(18 replies, posted in Russian)

Popkov-alex
Здравствуйте.

У компонента ComboBox есть свойство Filter, где вы можете написать условие для фильтрации записей.
Например можете скрыть первую запись, которая имеет id=1

id<>1

т.о. будут показаны записи, id которых не равно 1

3,578

(6 replies, posted in General)

prahousefamily
Please send me your project to support@drive-software.com with link on this topic

3,579

(1 replies, posted in General)

Hello.

procedure StudentDashBoard_TableGrid1_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
      StudentDashBoard.DBImage1.Clear;
      StudentDashBoard.DBImage1.LoadFromDatabase('StudentDatabase', 'Photo', StudentDashBoard.TableGrid1.dbItemID);
end;

3,580

(37 replies, posted in General)

Unfortunately I can help you only with specific question.

3,581

(9 replies, posted in Russian)

1. К сожалению поиск по полю Дата/Время с использованием SQL запроса не был реализован в старой версии.


2. Это можно сделать скриптом, пример

procedure frmReports_сохранить_OnClick (Sender: string; var Cancel: boolean);
begin
    SQLExecute('insert or replace into period (id, timefrom, timeto) VALUES (1, "'+ FormatDateTime('yyyy-MM-DD hh:nn:ss.000', frac(frmReports.dtFrom.datetime)+trunc(frmReports.tFrom.datetime) ) +'", "'+FormatDateTime('yyyy-MM-DD hh:nn:ss.000', frac(frmReports.dtTo.datetime) + trunc(frmReports.tTo.datetime))+'")');
    frmReports.TableGrid2.dbUpdate;
end;

только уберите действие "Сохранить запись" для кнопки "сохранить"

3,582

(5 replies, posted in Russian)

bemorhona-qt wrote:

Огромное спасибо! Очень круто.
Можно еще добавить туда полосу загрузки? Ну типа когда копируеш файл а там показывается остававшееся время и зеленая полоса.

К сожалению компонент ProgressBar пока не поддерживается.

Если на сайте имеется MySQL база данных, то вы можете с помощью скрипта подключиться к ней и выполнить SQL запрос, чтобы добавить ваши данные, затем эти данные можно показать через WebGrid, пример
http://myvisualdatabase.com/webgrid/



Проще всего было бы сгенерировать html файл с помощью скрипта и загружать его на сервер используя Ftp, но пока это не реализовано, т.к. никто пока не просил об этом )

3,584

(6 replies, posted in General)

Hello.


There is no changes in the function FormatFloat, but there is some changes in the TableGrid.
Please attach your project, I will test.

3,585

(7 replies, posted in Russian)

memult
В вашем запросе здесь используется логика AND, т.е. будут показаны записи в которых есть совпадения в skan.prim и skan.klslovo одновременно, в вашем случае необходимо использовать логику OR

((CASE WHEN '{edsearch}' <> '' THEN skan.prim LIKE '%{edsearch}%'  ELSE 1=1 END) OR (CASE WHEN '{edsearch}' <> '' THEN skan.klslovo LIKE '%{edsearch}%'  ELSE 1=1 END)) AND

3,586

(7 replies, posted in Russian)

memult wrote:

Только в программе. Причём на одном компьютере только.
На других пробовал все нормально.
Поэтому и решил уточнить, возможно есть возможность установить разрешение самой программы.

Не могли бы вы сделать скриншот? Можете отправить его на support@drive-software.com со ссылкой на данную тему.

kovalenko
Если сделаете маску, которую я привел выше, то именно так и будет.

3,588

(8 replies, posted in General)

Fixed project:

kovalenko
У компонент TextBox есть свойство EditMask, присвойте ему значение:
!\(999\)000-0000;1;_

3,590

(9 replies, posted in Russian)

abgroup-artur
Я правильно понимаю, что вам необходимо получить идентификатор внешнего ключа id_KP из выбранной записи грида?

Hello.


An example for you:

3,592

(9 replies, posted in Russian)

legerman
К сожалению ваш вопрос больше похож на рассказ )


Пожалуйста сформулируйте вопрос более конкретно.

К сожалению не могу повторить ошибку. Опишите пожалуйста подробней пошаговые действия приводящие к ошибке.


Также не совсем ясно, что значит "При редактировании TextBox при прокрутке меню"

3,594

(5 replies, posted in General)

Please download latest version (3.3), example:
http://myvisualdatabase.com/forum/viewt … ?pid=19481

3,595

(187 replies, posted in General)

mathmathou wrote:

Hello Dmitry,


Sergen has found a clever workaround to my question about it, but I think à help system could be really valuable to MVD and to the application we develop.


Could you had a way to open contextual help file page based on the index or ID of the page in the .chm file ? Or the Shelexecute command ? But I really feel that the HelpContext and HelpIndex would be better.

Either way, I'm sure you'll your best.


Thank you and cheers


Mathias

Hello.


Please download latest version (3.3), example:
http://myvisualdatabase.com/forum/viewt … ?pid=19481

3,596

(1 replies, posted in FAQ)

Example, how to work with .chm help file in your project (ver. 3.3 and above):


const
  IDH_TOPIC10 = 10;
  IDH_TOPIC20 = 20;
  IDH_TOPIC30 = 30;
  IDH_TOPIC40 = 40;
  IDH_TOPIC50 = 50;

procedure Form1_OnShow (Sender: string; Action: string);
begin
  Application.HelpFile := ExtractFilePath(Application.ExeName) + 'Help\HelpFile.chm';
end;                



procedure Form1_bContents_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpContents;
end;

procedure Form1_bIndex_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpIndex('test');
end;

procedure Form1_bSearch_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpSearch;
end;

procedure Form1_bTopic30_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpContext(IDH_TOPIC30);
end;                     

procedure Form1_bTopic40_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpContext(IDH_TOPIC40);
end;

procedure Form1_bKeyword_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpKeyword('Test');
end;


Example project:

Пример работы со справкой в формате .chm (начиная с версии 3.3)


const
  IDH_TOPIC10 = 10;
  IDH_TOPIC20 = 20;
  IDH_TOPIC30 = 30;
  IDH_TOPIC40 = 40;
  IDH_TOPIC50 = 50;

procedure Form1_OnShow (Sender: string; Action: string);
begin
  Application.HelpFile := ExtractFilePath(Application.ExeName) + 'Help\HelpFile.chm';
end;



procedure Form1_bContents_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpContents;
end;

procedure Form1_bIndex_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpIndex('test');
end;

procedure Form1_bSearch_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpSearch;
end;

procedure Form1_bTopic30_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpContext(IDH_TOPIC30);
end;

procedure Form1_bTopic40_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpContext(IDH_TOPIC40);
end;

procedure Form1_bKeyword_OnClick (Sender: string; var Cancel: boolean);
begin
    Application.HelpKeyword('Test');
end;

Проект с примером:

Данный пример позволяет обработать ошибку, которая возникла непосредственно в базе данных (СУБД).


Например вы установили ограничение UNIQUE для какого либо поля в БД. Когда вы пытаетесь создать запись с дубликатом по данному полю, то получите системную ошибку от СУБД, которую можете перехватить и обработать ее так, как вам необходимо. Пример:

// глобальное события для всех ошибок от СУБД
function OnSQLException(Sender: TObject; Msg: string; SQL: string): boolean;
begin
    // ошибка при выполнении функций SQLExecute или SQLQuery
    if Sender=nil  then
    begin
        result := true; // предотвращает показ системной ошибки
        ShowMessage(Msg); // ваше сообщение об ошибке может быть здесь
    end;

    // ошибка возкнила при выполнении действия кнопки frmEmployee.bSaveEmp
    if Sender = frmEmployee.bSaveEmp then 
    begin
        if Pos('UNIQUE constraint failed', Msg)=1 then // по тексту сообщения узнает тип ошибки.
        begin
            result := True; // предотвращает показ системной ошибки
            MessageBox('Человек с данной фамилией уже присутствует в БД..', 'Error', MB_OK+MB_ICONWARNING);
        end;
    end;
end;



procedure Form1_Button5_OnClick (Sender: string; var Cancel: boolean);
begin
    SQLExecute('INSERT INTO employees (lastname) VALUES ("ivanov")');
end;


procedure Form1_Button6_OnClick (Sender: string; var Cancel: boolean);
var
    Results: TDataSet;
begin
    SQLQuery('INSERT INTO employees (lastname) VALUES ("ivanov")', Results);
end;

Проект с примером:

Видимо каждый запрос нужно взять в скобки, т.е.

(SELECT count(*) FROM zapravkakioc WHERE zap1 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap2 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap3 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap4 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap5 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap6 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap7 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap8 = '+')

Если не сработает, приложите пожалуйста ваш проект.

Попробуйте тогда так

SELECT count(*) FROM zapravkakioc WHERE zap1 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap2 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap3 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap4 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap5 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap6 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap7 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap8 = '+'