📄 output.pas
字号:
unit OutPut;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ADODB;
type
TFrmCOutPut = class(TForm)
ComboBox1: TComboBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit4: TEdit;
Label6: TLabel;
Edit5: TEdit;
Label7: TLabel;
Edit6: TEdit;
Label8: TLabel;
Edit7: TEdit;
Label9: TLabel;
Label10: TLabel;
Edit8: TEdit;
Button1: TButton;
Button2: TButton;
Label11: TLabel;
Edit9: TEdit;
procedure Edit7KeyPress(Sender: TObject; var Key: Char);
procedure Edit7Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function IsNotNumric(const ScrString:string):boolean;
end;
var
FrmCOutPut: TFrmCOutPut;
implementation
{$R *.dfm}
uses Unit2, Unit9;
function TFrmCOutPut.IsNotNumric(const ScrString:string):boolean;
var
c:string;
i:integer;
BoolResult:Boolean;
cnt:integer;
begin
cnt:=0;
BoolResult := FALSE;
if copy(ScrString,1,1)='.' then
cnt:=1;
for i := 2 to length(Scrstring) do
begin
//c:=PChar(copy(ScrString,i,1))^;
c := Copy(ScrString,i,1);
if c='-' then
begin
BoolResult:=true;
break;
end;
if c = '.' then
begin
cnt:=cnt+1;
if cnt>1 then
begin
boolResult:=true;
break;
end;
end;
// else
// BoolResult:=false;
end;
Result := BoolResult;
end;
procedure TFrmCOutPut.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8,'.'] ) then
key:=#0;
end;
procedure TFrmCOutPut.Edit7Change(Sender: TObject);
var
Query1:TADOQuery;
lastout:string;
values:string;
begin
Query1 := TADOQuery.Create(NIL);
Query1.ConnectionString := Frmmain.ADOConnection1.ConnectionString;
if ComboBox1.Text <> '' then
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from LastWeekOut where class='''+clclass+
''' and cailiaoming='''+Edit1.Text+''' and bumenming='''+
ComboBox1.Text+'''');
Query1.Prepared;
Query1.Open;
if Not Query1.Eof then
lastout := Query1.FieldByName('lastchukushu').AsString;
if StrToFloatDef(Edit7.Text,0) > StrToFloatDef(lastout,0) then
begin
values := FloatToStr(StrToFloatDef(Edit7.Text,0)-StrToFloatDef(lastout,0));
values := FloatToStr(StrToFloatDef(Edit4.Text,0)+StrToFloatDef(Edit5.Text,0)-StrToFloatDef(Edit6.Text,0)-StrToFloatDef(values,0));
if StrToFloatDef(values,0) < 0 then
begin
Application.MessageBox('出库数量大于库存数量!','错误',MB_OK OR MB_ICONERROR);
Edit7.Text := '';
Exit;
end;
end
else {多出}
begin
{无须处理,相当于入库,不存在不足的问题}
end;
end;
Edit8.Text := FloatToStr(StrToFloatDef(Edit3.Text,0)*StrToFloatDef(Edit7.Text,0));
end;
procedure TFrmCOutPut.Button2Click(Sender: TObject);
begin
self.Close;
end;
procedure TFrmCOutPut.Button1Click(Sender: TObject);
var
Query1:TADOQuery;
nian:Integer;
zhou:Integer;
values:string;
LastOut:string;
kucunshu:string;
kucunjine:string;
rukushu:string;
rukujine:string;
chukushu:string;
chukujine:string;
jiecunshu:string;
jiecunjine:string;
bumenshu:string;
bumenjine:string;
sql:string;
riqi:string;
//ok:string;
begin
if (IsNotNumric(Edit7.Text) = True) then
begin
Application.MessageBox('请输入合法的数字!','提示',MB_OK OR MB_ICONINFORMATION);
Edit7.Text := '';
Exit;
end;
if (StrToFloatDef(Edit7.Text,0) = 0) then
Edit7.Text := '0';
if ComboBox1.Text = '' then
begin
Application.MessageBox('请选择部门名称.','提示',MB_OK OR MB_ICONINFORMATION);
Exit;
end;
Query1 := TADOQuery.Create(NIL);
Query1.ConnectionString := Frmmain.ADOConnection1.ConnectionString;
Query1 := TADOQuery.Create(NIL);
Query1.ConnectionString := Frmmain.ADOConnection1.ConnectionString;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select max(nian) as maxyear from WeekHaoCai where cailiaoming='''+Edit1.Text+
''' and class='''+clclass+'''');
Query1.Prepared; //最近的年
Query1.Open;
nian := Query1.FieldByName('maxyear').AsInteger;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select max(zhou) as maxweek from WeekHaoCai where nian='+IntToStr(nian)+' and cailiaoming='''+Edit1.Text+
''' and class='''+clclass+'''');
Query1.Prepared; //最近的周
Query1.Open;
zhou := Query1.FieldByName('maxweek').AsInteger;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from LastWeekOut where class='''+clclass+''' and cailiaoming='''+Edit1.Text+
''' and bumenming='''+ComboBox1.Text+'''');
Query1.Prepared;
Query1.Open;
if Not Query1.Eof then
LastOut := Query1.FieldByName('lastchukushu').AsString;
if StrToFloatDef(Edit7.Text,0) >= StrToFloatDef(LastOut,0) then
begin {少出,修改为一个更大的数字}
values := FloatToStr(StrToFloatDef(Edit7.Text,0)-StrToFloatDef(LastOut,0));
if StrToFloatDef(values,0) > 0 then
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from WeekHaoCai where nian='+IntToStr(nian)+
'and zhou='+IntToStr(zhou)+' and class='''+clclass+''' and cailiaoming='''+
Edit1.Text+'''');
Query1.Prepared;
Query1.Open;
if Not Query1.Eof then
begin
kucunshu := Query1.FieldByName('kucunshuliang').AsString;
kucunjine := Query1.FieldByName('kucunjine').AsString;
rukushu := Query1.FieldByName('rukushuliang').AsString;
rukujine := Query1.FieldByName('rukujine').AsString;
chukushu := Query1.FieldByName('chukushuliang').AsString;
chukushu := FloatToStr(StrToFloat(chukushu)+StrToFloat(values));
chukujine := FloatToStr(StrToFloat(chukushu)*StrToFloat(Edit3.Text));
jiecunshu := FloatToStr(StrToFloat(kucunshu)+StrToFloat(rukushu)-StrToFloat(chukushu));
jiecunjine := FloatToStr(StrToFloat(kucunjine)+StrToFloat(rukujine)-StrToFloat(chukujine));
if ComboBox1.Text = '生产部' then
begin
bumenshu := Query1.FieldByName('scbshuliang').AsString;
bumenshu := FloatToStr(StrToFloat(bumenshu)+StrToFloat(values));
bumenjine := FloatToStr(StrToFloat(bumenshu)*StrToFloat(Edit3.Text));
sql := 'Update WeekHaoCai set chukushuliang='''+chukushu+''',chukujine='''+chukujine+
''',scbshuliang='''+bumenshu+''',scbjine='''+bumenjine+''',jiecunshuliang='''+
jiecunshu+''',jiecunjine='''+jiecunjine+''' where nian='+IntToStr(nian)+' and zhou='+
IntToStr(zhou)+' and class='''+clclass+''' and cailiaoming='''+Edit1.Text+'''';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -