Добрый день
Помогите с оптимизацией кода
Есть Форма авторизации при введении правильного логина и пароля
Получаем из таблицы базы данных
параметры главного меню основной формы в зависимости от роли пользователя
Структура базы такова
Таблица СпрПользователи связана с таблицей СпрГрупп которая связана с таблицей СпрИнтерфейсов
Задачу решил так
Код:
ADOQueryFase.Active:=False;
ADOQueryFase.SQL.Clear;
ADOQueryFase.SQL.Add('SELECT *');
ADOQueryFase.SQL.Add('FROM SprFase');
ADOQueryFase.SQL.Add('WHERE');
ADOQueryFase.SQL.Add('FaseID = '+InttoStr(IFaseID[H])+' ');
ADOQueryFase.Open;
//Настройка интерфейса
IFACE:= ADOQueryFase.FieldValues['MClose'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MClose.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MNewOrder'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MNewOrder.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MUsers'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MUsers.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MTMC'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MTMC.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MContractor'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MContractor.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MCatalog'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MCatalog.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MSettings'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MSettings.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MRegister'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MRegister.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MRegister'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MRegister.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MDoc'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MDoc.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MReports'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MReports.Visible:=IFACEBool;
IFACE:= ADOQueryFase.FieldValues['MParameters'];
if IFACE = 1 then
IFACEBool:=True
else IfaceBool:=False;
MainForm.MainMenu.MParameters.Visible:=IFACEBool;
Админ: Пользуемся тегами для оформления кода!
Как можно более красиво решить данную задачу?