Скачиваний:
16
Добавлен:
01.05.2014
Размер:
73.22 Кб
Скачать

Interface

uses

SysUtils, Classes, DB, ADODB, Dialogs;

type

TDM = class(TDataModule)

Connect: TADOConnection;

DSJurnal: TDataSource;

DSIzd: TDataSource;

Izdeliya: TADOQuery;

IzdeliyaIZD: TWideStringField;

Familiya: TADOQuery;

DSFamilii: TDataSource;

FamiliyaFamiliya: TWideStringField;

FamiliyaName: TWideStringField;

FamiliyaOtchestvo: TWideStringField;

J: TADOQuery;

Jid_j: TAutoIncField;

Jdata: TDateTimeField;

JPDM: TBooleanField;

JPrim: TBooleanField;

Jsostav: TIntegerField;

Jid_fam: TIntegerField;

JId_izd: TIntegerField;

Izdeliyaid_i: TAutoIncField;

Familiyaid_f: TAutoIncField;

JFAM: TStringField;

Prim: TADOQuery;

DSPrim: TDataSource;

JField: TStringField;

JN_izv: TWideStringField;

Primid_p: TAutoIncField;

PrimPrim: TWideStringField;

procedure JurnalAfterInsert(DataSet: TDataSet);

procedure JAfterInsert(DataSet: TDataSet);

procedure JPostError(DataSet: TDataSet; E: EDatabaseError;

var Action: TDataAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DM: TDM;

implementation

uses Unit1;

{$R *.dfm}

procedure TDM.JurnalAfterInsert(DataSet: TDataSet);

begin

dM.J.FieldValues['id_izd']:=DM.Izdeliya.FieldValues['id_i'];

end;

procedure TDM.JAfterInsert(DataSet: TDataSet);

begin

dM.J.FieldValues['id_izd']:=DM.Izdeliya.FieldValues['id_i'];

end;

procedure TDM.JPostError(DataSet: TDataSet; E: EDatabaseError;

var Action: TDataAction);

begin

MessageDlg('Поле "Номер извещения" обязательно для заполнения!',

mtError,[mbOK],0);

J.Cancel;

end;

end.

unit Unit3;

Interface

uses

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

Dialogs, StdCtrls, Buttons;

type

TAdd_str = class(TForm)

Label1: TLabel;

Edit1: TEdit;

BitBtn1: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Add_str: TAdd_str;

implementation

uses unit1,unit2;

{$R *.dfm}

procedure TAdd_str.BitBtn1Click(Sender: TObject);

var

s,izv,izd:string;

postire,intizv,i,kolvo,code:integer;

begin

Add_str.Visible:=false;

Form1.Visible:=true;

with DM do begin

s:=J.FieldByName('n_izv').AsString;

kolvo:=StrToInt(Edit1.Text);

postire:=0; //позиция последнего тире

for i:=length(s) downto 1 do

if s[i]='-' then begin

postire:=i;

break;

end;

if postire<>0 then begin

izd:=copy(s,1,postire-1);

izv:=copy(s,postire+1,length(s)-postire);

val(izv,intizv,code);

end;

for i:=1 to kolvo do begin

J.APPEND;

if (postire=0) or (code<>0) then J.FieldByName('N_izv').AsString:=s

else J.FieldByName('N_izv').AsString:=izd+'-'+IntToStr(intizv+i);

j.fieldbyname('sostav').AsInteger:=2;

j.fieldbyname('id_fam').AsInteger:=9;

j.fieldbyname('pdm').AsBoolean:=false;

j.fieldbyname('pril').AsBoolean:=false;

J.Post;

end;

end;

end;

end.

unit Unit4;