📄 main.pas
字号:
begin
Label1.Caption := '会员机构列表';
Panel2.Hide;
Panel6.Hide;
Panel3.Show;
Panel1.Show;
WhichButtonClick := 1;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Label1.Caption := '会员机构列表';
Panel3.Hide;
Panel1.Hide;
Panel2.Show;
Panel6.Show;
WhichButtonClick := 4;
// DBGrid1CellClick
end;
procedure TForm1.FormCreate(Sender: TObject);
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);
Panel2.Hide;
Panel6.Hide;
Panel3.Show;
Panel1.Show;
// DataModule1.ADOQuery2.close;
DataModule1.ADOQuery2.SQL.Clear;
DataModule1.ADOQuery2.SQL.Add('select * from member where class = :AA1');
DataModule1.ADOQuery2.Parameters.ParamValues['AA1'] := 0;
DataModule1.ADOQuery2.open;
Label1.Caption := '普通会员机构';
StringGrid1.RowCount := 10;
StringGrid1.Cells[0,0] := '段号';
StringGrid1.Cells[1,0] := '会员编号';
StringGrid1.Cells[2,0] := '会员名称';
StringGrid1.Cells[3,0] := '会员级别';
StringGrid1.Cells[4,0] := '上级会员编号';
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Label1.Caption := '会员机构查询';
DataModule1.ADOQuery2.close;
DataModule1.ADOQuery2.SQL.Clear;
case RadioGroup2.ItemIndex of
0: begin
DataModule1.ADOQuery2.SQL.Add('Select * from member where member_id = "' + Edit2.Text +'"');
end;
1: begin
DataModule1.ADOQuery2.SQL.Add('Select * from member where name like "%' + Edit2.Text +'%"');
end;
2: begin
DataModule1.ADOQuery2.SQL.Add('Select * from member where person like "%' + Edit2.Text +'%"');
end;
3: begin
DataModule1.ADOQuery2.SQL.Add('Select * from member where (handphone like "%' + Edit2.Text +
'%") or (telephone like "%' + Edit2.Text + '%")');
end;
end;
DataModule1.ADOQuery2.open;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
MemberId,MemberName,MemberClass:string;
I,J,K,C:integer;
begin
if WhichButtonClick = 4 then begin
MemberId := DataModule1.ADOQuery2.FieldValues['member_id'];
MemberName := DataModule1.ADOQuery2.FieldValues['name'];
MemberClass := DataModule1.ADOQuery2.FieldValues['class'];
Label16.Caption := '选定会员:'+MemberName+',其下属会员层次关系列表:';
StringGrid1.RowCount := 1;
StringGrid1.Refresh;
//将选定会员的所有下属会员按段数存入临时表,假定选定会员为0段,下级会员段数加1;
with DataModule1 do begin
ADOdel_member1.SQL.Clear;
ADOdel_member1.SQL.Add('delete from member_temp'); //清空临时表
ADOdel_member1.ExecSQL;
//插入第1行,选定会员
ADOdel_member1.SQL.Clear;
ADOdel_member1.SQL.Add('insert into member_temp (member_id,name,class,higher_id,lv,row_num) values ("'+
MemberId+'","'+MemberName+'",'+MemberClass+',"",0,0)');
ADOdel_member1.ExecSQL;
I := 1;
repeat
C := 0;
ADOQuery_S1.close;
ADOQuery_S1.SQL.Clear;
ADOQuery_S1.SQL.Add('Select member_id from member_temp where lv = '+inttostr(I-1));
ADOQuery_S1.open;
for J := 1 to ADOQuery_S1.RecordCount do begin
ADOQuery_S2.close;
ADOQuery_S2.SQL.Clear;
ADOQuery_S2.SQL.Add('Select member_id,name,class from member where higher_id = "'+ADOQuery_S1.Recordset.Fields.Item['member_id'].Value+'"');
ADOQuery_S2.open;
for K := 1 to ADOQuery_S2.RecordCount do begin
ADOdel_member1.SQL.Clear;
ADOdel_member1.SQL.Add('insert into member_temp (member_id,name,class,higher_id,lv,row_num) values ("'+
ADOQuery_S2.Recordset.Fields.Item['member_id'].Value+'","'+ADOQuery_S2.Recordset.Fields.Item['name'].Value+
'",'+inttostr(ADOQuery_S2.Recordset.Fields.Item['class'].Value)+',"'+ADOQuery_S1.Recordset.Fields.Item['member_id'].Value+'",'+inttostr(I)+',-1)');
ADOdel_member1.ExecSQL;
if K < ADOQuery_S2.RecordCount then ADOQuery_S2.Recordset.MoveNext;
Inc(C);
end;
if J < ADOQuery_S1.RecordCount then ADOQuery_S1.Recordset.MoveNext;
end;
Inc(I);
until C = 0; //C=0 说明本段没有数据插入,段到此结束
ADOQuery_S2.close;
ADOQuery_S1.close;
ADOQuery_S1.SQL.Clear;
ADOQuery_S1.SQL.Add('Select * from member_temp order by lv,higher_id,member_id');
ADOQuery_S1.open;
Num := ADOQuery_S1.RecordCount;
StringGrid1.RowCount := Num+1;
for J := 1 to ADOQuery_S1.RecordCount do begin
StringGrid1.Cells[0,J] := ADOQuery_S1.Recordset.Fields.Item['lv'].Value;
StringGrid1.Cells[1,J] := ADOQuery_S1.Recordset.Fields.Item['member_id'].Value;
StringGrid1.Cells[2,J] := ADOQuery_S1.Recordset.Fields.Item['name'].Value;
StringGrid1.Cells[3,J] := ADOQuery_S1.Recordset.Fields.Item['class'].Value;
StringGrid1.Cells[4,J] := ADOQuery_S1.Recordset.Fields.Item['higher_id'].Value;
ADOQuery_S1.Recordset.MoveNext;
end;
ADOQuery_S1.close;
end;
end;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
//辅导津贴比例设置
Application.CreateForm(TForm4,Form4);
if Form4.Tag = 1 then
try
Form4.ShowModal;
finally
Form4.Release;
end
else
Form4.Release;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
//管理奖比例设置
Application.CreateForm(TForm5,Form5);
if Form5.Tag = 1 then
try
Form5.ShowModal;
finally
Form5.Release;
end
else
Form5.Release;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
//会员升级
Selected_MemberID := DataModule1.ADOQuery2.FieldValues['member_id'];
Application.CreateForm(TForm6,Form6);
if Form6.Tag = 1 then
try
Form6.ShowModal;
finally
Form6.Release;
end
else
Form6.Release;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
//综合查询
Application.CreateForm(TForm8,Form8);
if Form8.Tag = 1 then
try
Form8.ShowModal;
finally
Form8.Release;
end
else
Form8.Release;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
//月汇总结算
Application.CreateForm(TForm9,Form9);
if Form9.Tag = 1 then
try
Form9.ShowModal;
finally
Form9.Release;
end
else
Form9.Release;
end;
procedure TForm1.Button9Click(Sender: TObject);
var
rangeE:Excel2000.Range;
I,J:integer;
begin
// creat and show
ExcelApplication1.Visible[0] := True;
ExcelApplication1.Workbooks.Add(NULL,0);
//fill is the first row with field titles 第一行为标题
RangeE := ExcelApplication1.ActiveCell; //选择单元格
RangeE.Value := '段号';
RangeE := RangeE.Next;
RangeE.Value := '会员编号';
RangeE := RangeE.Next;
RangeE.Value := '会员名称';
RangeE := RangeE.Next;
RangeE.Value := '会员级别';
RangeE := RangeE.Next;
RangeE.Value := '上级会员编号';
RangeE := RangeE.Next;
// add field data in following rows 添加数据到各行
for J := 1 to Num do begin
RangeE := ExcelApplication1.Range['A'+inttostr(J+1),'A'+inttostr(J+1)];
for I := 0 to 4 do begin
RangeE.Value := StringGrid1.Cells[I,J];
RangeE := RangeE.Next;
end;
end;
// format the section
RangeE := ExcelApplication1.Range['A1','E'+inttostr(Num+1)];
RangeE.AutoFormat(2,NULL,NULL,NULL,NULL,NULL,NULL);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -