📄 mc_jhpzgl.~pas
字号:
unit MC_JHPZGL;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, ExtCtrls, StdCtrls, Buttons, Db, DBTables, DBCtrls, Qrctrls,
QuickRpt, DBGrids;
type
TJHPZGL = class(TForm)
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Shape1: TShape;
GroupBox1: TGroupBox;
Panel1: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Edit1: TEdit;
Bevel1: TBevel;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Query1: TQuery;
DBLookupListBox1: TDBLookupListBox;
DataSource1: TDataSource;
Query1BDEDesigner: TIntegerField;
Query1BDEDesigner2: TStringField;
Query1BDEDesigner3: TStringField;
Query1BDEDesigner4: TStringField;
Query1BDEDesigner5: TFloatField;
Query1BDEDesigner6: TStringField;
Query1BDEDesigner7: TStringField;
Query1BDEDesigner8: TStringField;
Query1BDEDesigner9: TStringField;
Query1BDEDesigner10: TStringField;
Query2: TQuery;
Query3: TQuery;
Label12: TLabel;
Query4: TQuery;
DataSource2: TDataSource;
BitBtn1: TBitBtn;
DBLookupComboBox1: TDBLookupComboBox;
QuickRep1: TQuickRep;
PageHeaderBand1: TQRBand;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
QRShape1: TQRShape;
TitleBand1: TQRBand;
QRShape2: TQRShape;
QRLabel3: TQRLabel;
QRDBText1: TQRDBText;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRDBText2: TQRDBText;
QRLabel7: TQRLabel;
QRDBText3: TQRDBText;
QRShape3: TQRShape;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRLabel10: TQRLabel;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRLabel13: TQRLabel;
QRLabel15: TQRLabel;
QRShape4: TQRShape;
QRShape5: TQRShape;
QRShape6: TQRShape;
QRShape7: TQRShape;
QRShape8: TQRShape;
QRShape9: TQRShape;
DetailBand1: TQRBand;
QRShape11: TQRShape;
QRShape12: TQRShape;
QRShape13: TQRShape;
QRShape14: TQRShape;
QRShape15: TQRShape;
QRShape16: TQRShape;
QRShape17: TQRShape;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRDBText6: TQRDBText;
QRDBText7: TQRDBText;
QRDBText8: TQRDBText;
QRDBText9: TQRDBText;
QRDBText11: TQRDBText;
Query5: TQuery;
DBGrid1: TDBGrid;
SummaryBand1: TQRBand;
QRShape19: TQRShape;
QRLabel16: TQRLabel;
QRDBText12: TQRDBText;
QRLabel17: TQRLabel;
QRExpr1: TQRExpr;
Query5BDEDesigner: TIntegerField;
Query5BDEDesigner2: TStringField;
Query5BDEDesigner3: TDateTimeField;
Query5BDEDesigner4: TIntegerField;
Query5BDEDesigner5: TStringField;
Query5BDEDesigner6: TStringField;
Query5BDEDesigner7: TIntegerField;
Query5BDEDesigner8: TFloatField;
Query5BDEDesigner9: TFloatField;
Query5BDEDesigner10: TStringField;
Query5BDEDesigner11: TStringField;
Query5BDEDesigner12: TIntegerField;
QRLabel14: TQRLabel;
procedure FormShow(Sender: TObject);
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn3Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn2Click(Sender: TObject);
procedure DBLookupComboBox1Exit(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DBLookupComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure QuickRep1Preview(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure StringGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
x,y:integer;
{ Private declarations }
public
{ Public declarations }
end;
var
JHPZGL: TJHPZGL;
implementation
uses MC_DYYLBrose;
{$R *.DFM}
procedure TJHPZGL.FormShow(Sender: TObject); //系统初始化
var a:integer;
begin
ANimateWindow(Handle,300,AW_SLIDE+AW_VER_POSITIVE);
Label1.Refresh;
Label2.Refresh;
Shape1.Refresh;
GroupBox1.Refresh;
Panel1.Refresh;
StringGrid1.Refresh;
DBLookupComboBox1.Refresh;
For a:=1 to 100 do
begin
StringGrid1.Cells[0,a]:=IntToStr(a); //设置列标
end;
StringGrid1.Cells[1,0]:='商品简称';
StringGrid1.Cells[2,0]:='商品编号';
StringGrid1.Cells[3,0]:='商品名称';
StringGrid1.Cells[4,0]:='单位';
StringGrid1.Cells[5,0]:='数量';
StringGrid1.Cells[6,0]:='单价';
StringGrid1.Cells[7,0]:='合计金额';
StringGrid1.Cells[8,0]:='商品说明';
StringGrid1.Cells[9,0]:='进货说明';
end;
procedure TJHPZGL.StringGrid1KeyPress(Sender: TObject; var Key: Char); //在StringGrid中进行键盘控制
var h:integer;
z:real;
begin
x:=StringGrid1.Row;
y:=StringGrid1.Col;
if key=#13 then //回车
begin
if StringGrid1.Col<9 then StringGrid1.Col:=StringGrid1.Col+1 //光标向右移动
Else
If StringGrid1.row <> 100 Then
begin
StringGrid1.row:=StringGrid1.row+1; //光标移到下一行行首
StringGrid1.Col:=1;
end;
If y = 1 Then //光标在第一列时,输入商品简称或*号,将显示提示信息
begin
if Length(StringGrid1.Cells[y,x])<>0 then
begin
if StringGrid1.Cells[1,x]='*' then //如果输入*号,将显示所有提示信息
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From 商品基础信息表');
Query1.Open;
DBGrid1.Visible:=True;
DBGrid1.SetFocus;
End
Else //否则显示含有输入字符的提示信息
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From 商品基础信息表 Where 简称'+' Like'''+StringGrid1.Cells[1,x]+'%''');
Query1.Open;
DBGrid1.Visible:=True;
DBGrid1.SetFocus;
end;
end;
end;
If Y = 5 Then
begin
if Length(StringGrid1.Cells[2,x])<>0 then
begin
StringGrid1.Cells[7,x]:=FloatToStr(Query1.FieldByName('单价').AsFloat
*StrToInt(StringGrid1.Cells[5,x])); //计算合计金额
end;
end;
If Y = 7 Then
begin
z:=0;
for h:=1 to 100 do //汇总合计金额
begin
if Length(StringGrid1.Cells[7,h])<>0 then
z:=StrToFloat(StringGrid1.Cells[7,h])+z
Else
Break;
end;
Label11.Caption:=FloatToStr(z); //显示汇总金额
end;
End
Else //如果不是回车
begin
if Length(StringGrid1.Cells[2,x-1])=0 then //如果上一行为空
begin
key:=#0; //输入空字符
End
Else
begin
if Y=2 then key:=#0;
if Y=3 then key:=#0;
if Y=4 then key:=#0;
if Y=6 then key:=#0;
if Y=7 then key:=#0;
if Y=8 then key:=#0;
If Y = 5 Then
begin
if key=#8 then key:=#8 //退格键
Else
if (key<'0') or (key>'9') then key:=#0;
end;
end;
end;
end;
procedure TJHPZGL.BitBtn3Click(Sender: TObject); //取消进货
begin
If BitBtn2.Enabled = True Then
begin
if MessageDLG('确认放弃进货吗?',mtCustom,[mbYes,mbNo],0)=mrYes then close;
End
else Close;
end;
procedure TJHPZGL.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then StringGrid1.SetFocus;
end;
procedure TJHPZGL.BitBtn2Click(Sender: TObject); //进货保存
var a,b,d:integer;
C:Real;
begin
Query3.Close;
Query3.SQL.Clear;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -