?? member_input.pas
字號:
unit member_input;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DB, DBCtrls, Mask, ExtCtrls, Grids, DBGrids,
ADODB, Menus;
type
TForm2 = class(TForm)
StatusBar1: TStatusBar;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Label7: TLabel;
Label8: TLabel;
Panel2: TPanel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label3: TLabel;
Edit4: TEdit;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Upgrade_higher(str0:string);
procedure add_kaituo(str1:string;str2:string;ratio:Extended);
procedure add_fudao(str1:string;str2:string;ratio:Extended);
procedure add_guanli(str1:string;str2:string;ratio:Extended);
procedure Button3Click(Sender: TObject);
procedure ChangeFonts(OldFormWidth:integer;NewFormWidth:integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses
Data_Unit1,select_member;
type
TFooClass = class(TControl); { needed to get at protected }
{ font property }
const
ScreenWidth: LongInt = 800; {I designed my form in 800x600 mode.}
ScreenHeight: LongInt = 600;
procedure TForm2.ChangeFonts(OldFormWidth:integer;NewFormWidth:integer);
var
i: integer;
begin
NewFormWidth := longint(width) * longint(screen.width) div ScreenWidth;
for i := ControlCount - 1 downto 0 do
TFooClass(Controls[i]).Font.Size :=
(NewFormWidth div OldFormWidth) *
TFooClass(Controls[i]).Font.Size;
end;
procedure TForm2.FormCreate(Sender: TObject);
var
str1,c1:string;
begin
scaled := true;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) div ScreenHeight;
width := longint(width) * longint(screen.width) div ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
ChangeFonts(ScreenWidth,width);
Edit8.Text := '18800.00';
Edit9.Text := datetostr(date);
DataModule1.ADOQuery5.Open;
if DataModule1.ADOQuery5.Recordset.RecordCount = 0 then str1 := 'M00001'
else begin
str1 := DataModule1.ADOQuery5.FieldValues['member_id'];
str1 := '1'+Copy (str1,2,length(str1)-1);
str1 := inttostr(strtoint(str1)+1);
c1 := Copy (str1,1,1);
if strtoint(c1) > 1 then
str1 := 'M1' + Copy (str1,2,length(str1)-1)
else
str1 := 'M' + Copy (str1,2,length(str1)-1);
end;
Edit1.Text := str1;
DataModule1.ADOQuery5.Close;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
str1,str2,str3:string;
C1,C2,S:integer;
UpFinished:boolean;
begin
with DataModule1.ADOQuery_upgrade2 do begin
sql.Clear;
sql.Add('select id from member where member_id = :AA1');
Parameters.ParamValues['AA1'] := Edit1.Text;
open;
end;
if DataModule1.ADOQuery_upgrade2.Recordset.RecordCount > 0 then begin
showmessage('會員編號或名稱已經(jīng)存在,請重新輸入!');
DataModule1.ADOQuery_upgrade2.Close;
end
else begin
DataModule1.ADOQuery_upgrade2.Close;
with DataModule1.ADOQuery_upgrade2 do begin
sql.Clear;
sql.Add('select id from member where name = :AA3 or member_id = :AA1');
Parameters.ParamValues['AA1'] := Edit4.Text;
Parameters.ParamValues['AA3'] := Edit2.Text;
open;
end;
if DataModule1.ADOQuery_upgrade2.Recordset.RecordCount = 0 then begin
showmessage('上級會員不存在,請重新輸入!');
DataModule1.ADOQuery_upgrade2.Close;
end
else begin
DataModule1.ADOQuery_upgrade2.Close;
StatusBar1.SimpleText := '正在保存新會員信息……';
StatusBar1.Show;
with DataModule1.ADOQuery1 do begin
SQL.Clear;
SQL.Add('insert into member (member_id,name,class,higher_id,person,telephone,'+
'handphone,email,url,pay_amount,pay_date,remarks) VALUES (:AA1,:AA2,:AA3,'+
':AA4,:AA5,:AA6,:AA7,:AA8,:AA9,:AA10,:AA11,:AA12)');
Parameters.ParamValues['AA1'] := Edit1.Text;
Parameters.ParamValues['AA2'] := Edit2.Text;
Parameters.ParamValues['AA3'] := 0;
Parameters.ParamValues['AA4'] := Edit4.Text;
Parameters.ParamValues['AA5'] := Edit5.Text;
Parameters.ParamValues['AA6'] := Edit6.Text;
Parameters.ParamValues['AA7'] := Edit7.Text;
Parameters.ParamValues['AA8'] := 'info@chinafoods.cn';
Parameters.ParamValues['AA9'] := 'http://www.chinafoods.cn';
Parameters.ParamValues['AA10'] := strtofloat(Edit8.Text);
Parameters.ParamValues['AA11'] := strtodate(Edit9.Text);
Parameters.ParamValues['AA12'] := memo1.Lines.Text;
ExecSQL;
end;
StatusBar1.SimpleText := '正在升級上級會員,并計(jì)算獎(jiǎng)金等……';
StatusBar1.Show;
//計(jì)算上級會員開拓獎(jiǎng)金
add_kaituo(Edit4.Text,Edit1.Text,20.0);
//計(jì)算上級會員輔導(dǎo)津貼
str1 := Edit4.Text;
C1 := 0;
UpFinished := False;
repeat
if C1 >= 5 then UpFinished := True else begin
with DataModule1.ADOQuery_upgrade1 do begin
SQL.Clear;
SQL.Add('Select higher_id,class from member where member_id = :AA1');
Parameters.ParamValues['AA1'] := str1;
open;
if RecordCount = 0 then begin
UpFinished := True;
end
else begin
str2 := Recordset.Fields.Item['higher_id'].Value;
C2 := Recordset.Fields.Item['class'].Value;
if C2 > C1 then begin
add_fudao(str1,Edit1.Text,5*(C2-C1));
C1 := C2;
end;
str1 := str2;
end;
close;
end;
end;
until UpFinished = True;
//計(jì)算上級會員管理獎(jiǎng)金
str3 := Edit4.Text;
S := 0;
UpFinished := False;
with DataModule1.ADOQuery_upgrade1 do begin
SQL.Clear;
SQL.Add('Select higher_id,class from member where member_id = :AA1');
Parameters.ParamValues['AA1'] := str3;
open;
end;
if DataModule1.ADOQuery_upgrade1.RecordCount <> 0 then begin
C1 := DataModule1.ADOQuery_upgrade1.Recordset.Fields.Item['class'].Value;
str1 := DataModule1.ADOQuery_upgrade1.Recordset.Fields.Item['higher_id'].Value;
repeat
if C1 <= S then UpFinished := True else begin
with DataModule1.ADOQuery_upgrade1 do begin
SQL.Clear;
SQL.Add('Select higher_id,class from member where member_id = :AA1');
Parameters.ParamValues['AA1'] := str1;
open;
if RecordCount = 0 then begin
UpFinished := True;
end
else begin
str2 := Recordset.Fields.Item['higher_id'].Value;
C2 := Recordset.Fields.Item['class'].Value;
if C2>5 then C2 := 5;
if (C2 = C1) and (C2 > S) then begin
add_guanli(str1,Edit1.Text,C2-S);
Inc(S);
end;
str1 := str2;
end;
close;
end;
end;
until UpFinished = True;
end;
//升級上級會員
Upgrade_higher(Edit1.Text);
//將顯示的會員編號加1
str1 := Edit1.Text;
str1 := '1'+Copy (str1,2,length(str1)-1);
str1 := inttostr(strtoint(str1)+1);
if strtoint(Copy (str1,1,1)) > 1 then
str1 := 'M1' + Copy (str1,2,length(str1)-1)
else
str1 := 'M' + Copy (str1,2,length(str1)-1);
Edit1.Text := str1;
Showmessage('新會員保存、上級會員升級完畢!');
StatusBar1.SimpleText := '新會員保存、上級會員升級完畢!';
StatusBar1.Show;
end;
end;
end;
procedure TForm2.add_kaituo(str1:string;str2:string;ratio:Extended);
begin
with DataModule1.ADOinsert_jiangjin do begin
SQL.Clear;
SQL.Add('insert into jiangjin (member_id,lower_id,jj_type,amount,date_valid) VALUES (:AA1,:AA2,:AA3,:AA4,:AA5)');
Parameters.ParamValues['AA1'] := str1;
Parameters.ParamValues['AA2'] := str2;
Parameters.ParamValues['AA3'] := '開拓獎(jiǎng)';
Parameters.ParamValues['AA4'] := 188.0*ratio;
Parameters.ParamValues['AA5'] := date;
ExecSQL;
end;
end;
procedure TForm2.add_fudao(str1:string;str2:string;ratio:Extended);
begin
with DataModule1.ADOinsert_jiangjin do begin
SQL.Clear;
SQL.Add('insert into jiangjin (member_id,lower_id,jj_type,amount,date_valid) VALUES (:AA1,:AA2,:AA3,:AA4,:AA5)');
Parameters.ParamValues['AA1'] := str1;
Parameters.ParamValues['AA2'] := str2;
Parameters.ParamValues['AA3'] := '輔導(dǎo)獎(jiǎng)';
Parameters.ParamValues['AA4'] := 150.4*ratio;
Parameters.ParamValues['AA5'] := date;
ExecSQL;
end;
end;
procedure TForm2.add_guanli(str1:string;str2:string;ratio:Extended);
begin
with DataModule1.ADOinsert_jiangjin do begin
SQL.Clear;
SQL.Add('insert into jiangjin (member_id,lower_id,jj_type,amount,date_valid) VALUES (:AA1,:AA2,:AA3,:AA4,:AA5)');
Parameters.ParamValues['AA1'] := str1;
Parameters.ParamValues['AA2'] := str2;
Parameters.ParamValues['AA3'] := '管理獎(jiǎng)';
Parameters.ParamValues['AA4'] := 150.4*ratio;
Parameters.ParamValues['AA5'] := date;
ExecSQL;
end;
end;
procedure TForm2.Upgrade_higher(str0:string);
var
str1:string;
Class1,Class2:integer;
UpFinished:boolean;
begin
str1 := str0;
with DataModule1.ADOQuery_upgrade1 do begin
close;
SQL.Clear;
SQL.Add('Select id from member where member_id = :AA1');
Parameters.ParamValues['AA1'] := str1;
open;
if RecordCount > 0 then begin //開始檢測上級會員,是否需要升級;
UpFinished := false;
repeat
close;
SQL.Clear; //查出輸入會員的上級會員編號
SQL.Add('Select higher_id from member where member_id = :AA1');
Parameters.ParamValues['AA1'] := str1;
open;
if (RecordCount = 0) or (FieldValues['higher_id'] = '總部') then UpFinished := True
else begin
str1 := FieldValues['higher_id']; //上級會員編號
close;
SQL.Clear; //查詢上級會員級別
SQL.Add('Select class from member where member_id = :AA1');
Parameters.ParamValues['AA1'] := str1;
open;
if RecordCount > 0 then begin
Class1 := FieldValues['class']; //上級會員級別
close;
SQL.Clear; //查詢同級會員級別,
SQL.Add('Select class from member where higher_id = :AA1 order by class Desc');
Parameters.ParamValues['AA1'] := str1;
open;
if RecordCount > 1 then begin //若有兩個(gè)以上同級會員,則繼續(xù)判斷,
Recordset.MoveFirst;
Recordset.MoveNext;
Class2 := Recordset.Fields.Item['class'].Value;
if Class2 >= Class1 then begin // 若第二高級別大于或等于上級會員級別,則上級會員需要升級;
close;
SQL.Clear;
SQL.Add('Update member set class = :AA2 where member_id = :AA1');
Parameters.ParamValues['AA1'] := str1;
Parameters.ParamValues['AA2'] := Class2 + 1;
ExecSQL;
end;
end;
end
else begin //數(shù)據(jù)庫有錯(cuò)誤
UpFinished := true;
end;
end;
until UpFinished = true;
end;
close;
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Form2.Close;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
Application.CreateForm(TForm7,Form7);
if Form7.Tag = 1 then
try
Form7.ShowModal;
finally
Form7.Release;
end
else
Form7.Release;
Edit4.Text := VarMember_ID;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -