Скачиваний:
10
Добавлен:
17.06.2023
Размер:
2.07 Mб
Скачать

function checkEdit:boolean;

 

 

 

 

ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

public

 

 

 

 

if PParol.DBLookupComboBox1.Text='ГОСТЬ' then

 

{ Public declarations }

 

 

 

 

begin

 

 

end;

 

 

 

 

GroupBox1.Enabled:=False;

 

 

 

 

 

 

 

end;

 

 

var

 

 

 

 

end;

 

 

ZZakaz: TZZakaz;

 

 

 

 

 

 

 

s:string;

 

 

 

 

procedure TZZakaz.DBGrid1TitleClick(Column: TColumn);

 

ins:boolean;

 

 

 

 

var

 

 

buttonSelected:integer;

 

 

 

 

i:integer;

 

 

 

 

 

 

 

clr:TColor;

 

 

implementation

 

 

 

 

begin

 

 

 

 

 

 

 

s:=' ASC';

 

 

{$R *.dfm}

 

 

 

 

clr:= clMoneyGreen;

 

 

uses Data_modul, Fond, Parol;

 

 

 

 

if RadioButton2.Checked then

 

 

 

 

 

 

 

begin

 

 

procedure TZZakaz.Refresh;

 

 

 

 

s:=' DESC';

 

 

begin

 

 

 

 

clr:= clSkyBlue;

 

 

DM.ZakazQuery1.Close;

 

 

 

 

end;

 

 

DM.ZakazQuery1.Open;

 

 

 

 

for i:=0 to DBGrid1.Columns.Count-1 do

 

end;

 

 

 

 

DBGrid1.Columns.Items[i].Title.Color:= clBtnFace;

 

 

 

 

 

 

DBGrid1.Columns.Items[Column.Index].Title.Color:=clr;

 

procedure TZZakaz.isEdit;

 

 

 

 

DM.ZakazQuery1.Sort:=

 

 

begin

 

 

 

 

DBGrid1.Columns.Items[Column.Index].FieldName+s;

 

if DBEdit1.Text<>'' then

 

 

 

 

end;

 

 

begin

 

 

 

 

 

 

 

DM.CheckQuery1.SQL.Text:='UPDATE Zakaz SET Zakaz.EDIT =

procedure TZZakaz.Edit1Change(Sender: TObject);

 

True WHERE Zakaz.z_id='+DBEdit1.Text+';';

 

 

 

begin

 

 

DM.CheckQuery1.ExecSQL;

 

 

 

 

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0;

 

DM.CheckQuery1.SQL.Text:='Select

*

from

Zakaz

WHERE

S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName;

z_id='+DBEdit1.Text+';';

 

 

 

 

DM.ZakazQuery1.SQL.Clear;

 

 

DM.CheckQuery1.Open;

 

 

 

 

DM.ZakazQuery1.SQL.Add('SELECT *FROM Zakaz'+

 

end;

 

 

 

 

' WHERE '+s+' LIKE "'+Edit1.text+'%"');

 

end;

 

 

 

 

Refresh;

 

 

 

 

 

 

 

end;

 

 

procedure TZZakaz.noEdit;

 

 

 

 

 

 

 

begin

 

 

 

 

procedure TZZakaz.DBNavigator2BeforeAction(Sender: TObject;

if DBEdit1.Text<>'' then

 

 

 

 

Button: TNavigateBtn);

 

 

begin

 

 

 

 

var

 

 

DM.CheckQuery1.SQL.Text:='UPDATE Zakaz SET Zakaz.EDIT =

n:integer;

 

 

False WHERE Zakaz.z_id='+DBEdit1.Text+';';

 

 

 

begin

 

 

DM.CheckQuery1.ExecSQL;

 

 

 

 

ins:=false;

 

 

DM.CheckQuery1.SQL.Text:='Select

*

from

Zakaz

WHERE

if Button=nbInsert then

 

 

z_id='+DBEdit1.Text+';';

 

 

 

 

begin

 

 

DM.CheckQuery1.Open;

 

 

 

 

ins:=true;

 

 

end;

 

 

 

 

if DBEdit2.Enabled then DBEdit2.SetFocus;

 

end;

 

 

 

 

end;

 

 

 

 

 

 

 

if (Button=nbRefresh) then

 

 

function TZZakaz.checkEdit:boolean;

 

 

 

 

begin

 

 

begin

 

 

 

 

n:=DM.ZakazQuery1.FieldValues['z_id'];

 

checkEdit:=false;

 

 

 

 

Refresh;

 

 

if DBEdit1.Text<>'' then DM.CheckQuery1.SQL.Text:='Select * from

DM.ZakazQuery1.Locate('z_id',n,[]);

 

Zakaz'+' WHERE z_id='+DBEdit1.Text+';';

 

 

 

end;

 

 

DM.CheckQuery1.Open;

 

 

 

 

end;

 

 

if DBEdit10.Text<>'' then

 

 

 

 

 

 

 

begin

 

 

 

 

procedure TZZakaz.BitBtn1Click(Sender: TObject);

 

Label7.Visible:=StrToBool(DBEdit10.Text);

 

 

begin

 

 

DBEdit2.Enabled:= not StrToBool(DBEdit10.Text);

 

if DM.ZakazQuery1.FieldValues['EDIT']=false then

 

DBEdit3.Enabled:= not StrToBool(DBEdit10.Text);

 

begin

 

 

DBEdit4.Enabled:= not StrToBool(DBEdit10.Text);

 

buttonSelected:=MessageDlg('Удалить

 

DateTimePicker1.Enabled:= not StrToBool(DBEdit10.Text);

 

запись?',mtWarning,mbOKCancel, 0);

 

DateTimePicker2.Enabled:= not StrToBool(DBEdit10.Text);

 

if buttonSelected = mrOK then

 

 

DBEdit7.Enabled:= not StrToBool(DBEdit10.Text);

 

begin

 

 

DBEdit8.Enabled:= not StrToBool(DBEdit10.Text);

 

DM.ZakazQuery2.Close;

 

 

DBEdit9.Enabled:= not StrToBool(DBEdit10.Text);

 

DM.ZakazQuery2.SQL.Clear;

 

 

DBComboBox1.Enabled:= not StrToBool(DBEdit10.Text);

 

DM.ZakazQuery2.SQL.Add('DELETE Zakaz.z_id, *FROM Zakaz

checkEdit:=StrToBool(DBEdit10.Text);

 

 

 

WHERE Zakaz.z_id='+DBEdit1.Text+';');

 

end;

 

 

 

 

DM.ZakazQuery2.ExecSQL;

 

 

end;

 

 

 

 

end;

 

 

 

 

 

 

 

end

 

 

procedure TZZakaz.FormCreate(Sender: TObject);

 

 

else

 

 

var i:integer;

 

 

 

 

MessageDlg('Запись

редактируется

другим

begin

 

 

 

 

пользователем',mtError,[mbOK],0);

 

DM.ADOConnection1.Connected:=true;

 

 

 

end;

 

 

DM.ZakazQuery1.SQL.Clear;

 

 

 

 

 

 

 

DM.ZakazQuery1.SQL.Add('SELECT *FROM Zakaz');

 

procedure TZZakaz.DBEdit1Change(Sender: TObject);

 

DM.ZakazQuery1.Open;

 

 

 

 

begin

 

 

for i:=0 to DBGrid1.Columns.Count-1

do

 

 

 

if (DBEdit1.Text<>'') and (not ins) then checkEdit;

 

42

end;

procedure TZZakaz.DBEdit2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

end;

procedure TZZakaz.DBEdit2Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TZZakaz.Timer1Timer(Sender: TObject); begin

if DBNavigator2.Controls[6].Enabled then begin

DBNavigator2.BtnClick(nbEdit);

DBNavigator2.BtnClick(nbRefresh);

end;

end;

procedure TZZakaz.FormClose(Sender: TObject; var Action: TCloseAction);

begin noEdit;

Timer1.Enabled:=false;

end;

procedure TZZakaz.DateTimePicker1CloseUp(Sender: TObject); begin

if DateTimePicker1.Date< Now then begin

MessageDlg('Нельзя делать дату заказа задним числом!',mtError,[mbOk],0);

DBEdit5.Clear; DateTime_SetFormat(DateTimePicker1.Handle, ''' ''');

abort; end

else begin

DBEdit5.EditText:=DateToStr(DateTimePicker1.Date); DateTime_SetFormat(DateTimePicker1.Handle,

PChar('dd.MM.yy'));

end;

end;

procedure TZZakaz.DateTimePicker2CloseUp(Sender: TObject); begin

if DateTimePicker1.Date>DateTimePicker2.Date then begin

MessageDlg('Нельзя сделать дату получения книги раньше даты заказы! Пересмотрите дату получения книги!',mtError,[mbOk],0);

DBEdit6.Clear; DateTime_SetFormat(DateTimePicker2.Handle, ''' ''');

abort; end

else begin

DBEdit6.EditText:=DateToStr(DateTimePicker2.Date); DateTime_SetFormat(DateTimePicker2.Handle,

PChar('dd.MM.yy'));

end;

end;

procedure TZZakaz.DBEdit5Change(Sender: TObject); begin

if DBEdit5.Text<>'' then DateTimePicker1.Date:=StrToDate(DBEdit5.Text);

end;

procedure TZZakaz.DBEdit6Change(Sender: TObject); begin

if DBEdit6.Text<>'' then DateTimePicker1.Date:=StrToDate(DBEdit6.Text);

end;

procedure TZZakaz.DBCheckBox1Click(Sender: TObject); begin

if DBGrid1.DataSource.DataSet.FieldByName('z_dobav').Value=true then begin

DBGrid2.DataSource.DataSet.Append;

DBGrid2.DataSource.DataSet.FieldByName('f_udk').AsString:=DBGrid1

.DataSource.DataSet.FieldByName('z_udk').AsString;

DBGrid2.DataSource.DataSet.FieldByName('f_vid').AsString:=DBGrid1.

DataSource.DataSet.FieldByName('z_vid').AsString;

DBGrid2.DataSource.DataSet.FieldByName('f_nazvanie').AsString:=DB

Grid1.DataSource.DataSet.FieldByName('z_nazvanie').AsString;

DBGrid2.DataSource.DataSet.FieldByName('f_avtor').AsString:=DBGri d1.DataSource.DataSet.FieldByName('z_avtor').AsString;

DBGrid2.DataSource.DataSet.FieldByName('f_god').AsString:=DBGrid1

.DataSource.DataSet.FieldByName('z_god').AsString;

DBGrid2.DataSource.DataSet.FieldByName('f_kolvo').AsString:=DBGri d1.DataSource.DataSet.FieldByName('z_kolvo').AsString; DBGrid2.DataSource.DataSet.Post; DBGrid2.DataSource.DataSet.Refresh; DBGrid2.DataSource.DataSet.Open; DBGrid1.DataSource.DataSet.Delete;

end;

end;

procedure TZZakaz.DBEdit2KeyPress(Sender: TObject; var Key: Char); begin

If (Key in ['0'..'9']) then Key:=#0;

end;

procedure TZZakaz.DBEdit7KeyPress(Sender: TObject; var Key: Char); begin

if Length(DBEdit7.Text)>20 then if key<>#8 then

key:=#0;

If not (Key in ['0'..'9', '-','.',#8]) then Key:=#0 ;

end;

procedure TZZakaz.DBComboBox1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TZZakaz.DBEdit8KeyPress(Sender: TObject; var Key: Char); begin

if Length(DBEdit8.Text)>=4 then if key<>#8 then

key:=#0;

If not (Key in ['0'..'9', #8]) then Key:=#0;

end;

procedure TZZakaz.DBEdit9KeyPress(Sender: TObject; var Key: Char); begin

if Length(DBEdit9.Text)>=4 then if key<>#8 then

key:=#0;

If not (Key in ['0'..'9', #8]) then Key:=#0;

end;

end.

43

Листинг Б.6 – Vidacha

unit Vidacha;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, DB, ADODB, StdCtrls, DBCtrls, Mask, Grids, DBGrids,

ComCtrls, jpeg, CommCtrl, Buttons;

type

TVVidacha = class(TForm) Panel1: TPanel;

Label7: TLabel; DBGrid1: TDBGrid; GroupBox1: TGroupBox; DBEdit1: TDBEdit;

DBNavigator2: TDBNavigator; GroupBox2: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; GroupBox3: TGroupBox; Edit1: TEdit;

ComboBox1: TComboBox; BitBtn1: TBitBtn;

Timer1: TTimer;

DBLookupComboBox1: TDBLookupComboBox;

DBLookupComboBox2: TDBLookupComboBox; DBEdit2: TDBEdit;

DateTimePicker1: TDateTimePicker;

DateTimePicker2: TDateTimePicker;

DateTimePicker3: TDateTimePicker; DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit; CheckBox1: TCheckBox; DBGrid2: TDBGrid; Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label8: TLabel;

Label9: TLabel;

Image1: TImage;

procedure FormCreate(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject);

procedure DBNavigator2BeforeAction(Sender: TObject; Button: TNavigateBtn);

procedure BitBtn1Click(Sender: TObject); procedure DBEdit1Change(Sender: TObject);

procedure DBLookupComboBox1Enter(Sender: TObject); procedure DBLookupComboBox1Exit(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Timer1Timer(Sender: TObject);

procedure DateTimePicker1CloseUp(Sender: TObject); procedure DateTimePicker2CloseUp(Sender: TObject); procedure DateTimePicker3CloseUp(Sender: TObject); procedure DBEdit2Change(Sender: TObject); procedure DBEdit3Change(Sender: TObject); procedure DBEdit4Change(Sender: TObject); procedure CheckBox1Click(Sender: TObject);

procedure DBLookupComboBox1CloseUp(Sender: TObject);

private

{ Private declarations } procedure Refresh; procedure isEdit; procedure noEdit;

function checkEdit:boolean; public

{ Public declarations }

end; const

SQL='SELECT Vidacha.*, Fond.f_nazvanie, Chitatel.ch_nomer, Chitatel.ch_id, Fond.f_id'+

' FROM Fond INNER JOIN (Chitatel INNER JOIN Vidacha ON Chitatel.ch_id = Vidacha.v_ch) ON Fond.f_id = Vidacha.v_kniga';

var

VVidacha: TVVidacha; s:string;

ins:boolean;

buttonSelected:integer;

implementation

{$R *.dfm}

uses Data_modul, Parol;

procedure TVVidacha.Refresh; begin

DM.VidachaQuery1.Close;

DM.VidachaQuery1.Open;

end;

procedure TVVidacha.isEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckQuery1.SQL.Text:='UPDATE Vidacha SET Vidacha.EDIT

=True WHERE Vidacha.v_id='+DBEdit1.Text+';'; DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:='Select * from Vidacha WHERE v_id='+DBEdit1.Text+';';

DM.CheckQuery1.Open;

end;

end;

procedure TVVidacha.noEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckQuery1.SQL.Text:='UPDATE Vidacha SET Vidacha.EDIT

=False WHERE Vidacha.v_id='+DBEdit1.Text+';'; DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:='Select * from Vidacha WHERE

v_id='+DBEdit1.Text+';'; DM.CheckQuery1.Open;

end;

end;

function TVVidacha.checkEdit:boolean; begin

checkEdit:=false;

if DBEdit1.Text<>'' then DM.CheckQuery1.SQL.Text:=SQL+' WHERE v_id='+DBEdit1.Text+';';

DM.CheckQuery1.Open; if DBEdit5.Text<>'' then

begin

DBLookupComboBox1.Enabled:=not StrToBool(DBEdit5.Text); DBLookupComboBox2.Enabled:=not StrToBool(DBEdit5.Text); DateTimePicker1.Enabled:=not StrToBool(DBEdit5.Text); DateTimePicker2.Enabled:=not StrToBool(DBEdit5.Text); DateTimePicker3.Enabled:=not StrToBool(DBEdit5.Text); Label7.Visible:= StrToBool(DBEdit5.Text); checkEdit:=StrToBool(DBEdit5.Text);

end;

end;

procedure TVVidacha.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.VidachaQuery1.SQL.Clear; DM.VidachaQuery1.SQL.Add(SQL+';');

44

DM.VidachaQuery1.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

if PParol.DBLookupComboBox1.Text='ГОСТЬ' then begin

GroupBox1.Enabled:=False;

end;

end;

procedure TVVidacha.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

s:=' ASC';

clr:= clMoneyGreen;

if RadioButton2.Checked then begin

s:=' DESC'; clr:= clSkyBlue; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:= clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; DM.VidachaQuery1.Sort:=

DBGrid1.Columns.Items[Column.Index].FieldName+s;

end;

procedure TVVidacha.Edit1Change(Sender: TObject); begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0; S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; DM.VidachaQuery1.SQL.Clear; DM.VidachaQuery1.SQL.Add(SQL+

' WHERE '+s+' LIKE "'+Edit1.text+'%"'); Refresh;

end;

procedure TVVidacha.DBNavigator2BeforeAction(Sender: TObject; Button: TNavigateBtn);

var n:integer;

begin ins:=false;

if Button=nbInsert then begin

ins:=true;

if DBEdit2.Enabled then DBEdit2.SetFocus; end;

if (Button=nbRefresh) then begin

n:=DM.VidachaQuery1.FieldValues['v_id']; Refresh; DM.VidachaQuery1.Locate('v_id',n,[]);

end;

end;

procedure TVVidacha.BitBtn1Click(Sender: TObject); begin

if DM.VidachaQuery1.FieldValues['EDIT']=false then begin

buttonSelected:=MessageDlg('Удалить запись?',mtWarning,mbOKCancel, 0);

if buttonSelected = mrOK then begin

DM.VidachaQuery2.Close;

DM.VidachaQuery2.SQL.Clear; DM.VidachaQuery2.SQL.Add('DELETE Vidacha.v_id, *FROM

Vidacha WHERE Vidacha.v_id='+DBEdit1.Text+';'); DM.VidachaQuery2.ExecSQL;

end; end else

MessageDlg('Запись редактируется другим пользователем',mtError,[mbOK],0);

end;

procedure TVVidacha.DBEdit1Change(Sender: TObject);

begin

if (DBEdit1.Text<>'') and (not ins) then checkEdit; end;

procedure TVVidacha.Timer1Timer(Sender: TObject); begin

if DBNavigator2.Controls[6].Enabled then begin

DBNavigator2.BtnClick(nbEdit);

DBNavigator2.BtnClick(nbRefresh);

end;

end;

procedure TVVidacha.FormClose(Sender: TObject; var Action: TCloseAction);

begin noEdit;

Timer1.Enabled:=false;

end;

procedure TVVidacha.DBLookupComboBox1Enter(Sender: TObject); begin

Timer1.Enabled:=false;

if (DBEdit1.Text<>'') and (not ins) then if not checkEdit then isEdit;

end;

procedure TVVidacha.DBLookupComboBox1Exit(Sender: TObject); begin

Timer1.Enabled:=True;

noEdit;

end;

procedure TVVidacha.DateTimePicker1CloseUp(Sender: TObject); begin

if DateTimePicker1.Date< Now then begin

MessageDlg('Нельзя делать выдачу книгу задним числом!',mtError,[mbOk],0);

DBEdit2.Clear; DateTime_SetFormat(DateTimePicker1.Handle, ''' ''');

abort; end

else begin

DBEdit2.EditText:=DateToStr(DateTimePicker1.Date); DateTime_SetFormat(DateTimePicker1.Handle,

PChar('dd.MM.yy'));

end;

end;

procedure TVVidacha.DateTimePicker2CloseUp(Sender: TObject); begin

if DateTimePicker1.Date>DateTimePicker2.Date then begin

MessageDlg('Нельзя сделать возврат книги раньше ее выдачи! Пересмотрите дату предполагаемого возврата!',mtError,[mbOk],0);

DBEdit3.Clear; DateTime_SetFormat(DateTimePicker2.Handle, ''' ''');

abort; end

else begin

DBEdit3.EditText:=DateToStr(DateTimePicker2.Date); DateTime_SetFormat(DateTimePicker2.Handle,

PChar('dd.MM.yy'));

end;

end;

procedure TVVidacha.DateTimePicker3CloseUp(Sender: TObject); begin

if DateTimePicker1.Date>DateTimePicker3.Date then begin

MessageDlg('Нельзя сделать возврат книги раньше ее выдачи! Пересмотрите дату реального возврата!',mtError,[mbOk],0);

DBEdit4.Clear; DateTime_SetFormat(DateTimePicker3.Handle, ''' ''');

45

abort; end

else begin

DateTime_SetFormat(DateTimePicker3.Handle, PChar('dd.MM.yy'));

end;

end;

procedure TVVidacha.DBEdit2Change(Sender: TObject); begin

if DBEdit2.Text<>'' then DateTimePicker1.Date:=StrToDate(DBEdit2.Text);

end;

procedure TVVidacha.DBEdit3Change(Sender: TObject); begin

if DBEdit3.Text<>'' then DateTimePicker2.Date:=StrToDate(DBEdit3.Text);

end;

procedure TVVidacha.DBEdit4Change(Sender: TObject); begin

if CheckBox1.Checked=true then if DBEdit4.Text<>'' then

DateTimePicker3.Date:=StrToDate(DBEdit4.Text);

end;

procedure TVVidacha.CheckBox1Click(Sender: TObject); begin

if CheckBox1.Checked=true then begin

DBEdit4.EditText:=DateToStr(DateTimePicker3.Date);

Листинг Б.7 – Oplata

unit Oplata;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, StdCtrls, DB, ADODB, DateUtils, DBCtrls;

type

TOOplata = class(TForm) DBGrid1: TDBGrid; GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; GroupBox2: TGroupBox; Label1: TLabel; ComboBox1: TComboBox; Label2: TLabel;

Edit1: TEdit; DBGrid2: TDBGrid; Label3: TLabel;

OplQuery1: TADOQuery;

OplSource1: TDataSource; OplQuery1ch_nomer: TIntegerField; OplQuery1f_nazvanie: TWideStringField; OplQuery1f_vid: TWideStringField; OplQuery1v_data: TDateTimeField; OplQuery1v_pred_vozv: TDateTimeField; OplQuery1v_real_vozv: TDateTimeField; OplQuery1prosroch: TIntegerField; OplQuery1dolg: TIntegerField; OplQuery1oplacheno: TBooleanField; CheckBox1: TCheckBox;

procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure FormCreate(Sender: TObject);

46

DM.VidachaQuery1.Edit; DBGrid1.DataSource.DataSet.FieldByName('v_vozvrat').Value:=true; end

else begin

DBEdit4.Clear;

DM.VidachaQuery1.Edit; DBGrid1.DataSource.DataSet.FieldByName('v_vozvrat').Value:=false;

end;

end;

procedure TVVidacha.DBLookupComboBox1CloseUp(Sender: TObject);

var i:integer;

begin

for i:=0 to DBGrid2.Columns.Count-1 do if

DM.ZadolgnikiQuery1.Locate('ch_nomer',DBLookupComboBox1.Text,[ ]) then

begin

MessageDlg('Выбранный читатель является задолжником',mtError,[mbOk],0);

DBLookupComboBox1.KeyValue := NULL; abort;

end;

end;

end.

procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject);

procedure OplQuery1CalcFields(DataSet: TDataSet); procedure CheckBox1Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

OOplata: TOOplata; s:string;

implementation

{$R *.dfm}

uses Data_modul;

procedure TOOplata.OplQuery1CalcFields(DataSet: TDataSet); var

a:TDate; begin

if DBGrid1.DataSource.DataSet.FieldByName('v_real_vozv').Value=Null then

begin a:=Date;

end else

a:=OplQuery1v_real_vozv.Value;

OplQuery1prosroch.AsInteger:=DaysBetween(OplQuery1v_data.Value,a )-DaysBetween(OplQuery1v_data.Value,OplQuery1v_pred_vozv.Value); if DBGrid1.DataSource.DataSet.FieldByName('prosroch').Value<0 then

OplQuery1prosroch.AsInteger:=0;

if DBGrid1.DataSource.DataSet.FieldByName('f_vid').AsString='учебная' then

OplQuery1dolg.AsInteger:=2*OplQuery1prosroch.AsInteger else

OplQuery1dolg.AsInteger:=1*OplQuery1prosroch.AsInteger; if

DBGrid1.DataSource.DataSet.FieldByName('v_real_vozv').Value=Null then

OplQuery1oplacheno.Value:=false else OplQuery1oplacheno.Value:=true;

end;

procedure TOOplata.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;

State: TGridDrawState); begin

if (OplQuery1.FieldByName('dolg').Value=0)then begin DBGrid1.Canvas.Brush.Color:= $ffbcfd; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;

if (Column.FieldName = 'v_real_vozv') then begin

With dbgrid1.Canvas do begin

//FillRect(Rect);

if (OplQuery1.FieldByName('v_real_vozv').AsString='')then begin TextOut(Rect.Right-2-dbgrid1.Canvas.TextWidth('не

возвращена'),Rect.Top+2,'не возвращена'); end;

end;

end;

end;

procedure TOOplata.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; OplQuery1.SQL.Clear;

OplQuery1.SQL.Add('SELECT Chitatel.ch_nomer, Fond.f_nazvanie, Fond.f_vid, Vidacha.v_data, Vidacha.v_pred_vozv, Vidacha.v_real_vozv'+

' FROM Fond INNER JOIN (Chitatel INNER JOIN Vidacha ON Chitatel.ch_id = Vidacha.v_ch) ON Fond.f_id = Vidacha.v_kniga;');

OplQuery1.Open; for i:=0 to 2 do

ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

Листинг Б.8 – Zadolgniki

DBGrid1.DataSource:=OplSource1;

OplSource1.DataSet:=OplQuery1;;

end;

procedure TOOplata.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

{s:=' ASC'; clr:=clHighlight;

if RadioButton2.Checked then begin

s:=' DESC'; clr:=clAqua; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:=clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr;}

//

OplQuery1.Sort:=DBGrid1.Columns.Items[Column.index].FieldName+s;

end;

procedure TOOplata.Edit1Change(Sender: TObject); begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0;

s:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName;

OplQuery1.SQL.Clear;

OplQuery1.SQL.Add('SELECT Chitatel.ch_nomer, Fond.f_nazvanie, Fond.f_vid, Vidacha.v_data, Vidacha.v_pred_vozv, Vidacha.v_real_vozv'+

'FROM Fond INNER JOIN (Chitatel INNER JOIN Vidacha ON Chitatel.ch_id = Vidacha.v_ch) ON Fond.f_id = Vidacha.v_kniga'+

'WHERE '+s+' LIKE "'+Edit1.Text+'%"');

OplQuery1.Close;

OplQuery1.Open;

end;

procedure TOOplata.CheckBox1Click(Sender: TObject); begin

if (CheckBox1.Checked=true) then begin

OplQuery1.Edit; DBGrid1.DataSource.DataSet.FieldByName('oplacheno').Value:=true; end

end;

end.

unit Zadolgniki;

Edit1: TEdit;

 

procedure FormCreate(Sender: TObject);

interface

procedure Button1Click(Sender: TObject);

 

procedure DBGrid1TitleClick(Column: TColumn);

uses

procedure Edit1Change(Sender: TObject);

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,

procedure FormClose(Sender: TObject; var Action: TCloseAction);

Forms,

private

Dialogs, Grids, DBGrids, StdCtrls, ComCtrls;

{ Private declarations }

 

public

type

{ Public declarations }

TZZadolgniki = class(TForm)

end;

Label1: TLabel;

 

DateTimePicker1: TDateTimePicker;

var

Button1: TButton;

ZZadolgniki: TZZadolgniki;

DBGrid1: TDBGrid;

s:string;

GroupBox1: TGroupBox;

 

RadioButton1: TRadioButton;

implementation

RadioButton2: TRadioButton;

 

GroupBox2: TGroupBox;

{$R *.dfm}

Label2: TLabel;

 

47

uses Data_modul;

procedure TZZadolgniki.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.ZadolgnikiQuery1.SQL.Clear;

DM.ZadolgnikiQuery1.SQL.Add('SELECT Vidacha.v_ch, Vidacha.v_vozvrat, Chitatel.ch_nomer'

+' FROM Chitatel INNER JOIN Vidacha ON Chitatel.ch_id = Vidacha.v_ch'

+' GROUP BY Vidacha.v_ch, Vidacha.v_vozvrat, Chitatel.ch_nomer' +' HAVING (((Vidacha.v_vozvrat)=False));');

DM.ZadolgnikiQuery1.Open;

DateTimePicker1.Date:=now;

end;

procedure TZZadolgniki.Button1Click(Sender: TObject); begin

DBGrid1.Visible:=true;

DM.ZadolgnikiQuery1.SQL.Clear; DM.ZadolgnikiQuery1.SQL.Add('SELECT Vidacha.v_ch,

Vidacha.v_vozvrat, Chitatel.ch_nomer'+

'FROM Chitatel INNER JOIN Vidacha ON Chitatel.ch_id = Vidacha.v_ch'+

'GROUP BY Vidacha.v_ch, Vidacha.v_vozvrat, Chitatel.ch_nomer'+

'HAVING (((Vidacha.v_vozvrat)=False));'); DM.ZadolgnikiQuery1.Open; Edit1.Enabled:=true;

end;

procedure TZZadolgniki.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

s:=' ASC';

clr:=clHighlight;

if RadioButton2.Checked then begin

s:=' DESC'; clr:=clAqua; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:=clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr;

DM.ZadolgnikiQuery1.Sort:=DBGrid1.Columns.Items[Column.index].Fi

eldName+s;

end;

procedure TZZadolgniki.Edit1Change(Sender: TObject); begin

DM.ZadolgnikiQuery1.SQL.Clear; DM.ZadolgnikiQuery1.SQL.Add('SELECT Vidacha.v_ch, Vidacha.v_vozvrat, Chitatel.ch_nomer '+

'FROM Chitatel INNER JOIN Vidacha ON Chitatel.ch_id = Vidacha.v_ch'+

'WHERE Chitatel.ch_nomer'+' LIKE "'+Edit1.Text+'%"'+' GROUP BY Vidacha.v_ch, Vidacha.v_vozvrat, Chitatel.ch_nomer'+

'HAVING (((Vidacha.v_vozvrat)=False));'); DM.ZadolgnikiQuery1.Close; DM.ZadolgnikiQuery1.Open;

end;

procedure TZZadolgniki.FormClose(Sender: TObject; var Action: TCloseAction);

begin DBGrid1.Visible:=false; Edit1.Enabled:=false; end;

end.

Листинг Б.9 – Nevip_zakaz

unit Nevip_zakaz;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, Grids, DBGrids;

type

TNNevip_zakaz = class(TForm) Label1: TLabel;

DateTimePicker1: TDateTimePicker; Button1: TButton;

DBGrid1: TDBGrid; GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; GroupBox2: TGroupBox; Label2: TLabel;

Edit1: TEdit; Label3: TLabel;

ComboBox1: TComboBox;

procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Edit1Change(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

NNevip_zakaz: TNNevip_zakaz; s,s1:string;

implementation

{$R *.dfm}

uses Data_modul;

procedure TNNevip_zakaz.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.Nevip_zakQuery1.SQL.Clear;

DM.Nevip_zakQuery1.SQL.Add('SELECT * from Zakaz;'); DM.Nevip_zakQuery1.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption); DBGrid1.Visible:=false;

DateTimePicker1.Date:=now;

end;

procedure TNNevip_zakaz.Button1Click(Sender: TObject); begin

DBGrid1.Visible:=true; DM.Nevip_zakQuery1.SQL.Clear; DM.Nevip_zakQuery1.SQL.Add('select * from Zakaz;'); DM.Nevip_zakQuery1.Open; ComboBox1.Enabled:=true;

Edit1.Enabled:=true;

end;

procedure TNNevip_zakaz.DBGrid1TitleClick(Column: TColumn); var

i:integer;

48

clr:TColor; begin

s:=' ASC'; clr:=clHighlight;

if RadioButton2.Checked then begin

s:=' DESC'; clr:=clAqua; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:=clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr;

DM.Nevip_zakQuery1.Sort:=DBGrid1.Columns.Items[Column.index].Fi eldName+s;

end;

procedure TNNevip_zakaz.FormClose(Sender: TObject; var Action: TCloseAction);

Листинг Б.10 – Dolgniki

unit Dolgniki;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, DBGrids, ComCtrls;

type

TDDolgniki = class(TForm) Label1: TLabel;

DateTimePicker1: TDateTimePicker; Button1: TButton;

DBGrid1: TDBGrid; GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; GroupBox2: TGroupBox; Label2: TLabel; ComboBox1: TComboBox; Label3: TLabel;

Edit1: TEdit;

procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); private

{Private declarations } public

{Public declarations } end;

var

DDolgniki: TDDolgniki; s:string;

implementation

{$R *.dfm}

uses Data_modul;

procedure TDDolgniki.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.DolgnikiQuery1.SQL.Clear;

DM.DolgnikiQuery1.SQL.Add('SELECT Vidacha.*, Chitatel.ch_nomer, Fond.f_nazvanie, Chitatel.ch_id, Fond.f_id'+

begin DBGrid1.Visible:=false; ComboBox1.Enabled:=false; Edit1.Enabled:=false;

end;

procedure TNNevip_zakaz.Edit1Change(Sender: TObject); begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0;

s:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; DM.Nevip_zakQuery1.SQL.Clear; DM.Nevip_zakQuery1.SQL.Add('Select * from Zakaz'+' WHERE '+s+' LIKE "'+Edit1.Text+'%"');

DM.Nevip_zakQuery1.Close;

DM.Nevip_zakQuery1.Open; end;

end.

' FROM Fond INNER JOIN (Chitatel INNER JOIN Vidacha ON Chitatel.ch_id = Vidacha.v_ch) ON Fond.f_id = Vidacha.v_kniga WHERE (((Vidacha.v_vozvrat)=False));');

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption); DBGrid1.Visible:=false;

end;

procedure TDDolgniki.Button1Click(Sender: TObject); var i:integer;

begin DBGrid1.Visible:=true;

DM.DolgnikiQuery1.SQL.Clear; DM.DolgnikiQuery1.SQL.Add('SELECT Vidacha.*,

Chitatel.ch_nomer, Fond.f_nazvanie, Chitatel.ch_id, Fond.f_id'+

'FROM Fond INNER JOIN (Chitatel INNER JOIN Vidacha ON Chitatel.ch_id = Vidacha.v_ch) ON Fond.f_id = Vidacha.v_kniga'+

'WHERE (((Vidacha.v_vozvrat)=False));');

DM.DolgnikiQuery1.Open;

ComboBox1.Enabled:=true;

Edit1.Enabled:=true;

end;

procedure TDDolgniki.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

s:=' ASC'; clr:=clHighlight;

if RadioButton2.Checked then begin

s:=' DESC'; clr:=clAqua; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:=clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr;

DM.DolgnikiQuery1.Sort:=DBGrid1.Columns.Items[Column.index].Fiel

dName+s;

end;

procedure TDDolgniki.Edit1Change(Sender: TObject); begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0;

s:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName;

DM.DolgnikiQuery1.SQL.Clear; DM.DolgnikiQuery1.SQL.Add('SELECT Vidacha.*, Chitatel.ch_nomer, Fond.f_nazvanie, Chitatel.ch_id, Fond.f_id'+

49

' FROM Fond INNER JOIN (Chitatel INNER JOIN Vidacha ON

procedure TDDolgniki.FormClose(Sender: TObject; var Action:

Chitatel.ch_id = Vidacha.v_ch) ON Fond.f_id = Vidacha.v_kniga'+'

TCloseAction);

WHERE

(((Vidacha.v_vozvrat)=False))

and

'+s+'

LIKE

begin

"'+Edit1.Text+'%"');

 

 

 

DBGrid1.Visible:=false;

DM.DolgnikiQuery1.Close;

 

 

 

ComboBox1.Enabled:=false;

DM.DolgnikiQuery1.Open;

 

 

 

Edit1.Enabled:=false;

end;

 

 

 

 

end;

end.

Листинг Б.11 – Otbor

unit Otbor;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, DB, ADODB, StdCtrls, Grids, DBGrids, jpeg, OleServer, COMObj, ActiveX, WordXP,

Buttons;

type

TOOtbor = class(TForm) GroupBox1: TGroupBox; Label1: TLabel;

Label2: TLabel; ComboBox1: TComboBox; Edit1: TEdit;

Label3: TLabel; ComboBox2: TComboBox; Label4: TLabel;

Edit2: TEdit; GroupBox2: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton; Button1: TButton;

Button2: TButton; Panel1: TPanel; Label5: TLabel; DBGrid1: TDBGrid; Button3: TButton; Panel2: TPanel; Label6: TLabel; DBGrid2: TDBGrid; Button4: TButton; Button5: TButton;

SaveDialog1: TSaveDialog; WordDocument1: TWordDocument; WordApplication1: TWordApplication; WordFont1: TWordFont; WordLetterContent1: TWordLetterContent;

WordParagraphFormat1: TWordParagraphFormat; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject); procedure Edit2Change(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button4Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button2Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

OOtbor: TOOtbor; s,s1,s2:string;

implementation

{$R *.dfm}

uses Data_modul;

procedure TOOtbor.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.OtborQuery1.SQL.Clear;

DM.OtborQuery1.SQL.Add('SELECT * from z_Fond;'); DM.OtborQuery1.Open;

DM.OtborQuery2.SQL.Clear; DM.OtborQuery2.SQL.Add('SELECT * from z_Fond2;'); DM.OtborQuery2.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox2.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

procedure TOOtbor.Button1Click(Sender: TObject); const

wdAlignParagraphCenter = 1; wdAlignParagraphLeft = 0; wdAlignParagraphRight = 2;

wdLineStyleSingle = 1; var

wdApp, wdDoc, wdRng, wdTable : Variant; i, j, Res : Integer;

D : TDateTime; Bm : TBookMark; Sd : TSaveDialog;

begin //{

Sd := SaveDialog1; //SaveDialog1 уже должен быть на форме.

//Если начальная папка диалога не задана, то в качестве начальной берём ту папку,

//в которой расположен исполняемый файл нашей программы.

if Sd.InitialDir = '' then Sd.InitialDir := ExtractFilePath( ParamStr(0) );

//Запуск диалога сохранения файла. if not Sd.Execute then Exit;

//Если файл с заданным именем существует, то запускаем диалог с пользователем.

if FileExists(Sd.FileName) then begin

Res := MessageBox(0, 'Файл с заданным именем уже существует. Перезаписать?'

,'Внимание!', MB_YESNO + MB_ICONQUESTION + MB_APPLMODAL);

if Res <> IDYES then Exit; end;

//Попытка запустить MS Word. try

wdApp := CreateOleObject('Word.Application'); except

MessageBox(0, 'Не удалось запустить MS Word. Действие отменено.'

,'Внимание!', MB_OK + MB_ICONERROR + MB_APPLMODAL);

Exit;

end;

50

//Делаем видимым окно MS Word. На постоянной основе или на время отладки.

wdApp.Visible := True;

//Создаём новый документ. wdDoc := wdApp.Documents.Add;

//На случай, если очень много данных и wdApp.Visible := True - тогда

//для ускорения работы отключаем перерисовку окна MS Word. wdApp.ScreenUpdating := False;

try

wdRng := wdDoc.Content; //Диапазон, охватывающий всё содержимое документа.

//Параграф 1. Заголовок отчёта.

//Заголовок отчёта и перевод строки. wdRng.InsertAfter('Отчёт'#13#10);

wdRng.InsertAfter('Отбор литературы по заданным критериям'#13#10);

//Выравнивание по центру. wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;

//Параметры шрифта.

wdRng.Font.Name := 'Times New Roman'; wdRng.Font.Bold := True; wdRng.Font.Size := 14;

//Параграф 2. Общие сведения.

//Формируем диапазон нового параграфа непосредственно за текущим диапазоном.

wdRng.Start := wdRng.End; wdRng.InsertAfter(#13#10); D := Now;

wdRng.InsertAfter('Дата: ' + FormatDateTime('dd.mm.yyyy', D) +

#13#10);

wdRng.InsertAfter('Время: ' + FormatDateTime('hh:nn:ss', D) +

#13#10);

wdRng.InsertAfter(#13#10); wdRng.InsertAfter('Параметры отбора литературы');

wdRng.InsertAfter(#13#10);

wdRng.InsertAfter('Параметр 1: '+ComboBox1.Text+'

Значение:

'+Edit1.Text);

 

wdRng.InsertAfter(#13#10);

 

wdRng.InsertAfter('Параметр 2: '+ComboBox2.Text+'

Значение:

'+Edit2.Text);

 

wdRng.InsertAfter(#13#10);

 

//Сброс параметров параграфа. wdRng.ParagraphFormat.Reset;

//Выравнивание по левому краю. wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

//Отступ слева на 2 сантиметра. Размер отступа задаётся в типографских

//единицах - в пунктах. 1 пункт = 0.035 сантиметра.

//При записи в поле LeftIndent, отступ отсчитывается от левого поля на странице.

//wdRng.ParagraphFormat.LeftIndent := 2 / 0.035;

//Параметры шрифта.

wdRng.Font.Reset; //Сброс параметров шрифта. wdRng.Font.Size := 12;

wdRng.Font.Bold := True;

//Параграф 3. Заголовок таблицы.

wdRng.Start := wdRng.End; wdRng.InsertAfter(#13#10);

wdRng.InsertAfter('Таблица 1 - Отбор литературы.'#13#10); wdRng.ParagraphFormat.Reset;

wdRng.Font.Reset; wdRng.Font.Size := 12; wdRng.Font.Bold := False;

//Параграф 4. Таблица.

51

if not DM.OtborQuery1.Active then DM.OtborQuery1.Open;

wdRng.Start := wdRng.End;

//Добавляем таблицу MS Word. Пока создаём таблицу с двумя строками.

wdTable := wdDoc.Tables.Add(wdRng.Characters.Last, 2, DM.OtborQuery1.Fields.Count);

//Параметры линий таблицы. wdTable.Borders.InsideLineStyle := wdLineStyleSingle; wdTable.Borders.OutsideLineStyle := wdLineStyleSingle;

//Сброс параметров параграфа. wdRng.ParagraphFormat.Reset;

//Выравнивание всей таблицы - по левому краю. wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

//Оформление шапки.

wdRng := wdTable.Rows.Item(1).Range; //Диапазон первой строки. wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter; wdRng.Font.Size := 10;

wdRng.Font.Bold := True;

//Оформление первой строки данных - это вторая строка в таблице.

//При добавлении следующих строк, их оформление будет копироваться с этой строки.

wdRng := wdTable.Rows.Item(2).Range; //Диапазон второй строки. wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft; wdRng.Font.Size := 10;

wdRng.Font.Bold := False;

//Записываем шапку таблицы.

//wdTable.Cell(1,1).Range.Text := '№ п/п';

{wdTable.Cell(1,2).Range.Text := 'УДК'; wdTable.Cell(1,3).Range.Text := 'Вид'; wdTable.Cell(1,4).Range.Text := 'Название'; wdTable.Cell(1,5).Range.Text := 'Автор'; wdTable.Cell(1,6).Range.Text := 'Год'; wdTable.Cell(1,7).Range.Text := 'Количество'; } wdTable.Cell(1,1).Range.Text := 'УДК'; wdTable.Cell(1,2).Range.Text := 'Вид'; wdTable.Cell(1,3).Range.Text := 'Название'; wdTable.Cell(1,4).Range.Text := 'Автор'; wdTable.Cell(1,5).Range.Text := 'Год'; wdTable.Cell(1,6).Range.Text := 'Количество'; //Записываем данные таблицы.

DM.OtborQuery1.DisableControls;

Bm := DM.OtborQuery1.GetBookMark; DM.OtborQuery1.First;

i := 1; //Текущая строка в таблице MS Word. while not DM.OtborQuery1.Eof do begin

Inc(i);

//Если требуется, добавляем новую строку в конец таблицы. if i > 2 then wdTable.Rows.Add;

//Записываем данные в строку таблицы MS Word. for j := 0 to DM.OtborQuery1.Fields.Count - 2 do

wdTable.Cell(i, j + 1).Range.Text := DM.OtborQuery1.Fields[j].AsString;

DM.OtborQuery1.Next;

end;

DM.OtborQuery1.GotoBookMark(Bm);

DM.OtborQuery1.EnableControls;

finally

//Включение перерисовки окна MS Word. В случае, если wdApp.Visible := True.

wdApp.ScreenUpdating := True; end;

wdApp.DisplayAlerts := False; //Отключаем режим показа предупреждений.

try

wdDoc.SaveAs(FileName:=Sd.FileName); //Запись документа в файл.

finally

wdApp.DisplayAlerts := True; //Включаем режим показа предупреждений.

end;

//Закрываем документ.

Соседние файлы в папке Курсовые работы