unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm2 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
Label4: TLabel;
CheckBox1: TCheckBox;
Label5: TLabel;
Edit2: TEdit;
CheckBox2: TCheckBox;
Button1: TButton;
Label6: TLabel;
Button2: TButton;
Memo1: TMemo;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label7: TLabel;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
Label8: TLabel;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure CheckBox4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
field_id:byte;
act_id:integer;
implementation
uses Unit4, Unit3, Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
form4.ShowModal;
end;
procedure TForm2.Button2Click(Sender: TObject);
var res,i:integer;
begin
res:=0;
if (RadioButton2.Checked and Checkbox3.Checked)or(RadioButton1.Checked) then
begin
DM.myproc.ExecProc;
field_id:=DM.myproc.Params[0].AsInteger;
DM.query.SQL.Text:='insert into act_new(name,description,date_begin,date_end,active,amount_bonus,field_id)'+
' values('+char(39)+Edit1.Text+char(39)+','+
char(39)+Memo1.Text+char(39)+','+
'convert(datetime,'+unit4.fdate(DateTimePicker1.Date)+'),'+
'convert(datetime,'+unit4.fdate(DateTimePicker2.Date)+'),'+
copy(booltostr(checkbox1.Checked,false),length(booltostr(checkbox1.Checked,false)),1)+','+
Edit2.Text+','+Edit3.Text+','+inttostr(field_id)+' )';
DM.query.ExecSQL(true);
res:=res+DM.query.RowsAffected;
DM.query.SQL.Text:='SELECT IDENT_CURRENT ('+char(39)+'dbo.act_new'+char(39)+') AS Current_Identity';
DM.query.Open;
DM.query.First;
act_id:=DM.query.Fields[0].AsInteger;
DM.query.Close;
DM.query.SQL.Text:='alter table bonus_db.dbo.spiski add act_'+inttostr(act_id)+
' bit NOT NULL CONSTRAINT DF_spiski_act_'+inttostr(act_id)+' DEFAULT '+copy(booltostr(RadioButton1.Checked,false),length(booltostr(RadioButton1.Checked,false)),1);
DM.query.ExecSQL(false);
res:=res+DM.query.RowsAffected;
if RadioButton2.Checked then
begin
for i:=1 to Form4.mems.RowCount-1 do
begin
DM.query.SQL.Text:=
'update bonus_dbTest.dbo.spiski set act_'+inttostr(act_id)+'=1 where card_number = '+char(39)+Form4.mems.Cells[1,i]+char(39);
DM.query.ExecSQL(false);
res:=res+DM.query.RowsAffected;
Application.ProcessMessages;
end;
end;
DM.query.SQL.Text:=
'declare @mycur cursor,'+
' @c_num varchar(30);'+
' set @mycur = cursor for select card_number from bonus_db.dbo.spiski where act_'+inttostr(act_id)+' = 1;'+
' open @mycur;'+
' while 1=1'+
' begin'+
' fetch next from @mycur into @c_num;'+
' if @@fetch_status<>0 break;'+
' update bonus_db.dbo.card set bonus_'+inttostr(field_id)+'='+Edit2.Text+' where card_number = @c_num;'+
' end;'+
' close @mycur;';
DM.query.ExecSQL(false);
if res>1 then
begin
MessageBox(Form2.Handle,'Íîâàÿ àêöèÿ óñïåøíî äîáàâëåíà','Óñïåõ',0);
close;
Form1.refr;
end else MessageBox(Form2.Handle,'Íå óäàëîñü äîáàâèòü àêöèþ','Îøèáêà',0);
end else MessageBox(Form2.Handle,'Ñíà÷àëà âûáåðèòå ó÷àñòíèêîâ àêöèè èëè îòìåòüå âñåõ','Èíôîðìàöèÿ',0);
end;
procedure TForm2.RadioButton2Click(Sender: TObject);
begin
if RadioButton2.Checked then Button1.Enabled:=true else Button1.Enabled:=false;
end;
procedure TForm2.RadioButton1Click(Sender: TObject);
begin
if RadioButton2.Checked then Button1.Enabled:=true else Button1.Enabled:=false;
end;
procedure TForm2.FormActivate(Sender: TObject);
begin
DateTimePicker1.Date:=Date;
DateTimePicker2.Date:=Date;
end;
procedure TForm2.CheckBox4Click(Sender: TObject);
begin
edit3.Enabled:=true;
end;
end.