📄 input.pas
字号:
unit input;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, ComCtrls;
type
TInputForm = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label17: TLabel;
Label31: TLabel;
OrderNoEdit: TEdit;
KhpmEdit: TEdit;
CfNoteEdit: TEdit;
WidthEdit: TEdit;
ShEdit: TEdit;
CfComboBox: TComboBox;
CfnrEdit: TEdit;
GhEdit: TEdit;
ShStyleComboBox: TComboBox;
Label8: TLabel;
HtbhEdit: TEdit;
Label9: TLabel;
DyzbEdit: TEdit;
Panel2: TPanel;
InputSpeedButton: TSpeedButton;
Panel17: TPanel;
Panel4: TPanel;
ClearSpeedButton: TSpeedButton;
SaveSpeedButton: TSpeedButton;
Panel19: TPanel;
PrintTotalSpeedButton: TSpeedButton;
PrintComboBox: TComboBox;
Panel3: TPanel;
Panel18: TPanel;
Bevel1: TBevel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
MzEdit: TEdit;
KcEdit: TEdit;
mcEdit: TEdit;
DataInputStringGrid: TStringGrid;
Splitter1: TSplitter;
Panel5: TPanel;
Panel6: TPanel;
CkRadioButton: TRadioButton;
NxRadioButton: TRadioButton;
Panel7: TPanel;
Panel8: TPanel;
SelectPrintStringGrid: TStringGrid;
Panel9: TPanel;
SortPrintSpeedButton: TSpeedButton;
PrintNextSpeedButton: TSpeedButton;
ClientNameComboBox: TComboBox;
CpmcComboBox: TComboBox;
PreviewCheckBox: TCheckBox;
PrintCFCheckBox: TCheckBox;
XsComboBox: TComboBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure XsComboBoxChange(Sender: TObject);
procedure ClientNameComboBoxEnter(Sender: TObject);
procedure CpmcComboBoxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CpmcComboBoxExit(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure InputSpeedButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure mcEditKeyPress(Sender: TObject; var Key: Char);
procedure CfNoteEditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SaveSpeedButtonClick(Sender: TObject);
procedure ClearSpeedButtonClick(Sender: TObject);
procedure PrintTotalSpeedButtonClick(Sender: TObject);
procedure SelectPrintStringGridDblClick(Sender: TObject);
procedure DataInputStringGridDblClick(Sender: TObject);
private
{ Private declarations }
function InputCheckData():string;
public
{ Public declarations }
end;
var
InputForm: TInputForm;
implementation
uses dataform, main, DataManager;
{$R *.dfm}
procedure TInputForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TInputForm.XsComboBoxChange(Sender: TObject);
begin
SelectPrintStringGrid.RowCount := StrToInt(XsComboBox.Text);
end;
procedure TInputForm.ClientNameComboBoxEnter(Sender: TObject);
begin
if ClientNameComboBox.Items.count <1 then
begin //添加客户名称至列表
try
with MDataForm.FreeFind_ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from ClientName');
Open;
while not Eof do
begin
ClientNameComboBox.Items.Add(FieldByName('客户名称').AsString);
Next;
end;
Close;
end;
except
MainForm.PshowMessage('系统错误','提取客户名称列表时失败!',0);
MDataForm.FreeFind_ADOQuery.Close;
end;
end;
end;
procedure TInputForm.CpmcComboBoxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_F3 then
begin
try
with MDataForm.FreeFind_ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select 品种名称 from BreedName where 品种名称 like :pm');
Parameters.ParamByName('pm').Value := '%'+CpmcComboBox.Text+'%';
Open;
CpmcComboBox.Items.Clear;
while not Eof do
begin
CpmcComboBox.Items.Add(FieldByName('品种名称').AsString);
Next;
end;
Close;
end;
except
MainForm.PshowMessage('系统错误','提取品种名称资料失败!',0);
end;
end;
end;
procedure TInputForm.CpmcComboBoxExit(Sender: TObject);
begin
try //读取品种资料
with MDataForm.FreeFind_ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from BreedName where 品种名称 = :pm');
Parameters.ParamByName('pm').Value := CpmcComboBox.Text;
Open;
WidthEdit.Text := FieldByName('幅宽').AsString;
MzEdit.Text := FieldByName('码重').AsString;
KcEdit.Text := FieldByName('扣除').AsString;
CfnrEdit.Text := FieldByName('成份').AsString;
KhpmEdit.Text := CpmcComboBox.Text;
Close;
end;
except
MainForm.PshowMessage('系统错误','读取你所选择的品种名称资料时失败!',0);
MDataForm.FreeFind_ADOQuery.Close;
end;
end;
procedure TInputForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key=#13) and not(ActiveControl is TStringGrid) then
begin
if (ActiveControl is TEdit) then
begin
if ((ActiveControl as TEdit).Name <>'mcEdit') then
Perform(WM_NEXTDLGCTL,0,0);
end else
Perform(WM_NEXTDLGCTL,0,0);
end;
end;
procedure TInputForm.InputSpeedButtonClick(Sender: TObject);
var qdbh:string;
inno:integer;
SaveBreed :boolean;
begin
try
with MDataForm.FreeFind_ADOQuery do
begin
close;
SQL.Clear;
SQL.Add('select max(清单编号) as 编号 from MasterData where 录入日期=:Today');
Parameters.ParamByName('Today').Value := FormatDateTime('yyyy-mm-dd',date);
Open;
OrderNoEdit.Text := fieldbyname('编号').AsString;
Close;
end;
if OrderNoEdit.text ='' then
OrderNoEdit.text := FormatDateTime('yyyymmdd',date)+'001'
else
begin
qdbh := IntToStr(StrToInt(copy(OrderNoEdit.text,9,3))+1);
if Length(qdbh)=3 then OrderNoEdit.text :=copy(OrderNoEdit.text,1,8)+qdbh;
if Length(qdbh)=2 then OrderNoEdit.text :=copy(OrderNoEdit.text,1,8)+'0'+qdbh;
if Length(qdbh)=1 then OrderNoEdit.text :=copy(OrderNoEdit.text,1,8)+'00'+qdbh;
end;
except
MainForm.PshowMessage('系统错误','产生清单编号时失败!',0);
end;
for inno:=1 to DataInputStringGrid.RowCount-1 do
begin
DataInputStringGrid.Cells[0,inno] := IntToStr(inno);
DataInputStringGrid.Cells[1,inno] := '';
DataInputStringGrid.Cells[2,inno] := '';
DataInputStringGrid.Cells[3,inno] := '';
DataInputStringGrid.Cells[4,inno] := '';
end;
mcEdit.ReadOnly := false;
mcEdit.SetFocus;
//检查客户名称及品种名称是否已有,保存数据
try
with MDataForm.FreeFind_ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from ClientName where 客户名称=:cm');
Parameters.ParamByName('cm').Value :=ClientNameComboBox.Text;
Open;
if RecordCount<1 then
begin //新客户
if MainForm.PshowMessage('提示','该客户名称是新客户名称,是否保存?',1) then
DataManagerForm.SaveClientName(ClientNameComboBox.Text);
end;
Close;
end;
with MDataForm.FreeFind_ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from BreedName where 品种名称=:pm');
Parameters.ParamByName('pm').Value :=CpmcComboBox.Text;
Open; //新品种
if RecordCount<1 then
begin
if MainForm.PshowMessage('提示','该品种名称是新名称,是否保存?',1) then
begin
SaveBreed := true;
if (WidthEdit.Text='') or (MzEdit.Text='') or (KcEdit.Text='') or (CfnrEdit.Text='') then
begin
SaveBreed := false;
MainForm.PshowMessage('提示','请将幅宽、码重、扣除及成份内容输入完整!',0);
end;
if SaveBreed then
if not DataManagerForm.SaveBreedName(CpmcComboBox.Text,WidthEdit.Text,MzEdit.Text,
KcEdit.Text,CfnrEdit.Text) then
MainForm.PshowMessage('提示','你所输入的数据无法通过有效性检查,请检查!',0);
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -