📄 unit7.~pas
字号:
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Grids, DBGrids, DB, ADODB, TabNotBk,math;
type
TForm7 = class(TForm)
TabbedNotebook1: TTabbedNotebook;
Label2: TLabel;
Label1: TLabel;
DBGrid1: TDBGrid;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
Button1: TButton;
GroupBox1: TGroupBox;
CheckBox4: TCheckBox;
ComboBox4: TComboBox;
CheckBox2: TCheckBox;
ComboBox2: TComboBox;
CheckBox3: TCheckBox;
ComboBox3: TComboBox;
GroupBox2: TGroupBox;
CheckBox5: TCheckBox;
ComboBox5: TComboBox;
CheckBox6: TCheckBox;
ComboBox6: TComboBox;
CheckBox7: TCheckBox;
ComboBox7: TComboBox;
CheckBox8: TCheckBox;
ComboBox8: TComboBox;
GroupBox3: TGroupBox;
CheckBox1: TCheckBox;
ComboBox1: TComboBox;
CheckBox9: TCheckBox;
ComboBox9: TComboBox;
CheckBox10: TCheckBox;
ComboBox10: TComboBox;
CheckBox11: TCheckBox;
ComboBox11: TComboBox;
GroupBox4: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
conn1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOQuery2: TADOQuery;
ADO_KC: TADOQuery;
DS_KC: TDataSource;
DBGrid2: TDBGrid;
Label3: TLabel;
CheckBox12: TCheckBox;
CheckBox13: TCheckBox;
CheckBox14: TCheckBox;
ComboBox12: TComboBox;
ComboBox13: TComboBox;
ComboBox14: TComboBox;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
function ConnectDataBase():boolean;
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure ComboBox4Click(Sender: TObject);
procedure ComboBox6Click(Sender: TObject);
procedure ComboBox9Click(Sender: TObject);
procedure ComboBox3Click(Sender: TObject);
procedure ComboBox7Click(Sender: TObject);
procedure ComboBox10Click(Sender: TObject);
procedure ComboBox12Click(Sender: TObject);
procedure ComboBox13Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
function DBGridAutoSize(mDBGrid: TDBGrid; mOffset: Integer = 5): Boolean;
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
function DBGridRecordSize(mColumn: TColumn): Boolean;
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
{$R *.dfm}
function TForm7.DBGridRecordSize(mColumn: TColumn): Boolean;
{ 返回记录数据网格列显示最大宽度是否成功 }
begin
Result := False;
if not Assigned(mColumn.Field) then Exit;
mColumn.Field.Tag := Max(mColumn.Field.Tag,
TDBGrid(mColumn.Grid).Canvas.TextWidth(mColumn.Field.DisplayText));
Result := True;
end; { DBGridRecordSize }
function TForm7.DBGridAutoSize(mDBGrid: TDBGrid; mOffset: Integer = 5): Boolean;
{ 返回数据网格自动适应宽度是否成功 }
var
I: Integer;
begin
Result := False;
if not Assigned(mDBGrid) then Exit;
if not Assigned(mDBGrid.DataSource) then Exit;
if not Assigned(mDBGrid.DataSource.DataSet) then Exit;
if not mDBGrid.DataSource.DataSet.Active then Exit;
for I := 0 to mDBGrid.Columns.Count - 1 do begin
if not mDBGrid.Columns[I].Visible then Continue;
if Assigned(mDBGrid.Columns[I].Field) then
mDBGrid.Columns[I].Width := 120+Max(mDBGrid.Columns[I].Field.Tag,
mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption)) + mOffset
else mDBGrid.Columns[I].Width :=
mDBGrid.Canvas.TextWidth(mDBGrid.Columns[I].Title.Caption) + 120+ mOffset;
mDBGrid.Refresh;
end;
Result := True;
end; { DBGridAutoSize }
function TForm7.ConnectDataBase():boolean;
var
Constr:string;
begin
conn1.Close;
try
Constr:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=admin;';
Constr:=Constr+'Data Source='+ExtractFilePath(Application.ExeName)+'database\ZD.mdb;Mode=ReadWrite';
conn1.ConnectionString := Constr;
conn1.Connected:=true;
result:=true;
except
result:=false;
application.MessageBox('连接数据库失败','提示',1);
end;
end;
procedure TForm7.Button1Click(Sender: TObject);
var
sql,sql1,sql2,sql3,sql4:string;
startdate,Enddate:TDatetime;
begin
startdate:=DateTimePicker1.Date;
Enddate:=DateTimePicker2.Date;
//按产品
sql1:='Select ManuFactory as 生产厂商, Quality as 产品类别,Pzsize as 产品名称,packagenum as 包装规格,cellnum as 数量,price as 出货价,Jiner as 金额,Pzuser as 经手人,Outputdate as 进货日期 from OutputCell where Outputdate>=:s_date and Outputdate<=:e_date';
if checkbox4.Checked then
sql2:=' and Manufactory=:s_manufactory';
if (checkbox4.Checked) and (checkbox3.Checked) then
sql2:=' and Manufactory=:s_manufactory and quality=:s_quality';
if (checkbox4.Checked) and (checkbox3.Checked) and (checkbox2.Checked) then
sql2:=' and Manufactory=:s_manufactory and quality=:s_quality and Pzsize=:s_pzsize';
//按业务员
if checkbox5.Checked then
sql2:=' and Pzuser=:s_user';
if (checkbox5.Checked) and (checkbox6.Checked) then
sql2:=' and Pzuser=:s_user and Manufactory=:s_manufactory';
if (checkbox5.Checked) and (checkbox6.Checked) and (checkbox7.Checked) then
sql2:=' and Pzuser=:s_user and Manufactory=:s_manufactory and quality=:s_quality ';
if (checkbox5.Checked) and (checkbox6.Checked) and (checkbox7.Checked) and (checkbox8.Checked) then
sql2:=' and Pzuser=:s_user and Manufactory=:s_manufactory and quality=:s_quality and Pzsize=:s_pzsize';
//按区域
if checkbox1.Checked then
sql2:=' and area_type=:s_area';
if (checkbox1.Checked) and (checkbox9.Checked) then
sql2:=' and Manufactory=:s_manufactory and area_type=:s_area';
if (checkbox1.Checked) and (checkbox9.Checked) and (checkbox10.Checked) then
sql2:=' and Manufactory=:s_manufactory and area_type=:s_area and quality=:s_quality';
if (checkbox1.Checked) and (checkbox9.Checked) and (checkbox10.Checked) and (checkbox11.Checked) then
sql2:=' and Manufactory=:s_manufactory and area_type=:s_area and quality=:s_quality and Pzsize=:s_pzsize';
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
if sql2='' then
ADOQuery2.SQL.Add(sql1)
else
ADOQuery2.SQL.Add(sql1+sql2);
sql:=sql1+sql2;
ADOQuery2.Parameters.ParamByName('s_date').Value:=startdate;
ADOQuery2.Parameters.ParamByName('e_date').Value:=Enddate;
//按产品
if checkbox4.Checked then
ADOQuery2.Parameters.ParamByName('s_manufactory').Value:=combobox4.Text;
if (checkbox4.Checked) and (checkbox3.Checked) then
begin
ADOQuery2.Parameters.ParamByName('s_manufactory').Value:=combobox4.Text;
ADOQuery2.Parameters.ParamByName('s_quality').Value:=combobox3.Text;
end;
if (checkbox4.Checked) and (checkbox3.Checked) and (checkbox2.Checked) then
begin
ADOQuery2.Parameters.ParamByName('s_manufactory').Value:=combobox4.Text;
ADOQuery2.Parameters.ParamByName('s_quality').Value:=combobox3.Text;
ADOQuery2.Parameters.ParamByName('s_pzsize').Value:=combobox2.Text;
end;
//按业务员
if checkbox5.Checked then
ADOQuery2.Parameters.ParamByName('s_user').Value:=combobox5.Text;
if (checkbox5.Checked) and (checkbox6.Checked) then
begin
ADOQuery2.Parameters.ParamByName('s_user').Value:=combobox5.Text;
ADOQuery2.Parameters.ParamByName('s_manufactory').Value:=combobox6.Text;
end;
if (checkbox5.Checked) and (checkbox6.Checked) and (checkbox7.Checked) then
begin
ADOQuery2.Parameters.ParamByName('s_user').Value:=combobox5.Text;
ADOQuery2.Parameters.ParamByName('s_manufactory').Value:=combobox6.Text;
ADOQuery2.Parameters.ParamByName('s_quality').Value:=combobox7.Text;
end;
if (checkbox5.Checked) and (checkbox6.Checked) and (checkbox7.Checked) and (checkbox8.Checked) then
begin
ADOQuery2.Parameters.ParamByName('s_user').Value:=combobox5.Text;
ADOQuery2.Parameters.ParamByName('s_manufactory').Value:=combobox6.Text;
ADOQuery2.Parameters.ParamByName('s_quality').Value:=combobox7.Text;
ADOQuery2.Parameters.ParamByName('s_pzsize').Value:=combobox8.Text;
end;
//按区域
if checkbox1.Checked then
ADOQuery2.Parameters.ParamByName('s_area').Value:=combobox1.Text;
if (checkbox1.Checked) and (checkbox9.Checked) then
begin
ADOQuery2.Parameters.ParamByName('s_area').Value:=combobox1.Text;
ADOQuery2.Parameters.ParamByName('s_manufactory').Value:=combobox9.Text;
end;
if (checkbox1.Checked) and (checkbox9.Checked) and (checkbox10.Checked) then
begin
ADOQuery2.Parameters.ParamByName('s_area').Value:=combobox1.Text;
ADOQuery2.Parameters.ParamByName('s_manufactory').Value:=combobox9.Text;
ADOQuery2.Parameters.ParamByName('s_quality').Value:=combobox10.Text;
end;
if (checkbox1.Checked) and (checkbox9.Checked) and (checkbox10.Checked) and (checkbox11.Checked) then
begin
ADOQuery2.Parameters.ParamByName('s_area').Value:=combobox1.Text;
ADOQuery2.Parameters.ParamByName('s_manufactory').Value:=combobox9.Text;
ADOQuery2.Parameters.ParamByName('s_quality').Value:=combobox10.Text;
ADOQuery2.Parameters.ParamByName('s_pzsize').Value:=combobox11.Text;
end;
ADOQuery2.Open;
end;
procedure TForm7.FormCreate(Sender: TObject);
var
manufactory,area_type,pzuser:string;
begin
ConnectDataBase;
DateTimePicker1.Date:=now-30;
DateTimePicker2.Date:=now;
DateTimePicker1.DateFormat:=dfshort;
DateTimePicker2.DateFormat:=dfshort;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.Add('select distinct Manufactory from shopName');
ADOQuery1.Open;
Combobox4.Clear;
Combobox6.Clear;
Combobox9.Clear;
Combobox12.Clear;
while not ADOQuery1.Eof do
begin
manufactory:=ADOQuery1.FieldByName('Manufactory').AsString;
Combobox4.Items.Add(manufactory);
Combobox6.Items.Add(manufactory);
Combobox9.Items.Add(manufactory);
Combobox12.Items.Add(manufactory);
ADOQuery1.Next;
end;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.Add('select distinct area_type from custom');
ADOQuery1.Open;
Combobox1.Clear;
while not ADOQuery1.Eof do
begin
area_type:=ADOQuery1.FieldByName('area_type').AsString;
Combobox1.Items.Add(area_type);
ADOQuery1.Next;
end;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.Add('select distinct Pzuser from inputcell');
ADOQuery1.Open;
Combobox5.Clear;
while not ADOQuery1.Eof do
begin
pzuser:=ADOQuery1.FieldByName('Pzuser').AsString;
Combobox5.Items.Add(pzuser);
ADOQuery1.Next;
end;
checkbox2.Enabled:=false;
checkbox3.Enabled:=false;
checkbox4.Enabled:=false;
checkbox5.Enabled:=false;
checkbox6.Enabled:=false;
checkbox7.Enabled:=false;
checkbox8.Enabled:=false;
checkbox1.Enabled:=false;
checkbox9.Enabled:=false;
checkbox10.Enabled:=false;
checkbox11.Enabled:=false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -