Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.10.2010, 03:55   #1
slai
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 21
По умолчанию День рождения бонусы

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

Код:
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+','+inttostr(field_id)+','+Edit3.Text+' )';
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 Кб, 68 просмотров)
Вложения
Тип файла: rar акции бэкап.rar (379.9 Кб, 15 просмотров)

Последний раз редактировалось slai; 26.10.2010 в 04:29.
slai вне форума
Старый 26.10.2010, 04:11   #2
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

вроде в программе курсоры используются. не сам писал? ставишь курсор, пробегаешь им по всем записям, сравнивая принадлежность др диапазону и если попадает, то прибавляешь бонус куда нужно

да и чтоб что-то проверить можно было, исходник прикрепи
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума
Старый 27.10.2010, 03:03   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Данная тема - дубль этой темы. Закрыто.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
День рождения Николы Тесла Izhic Свободное общение 47 17.07.2009 12:31
Эх, проморгали день рождения... mihali4 Свободное общение 22 04.12.2008 11:27
День рождения Alex21 merax Свободное общение 16 22.07.2008 15:37
17 июня у execom был день рождения. поздравляю! Alar Свободное общение 11 23.06.2008 09:09
У rpy3uH-а ДЕНЬ РОЖДЕНИЯ (Юбилей) !!! merax Свободное общение 27 20.06.2008 11:30