Re: Подскажите с скриптом...

Спасибо !
А для  Image будет аналогично ?

Re: Подскажите с скриптом...

Leonid wrote:

Спасибо !
А для  Image будет аналогично ?

Да, только вместо TdbLabel используйте TdbImage

Dmitry.

103 (edited by Роман 2015-12-12 19:31:23)

Re: Подскажите с скриптом...

Всем хорошего настроения!
Этот скрипт проверяет...дубликат записи(рабочий)

function CheckDublicate (Action, sTable, sField, sValue: string; id: integer;): boolean;
var
   s: string;
begin
     result := False;
     if Action = 'NewRecord' then
     begin
          s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE '+sField+' LIKE "' + sValue + '"');
          if StrToInt(s) > 0 then result := True;
     end;

  if Action = 'ShowRecord' then
     begin
          s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE ('+sField+' LIKE "' + sValue + '") AND (id <> '+ IntToStr(id) +')');
          if StrToInt(s) > 0 then result := True;
     end;
end;

procedure frmEmployee_Button2_OnClick (Sender: string; var Cancel: boolean);
begin
     if CheckDublicate(frmEmployee.dbAction, 'employees', 'lastname', frmEmployee.edLastName.Text, frmEmployee.ButtonSave.dbGeneralTableId) AND
        CheckDublicate(frmEmployee.dbAction, 'employees', 'firstname', frmEmployee.edFistName.Text, frmEmployee.ButtonSave.dbGeneralTableId) then
     begin
          ShowMessage('Такая запись уже существует.');
          Cancel := True;
     end;
end;

Друзья! Помогите прикрутить сюда поверку даты...

                                                   С Уважением и Благодарностью Роман!!!

Re: Подскажите с скриптом...

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


чтобы добавить и проверку даты, нужно будет изменить эту часть кода

procedure frmEmployee_Button2_OnClick (Sender: string; var Cancel: boolean);
var
    sFields, sValues: string;
begin
    sFields := 'lastname;firstname;dateofbirth';
    sValues := frmEmployee.edLastName.sqlValue+';'+frmEmployee.edFistName.sqlValue+';'+frmEmployee.dtDateOfBirth.sqlDate;

   if CheckDublicate(frmEmployee.dbAction, 'employees', sFields, sValues, frmEmployee.ButtonSave.dbGeneralTableId) then
   begin
        ShowMessage('Person already exists.');
        Cancel := True;
   end;
end;
Dmitry.

Re: Подскажите с скриптом...

Спасибо Вам Дмитрий для меня это было важно!
малюсенький вопросик...
есть таблица... в ней поле веществ. число...
перед тем как добавить новую запись в едит попадает число на конце его нолик...
в итоге...после сохранения записи нолик пропадает "бедненький"...
записал так 1,140 получилось 1,14....а хотелось как есть  1,140
есть способ избежать этого?

                                                             С Уважением и Благодарностью Роман!!!

Re: Подскажите с скриптом...

Роман
Если тип для поля выбран как Веществ. число, то ноль на конце в базе данных сохранить невозможно.
Тут больше вопрос связан с форматированием числа, поэтому для компонента TextBox установите значение Currency=True и Accuracy=3


тогда у числа всегда будет 3 знака после запятой.

Dmitry.

Re: Подскажите с скриптом...

Доброго времени суток!
Вот таким способом я из TableGrid3 получаю значения в Label64:

Form1.Label64.Caption  := Form1.TableGrid3.Cells[21, ARow];

Вопрос: есть ли такая возможность окрасить Label64....
если значения  >0 , то в красный цвет...если нет значит в зелёный цвет?

                                                               С Уважением и Благодарностью Роман!!!

Re: Подскажите с скриптом...

if ValidFloat(Form1.TableGrid3.Cells[21, ARow]) then
begin
   if StrToFloat(Form1.TableGrid3.Cells[21, ARow]) > 0 then Form1.Label64.Font.Color := clRed else Form1.Label64.Font.Color := clGreen;
end else Form1.Label64.Font.Color := clWindowText;
Dmitry.

Re: Подскажите с скриптом...

Спасибочки!

110 (edited by Роман 2016-03-24 04:00:46)

Re: Подскажите с скриптом...

Доброго времени суток!
Понравился проект...поиск  значения в ComboBox используя едит!!!
вопрос на засыпку подмагните откорректировать скрипт...
1.поиск  значения в ComboBox НЕ используя едит, но тем же принципом...
P/S-была попытка изменить строчку:
Form1.cbGroups.dbFilter := 'groupname LIKE "%'+ Form1.edGroupSearch.Text +'%"';
на
Form1.cbGroups.dbFilter := 'groupname LIKE "%'+ Form1.cbGroups.Text +'%"';
обвенчалась провалом...
а) в ComboBox не отображается ввод моих данных!
б) при достижении нужного значения не закрывался список в ComboBox
проект прилагается...

Post's attachments

Attachment icon ComboBox.zip 385.09 kb, 448 downloads since 2016-03-24 

Re: Подскажите с скриптом...

Роман
Попробуйте данный пример
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.

Re: Подскажите с скриптом...

