📄 unit1.pas
字号:
procedure ComboBox26Click(Sender: TObject);
procedure ComboBox27Click(Sender: TObject);
procedure ComboBox30Click(Sender: TObject);
procedure ComboBox31Click(Sender: TObject);
procedure ComboBox33Click(Sender: TObject);
procedure ComboBox34Click(Sender: TObject);
procedure Button47Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button48Click(Sender: TObject);
procedure Button49Click(Sender: TObject);
procedure Button50Click(Sender: TObject);
procedure Button51Click(Sender: TObject);
procedure Button52Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button53Click(Sender: TObject);
procedure Edit20KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit19KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit36Exit(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
private
MyIniFile: TIniFile;
MyFocus:integer;
{ Private declarations }
public
usercode:string;
orderno:real;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit8, Unit9, Unit10;
{$R *.dfm}
function TForm1.RMBChange(i:Currency):string;
const
d='零壹贰叁肆伍陆柒捌玖分角元拾佰仟万拾佰仟亿';
var
m,k:string;
j:integer;
begin
k:='';
m:=currtostr(int(i*100));
for j:=length(m) downto 1 do
k:=k+d[(strtoint(m[Length(m)-j+1])+1)*2-1]+
d[(strtoint(m[Length(m)-j+1])+1)*2]+d[(10+j)*2-1]+d[(10+j)*2];
result:=k;
end;
procedure TForm1.ChangeDbGridColColor(ojbDbGrid:TDbGrid);
var
i:integer;
begin
for i:= 0 to ojbDbGrid.Columns.Count -1 do
begin
case i mod 3 of
0: ojbDbGrid.Columns.Items[i].Color:=TColor($00B8EEF1);
1: ojbDbGrid.Columns.Items[i].Color:=TColor($00B8EEF1);
2: ojbDbGrid.Columns.Items[i].Color:=TColor($00B8EEF1);
end;
end;
end;
function TForm1.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 TForm1.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 := 60+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) + 60+ mOffset;
mDBGrid.Refresh;
end;
Result := True;
end; { DBGridAutoSize }
//-----------------------------------------------------------
// if toExcel = false, export dbgrid contents to the Clipboard
// if toExcel = true, export dbgrid to Microsoft Excel
procedure TForm1.ExportDBGrid(toExcel: Boolean);
var
bm: TBookmark;
col, row: Integer;
sline: String;
mem: TMemo;
ExcelApp: Variant;
begin
Screen.Cursor := crHourglass;
DBGrid4.DataSource.DataSet.DisableControls;
bm := DBGrid4.DataSource.DataSet.GetBookmark;
DBGrid4.DataSource.DataSet.First;
// create the Excel object
if toExcel then
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.WorkBooks.Add(xlWBatWorkSheet);
ExcelApp.WorkBooks[1].WorkSheets[1].Name := 'Grid Data';
end;
// First we send the data to a memo
// works faster than doing it directly to Excel
mem := TMemo.Create(Self);
mem.Visible := false;
mem.Parent := Form1;
mem.Clear;
sline := '';
// add the info for the column names
for col := 0 to DBGrid4.FieldCount-1 do
sline := sline + DBGrid4.Fields[col].DisplayLabel + #9;
mem.Lines.Add(sline);
// get the data into the memo
for row := 0 to DBGrid4.DataSource.DataSet.RecordCount-1 do
begin
sline := '';
for col := 0 to DBGrid4.FieldCount-1 do
sline := sline + DBGrid4.Fields[col].AsString + #9;
mem.Lines.Add(sline);
DBGrid4.DataSource.DataSet.Next;
end;
// we copy the data to the clipboard
mem.SelectAll;
mem.CopyToClipboard;
// if needed, send it to Excel
// if not, we already have it in the clipboard
if toExcel then
begin
ExcelApp.Workbooks[1].WorkSheets['Grid Data'].Paste;
ExcelApp.Visible := true;
end;
FreeAndNil(mem);
// FreeAndNil(ExcelApp);
DBGrid4.DataSource.DataSet.GotoBookmark(bm);
DBGrid4.DataSource.DataSet.FreeBookmark(bm);
DBGrid4.DataSource.DataSet.EnableControls;
Screen.Cursor := crDefault;
end;
procedure TForm1.ExportDBGrid1(toExcel: Boolean);
var
bm: TBookmark;
col, row: Integer;
sline: String;
mem: TMemo;
ExcelApp: Variant;
begin
Screen.Cursor := crHourglass;
DBGrid1.DataSource.DataSet.DisableControls;
bm := DBGrid1.DataSource.DataSet.GetBookmark;
DBGrid1.DataSource.DataSet.First;
// create the Excel object
if toExcel then
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.WorkBooks.Add(xlWBatWorkSheet);
ExcelApp.WorkBooks[1].WorkSheets[1].Name := 'Grid Data';
end;
// First we send the data to a memo
// works faster than doing it directly to Excel
mem := TMemo.Create(Self);
mem.Visible := false;
mem.Parent := Form1;
mem.Clear;
sline := '';
// add the info for the column names
for col := 0 to DBGrid1.FieldCount-1 do
sline := sline + DBGrid1.Fields[col].DisplayLabel + #9;
mem.Lines.Add(sline);
// get the data into the memo
for row := 0 to DBGrid1.DataSource.DataSet.RecordCount-1 do
begin
sline := '';
for col := 0 to DBGrid1.FieldCount-1 do
sline := sline + DBGrid1.Fields[col].AsString + #9;
mem.Lines.Add(sline);
DBGrid1.DataSource.DataSet.Next;
end;
// we copy the data to the clipboard
mem.SelectAll;
mem.CopyToClipboard;
// if needed, send it to Excel
// if not, we already have it in the clipboard
if toExcel then
begin
ExcelApp.Workbooks[1].WorkSheets['Grid Data'].Paste;
ExcelApp.Visible := true;
end;
FreeAndNil(mem);
// FreeAndNil(ExcelApp);
DBGrid1.DataSource.DataSet.GotoBookmark(bm);
DBGrid1.DataSource.DataSet.FreeBookmark(bm);
DBGrid1.DataSource.DataSet.EnableControls;
Screen.Cursor := crDefault;
end;
function TForm1.ConnectDataBase():boolean;
var
Constr:string;
begin
conn.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';
conn.ConnectionString := Constr;
conn.Connected:=true;
result:=true;
except
result:=false;
application.MessageBox('连接数据库失败','提示',1);
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
close;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
s:string;
begin
if ConnectDataBase() then
s:='';
DateTimePicker1.Date:=now;
DateTimePicker2.Date:=now;
DateTimePicker3.Date:=now;
DateTimePicker4.Date:=now;
DateTimePicker5.Date:=now;
DateTimePicker6.Date:=now;
DateTimePicker1.DateFormat:=dfshort;
DateTimePicker2.DateFormat:=dfshort;
DateTimePicker3.DateFormat:=dfshort;
DateTimePicker4.DateFormat:=dfshort;
DateTimePicker5.DateFormat:=dfshort;
DateTimePicker6.DateFormat:=dfshort;
if edit1.Text='' then
edit1.Text:='0';
if edit2.Text='' then
edit2.Text:='0';
end;
procedure TForm1.Button10Click(Sender: TObject);
var
sql1,sql2,sql,sql3:string;
begin
try
if messagedlg('需要增加该客户资料吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
sql1:='insert into custom(cus_no,cus_name,General_Mng,cus_addr,relation,teleno,fax,mobilephone,mail,ent_type,area_type,own_sales)';
sql2:=' values('''+DBedit1.text+''','''+DBedit_Name.text+''','''+DBeditG_M.text+''','''+DBEdit_Addr.text+''','''+DBedit_Rela.text+''','''+DBEdit_Tele.text+''','''+DBEdit_fax.text+''','''+DBEdit_mp.text+''','''+DBEdit_Mail.text+''','''+DBCom_Type.text+''','''+DBCom_Area.text+''','''+DBCom_Sale.text+''')';
sql:=sql1+sql2;
ADO_Cus.Close;
ADO_Cus.SQL.Clear;
ADO_Cus.SQL.Add(sql);
ADO_Cus.ExecSQL;
end;
sql1:='Select cus_no as 客户编号,cus_name as 客户名称,General_Mng as 法人代表,cus_addr as 地址,relation as 联系人,';
sql2:='teleno as 电话号码,fax as 传真,mobilephone as 手机,mail as 邮件,ent_type as 企业类别,area_type as 区域,own_sales as 跟单业务 from Custom';
sql:=sql1+sql2;
ADO_Cus.Close;
ADO_Cus.SQL.Clear;
ADO_Cus.SQL.Add(sql);
ADO_Cus.Open;
DBGridAutoSize(DBGrid4);
ChangeDbGridColColor(DBGrid4);
except
application.MessageBox('输入有误','提示',0);
end;
end;
procedure TForm1.TabbedNotebook1Click(Sender: TObject);
var
s_no,s_name,s_gm,s_addr,s_relation,s_teleno:string;
s_fax,s_mp,s_mail,s_type,s_area,s_sales:string;
sql,sql1,sql2,S_Quality,S_Field,area_type:string;
s_cus_no,s_cus_name,s_manufactory,s_username,pzuser,manufactory:string;
i:integer;
s_showstyle,s_fee,sarea,s_custype:string;
begin
//加厂商
if TabbedNotebook1.PageIndex=0 then
begin
if edit1.Text='' then
edit1.Text:='0';
if edit2.Text='' then
edit2.Text:='0';
ADO_Input.Close;
ADO_Input.SQL.Clear;
ADO_Input.sql.Add('select distinct ManuFactory from shopName');
ADO_Input.Open;
Combobox16.Clear;
while not ADO_Input.Eof do
begin
ManuFactory:=ADO_Input.FieldByName('ManuFactory').AsString;
Combobox16.Items.Add(ManuFactory);
ADO_Input.Next;
end;
end;
if TabbedNotebook1.PageIndex=3 then
begin
edit12.Text:=usercode;
sql:='Select username from usertable where usercode='''+usercode+'''';
ADO_User.Close;
ADO_User.SQL.Clear;
ADO_User.SQL.Add(sql);
ADO_User.Open;
while not ADO_User.Eof do
begin
edit13.Text:=ADO_User.FieldByName('username').AsString;
ADO_User.Next;
end;
end;
if TabbedNotebook1.PageIndex=1 then
begin
sql:='Select ManuFactory as 生产厂商,Quality as 产品品类,Shop_NO as 产品条码,shop_size as 产品名称,package_num as 包装规格 from ShopName';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sql);
ADOQuery1.Open;
if ADOQuery1.RecordCount>0 then
DBEdit2.DataField:='产品名称';
ADO_Input.Close;
ADO_Input.SQL.Clear;
ADO_Input.sql.Add('select distinct ManuFactory from shopName');
ADO_Input.Open;
Combobox17.Clear;
while not ADO_Input.Eof do
begin
ManuFactory:=ADO_Input.FieldByName('ManuFactory').AsString;
Combobox17.Items.Add(ManuFactory);
ADO_Input.Next;
end;
end;
if TabbedNotebook1.PageIndex=5 then
begin
for i:=0 to listbox2.Items.Count-1 do
begin
s_fee:=listbox2.Items[i];
combobox21.Items.Add(s_fee);
end;
sql:='select id as 序号,FeeStyle as 费用类别,num as 费用金额,usedfor as 用途,use_date as 支出日期 from FeeStyle';
ADO_fee.Close;
ADO_fee.SQL.Clear;
ADO_fee.SQL.Add(sql);
ADO_fee.Open;
dbedit8.DataField:='序号';
end;
if TabbedNotebook1.PageIndex=2 then
begin
sql1:='Select cus_no as 客户编号,cus_name as 客户名称,General_Mng as 法人代表,cus_addr as 地址,relation as 联系人,';
sql2:='teleno as 电话号码,fax as 传真,mobilephone as 手机,mail as 邮件,ent_type as 企业类别,area_type as 区域,own_sales as 跟单业务 from Custom';
sql:=sql1+sql2;
ADO_Cus.Close;
ADO_Cus.SQL.Clear;
ADO_Cus.SQL.Add(sql);
ADO_Cus.Open;
if ADO_Cus.RecordCount>0 then
DBedit7.DataField:='客户编号';
DBGridAutoSize(DBGrid4);
ChangeDbGridColColor(DBGrid4);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -