Пытаюсь создать инсталятор Smart Install Maker и при создании  выпадает ошибкаи ссылка https://www.dropbox.com/s/yk4baol6m47jxjs/1.png?dl=0
если можно то подробно. Заранее спс.

На примере вашего проекта.
Ссылка на скрин  https://www.dropbox.com/s/dvgs2lq463f51 … 9.png?dl=0
Ссылка на проект https://www.dropbox.com/s/dsbs5zvncsdio … k.zip?dl=0

Только опишите что вы делали я должен учиться. Заранее спс.

153

(5 replies, posted in Russian)

Привел пример на вашем проекте
Ссылка https://www.dropbox.com/s/dsbs5zvncsdio … k.zip?dl=0
Кнопка выделена жирным текстом

В главной таблице, каждый отвечает за свою строчку (строчку в главной таблице будем называть например отказ) таблица -TableGrid2, форма -FormGlavn. Отказ могут устранять несколько пользователей. (один ко многим как у вас в примере с тел книгой).
Поэтому  к отказу подключается таблица TableGrid1 (пошаговые действия персонала) на форме formIzm, в которой описывается пошаговые действия персонала по устранению отказа и тоже с правами пользователя. Каждый может редактировать и удалять только свои записи.

Каждый пользователь может иметь несколько номеров тел. Только каждый пользователь который добавил номер- может его редактировать и удалять.

я думал поставить свой код между begin

end.

156

(5 replies, posted in Russian)

Он показывает , но не так как надо. У меня к строчке главной таблицы привязана еще таблица. Одно запись в таблице может иметь еще много записей еще таблица с действиями . Как у вас в примере телеф справочника.. И мне нужен дубликат подчиненнй таблицы, который вызывается кнопкой.

спс

Все получилось. Огромное вам спс.

159

(5 replies, posted in Russian)

Подскажите пож, как можно сделать дубликат TableGrid. На одно форме в TableGrid вносятся данные, нужно  чтобы на др форме эта таблица отображалась для просмотра. Заранее спс.

а ка ее сделать скрытой.

Подскажите пож. Хочу перенести кнопку отчет эксель с главной формы на др. Но прога не видит таблицы на главной форме. Подскажите пож как это сделать. Заранее спс.

Igor wrote:
DriveSoft wrote:

Дело в том, что в версии 2.5 был немного изменен механизм подключения к БД, теперь нет возможности обращаться к БД из секции

begin

end.

просто перенесите код подключения к БД в событие OnShow главной формы.

Дмитрий, добрый вечер !
Теперь все работает, спасибо за подсказку!

И как это сделать подробнее как для юзера если можно

163

(5 replies, posted in Russian)

При компиляции ваших проектов и моих выпадает ошибка. И ехе проекта зависает в диспетчере задач.
Ссылка на скрин https://www.dropbox.com/s/scpxavtvk78t8 … 8.png?dl=0

Я так понимаю  My Visual DataBase ориентирована на юзера. Если такое возможно. Добавить к кнопке и др обьектам в поле свойства еще одно свойство скрипт. т.е. мы не пишем целую страницу кода на все обьекты сразу, а для например кнопки если нужно открыть файл в свойствах скрипт вписываем

procedure Form......._Button1_OnClick (Sender: string; var Cancel: boolean);

begin

    OpenFile(ExtractFilePath(Application.ExeName) +'Файл);

end;

а My Visual DataBase сам строит скрипт. Было-бы идеально. Таким образом можно было-бы составить справку стандартных скриптов. И любой юзер справился бы с софтиной.

Помогите пож решить задачку. Нужно сделать права доступа в форме formIzm в таблице TableGrid1 права доступа как и в главной таблице. т.е. эта таблица привязывается к строчке главной таблицы на главной форме. т.к. замечание могут устранять несколько человек. Заранее спс.
ссылка https://www.dropbox.com/s/kehsjhtz7c70d … F.zip?dl=0

166

(7 replies, posted in Script)

спс

167

(7 replies, posted in Script)

У меня тоже вопрос. Экспортируются все столбцы из TableGrid1. Как сделать чтобы одну из колонок не экспортировать. Заранее спс.

Спс . Вы как всегда выручаете.

Извените не ту весию скинул . Вот ссылка https://www.dropbox.com/s/gxxwmvkoz9y59 … 2.zip?dl=0

Сссылка на проект https://www.dropbox.com/s/gxxwmvkoz9y59 … 2.zip?dl=0

Один раз я так думаю она обьявляется в правах пользователя др в ABOUT. Подскажите как корректно убрать.
   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 TabOtkaz 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 ) ;
FormGlavn.Edit3.Text := SQLExecute('SELECT OtcLico FROM tabotkaz WHERE id = '+idS ) ;


end;



procedure FormGlavn_Button4_OnClick (Sender: string; var Cancel: boolean);

begin

    OpenFile(ExtractFilePath(Application.ExeName) +'Help.chm');

end;

   procedure FormGlavn_OnShow (Sender: string; Action: string); // event OnShow
begin
   FormGlavn.mniAbout.OnClick := @MenuClickAbout;
end;

procedure MenuClickAbout (Sender: string); // click in About menu item
begin
     frmAbout.ShowModal;
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.

https://www.dropbox.com/s/dvxpn8bdrbhzm … 6.png?dl=0
Создаю  свое пункт меню "О Программе" и окно с информацией.

Все получилось. smile еще раз спс.

спс огромное выручили.

Подскажите пож где ошибка. При первом запуске все работает. При перезапуске программы на изменение записи не важно админ или юзер не отределяет пользователя и соответственно не дает изменить запись. Админ удалить запись может а бзер свою не может. Жду вашего ответа. Заранее спс за ответ.
Скрин https://www.dropbox.com/s/de80npevelbk3sw/125.png?dl=0
На всякий случай проект https://www.dropbox.com/s/gxxwmvkoz9y59 … 2.zip?dl=0