77 2016-04-16 16:35:33
Re: Ошибка My Visual DataBase 2.5 (5 replies, posted in Russian)
Скрипт есть?
На всякий случай, тут гляньте: http://myvisualdatabase.com/forum/viewt … 026#p14026
78 2016-04-13 03:34:32
Re: Подскажите со скриптом... (66 replies, posted in Russian)
procedure Form2_Edit7_OnExit (Sender: string);
begin
if Form2.Edit7.GetTextLen <> 14
then Form2.Edit7.Clear;
end;
79 2016-04-08 03:47:27
Re: Виртуальная клавиатура (5 replies, posted in Russian)
Немного доработал ваш пример.
Ничёсе немного... )) Спасибо! Поучительно.
80 2016-04-07 07:11:59
Re: Виртуальная клавиатура (5 replies, posted in Russian)
И еще.
4. Если форм где нужно вызывать клавиатуру, скажем 15, как удобней поступить? Пока решение слишком громоздкое: берем переменную. При открытии формы её заполняем. Код для каждой кнопки:
procedure Form2_bt1_OnClick (Sender: string; Action: string);
begin
if sFrmName = 'Form1' then Form1.Edit1.Text := Form1.Edit1.Text+'1';
if sFrmName = 'Form3' then Form3.Edit1.Text := Form3.Edit1.Text+'1';
...
if sFrmName = 'Form15' then Form15.Edit1.Text := Form15.Edit1.Text+'1';
end;
Фактически, можно получить полное имя нужной формы и поля:
sEdName := Form1.Name+'.'+Form1.Edit1.Name+'.Text';
Но я же никак не смогу выразить что-то такое:
procedure Form2_bt2_OnClick (Sender: string; Action: string);
begin
sEdName := sEdName+'2';
end;
81 2016-04-07 05:12:31
Topic: Виртуальная клавиатура (5 replies, posted in Russian)
Забавы ради хочется состряпать виртуальную клавиатуру. Малоль, на POS-терминале нужно будет программу пользовать. То, что пока получилось приложил. Возникли вопросы:
1. Верно ли мыслю или проще можно как-то?
2. Как реализовать удаление последнего символа в поле по клику на кнопке? Form1.Edit1.Clear, может и достаточно, но можно ли крайний символ все таки?
3. Можно ли открывать форму строго под полем? Т.е. как-то получить координаты текстового поля и задать координаты для открытия формы.
82 2016-04-06 12:50:33
Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid (16 replies, posted in FAQ)
1. Да. Можно ли реализовать скрытие пункта меню в TableGrid не для администратора. Т.к. меню я создаю при OnShow главной формы, а переменную админ/нет получаю позже, по клику мышки - скрыть этот пункт мне не удается.
2. Можно ли вообще скрыть/заменить пункты этого меню формирующиеся по умолчанию?
83 2016-04-06 10:26:23
Re: SQL запрос из таблицы поиска (25 replies, posted in Russian)
Не совсем ясно, при каких обстоятельствах должна? О чем речь?
84 2016-04-06 07:16:57
Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid (16 replies, posted in FAQ)
т.е. в гриде родное...???
Да.
По разрешению удаления с помощью меню скрыть пункт не для админа не удалось. Пока ограничился тем, что действия не происходит не для админа. Но вопрос актуален. Можно ли как-то скрыть?
85 2016-04-06 04:00:00
Re: Авторизация при запуске программы. Права пользователей. (63 replies, posted in Russian)
Сложно будет помочь, если сами не попробуете чуть-чуть разобраться. Вообще, для авторизации надежней вот этот способ: http://myvisualdatabase.com/forum/misc. … download=1
Ваш скрипт сейчас стоит удалить из папки и программа будет запускаться без авторизации.
А простой пример с правами пользователей и комментариями:
http://myvisualdatabase.com/forum/misc. … download=1
86 2016-04-06 03:40:44
Re: SQL запрос из таблицы поиска (25 replies, posted in Russian)
Можно вопрос. Почем у при компиляции не выдается ошибка
Не выдается почему? А должна?
87 2016-04-05 18:17:22
Re: SQL запрос из таблицы поиска (25 replies, posted in Russian)
Будьте внимательней к знакам препинания. Ваш скрипт на 95 строке выполняться перестает (если я правильно выражаюсь). Сам только поверхностно вник. Вот так работает:
var
sUser: string = '';
idUser: integer;
isAdmin: boolean = False;
procedure frmLogin_bLogin_OnClick (Sender: string; var Cancel: boolean);
var
s: string;
begin
// SQL-запрос на регистрацию пользователя и пароль
s := SQLExecute('SELECT count(id) FROM users WHERE (id = ''' + IntToStr(frmLogin.cbLogin.dbItemID) + ''') AND (password = ''' + frmLogin.edPassword.Text + ''');');
// SQL-запрос найден логин и пароль
if (s <> '0') and (s<>'') then
begin
sUser := frmLogin.cbLogin.Text; // запомнить имя пользователя
idUser := frmLogin.cbLogin.dbItemID; // запомнить идентификатор пользователя в базе
// Administrator?
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.bUsers.Visible:=False;
FormGlavn.Caption := 'User: ' + sUser;
frmLogin.Close; // Закрыть главную форму
end else MessageDlg('Некорректный пароль', mtError, mbOk, 0); // сообщение если неверный пароль
end;
// мероприятия закрытия окна для входа
procedure frmLogin_OnClose (Sender: string; Action: string);
begin
// если пользователь не определен, и Пользователь закрывает окно входа в систему, закройте главную форму
if sUser='' then FormGlavn.Close;
end;
procedure formIzm_OnShow (Sender: string; Action: string);
begin
if Action = 'NewRecord' then formIzm.cbUser.dbItemID := idUser ;
end;
// защитить от удаления
procedure FormGlavn_bDelete_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;
sIdUser:=SQLExecute('SELECT id_users FROM employees WHERE id='+IntToStr(FormGlavn.TableGrid2.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У вас нет разрешения удалять записи, которые не принадлежат вам.');
end;
end;
// защитить от редактирования
procedure formIzm_bOK_OnClick (Sender: string; var Cancel: boolean);
begin
if isAdmin then Exit;
if idUser<>formIzm.cbUser.dbItemID then
begin
Cancel := True;
ShowMessage('У вас нет разрешения редактировать записи, которые не принадлежат вам.');
end;
end;
procedure FormGlavn_OnShow (Sender: string; Action: string);
begin
frmLogin.edPassword.PasswordChar := '*';
frmLogin.ShowModal; // Форма для входа
end;
procedure FormGlavn_TableGrid2_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
zapolnenie();
end;
procedure FormGlavn_TableGrid2_OnKeyUp (Sender: string; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
zapolnenie();
end;
procedure zapolnenie ();
var
idS : string ;
begin
idS := inttostr(FormGlavn.TableGrid2.dbItemID) ;
FormGlavn.Obekt.text := SQLExecute('SELECT ob_name FROM tabobekt WHERE id =(SELECT id_tabobekt FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.Edit2.Text := SQLExecute('SELECT Name_Uzel FROM TabUselOborud WHERE id =(SELECT id_TabUselOborud FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.VneshProyavlOtkaza.Text := SQLExecute('SELECT Proyav_name FROM TabProyavlen WHERE id =(SELECT id_TabProyavlen FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.LitsoObnaruj.Text := SQLExecute('SELECT Obnarug_name FROM TabObnarug WHERE id =(SELECT id_TabObnarug FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.MetodUstraneniya.Text := SQLExecute('SELECT Metod_name FROM TabMetod WHERE id =(SELECT id_TabMetod FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.UsloviyaObnaruj.Text := SQLExecute('SELECT Usl_name FROM TabUslovia WHERE id =(SELECT id_TabUslovia FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.Defekt.Text := SQLExecute('SELECT Defekt_name FROM TabDefekt WHERE id =(SELECT id_TabDefekt FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.VidOborudovaniya.Text := SQLExecute('SELECT Vid_name FROM TabVid WHERE id =(SELECT id_TabVid FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.DefektNomer.Text := SQLExecute('SELECT DEF№ FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Edit4.Text := SQLExecute('SELECT ZAPAS FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Komentarii.Text := SQLExecute('SELECT Primechanie FROM tabotkaz WHERE id = '+idS ) ;
end;
procedure FormGlavn_Button4_OnClick (Sender: string; var Cancel: boolean);
begin
OpenFile(ExtractFilePath(Application.ExeName) +'Help.chm');
end;
begin
// Начала проверьте, есть ли пользователь, администратор базы данных
// если нет, создать учетную запись администратора с именем пользователя admin и паролем admin
if SQLExecute('SELECT count(id) FROM users;') = '0' then
begin
SQLExecute('INSERT INTO users (login, password, admin) VALUES ("admin", "admin", 1);');
frmLogin.cbLogin.dbItemID:=1;
frmLogin.edPassword.Text := 'admin';
end;
frmLogin.Button1.Default := True;
formIzm.cbUser.Enabled:=false;
end.
Замените полностью скрипт.
88 2016-04-05 08:04:51
Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid (16 replies, posted in FAQ)
Отлично, работает. Только хотелось для админа лишь возможность такую допустить. А при таком раскладе не выйдет, т.к. админ иль нет при клике информацию получаем. Есть какой-то выход?
89 2016-04-05 05:32:55
Re: Помогите с калькулятром (7 replies, posted in Russian)
Я бы сделал кнопку, по клику событие:
Form1.Edit1.Value := SQLExecute('SELECT стоимость FROM таблица1 WHERE id='+IntToStr(Form1.TableGrid1.dbItemID))+SQLExecute('SELECT стоимость FROM таблица2 WHERE id='+IntToStr(Form1.TableGrid2.dbItemID))+SQLExecute('SELECT стоимость FROM таблица3 WHERE id='+IntToStr(Form1.TableGrid3.dbItemID));
А со скидкой - вопрос математики. Тут где-то был пример, что-то вроде этого:
Total := Total - ((Skidka / 100) * Total);
90 2016-04-04 18:03:56
Re: Помогите с калькулятром (7 replies, posted in Russian)
Простите за сарказм, но это же очевидно. Грид+грид+грид = 3 грида.
Чего посчитать-то хочется?
91 2016-04-04 14:34:08
Re: Ряд вопросов от новичка. (30 replies, posted in Russian)
Спасибо. Мне из Вашего примера нужно как раз это:
// DESIGN MODE
Form1.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Report\print.fr3');
Form1.frxReport.DesignReport;
но... Этот код работает только для главной формы. Если же нет, получается: Undeclared identifier: 'frxReport'
92 2016-04-04 14:13:29
Re: SQL запрос из таблицы поиска (25 replies, posted in Russian)
Касаемо кнопки и открытия файлов. Вы просто кнопке событие не назначили. Вот она и не открывает ничего. В событиях на OnClick пропишите FormGlavn_Button4_OnClick и все откроется.
93 2016-04-04 14:08:10
Re: Вопрос по combobox (8 replies, posted in Russian)
Я, видимо, не верно вопрос сформулировал. Я, конечно, не одновременно эти строки использую. У меня первый вариант просто не работает в том виде, в котором я его привел. Второй работает. Хотя я полагал, что варианты равнозначны. Это не так?
94 2016-04-04 13:56:49
Re: [Скрипт] Добавление своего пункта меню для компонента TableGrid (16 replies, posted in FAQ)
У меня сейчас при таком раскладе, закрыв и открыв форму добавляется еще один такой же пункт. Трижды открыл/закрыл - трижды "Удалить запись". Как вылечить?
И можно ли скрыть дефолтное меню?
95 2016-04-04 06:59:45
Re: SQL запрос из таблицы поиска (25 replies, posted in Russian)
Я взял конкретно кусочек кода, который выложен. А другой файл не пробовали? Картинку какую-нибудь открыть. Проект не доступен для скачивания.
96 2016-04-03 09:51:52
Re: Вопрос по combobox (8 replies, posted in Russian)
Не выходит фильтр без запроса сделать. Я так полагал, что это равнозначные варианты, но первый не работает. Дело в руках? )
frmOperations.cbItem.dbFilter := 'id_offices='+IntToStr(idOffice);
frmOperations.cbItem.dbSQLExecute('SELECT name, id FROM item WHERE id_offices='+IntToStr(idOffice));
97 2016-04-03 08:46:15
Re: SQL запрос из таблицы поиска (25 replies, posted in Russian)
Попробовал этот код на различных типах файлов.
procedure FormGlavn_Button4_OnClick (Sender: string; var Cancel: boolean);
begin
OpenFile(ExtractFilePath(Application.ExeName) +'Help.chm');
end;
Все открываются. Может непосредственно в компьютере дело? На другом не пробовали?
98 2016-04-02 13:03:04
Re: помощь в CheckBox (12 replies, posted in Russian)
Можно добавить:
форма.TableGrid1.dbUpdate
99 2016-04-02 11:17:11
Re: помощь в CheckBox (12 replies, posted in Russian)
Если правильно понимаю, то:
procedure активные_заказы_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
SQLExecute('UPDATE таблица SET поле_с_чеком = 0 WHERE id = '+IntToStr(ваша_форма.TableGrid1.dbItemID));
end;
100 2016-04-02 10:53:08
Re: помощь в CheckBox (12 replies, posted in Russian)
заказ.CheckBox1.checked :=False