спасибо огромное! вот это то что надо. я благодарен!
2 2022-09-07 13:43:09
Re: дубликаты (24 replies, posted in Russian)
Да спасибо. Помогло. Единственное что нельзя добавить проверку на дату? Если будет другое число то сохранение возможно! А то получается задействованы bolean и если дату меняешь при сохранении то не дает сохранить, так то запись уже не дубликат будет
3 2022-09-07 06:46:45
Re: дубликаты (24 replies, posted in Russian)
Ну а хотя можно чтобы когда создается запись ( она изначально идет с bolean = NULL) - то больше одной записи не могли создать на одну и ту же дату ? Или только состояние 0 или 1 можно учитывать?
5 2022-09-07 05:01:50
Re: дубликаты (24 replies, posted in Russian)
senseyesenseye1983 wrote:Я рано радовался... при проверки оказалось что он все таки дает сохранить то что нельзя.
Там еще один bolean взаимодействовует...
Надо я так понимаю склеивать три условия:
если RezervObr=0 то открывает Form2
если RezervObr = 0 и Obrabotka = 0 то открываем Form1
если не то не другое то сохраняемА как Вы проверяете Rezerv, для каждой записи оно у Вас свое... То есть для новой записи оно еще не создано..
В базе у меня записаны уже эти значения:
fio dates RezervObr Obrabotka
MODEL 01.01.2022 0 1 ----- Кнопка дает сохранить но только 1 раз так как даты будут совпадать
MODEL 01.01.2022 1 1 ----- Кнопка не дает сохранить
MODEL 01.01.2022 NULL NULL ------Кнопка не дает сохранить
Павел вот о чем я говорю как это реализовать? три условия ...
6 2022-09-07 00:31:43
Re: дубликаты (24 replies, posted in Russian)
Я рано радовался... при проверки оказалось что он все таки дает сохранить то что нельзя.
Там еще один bolean взаимодействовует...
Надо я так понимаю склеивать три условия:
если RezervObr=0 то открывает Form2
если RezervObr = 0 и Obrabotka = 0 то открываем Form1
если не то не другое то сохраняем
7 2022-09-06 14:43:44
Re: дубликаты (24 replies, posted in Russian)
Вот так вроде работает... спасибо
procedure Form1_Button4_OnClick (Sender: TObject; var Cancel: boolean);
var
Dup_Id: String;
begin
Dup_Id := SqlExecute('Select id From machines Where (model) = ' + (form1.Edit1.sqlValue) + ' '+
'and (serialnumber) = ' + (form1.Edit2.sqlValue) + ' and Date(Dates) = date(' + form1.DateTimePicker1.sqlDateTime + ') '+
'and RezervObr = 1 ');
If Dup_Id <> '' then
begin
Showmessage('Есть такая запись нельзя сохранять');
Cancel := true;
end else
begin
Showmessage('Можно сохранять');
Cancel := true;
end;
end;
8 2022-09-06 14:33:19
Re: дубликаты (24 replies, posted in Russian)
спасибо. большое
Я только не могу понять как склеить два цикла
procedure Form1_Button4_OnClick (Sender: TObject; var Cancel: boolean);
var
Dup_Id: String;
Dup_Id2: String;
begin
Dup_Id := SqlExecute('Select id From machines Where (model) = ' + (form1.Edit1.sqlValue) + ' '+
'and (serialnumber) = ' + (form1.Edit2.sqlValue) + ' and Date(Dates) = date(' + form1.DateTimePicker1.sqlDateTime + ') '+
'and RezervObr = 1 ');
If Dup_Id <> '' then
begin
Showmessage('Есть такая запись нельзя сохранять');
Cancel := true;
end else
Dup_Id := SqlExecute('Select id From machines Where (model) = ' + (form1.Edit1.sqlValue) + ' '+
'and (serialnumber) = ' + (form1.Edit2.sqlValue) + ' and Date(Dates) = date(' + form1.DateTimePicker1.sqlDateTime + ') '+
'and RezervObr = 0 ');
begin
Showmessage('Можно сохранять');
Cancel := true;
end;
end;
Что если Rezerv = 0 - то можно сохранить если 1 то нельзя....
Извините за настырность
9 2022-09-06 12:52:27
Re: дубликаты (24 replies, posted in Russian)
Друзья и все таки прошу Вашей помощи в решении головоломки ( по крайней мере для меня) я 100 разных вариантов перепробовал, много читал что то не получается написать необходимый скрипт. Суть его такова:
При сохранении проверяет на дубликат - но при этом если нашел дубликат и у него есть bolean = 0 то он тебе дает сохранить а если =1 то нет. Снизу прикрепил проект для понимания.
10 2022-09-06 07:19:22
Re: Одновременное редактирование нескольких записей в таблице (10 replies, posted in Russian)
k245 Душевно
11 2022-09-06 04:12:57
Re: Одновременное редактирование нескольких записей в таблице (10 replies, posted in Russian)
Подскажите пожалуйста как сделать так чтоб после группового изменения записей ( если таблица большая и я нахожусь в самом низу ) после обновления выделение оставалось на том же месте, а не сдвигалась вверх?
Вот скрипт:
procedure ChangeValues(value: boolean);
var
i,c: integer;
s: string;
begin
if value then s := '1' else s := '0';
c := Form1.TableGridMasters.RowCount-1;
for i := 0 to c do
begin
if Form1.TableGridMasters.Selected (i) then
begin
SQLExecute('UPDATE bsm_off SET Vidali = '+s + ' WHERE id='+IntToStr(Form1.TableGridMasters.dbIndexToID(i)));
end;
end;
Form1.TableGridMasters.dbUpdate;
end;
procedure Form1_bVidali_OnClick (Sender: TObject; var Cancel: boolean);
begin
ChangeValues(True);
end;
12 2022-09-05 13:32:11
Re: дубликаты (24 replies, posted in Russian)
Во спасибо наталкнул на другой способ
Я добавил на другую кнопку
procedure CheckDublicate (Sender: TObject; var Cancel: boolean);
var
Dup_Id,DOB,Fld_Concat: String;
begin
DOB := FormatDateTime('yyyy-MM-DD 00:00:00.000',frmZakaz.DateTimePicker1.DateTime);
Fld_Concat := frmZakaz.Edit22.Text + frmZakaz.Edit1.Text + DOB;
Dup_Id := SqlExecute('Select id From bsm_off Where Upper(FIO) = "' + (frmZakaz.Edit22.Text) + '" and (productname) = "'
+ (frmZakaz.Edit1.Text) + '" and Date(Dates) = "' + DOB + '"');
If Dup_Id <> '' then
begin
frmZakaz.Button14.Click; // Открываем форму которая сообщает об ошибке
end else
begin
frmZakaz.Save.Click; // Сохраняем запись
end;
end;
А сама кнопка сохранения называется Save - и работает )) спасибо!!! Вот как хорошо что есть поддержка )
13 2022-09-05 12:26:37
Re: дубликаты (24 replies, posted in Russian)
Помогите допилить кнопку которая имеет свойство сохранять и одновременно проверять на дубликат. У меня не получается прервать сохранение в таблицы если иметься признак дубликата. Ниже скрипт кнопки:
procedure frmZakaz_Save_OnClick (Sender: TObject; var Cancel: boolean);
var
maxID:string;
Dup_Id,DOB,Fld_Concat: String;
sDateV: string;
sDateZ: string;
sDateG: string;
begin
if frmZakaz.DateTimePicker1.Checked then
sDateV := '"' + FormatDateTime('yyyy-MM-DD hh:mm:ss.000', frmZakaz.DateTimePicker1.Date) + '"'
else sDateV := 'NULL';
if frmZakaz.DateTimePicker2.Checked then
sDateZ := '"' + FormatDateTime('yyyy-MM-DD hh:mm:ss.000', frmZakaz.DateTimePicker2.Date) + '"'
else sDateZ := 'NULL';
if frmZakaz.DateTimePicker5.Checked then
sDateG := '"' + FormatDateTime('yyyy-MM-DD 00:00:00.000', frmZakaz.DateTimePicker5.Date) + '"'
else sDateG := 'NULL';
//Проверка на дубликат
DOB := FormatDateTime('yyyy-MM-DD 00:00:00.000',frmZakaz.DateTimePicker1.DateTime);
Fld_Concat := frmZakaz.Edit22.Text + frmZakaz.Edit1.Text + DOB;
Dup_Id := SqlExecute('Select id From bsm_off Where Upper(FIO) = "' + (frmZakaz.Edit22.Text) + '" and (productname) = "'
+ (frmZakaz.Edit1.Text) + '" and Date(Dates) = "' + DOB + '"');
// Если дубликат то ошибка и нельзя сохранить - но сохраняет
If Dup_Id <> '' then
Begin
MessageBox('ВЫ ДОБАВИЛИ ПОВТОРЯЮЩИЙСЯ ЗАКАЗ!','Duplicate Error',MB_Ok+MB_ICONERROR);
frmZakaz.Save.Cancel := True; // Cancel the save if duplicate
End;
//Подскажите скрипт если запись повторяеться то нельзя будет кнопкой сохранить ее
//Нужно если дубликат прервать дальнейшее выполнение скрипта
// запись в таблицу bsm_off
SQLExecute('INSERT INTO bsm_off (FIO,Dates,DateZ,sDateG,productname, vfamily, vname, vlastname,record_count,id_bsm_new) VALUES ("'+frmZakaz.Edit22.Text+'",'+sDateV+','+sDateZ+','+sDateG+',"'+frmZakaz.Edit1.Text+'", "'+frmZakaz.Edit11.Text+'","'+frmZakaz.Edit7.Text+'","'+frmZakaz.Edit8.Text+'","'+frmZakaz.EditCounter1.Text+'",
"'+frmZakaz.Combobox10.sqlvalue+'")');
// получаем id последней записи в таблице В
maxID := SQLExecute('SELECT MAX(id) FROM bsm_off');
// запись в таблицу orderproduct
SQLExecute('INSERT INTO orderproduct (FIO,Dates, DataZ,dater, productname, record_count, id_bsm_off) VALUES ("'+frmZakaz.Edit22.Text+'",'+sDateV+','+sDateZ+','+sDateG+',"'+frmZakaz.Edit1.Text+'", "'+frmZakaz.EditCounter2.Text+'", "'+maxID+'")');
// обновление таблицы данных главной формы
frmZakaz.TableGrid2.dbUpdate;
end;
14 2022-09-04 12:51:43
Re: Стили в мy visual database 6.5 (16 replies, posted in Russian)
frmMain.DoubleBuffered := True;
Это хорошо помогает для лечения мерцания панелей, картинок и проч. Кроме таблицы - при использовании стилей при ресайзе остаются артефакты. Видимо, лечить можно полной заменой данного компонента на другой...
понял. спасибо
15 2022-09-04 11:09:37
Re: Стили в мy visual database 6.5 (16 replies, posted in Russian)
Вот прикрепил пример. Открывайте форму и закрывайте раза 3-4 и увидите что при открытии на долю секунды таблица обретает белый цвет хотя она черная. Как лечить ?
16 2022-09-04 10:33:48
Re: Стили в мy visual database 6.5 (16 replies, posted in Russian)
Заметил одну тенденцию. Выбираем стиль любой из предложенных, и при открытии другой формы на весь экран то ( если есть таблица раскрашена в любой цвет) при открытии формы на долю секунды таблица окрашивается в белый цвет а уже потом в черный. Точно такое же происходит если на форме есть любые панели. Если не выбираем никакой стиль, а устанавливаем дефолтом то все ок
Не могу понять или это из за Стилей или из за слабенького пенька, Может двойную буферизацию скриптом вкл?
17 2022-08-31 13:38:37
Re: Прошу помочь с отчетом в Fast Report (5 replies, posted in Russian)
Всем привет
Кто нибудь сталкивался с такой проблемой: есть таблица - туда записываются записи:
В самое БД это выглядит так:
record_count,Фамилия, Имя, Отчество, количество, дата.
Когда пытаюсь вывести все записи в FastRaport - то некоторые записи выглядят либо без имени либо без отчества либо без фамилии :
record_count,Фамилия, Отчество, количество, дата.
В чем может быть причина. Программа на Mysql
18 2022-08-29 00:33:21
Re: Нужна помощь... (89 replies, posted in Russian)
Привет Senseyesenseye, Vladimir,
Надеюсь, я понял - вы хотите имитировать нажатие «пробела» щелчком мыши?
Простой способ во вложении. Просто нажмите в поле редактирования
С Уважением
Derek.
.
I hope I understand - you want to simulate pressing the 'spacebar' by clicking the mouse?
A simple way is in the attachment. Just click in the edit field
derek огромное Вам спасибо!
19 2022-08-28 11:58:07
Re: Нужна помощь... (89 replies, posted in Russian)
Я наверное уже всех так напрягаю, искренне извиняюсь за настырность, у меня есть небольшой вопрос по поводу эмуляции нажатия кнопки, а именно интересует как программно нажать на ПРОБЕЛ(SPACE)?
procedure SimulateKeyDown(Key: byte);
begin
keybd_event(Key, 0, 0, 0);
end;
Вот на ум что приходит но как тут это реализовать ? Может кто знает ?
20 2022-08-28 10:34:33
Re: Нужна помощь... (89 replies, posted in Russian)
Огонь Спасибо большое все получилось!
21 2022-08-28 01:06:24
Re: Нужна помощь... (89 replies, posted in Russian)
Все работает. Спасибо!!!
<> ' ' - это означает что в Edit - пусто ? Да?
а как указать что что либо есть ?
И вообще может сделать проверку по БД ? Я работаю в MySQL и может как то так:
if Table1.FieldValues['...'] <> null then
begin
...
end;
22 2022-08-27 13:02:18
Re: Нужна помощь... (89 replies, posted in Russian)
Владимир не подскажешь как сделать условие на проверку Edit =
Есть Combobox куда запросом летит название фильма - из combobox я передаю в Edit5 название фильма и если в Edit 5 - есть какое то любое название (слово) то Label 3 =False; если Edit5 пустой - то Label5=True;
Пробовал в событии Edit такое пока без результатов
procedure voting_Edit5_OnChange (Sender: TObject);
begin
if voting.Edit5.Text = '' then voting.Label3.Visible :=False;
if voting.Edit5.Text = '*' then voting.Label7.Visible :=True;
end;
23 2022-08-27 12:18:57
Re: Несколько вопросов 3 (10 replies, posted in Russian)
senseyesenseye1983 wrote:Всем привет. Подскажите как вывести в DateTimePicker текущую дату. Дело в том что когда ты открываешь форму с свойством "Показать запись" DateTimePicker выдает тебе дату записи - а нужно чтоб была текущая дата
Уже перепробовал все:
Form1.DateTimePicker4.DateTime :=now;
Form1.Edit3.Text := DateToStr(now);
Не помогает...Form1.DateTimePicker1.DateTime := Now;
Да спасибо разобрался. Убрал показать запись и вывел все через запросы
24 2022-08-27 02:55:45
Re: Несколько вопросов 3 (10 replies, posted in Russian)
Всем привет. Подскажите как вывести в DateTimePicker текущую дату. Дело в том что когда ты открываешь форму с свойством "Показать запись" DateTimePicker выдает тебе дату записи - а нужно чтоб была текущая дата
Уже перепробовал все:
Form1.DateTimePicker4.DateTime :=now;
Form1.Edit3.Text := DateToStr(now);
Не помогает...
25 2022-08-26 08:07:25
Re: Нужна помощь... (89 replies, posted in Russian)
senseyesenseye1983 wrote:Вот посмотрите пожалуйста. Я хотел бы чтобы пользователи голосовали, но при этом у каждого была всего одна попытка. Не получаеться с кнопками бороться
Я пошел немного другим путем сделав запрос к таблице:
vote.Edit2.Text := sqlexecute('select id from terminal_films_golos where lastname ='+frmLogin.edUser.sqlvalue);
Вроде заработало... Но все же как то голосование получается каким то странным Вам так не кажется ?
А вообще шкалу % проголосовавших реально сюда прицепить ? Так то я не встречал тут проектов про голосование может кому полезно будет.если у Вас идет голосование за фильмы, то их нужно поделить не два варианта и тогда не может быть, что бы пользователь голосовал сразу за два фильма..
и еще, не понятьно как у Вас программа понимает, что этот пользователь уже голосовал?
Да все спасибо, благодоря Вашим советом разобрался и сделал привязку к пользователю.
Подскажи есть ли в MVD возможность сделать процентный результат о ходе голосования ?