⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 中鼎百货进销存系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    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 + -