Вот посмотрите пожалуйста. Я хотел бы чтобы пользователи голосовали, но при этом у каждого была всего одна попытка. Не получаеться с кнопками бороться
Я пошел немного другим путем сделав запрос к таблице:
vote.Edit2.Text := sqlexecute('select id from terminal_films_golos where lastname ='+frmLogin.edUser.sqlvalue);
Вроде заработало... Но все же как то голосование получается каким то странным Вам так не кажется ?
А вообще шкалу % проголосовавших реально сюда прицепить ? Так то я не встречал тут проектов про голосование может кому полезно будет.
26 2022-08-26 02:15:43
Re: Нужна помощь... (89 replies, posted in Russian)
27 2022-08-25 14:50:36
Re: Нужна помощь... (89 replies, posted in Russian)
Владимир спасибо буду пробовать. Это в услувие таблицы вклеить?
28 2022-08-25 14:34:18
Re: Нужна помощь... (89 replies, posted in Russian)
senseyesenseye1983 wrote:Спасибо за совет. Попробовал ну работает когда нажимаешь на таблицу, у которрой в поиске нашлось что-лио. Если не нашлось и таблица пустая то все равно кнопка недоступна....
а Вы колонки точно правильно посчитали? начинается с 0
Да все ок извеняюсь. только что получилось все считает но выше описал единственную проблему
Дело в том что по этой таблице не будут нажимать надо как то програмно щелкнуть строчку я это сделал выше скриптом но когда пустую таблицу ищет он материться
29 2022-08-25 14:25:10
Re: Нужна помощь... (89 replies, posted in Russian)
senseyesenseye1983 wrote:senseyesenseye1983 wrote:Всем привет. Подскажите можно ли создать условие на TableGrid. К примеру если при нажатии кнопки Search в TableGrid1 ничего не найдено то Button1.Visible :=True; если в TableGrid1 при нажатии кнопки нашлись записи то Button1.Visible :=False; ?
Мне просто нужна проверка если пользователь уже проголосовал то кнопка не работает если еще не голосовал то работает. (В таблицу при голосовании записывается значение 1 или 2. Вот как это реализовать ? Я пробовал вот так но не выходит
procedure voting_TableGridgolos_OnChange (Sender: TObject);
var
i, cR : integer;
begin
cR := voting.TableGridgolos.RowCount-1;for i := 0 to cR do
begin
If (voting.TableGridgolos.Cells[2,i] ='1') then voting.Button2.Enabled := False;
If (voting.TableGridgolos.Cells[2,i] ='2') then voting.Button2.Enabled := False;
If (voting.TableGridgolos.Cells[2,i] ='') then voting.Button2.Enabled := True;
end;
end;я думаю, что у Вас все работает, проблема в счетчике, он просто переберает все строки...
procedure voting_TableGridgolos_OnChange (Sender: TObject); begin If (voting.TableGridgolos.Cells[2,voting.TableGridgolos.SelectedRow ] ='1') then voting.Button2.Enabled := False; If (voting.TableGridgolos.Cells[2,voting.TableGridgolos.SelectedRow ] ='2') then voting.Button2.Enabled := False; If (voting.TableGridgolos.Cells[2,voting.TableGridgolos.SelectedRow ] ='') then voting.Button2.Enabled := True; end;
и измените событие с OnChange на OnCellClick
Спасибо за совет. Попробовал ну работает все хорошо. Единственное заметил что когда при поиске выдает пустую таблицу ( если нет вообще записей) то когда срабатывает скрипт :
procedure voting_OnShow (Sender: TObject; Action: string);
begin
voting_TableGridgolos_OnCellClick(voting.TableGridgolos,0,0);
end;
procedure voting_TableGridgolos_OnChange (Sender: TObject);
begin
voting.TableGridgolos.SelectedRow:=0;
voting.TableGridgolos.SetFocus;
voting_TableGridgolos_OnCellClick(voting.TableGridgolos,0,0);
end;
Происходит ошибка так как таблица пустая и он не может кликнуть Есть решения?
end;
30 2022-08-25 12:08:47
Re: Нужна помощь... (89 replies, posted in Russian)
Всем привет. Подскажите можно ли создать условие на TableGrid. К примеру если при нажатии кнопки Search в TableGrid1 ничего не найдено то Button1.Visible :=True; если в TableGrid1 при нажатии кнопки нашлись записи то Button1.Visible :=False; ?
Мне просто нужна проверка если пользователь уже проголосовал то кнопка не работает если еще не голосовал то работает. (В таблицу при голосовании записывается значение 1 или 2. Вот как это реализовать ? Я пробовал вот так но не выходит
procedure voting_TableGridgolos_OnChange (Sender: TObject);
var
i, cR : integer;
begin
cR := voting.TableGridgolos.RowCount-1;
for i := 0 to cR do
begin
If (voting.TableGridgolos.Cells[2,i] ='1') then voting.Button2.Enabled := False;
If (voting.TableGridgolos.Cells[2,i] ='2') then voting.Button2.Enabled := False;
If (voting.TableGridgolos.Cells[2,i] ='') then voting.Button2.Enabled := True;
end;
end;
31 2022-08-25 11:21:36
Re: Нужна помощь... (89 replies, posted in Russian)
Всем привет. Подскажите можно ли создать условие на TableGrid. К примеру если при нажатии кнопки Search в TableGrid1 ничего не найдено то Button1.Visible :=True; если в TableGrid1 при нажатии кнопки нашлись записи то Button1.Visible :=False; ?
32 2022-08-24 05:51:06
Re: Создание нового пользователя (3 replies, posted in Russian)
Вы определитесь, что вы хотите: создать новый пароль для существующего пользователя или создать пользователя с нужным паролем.
Создать пароль для существующего пользователя, где пароль у него будет = первой букве Имени.
Дело в том что изначально пользователи импортируются в мою базу через экспорт с другой программы. А уже с моей базы мне надо подхватить их и задать пароль по первой букве имени.
33 2022-08-24 02:38:10
Re: Создание нового пользователя (3 replies, posted in Russian)
// первоначальная проверка, есть ли в базе данных пользотель с правами администратора,
//если нет, то создается администратор с логином admin и паролем admin
if VarToStr( SQLExecute('SELECT count(id) FROM users WHERE administrator=1;') ) = '0' then
begin
ShowMessage('Пользователя с правами Администратора не найдено, поэтому он будет создан автоматически, с логином admin и паролем admin');
SQLExecute('INSERT INTO users (login, password, read, write, remove, search, administrator) VALUES ("admin", "admin", 1, 1, 1, 1, 1);');
frmLogin.edUser.Text := 'admin';
frmLogin.edPassword.Text := 'admin';
end;
Его нужно как то переделать я так понимаю ? Только чтобы учитывал Если Nomer = 500 и name = Рома - то создаем пароль - Р
34 2022-08-24 02:33:12
Topic: Создание нового пользователя (3 replies, posted in Russian)
Ребята а возможно в MVD создать новый пароль, который будет соответствовать первой букве Имени (имя уже есть изначально в базе данных) Цель: когда пользователь пытается войти в программу первый раз он набирает в edLogin: - 500, и в Password - первую букву Имени.
в Базе записано так nomer - 500, name - Рома
Где капать ?
36 2022-08-22 12:20:36
Re: OnCellClick [решено] (12 replies, posted in Russian)
senseyesenseye1983 wrote:А для checkboxa ?
SQLExecute('SELECT COUNT(id) FROM table_name WHERE file_name<>1'); ?? Как три состояния поймать ?у чекбокса состояния в таблице выглядит так
1
0
Null
для записи или обновление используется переменная
Form1.CheckBox1.sqlValue
SQLExecute('SELECT COUNT(id) FROM bsm_off WHERE Rezerv =1'); Я все время так делал но все равно к кнопке приходилось привязывать checkbox...
37 2022-08-22 11:58:13
Re: OnCellClick [решено] (12 replies, posted in Russian)
А для checkboxa ?
SQLExecute('SELECT COUNT(id) FROM table_name WHERE file_name<>1'); ?? Как три состояния поймать ?
38 2022-08-22 11:52:26
Re: OnCellClick [решено] (12 replies, posted in Russian)
Большое спасибо за помощь Работает как надо!
39 2022-08-22 07:51:56
Re: OnCellClick [решено] (12 replies, posted in Russian)
Все разобрался нужно было добавить перебор
Спасибо.
40 2022-08-22 07:03:07
Re: OnCellClick [решено] (12 replies, posted in Russian)
Владимир спасибо уже более понятно. А у меня действие происходит не по сохранению а по поиску. Я после нажатия кнопки поиск не могу нажать на первую строчку чтоб дальше уже передать 1 строчку в textbox
После нажатия кнопки Поиска - нужно чтоб именно кликалась 1 запись.
В оконцовке задача стоит чтоб не дать человеку выйти из программы пока у него в таблице checkbox = 0 (я сделал через вычисляемое поле 0 = "ОЖИДАЕТ"
Все бы ничего но именно как понять что у тебя в таблице остались записи которые ОЖИДАЮТ. Когда в ручную кликаешь в таблице то все работает, но ведь этих записей около 1000 как понять остались ли в таблице те которые ОЖИДАЮТ.
Можно сделать сортировку но нужно кликнуть же на первой записи чтоб сработала кнопка реакции....
Form1.TableGrid.SelectedRow:=0; не работает после поиска..
41 2022-08-22 06:43:44
Re: OnCellClick [решено] (12 replies, posted in Russian)
не могу понять как сделать
не просто выделить а кликнуть скриптом первую запись в таблице...
Я вот не могу никак сделать такое условие: Кликаем на кнопку (поиск) показываеться таблица(TableGrid) и в ней нужно узнать если в cell 1 есть надпись ОЖИДАЕТ то мы отключаем кнопку выхода(bExit)
procedure frmBuxgalter_TableGrid_OnCellClick (Sender: TObject; ACol, ARow: Integer);
begin
frmBuxgalter.Edit5.Text := frmBuxgalter.TableGrid.cells[1,arow];
if frmBuxgalter.Edit5.Text = 'ОЖИДАЕТ' then frmBuxgalter.bExit.Visible :=False;
end;
Немогу никак после нажатия кнопки поиск кликнуть на 1 строчку чтобы передать в Edit5 ПРИНЯТО....Помогите
42 2022-08-17 00:47:10
Topic: DBImage если надо загрузить из чужой таблицы!? (1 replies, posted in Russian)
В MVD реализовано только загрузка вручную изображений больше вариантов нет ?
История такая. Вот у меня есть база на MySQL, созданая не в MVD, Я в программе создал копии этой таблицы и подключился к ней в MVD. Все ок, текстовые данные пользователей (а их 500) подтягиваются без проблем, но вот в таблице лежат фото каждая привязана к определенной записи пользователя. И все методы уже перепробовал чтобы при открытии определенного логина подгружалась его фото не выходит и все тут. Нельзя ли как то задать сетевой диск до этой директории? Так как знаю путь где лежат эти фото ( он на сетевом диске Z:\ - и дальше в базе MySQL записан путь до фото )
Пробовал
Image1.Picture.LoadFromFile(<Z:\ - в в скриншоте путь>); но там еще надо привязать к логину по которому заходишь? Вообщем тупик
Ниже скриншот что мне показывает встроенная таблица в MVD из которой я хочу подгрузить фото
43 2022-08-17 00:30:30
Re: Счетчик (18 replies, posted in Russian)
Ну да я так и сделал )) Только подстраховался сделал +3 )))))))))
44 2022-08-16 13:41:55
Re: Счетчик (18 replies, posted in Russian)
Про триггеры слышали? Вот они как раз для этого.
Или на крайний случай хранимая процедура - её проще отлаживать
Брат, для меня это темный лес ))
45 2022-08-16 11:23:04
Re: Счетчик (18 replies, posted in Russian)
Я думаю тут выход один:
1) Открываешь форму -> проверяешь переменную Action -> если == 'NewRecord', то генеруриуешь новое значение счетчика и сохраняешь запись без закрытия формы.
2) Узнаешь id вновь созданной записи и присваиваешь его кнопке сохранения (чтобы новую запись не создала, а отредактировала нужную) или сохраняешь все через скрипт.
А как выглядит скрипт Action - NewRecord добавить новое значение счетчика?
46 2022-08-16 00:30:02
Re: Счетчик (18 replies, posted in Russian)
Собственно вот скриншот при запуске двух приложений и одновременной добавлении запиcи счетчик одинаковый. Как обойти это ?
Моя база на MySQL может как то чтобы автоматически создавалась запись при нажатии кнопки New Record?
Народ вообще есть какое то решение этой задачки ?
Может есть какой то скрипт, при нажатии новой записи он автоматически создает счетчик, который сразу записывается в базу и уже потом другие пользователи при нажатии новой записи будут создавать другой счетчик>? А то так получается, я нажал на создание новой записи, счетчик присвоил значение и если я буду минут 5 думать сохранять или нет, если меня опередит другой пользователь то он создаст такой же номер счетчика и когда я буду сохранять то сохраню под чужим record_count как обойти это ?
Давайте вместе решим эту задачку
У меня только на ум приходит одно добавить в событие onshow вот это
FormProduct.EditCounter3.Text := VarToStr( SQLExecute('SELECT record_count +3 FROM Product WHERE id = (SELECT MAX(id) FROM Product)') );
47 2022-08-15 13:23:02
Re: Фильтр в TableGrid по дате (6 replies, posted in Russian)
Вот это тебе поможет ?
49 2022-08-15 12:21:33
Re: Счетчик (18 replies, posted in Russian)
Собственно вот скриншот при запуске двух приложений и одновременной добавлении запиcи счетчик одинаковый. Как обойти это ?
Моя база на MySQL может как то чтобы автоматически создавалась запись при нажатии кнопки New Record?
50 2022-08-15 11:34:48
Re: Счетчик (18 replies, posted in Russian)
Я вот тоже столкнулся с такой проблемой когда есть 1 таблица в которую попадают данные из двух клиентов. Например пользователь в сети начал создавать запись в таблице и record_count присвоел ему например 50. Все ок он создает запись, и если в этот момент другой пользователь заходит и начинает тоже создавать новую запись то record_count тоже создаеться 50. Почему так может получаться?
На данный момент есть 2 программы но таблицы в них одинаковые. Но вот как то так
Я вот думаю может скриптом новую запись создавать чтоб сразу в базу присваивался номер типа что то этого:
begin
if Action = 'NewRecord' then
begin
end;