Показать сообщение отдельно
  #1  
Старый 26.10.2010, 06:49
slai slai вне форума
Прохожий
 
Регистрация: 26.10.2010
Сообщения: 4
Репутация: 10
По умолчанию День рождения бонусы

Здравствуйте. У меня есть форма скриншот во вложении. Как сделать так чтобы в поле обведенном красным при вводе цифр начислялось количество бонусов тем у кого день рождение в период акции?

Код:
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.
Изображения
Тип файла: jpg новая акц.JPG (54.3 Кбайт, 31 просмотров)
Ответить с цитированием