Диплом: Автоматизация регистрации обращений граждан в Агенство социального страхования и пенсий при Правительстве Республики Таджикистан

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
126
GurGroupBox: TGroupBox;
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOQuery2: TADOQuery;
GurComboBox: TComboBox;
UserComboBox: TComboBox;
procedure SelectButtonClick(Sender: TObject);
procedure PrintButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
SelectionForm: TSelectionForm;
implementation
{$R *.dfm}
procedure TSelectionForm.SelectButtonClick(Sender: TObject);
var id: string;
begin
// делаем выборку в таблицу записей из журналов
ADOConnection1.Open();
ADOQuery1.SQL.Clear();
ADOQuery1.SQL.Text:='Select dbo.USERS.NUM from dbo.USERS where
dbo.USERS.Login= '''+UserComboBox.Text+''' ';
ADOQuery1.Active:=True;
id:=ADOQuery1.FieldByName('NUM').AsString;
ADOQuery1.Active:=False;
ADOConnection1.Close();
ADOConnection1.Open();
ADOQuery1.SQL.Clear();
if(GurComboBox.Text='GUR_REG_ORG') then
ADOQuery1.SQL.Text:='Select
dbo.GUR_REG_ORG.NUM,Nomer,NUM_REG,Name_org,DATE_REG,dbo.RESON.Reason,d
bo.USERS.Login from dbo.gur_reg_org,dbo.RESON,dbo.USERS where
dbo.gur_reg_org.DATE_REG BETWEEN '''+DateToStr(StartDateTime.Date)+''' AND
'''+DateToStr(EndDateTime.Date)+'''and
127
dbo.GUR_REG_ORG.NUM_RESON=dbo.RESON.NUM and
dbo.gur_reg_org.num_user=dbo.users.num and dbo.gur_reg_org.num_user= '''+id+''' '
else
ADOQuery1.SQL.Text:='Select
dbo.GUR_REG_ZL.NUM,dbo.GUR_REG_ZL.Nomer,dbo.GUR_REG_ZL.Pers_num,dbo.GUR
_REG_ZL.Family,dbo.GUR_REG_ZL.Name1,dbo.GUR_REG_ZL.Name2,dbo.GUR_REG_ZL.
DATE_REG,dbo.RESON.Reason,dbo.USERS.Login '+ 'from
dbo.GUR_REG_ZL,dbo.USERS,dbo.RESON where dbo.GUR_REG_ZL.DATE_REG
BETWEEN '''+DateToStr(StartDateTime.Date)+''' AND '''+DateToStr(EndDateTime.Date)+'''and
dbo.GUR_REG_ZL.NUM_RESON=dbo.RESON.NUM and
dbo.gur_reg_zl.num_user=dbo.users.num and dbo.gur_reg_zl.num_user= '''+id+''' ';
ADOQuery1.Active:=True;
if(ADOQuery1.RecordCount>0) then
begin
PrintButton.Enabled:=True;
end
else
begin
ShowMessage('По вашему запросу в БД не существует строк');
PrintButton.Enabled:=False;
end;
end;
procedure TSelectionForm.PrintButtonClick(Sender: TObject);
var Word,WordTable: variant;
j,k: integer;
// выводим результаты запроса в ворд
begin
try
k:=ADOQuery1.RecordCount+1;
// создаем документ ворд и добавляем таблицу с сеткой
Word:=CreateOleObject('Word.Application');
Word.Documents.Add();
Word.ActiveDocument.Tables.Add(Word.ActiveDocument.Range,k,6);
WordTable:=Word.ActiveDocument.Tables.Item(1);
WordTable.Style:='Сетка таблицы'; // видимая сетка таблицы
WordTable.Cell(1, 1).Range.Font.Bold:=True; (* делаю заголовки жирные *)
WordTable.Cell(1, 1).Range.Text:='№П.П.';
WordTable.Cell(1, 2).Range.Font.Bold:=True; (* делаю заголовки жирные *)
WordTable.Cell(1, 3).Range.Font.Bold:=True; (* делаю заголовки жирные *)
WordTable.Cell(1, 4).Range.Font.Bold:=True; (* делаю заголовки жирные *)
WordTable.Cell(1, 4).Range.Text:='Причина обращения';
WordTable.Cell(1, 5).Range.Font.Bold:=True; (* делаю заголовки жирные *)
128
WordTable.Cell(1, 5).Range.Text:='Дата';
WordTable.Cell(1, 6).Range.Font.Bold:=True; (* делаю заголовки жирные *)
WordTable.Cell(1, 6).Range.Text:='Время';
// пишем в полученную таблицу выбранные значения значения
for j:=2 to k do
begin
WordTable.Cell(j, 1).Range.Text:=ADOQuery1.FieldByName('NUM').AsString;
if(GurComboBox.Text='GUR_REG_ORG') then
begin
WordTable.Cell(1, 3).Range.Text:='Наименование организации';
WordTable.Cell(1, 2).Range.Text:='Рег.номер орган.';
WordTable.Cell(j,
2).Range.Text:=ADOQuery1.FieldByName('NUM_REG').AsString;
WordTable.Cell(j, 3).Range.Text:=ADOQuery1.FieldByName('Name_Org').AsString;
end
else
begin
WordTable.Cell(1, 2).Range.Text:='Страховой номер';
WordTable.Cell(1, 3).Range.Text:='ФИО';
WordTable.Cell(j, 2).Range.Text:=ADOQuery1.FieldByName('Pers_Num').AsString;
WordTable.Cell(j, 3).Range.Text:=ADOQuery1.FieldByName('Family').AsString + ' '
+ ADOQuery1.FieldByName('Name1').AsString + ' '
+ADOQuery1.FieldByName('Name2').AsString;
end;
WordTable.Cell(j, 4).Range.Text:=ADOQuery1.FieldByName('Reason').AsString;
WordTable.Cell(j,
5).Range.Text:=ADOQuery1.FieldByName('DATE_REG').AsString;
WordTable.Cell(j,
6).Range.Text:=TimeToStr(ADOQuery1.FieldByName('DATE_REG').AsDateTime);
ADOQuery1.Next;
end;
Word.ActiveDocument.Range.InsertAfter('ИТОГО: ' + IntToStr(k-1));
Word.Visible:=True;
except
ShowMessage('Возможно на компьютере не установлен Word');
end;
end;
procedure TSelectionForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ADOQuery1.Active:=False;
ADOConnection1.Close();
end;
129
end.
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Mask, StdCtrls, ComCtrls, ExtCtrls, ADODB, DB;
type
TAddForm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
FamilyLabeledEdit: TLabeledEdit;
Name1LabeledEdit: TLabeledEdit;
Name2LabeledEdit: TLabeledEdit;
VidDocumComboBox: TComboBox;
Label1: TLabel;
SeriaLabeledEdit: TLabeledEdit;
NomerDLabeledEdit: TLabeledEdit;
DateVidDateTimePicker: TDateTimePicker;
KemVydanLabeledEdit: TLabeledEdit;
DateRogDateTimePicker: TDateTimePicker;
PrichObrComboBox: TComboBox;
CancelButton: TButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button2: TButton;
PersNumMaskEdit: TMaskEdit;
Label5: TLabel;
Label6: TLabel;
NameOrgLabeledEdit: TLabeledEdit;
INNLabeledEdit: TLabeledEdit;
KPPLabeledEdit: TLabeledEdit;
Button3: TButton;
SaveToGurOrgButton: TButton;
RegNMaskEdit: TMaskEdit;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
NPLabeledEdit: TLabeledEdit;
UlicaLabeledEdit: TLabeledEdit;
DomLabeledEdit: TLabeledEdit;
130
KorpLabeledEdit: TLabeledEdit;
KvLabeledEdit: TLabeledEdit;
AddToBDButton: TButton;
AddToBDOrgButton: TButton;
PrObrComboBox2: TComboBox;
Label7: TLabel;
procedure CancelButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure PersNumMaskEditChange(Sender: TObject);
procedure AddToBDButtonClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RegNMaskEditChange(Sender: TObject);
procedure AddToBDOrgButtonClick(Sender: TObject);
procedure SaveToGurOrgButtonClick(Sender: TObject);
procedure PersNumMaskEditKeyPress(Sender: TObject; var Key: Char);
procedure FamilyLabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure Name1LabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure Name2LabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure DateRogDateTimePickerKeyPress(Sender: TObject;
var Key: Char);
procedure VidDocumComboBoxKeyPress(Sender: TObject; var Key: Char);
procedure SeriaLabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure NomerDLabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure DateVidDateTimePickerKeyPress(Sender: TObject;
var Key: Char);
procedure KemVydanLabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure NPLabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure UlicaLabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure DomLabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure KorpLabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure KvLabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure TabSheet2Show(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure PersNumMaskEditClick(Sender: TObject);
procedure RegNMaskEditClick(Sender: TObject);
private
{ Private declarations }
public
Login : String;
max_num: integer;
Alias:String;
DocumNomText : String;
{ Public declarations }
end;
131
var
AddForm: TAddForm;
implementation
uses Unit1, Math;
{$R *.dfm}
procedure TAddForm.CancelButtonClick(Sender: TObject);
begin
AddForm.Close();
end;
procedure TAddForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MainForm.Show();
end;
procedure TAddForm.FormShow(Sender: TObject);
var Metka1,Metka2:String;
// указываем в зависимости от роли какие причины обращения выбирать из базы
begin
if(Alias='OPU') then
begin
Metka1:='PU2';
Metka2:='PU1';
end;
if(Alias='OPP') then
begin
Metka1:='OPP';
Metka2:='PU1';
end;
if(Alias='MSK') then
begin
Metka1:='MSK';
Metka2:='CLS';
PageControl1.Pages[0].Caption:='MSK';
PageControl1.Pages[1].Caption:='Прочее';
132
end;
if(Alias='CLS') then
begin
PageControl1.Pages[0].Caption:='';
Metka1:='CLS';
Metka2:='PU1';
end;
ADOConnection1.Open();
ADOQuery1.SQL.Clear();
ADOQuery1.SQL.Text:='Select REASON from dbo.RESON where metka='''+Metka1+'''';
ADOQuery1.Open();
ADOQuery1.First;
while not ADOQuery1.eof do
begin
PrichObrComboBox.Items.Add(ADOQuery1.FieldByName('REASON').AsString);
ADOQuery1.Next;
end;
ADOQuery1.Close();
ADOConnection1.Close();
ADOConnection1.Open();
ADOQuery1.SQL.Clear();
ADOQuery1.SQL.Text:='Select REASON from dbo.RESON where metka='''+Metka2+'''';
ADOQuery1.Open();
ADOQuery1.First;
while not ADOQuery1.eof do
begin
PrObrComboBox2.Items.Add(ADOQuery1.FieldByName('REASON').AsString);
ADOQuery1.Next;
end;
ADOQuery1.Close();
ADOConnection1.Close();
// выбираем типы документов из бд
ADOConnection1.Open();
ADOQuery1.SQL.Clear();
133
ADOQuery1.SQL.Text:='Select NAME_D from dbo.DOCUM';
ADOQuery1.Open();
ADOQuery1.First;
while not ADOQuery1.eof do
begin
VidDocumComboBox.Items.Add(ADOQuery1.FieldByName('NAME_D').AsString);
ADOQuery1.Next;
end;
ADOQuery1.Close();
ADOConnection1.Close();
end;
procedure TAddForm.PersNumMaskEditChange(Sender: TObject);
// при изменении текста в поле персональный номер ищем в БД совпадения по
перснональному номеру елси совпадения найдены заполняем поля на форме
begin
DocumNomText:=PersNumMaskEdit.Text;
if(Pos(' ', DocumNomText)<>0) then
begin
while(Pos(' ', DocumNomText)<>0) do
begin
Delete(DocumNomText,Pos(' ', DocumNomText),1);
end;
while(Pos('-', DocumNomText)<>0) do
begin
Delete(DocumNomText,Pos('-', DocumNomText),1);
end;
while(Pos('_', DocumNomText)<>0) do
begin
Delete(DocumNomText,Pos('_', DocumNomText),1);
end;
ADOConnection1.Open();
ADOQuery1.SQL.Clear();
ADOQuery1.SQL.Text:='Select Nomer_D, Num_D,
Pers_num,Family,Name1,Name2,Date_r,Seria,DATA_V,Vidan,KV,Korp,Dom,dbo.street.Name
as Number_Ul,dbo.Punkt.Name as Number_P from dbo.BD_ZL,dbo.Street,dbo.Punkt where
Pers_num like'''+DocumNomText+'%'' and dbo.Punkt.Number=dbo.BD_ZL.NUMber_P and
dbo.Street.Number=dbo.BD_ZL.Number_P';
ADOQuery1.Open();
134
if(ADOQuery1.RecordCount=1) then
begin
FamilyLabeledEdit.Text:= ADOQuery1.FieldByName('Family').AsString;
Name1LabeledEdit.Text:= ADOQuery1.FieldByName('Name1').AsString;
Name2LabeledEdit.Text:= ADOQuery1.FieldByName('Name2').AsString;
DateRogDateTimePicker.DateTime:= ADOQuery1.FieldByName('DATE_R').AsDateTime;
VidDocumComboBox.Text:=VidDocumComboBox.Items[ADOQuery1.FieldByName('NUM_D
').asInteger-1];
Name2LabeledEdit.Text:= ADOQuery1.FieldByName('Name2').AsString;
SeriaLabeledEdit.Text:=ADOQuery1.FieldByName('Seria').AsString;
NomerDLabeledEdit.Text:=ADOQuery1.FieldByName('Nomer_D').AsString;
DateVidDateTimePicker.DateTime:= ADOQuery1.FieldByName('DATA_V').AsDateTime;
KemVydanLabeledEdit.Text:=ADOQuery1.FieldByName('Vidan').AsString;
KvLabeledEdit.Text:=ADOQuery1.FieldByName('KV').AsString;
KorpLabeledEdit.Text:=ADOQuery1.FieldByName('Korp').AsString;
DomLabeledEdit.Text:=ADOQuery1.FieldByName('Dom').AsString;
UlicaLabeledEdit.Text:=ADOQuery1.FieldByName('Number_Ul').AsString;
NPLabeledEdit.Text:=ADOQuery1.FieldByName('Number_P').AsString;
DocumNomText:=ADOQuery1.FieldByName('Pers_num').AsString;
Insert('-',DocumNomText,4);
Insert('-',DocumNomText,8);
Insert('_',DocumNomText,12);
PersNumMaskEdit.Text:= DocumNomText;
end;
ADOQuery1.Close();
ADOConnection1.Close();
end;
end;
procedure TAddForm.AddToBDButtonClick(Sender: TObject);
var idNp,idUl,idDocum : INTEGER; ready:Boolean;
begin
// проверяем по длине поля
ready:=True;
if(Length(PersNumMaskEdit.Text)<>14) then
begin
ready:=False;
ShowMessage('Страховой номер должен содержать 12 символов');
end;
135
if((Length(FamilyLabeledEdit.Text)>20) or (Length(FamilyLabeledEdit.Text)=0)) then
begin
ready:=False;
ShowMessage('Фамилия должна быть не более 20 символов, не допускается пустых
полей');
end;
if((Length(Name1LabeledEdit.Text)>15) or (Length(Name1LabeledEdit.Text)=0)) then
begin
ready:=False ;
ShowMessage('Имя должно быть не более 15 символов, не допускается пустых полей');
end;
if((Length(Name2LabeledEdit.Text)>20) or (Length(Name2LabeledEdit.Text)=0)) then
begin
ready:=False ;
ShowMessage('Отчество должно быть не более 20 символов, не допускается пустых
полей');
end;
if((Length(SeriaLabeledEdit.Text)>6) or (Length(SeriaLabeledEdit.Text)=0)) then
begin
ready:=False;
ShowMessage('Серия должна быть не более 6 символов, не допускается пустых полей');
end;
if((Length(NomerDLabeledEdit.Text)>8) or (Length(NomerDLabeledEdit.Text)=0)) then
begin
ready:=False;
ShowMessage('Номер документа должен быть не более 8 символов, не допускается
пустых полей');
end;
if((Length(KemVydanLabeledEdit.Text)>30) or (Length(KemVydanLabeledEdit.Text)=0))
then
begin
ready:=False;
ShowMessage('Поле Кем выдан должно быть не более 30 символов, не допускается
пустых полей');
end;
if((Length(DomLabeledEdit.Text)>3) or (Length(DomLabeledEdit.Text)=0)) then
begin
ready:=False;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)