Доброго времени суток!
ЗАМЕЧАТЕЛЬНО......КЛАСС!!!!!!!
НО........возможно ли усовершенствовать?
начинаем вводить значения в cbGroups---
открывается список из  cbGroups---
нужное набранное значение в cbGroups отображается в списке  cbGroups выделенное синим....
НО при нажатии на клаве на ЕНТР значение в cbGroups исчезает..........
приходиться мышкой кликать по уже выбранному синему значению в списке или стрелками на клаве
уйти от выбранного значения а потом опять вернуться на него, чтобы зафиксировать его в cbGroups
ВОПРОС: возможно добавить участие ЕНТР  изначально

                                                         С Уважением и Благодарностью Роман!!!

Re: Подскажите с скриптом...

Роман
Немного поправил скрипт
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.

Re: Подскажите с скриптом...

Огромное спасибо Дмитрий!
Для меня это идеально!

   С Уважением и Благодарностью Роман!!!

Re: Подскажите с скриптом...

Доброго времени суток!
Подскажите как удалить выделенную строчку  в TableGrid скриптом или SQL запросом....
УМЫСЕЛ??????????????????????????????????????????????????????????????
избежать системного сообщения "Запись для удаления не выбрана"
если в TableGrid строчка не выделенная или вообще в TableGrid записей НЕТ...

                                                                  С Уважением и Благодарностью Роман!!!

Re: Подскажите с скриптом...

Роман wrote:

Доброго времени суток!
Подскажите как удалить выделенную строчку  в TableGrid скриптом или SQL запросом....
УМЫСЕЛ??????????????????????????????????????????????????????????????
избежать системного сообщения "Запись для удаления не выбрана"
если в TableGrid строчка не выделенная или вообще в TableGrid записей НЕТ...

                                                                  С Уважением и Благодарностью Роман!!!

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


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

Dmitry.

117 (edited by Роман 2016-03-28 00:05:52)

Re: Подскажите с скриптом...

ок...ситуация такова...
существуют  два грида А и Б
в грид Б попадают данные благодаря импорту...
двойной клик по строчке в гриде Б  выводят данные в едиты и по клику на битон(сохранить) попадают в грид А
и тут же скриптом кликаю на битон(удалить) удаляя только что сохраненную строчку(чтоб не моячила в гриде Б).....
в итоге грид Б пустой, а мне надо продолжить занести данные с этих же едитов уже в ручную заполняя их....
скрипт делает свои дела и в итоге опять кликает на битон(удалить) а там и так уже пусто(я и сам знаю)....
но сообщени глаза мозолит "Запись для удаления не выбрана"!!!!!!

P./S. может на битон(удалить) создать как то проверку
типа если в гриде записей нет,
тогда битон(удалить) не будет работать???

Re: Подскажите с скриптом...

Роман
Да, можно сделать проверку.

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
    if Form1.TableGrid1.RowCount = 0 then Cancel := True;
end;
Dmitry.

Re: Подскажите с скриптом...

УРА РАБОТАЕТ!!!
Есть маленький вопросик:
существует  Form1.ComboBox1.Style := csDropDown;
как скриптом сказать: если курсор попал в ComboBox1, тогда список у ComboBox1 автоматически раскрылся...

                                                           С Уважением и Благодарностью Роман!!!

Re: Подскажите с скриптом...

Роман wrote:

УРА РАБОТАЕТ!!!
Есть маленький вопросик:
существует  Form1.ComboBox1.Style := csDropDown;
как скриптом сказать: если курсор попал в ComboBox1, тогда список у ComboBox1 автоматически раскрылся...

                                                           С Уважением и Благодарностью Роман!!!

Можно так

procedure Form1_cbGroups_OnEnter (Sender: string);
begin
    Form1.cbGroups.DroppedDown := true;
end;

Но это будет нормально работать если фокус ввода попал в ComboBox с помощью клавиши Tab, если кликнуть мышкой, то скрипт раскроет ComboBox, но клик мыши его закроет.

Dmitry.

Re: Подскажите с скриптом...

СПАСИБОЧКИ!!!

Re: Подскажите с скриптом...

Доброго времени суток!
Открылась Form1...на ней есть TableGrid1...
пока мы не кликнули по TableGrid1 ...в  TableGrid1 НЕТ ВЫДЕЛЕННОЙ СТРОКИ  =  КРАСОТА!!!
Клик по гриду выделили строку...
Вопрос:
как например: при закрытие  Form2,   Form1.TableGrid1.НЕТ ВЫДЕЛЕННОЙ СТРОКИ  =  КРАСОТА!!!

                                                                      С Уважением и Благодарностью Роман!!!

Re: Подскажите с скриптом...

Вопрос снят разобрался...
procedure frmEmployee_OnClose (Sender: string; Action: string);
begin
    Form1.GridEmployees.SelectedRow := -1;
end;

Re: Подскажите с скриптом...

Всем хорошего настроения!!!
Друзья подмагните....
Есть скрипт для проверки дубликата...

begin
if MessageDlg(  'мое сообщение  ', mtInformation, mbYes+mbNo, 0) = mrYes

Вопрос: как после этого сказать...
если "Да" делаем одно дело....если "Нет" делаем другое совсем другое????????

                                              С Уважением и Благодарностью Роман!!!

Re: Подскажите с скриптом...

Роман

if MessageDlg(  'мое сообщение  ', mtInformation, mbYes+mbNo, 0) = mrYes then
begin
   // действия если Да
end else
begin
   // действия если Нет
end;
Dmitry.