Приложение А (1230876)
Текст из файла
Приложение А
Листинг кода программы, отвечающего за авторизацию:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IniFiles, ExtCtrls;
type
TForm3 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Timer1: TTimer;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
Name1,Pass:string;
id_sotr, Group,i:integer;
implementation
uses unit2, unit1, unit4, unit5, unit8;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
var NameLog,PassLog:string;
Doljn:integer;
begin
Name1:=Edit1.Text;
Pass:=Edit2.Text;
DM.DS_Actve.First;
while NOT DM.DS_Actve.Eof DO
begin
if (DM.DS_Actve.FBN('FIO_').AsString=Name1) and
(DM.DS_Actve.FBN('PASSWORD_').AsString=Pass) then
begin
NameLog:=DM.DS_Actve.FBN('FIO_').AsString;
PassLog:=DM.DS_Actve.FBN('PASSWORD_').AsString;
Doljn:=DM.DS_Actve.FBN('DOLJN_').AsInteger;
id_Sotr:=DM.DS_Actve.FBN('ID_FIO').AsInteger;
Group:=DM.DS_Actve.FBN('GROUP_').AsInteger;
end;
DM.DS_Actve.Next;
end;
if Name1='' then
begin
MessageDlg('Неверно введено имя пользователя или пароль',mtError,[mbYes],0);
i:=0;
end
else
if (Name1=NameLog) and (Pass=PassLog) then
begin
case Doljn of
5..10: Form1.Show;
2: FORM4.Show;
1: Begin
FOrm5.Show;
Form5.Caption:='АРМ Начальника отдела';
End;
3: Begin
FOrm5.Show;
Form5.Caption:='АРМ Главного специалиста';
End;
end;
Timer1.Enabled:=false;
Form3.hide;
end
else
begin
MessageDlg('Неверно введено имя пользователя или пароль',mtError,[mbYes],0);
i:=0;
end;
end;
procedure TForm3.FormActivate(Sender: TObject);
var Ini:TIniFile;
DBN,Pathini,Serv:string;
i:integer;
begin
Timer1.Enabled:=true;
Pathini:=ExtractFilePath(Application.ExeName)+'Info.ini';
Ini:=TIniFile.Create(Pathini);
DBN:=Ini.ReadString('Path','DBName','');
Serv:=Ini.ReadString('Path','Server','');
if FileExists(DBN) then
try
begin
DM.DB.DBName:=Serv+':'+DBN;
DM.DB.Connected:=true;
DM.DT.Active:=true;
DM.DS_Actve.Open;
DM.DS_OBJ.Open;
end;
Except
try
begin
DM.DB.DBName:='\\'+Serv+'\'+DBN;
DM.DB.Connected:=true;
DM.DT.Active:=true;
DM.DS_Actve.Open;
DM.DS_OBJ.Open;
end;
Except
MessageDlg('Не удалось подключиться к БД',mtError,[mbOk],1);
Form3.Close;
end
end
else
begin
i:=MessageDlg('Не найден путь к БД',mtError,[mbOk],1);
if i=mrOk then Form3.Close;
end;
end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.DB.Connected:=false;
DM.DT.Active:=false;
Application.Terminate;
end;
procedure TForm3.FormCreate(Sender: TObject);
var Wnd: hWnd;
buff: array [0..127] of char;
begin
Wnd:=GetWindow(Handle,GW_HWNDFIRST);
while Wnd <> 0 do
begin
if (Wnd <>Application.Handle) and (GetWindow(WND,GW_OWNER)=0) then
begin
GetWindowText(WNd,buff,SizeOf(buff));
if Length(StrPas(buff))>0 then
memo1.Lines.Add(StrPas(buff));
if StrPas(buff)=Application.Title then
begin
MessageDlg('Приложение уже загружено!',mtWarning,[mbOk],0);
Application.Terminate;
end;
end;
Wnd:=GetWindow(Wnd,GW_HWNDNEXT);
end;
end;
procedure TForm3.Timer1Timer(Sender: TObject);
begin
i:=i+1;
if i=300 then
begin
Form8.Show;
Form3.Visible:=false;
end;
end;
end.
Листинг кода программы, отвечающего за работу АРМа НГ:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls;
type
TForm4 = class(TForm)
Label1: TLabel;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
DBGrid1: TDBGrid;
CB1: TComboBox;
CB2: TComboBox;
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
Memo3: TMemo;
RB1: TRadioButton;
RB2: TRadioButton;
Panel2: TPanel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
DBGrid2: TDBGrid;
Memo4: TMemo;
Memo5: TMemo;
Memo6: TMemo;
Button2: TButton;
Label10: TLabel;
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid2CellClick(Column: TColumn);
procedure Button1Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure RB2Click(Sender: TObject);
procedure CB1Select(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RB1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure CB2Select(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
ID_SH,ID_STAD:integer;
implementation
uses unit2, unit3;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
var TIME1,Razn:TDateTime;
hour,min,sec,msec:word;
begin
if (CB1.ItemIndex=-1) or (CB2.ItemIndex=-1) then
MessageDlg('Заполнены не все поля',mtInformation,[mbOk],1)
else
begin
DM.DS_WRK.Insert;
DM.DS_WRK.FBN('DATE_').AsDateTime:=Date;
DM.DS_WRK.FBN('TIME_').AsDateTime:=TIME;
DM.DS_WRK.FBN('SOTR_').AsInteger:=id_sotr;
DM.DS_WRK.FBN('SHIFR_').AsInteger:=ID_SH;
DM.DS_WRK.FBN('STAD_').AsInteger:=ID_STAD;
DM.DS_WRK.FBN('WORK_').AsString:=Memo3.Text;
DM.DS_WRK.FBN('DISCR_').AsString:=Memo2.Text;
DM.DS_WRK.FBN('ZATR_TIME').AsInteger:=0;
DM.DS_WRK.Post;
DM.DB.DefaultTransaction.CommitRetaining;
DM.DS_WRK.First;
Dm.DS_WRK.Next;
if DM.DS_WRK.RecordCount>1 then
begin
TIME1:=StrToTime(DM.DS_WRK.FBN('TIME_').AsString);
DM.DS_WRK.Edit;
Razn:=time-TIME1+StrToTime('01:00:00');
DecodeTime(razn,hour,min,sec,msec);
DM.DS_WRK.FBN('ZATR_TIME').AsInteger:=hour;
DM.DS_WRK.Post;
DM.DB.DefaultTransaction.CommitRetaining;
DM.DS_WRK.Next;
end;
DM.DS_WRK.Close;
DM.DS_WRK.Open;
RB1.Checked:=true;
Memo1.Clear;
Memo2.Clear;
Memo3.Clear;
CB1.ItemIndex:=-1;
CB2.ItemIndex:=-1;
end;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
{DM.DB.Connected:=false;
DM.DB.Connected:=true;
DM.DT.Active:=true;
DM.DS_OBJ.Open;}
DM.DS_GR.Close;
DM.DS_GR.open;
{DM.DS_WRK.Open;
memo1.Clear;
memo2.Clear;
memo3.Clear;
memo4.Clear;
memo5.Clear;
memo6.Clear;}
end;
procedure TForm4.CB1Select(Sender: TObject);
var n:string;
begin
n:=CB1.Items.Strings[CB1.ItemIndex];
ID_SH:=CB1.ItemIndex+1;
DM.DS_OBJ.First;
while NOT DM.DS_OBJ.Eof do
begin
if DM.DS_OBJ.FBN('SHIFR_').asString=n then
Memo1.Text:=DM.DS_OBJ.FBN('TITUL_').AsString;
DM.DS_OBJ.Next;
end;
end;
procedure TForm4.CB2Select(Sender: TObject);
begin
ID_STAD:=CB2.ItemIndex+1;
end;
procedure TForm4.RB1Click(Sender: TObject);
begin
if RB1.Checked then
begin
Button1.Enabled:=false;
CB1.Enabled:=false;
CB2.Enabled:=false;
Label2.Enabled:=false;
Label3.Enabled:=false;
end;
end;
procedure TForm4.RB2Click(Sender: TObject);
begin
if RB2.Checked then
begin
Button1.Enabled:=true;
CB1.Enabled:=true;
CB2.Enabled:=true;
Label2.Enabled:=true;
Label3.Enabled:=true;
Memo1.Clear;
Memo2.Clear;
Memo3.Clear;
CB1.ItemIndex:=-1;
CB2.ItemIndex:=-1;
end;
end;
procedure TForm4.DBGrid1CellClick(Column: TColumn);
var n:string;
begin
n:=DM.DS_WRK.FBN('SHIFR_1').asString;
DM.DS_OBJ.Open;
DM.DS_OBJ.First;
while NOT DM.DS_OBJ.Eof do
begin
if DM.DS_OBJ.FBN('SHIFR_').asString=n then
begin
Memo1.Clear;
Memo1.Text:=DM.DS_OBJ.FBN('TITUL_').AsString;
end;
DM.DS_OBJ.Next;
end;
Memo2.Clear;
Memo3.Clear;
Memo2.Text:=DM.DS_WRK.FBN('WORK_').AsString;
Memo3.Text:=DM.DS_WRK.FBN('DISCR_').AsString;
end;
procedure TForm4.DBGrid2CellClick(Column: TColumn);
begin
memo4.Clear;
memo5.Clear;
memo6.Clear;
Memo5.Text:=DM.DS_GR.FBN('WORK_').AsString;
DM.DS_OBJ.First;
while NOT DM.DS_OBJ.Eof do
begin
if DM.DS_GR.FBN('SHIFR_').AsString=DM.DS_OBJ.FBN('SHIFR_').AsString then
Memo4.Text:=DM.DS_OBJ.FBN('TITUL_').AsString;
DM.DS_OBJ.Next;
end;
Memo6.Text:=DM.DS_GR.FBN('DISCR_').AsString;
end;
procedure TForm4.FormActivate(Sender: TObject);
var s:string;
begin
DM.DS_GROUP.Open;
DM.DS_GROUP.First;
while NOT DM.DS_GROUP.EOF do
begin
IF DM.DS_GROUP.FBN('ID_GR').AsInteger=Group
then Label10.Caption:='Группа: '+DM.DS_GROUP.FBN('NAME_GROUP').AsString;
DM.DS_GROUP.Next;
end;
Label1.Caption:=Name1;
DM.DS_WRK.SQLs.SelectSQL.Add(' and SOTR_='+IntToStr(id_sotr)+' Order by DATE_ desc, TIME_ desc');
DM.DS_WRK.Open;
DM.DS_GR.Sqls.SelectSQL.Text:='SELECT * FROM FIO, RABOTA WHERE ID_FIO= SOTR_ AND GROUP_=';
DM.DS_GR.Sqls.SelectSQL.Add(IntToStr(Group)+' AND ID_FIO<>');
DM.DS_GR.Sqls.SelectSQL.Add(IntToStr(id_sotr)+'Order by DATE_ desc, TIME_ desc');
DM.DS_GR.Open;
CB1.clear;
CB2.clear;
DM.DS_OBJ.Open;
DM.DS_OBJ.First;
while NOT DM.DS_OBJ.Eof do
begin
s:=DM.DS_OBJ.FBN('SHIFR_').AsString;
CB1.Items.Add(s);
DM.DS_OBJ.Next;
end;
DM.DS_STAD.Open;
DM.DS_STAD.First;
while NOT DM.DS_STAD.Eof do
begin
s:=DM.DS_STAD.FBN('NAME_STAD').AsString;
CB2.Items.Add(s);
DM.DS_STAD.Next;
end;
end;
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form4.Destroy;
DM.DB.Connected:=false;
DM.DT.Active:=false;
Application.Terminate;
end;
procedure TForm4.FormDestroy(Sender: TObject);
var TIME1,Razn:TDateTime;
hour,min,sec,msec:word;
begin
if DM.DS_WRK.Active then
begin
DM.DS_WRK.First;
if DM.DS_WRK.RecordCount>=1 then
if DM.DS_WRK.FBN('ZATR_TIME').asInteger=0 then
begin
DM.DS_WRK.Edit;
TIME1:=StrToTime(DM.DS_WRK.FBN('TIME_').AsString);
DM.DS_WRK.Edit;
Razn:=time-TIME1+StrToTime('01:00:00');
DecodeTime(razn,hour,min,sec,msec);
DM.DS_WRK.FBN('ZATR_TIME').AsInteger:=hour;
DM.DS_WRK.Post;
DM.DB.DefaultTransaction.CommitRetaining;
end;
end;
end;
end.
Листинг кода программы, отвечающего за работу АРМа НО и ГС:
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, ComObj, IniFiles;
type
TForm5 = class(TForm)
Panel2: TPanel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
DBGrid2: TDBGrid;
Memo4: TMemo;
Memo5: TMemo;
Memo6: TMemo;
Button2: TButton;
Label1: TLabel;
Button1: TButton;
Button3: TButton;
Button4: TButton;
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.













