📄 plan.pas
字号:
unit plan;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, DB, ADODB, ComCtrls, DBClient,product_unit,
plan_unit, Buttons, ExtCtrls;
type
Tplanfrm = class(TForm)
GroupBox2: TGroupBox;
DBGrid1: TDBGrid;
plan_ds1: TDataSource;
plan_cds1: TClientDataSet;
Panel1: TPanel;
Find_Plan: TButton;
New_Plan: TButton;
Plan_Mod: TButton;
Del_Plan: TButton;
BitBtn1: TBitBtn;
cancel_btn: TBitBtn;
GroupBox1: TGroupBox;
plan_nolb: TLabel;
pro_codelb: TLabel;
plan_datelb: TLabel;
unitlb: TLabel;
plan_numlb: TLabel;
Label1: TLabel;
Label2: TLabel;
Image1: TImage;
Image2: TImage;
united: TEdit;
plan_numed: TEdit;
pro_codeed: TComboBox;
UpDown1: TUpDown;
Label3: TLabel;
procedure cancel_btnClick(Sender: TObject);
procedure Find_PlanClick(Sender: TObject);
procedure New_PlanClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure Plan_ModClick(Sender: TObject);
procedure Del_PlanClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure pro_codeedClick(Sender: TObject);
private
plan:Tplan;
product:Tproduct;
datestr:string;
{ Private declarations }
public
{ Public declarations }
end;
var
planfrm: Tplanfrm;
implementation
uses datamodule;
{$R *.dfm}
procedure Tplanfrm.cancel_btnClick(Sender: TObject);
begin
planfrm.Close;
end;
procedure Tplanfrm.Find_PlanClick(Sender: TObject);
var
sql:string;
begin
plan:=Tplan.create ;
if plan.AllPlans()=false then
begin
showmessage('采购计划信息表中没有计划信息!');
exit;
end;
sql:='SELECT PLAN_INFO.PLAN_NO AS 计划号, '
+' PLAN_INFO.PLAN_DATE AS 计划生成日期, '
+' PRO_INFO.PRO_NAME AS 物品名称,'
+' PLAN_INFO.PLAN_NUM AS 采购物品数量, PLAN_INFO.UNIT AS 物品单位, '
+' PRO_INFO.PRO_TYPE AS 物品类型, PRO_INFO.PRO_SIZE AS 物品规格, '
+' PRO_INFO.SUPPLIER_CODE AS 供应商编码 '
+' FROM PLAN_INFO INNER JOIN '
+' PRO_INFO ON PLAN_INFO.PRO_CODE = PRO_INFO.PRO_CODE';
plan_cds1.Data:=plan.Plans(sql);
plan.Free;
end;
procedure Tplanfrm.New_PlanClick(Sender: TObject);
var
sql:string;
begin
plan:=Tplan.create ;
product:=Tproduct.create ;
if (label1.Caption ='') or (pro_codeed.Text='') or (plan_numed.Text='')
or (united.Text='') then
begin
showmessage('请将采购计划项目填写完整!');
exit;
end;
try
strtoint(plan_numed.Text);
except
showmessage('采购物品数量值不合法!');
exit;
end;
if plan.PlanRec(label1.Caption ) then
begin
showmessage('该计划单号已经存在!');
exit;
end;
sql:='insert into plan_info(plan_no,plan_date,pro_code,plan_num,'
+'unit)values('''+label1.Caption +''','''+label2.Caption +''','''+pro_codeed.Text+''','
+''''+plan_numed.Text+''','''+united.Text+''')';
plan.PlanInsert(sql);
sql:='SELECT PLAN_INFO.PLAN_NO AS 计划单号, '
+' PLAN_INFO.PLAN_DATE AS 计划生成日期, '
+' PRO_INFO.PRO_NAME AS 物品名称,'
+' PLAN_INFO.PLAN_NUM AS 采购物品数量, PLAN_INFO.UNIT AS 物品单位, '
+' PRO_INFO.PRO_TYPE AS 物品类型, PRO_INFO.PRO_SIZE AS 物品规格, '
+' PRO_INFO.SUPPLIER_CODE AS 供应商编码 '
+' FROM PLAN_INFO INNER JOIN '
+' PRO_INFO ON PLAN_INFO.PRO_CODE = PRO_INFO.PRO_CODE where '
+'PLAN_INFO.PLAN_NO='''+label1.Caption +'''';
plan_cds1.Data :=plan.Plans(sql);
pro_codeed.Text :='';
united.Text :='';
showmessage('计划信息已经成功保存完毕!');
plan.Free;
product.Free;
end;
procedure Tplanfrm.DBGrid1CellClick(Column: TColumn);
begin
plan:=Tplan.create ;
label1.Caption :=DBGrid1.Fields[0].AsString ;
pro_codeed.Text :=plan.GetProCode(DBGrid1.Fields[0].AsString);
plan_numed.Text :=plan.GetPlanNum(DBGrid1.Fields[0].AsString);
label2.Caption :=plan.GetPlanDate(DBGrid1.Fields[0].AsString);
united.Text :=plan.GetUnit(DBGrid1.Fields[0].AsString) ;
end;
procedure Tplanfrm.Plan_ModClick(Sender: TObject);
var
sql:string;
begin
plan:=Tplan.create ;
product:=Tproduct.create ;
if application.MessageBox('要修改吗?','提示',mb_yesno+mb_iconquestion)=idyes then
begin
if (label1.Caption ='') or (pro_codeed.Text='') or (plan_numed.Text='')
or (united.Text='') then
begin
showmessage('不能将采购计划项目修改为空!');
exit;
end;
try
strtoint(plan_numed.Text);
except
showmessage('采购物品数量值不合法!');
exit;
end;
if plan.PlanRec(label1.Caption)=false then
begin
showmessage('该计划单号不存在,修改失败!');
exit;
end;
sql:= ' update plan_info set plan_date='''+label2.Caption +''','
+'pro_code='''+pro_codeed.Text+''',plan_num='''+plan_numed.Text+''','
+'unit='''+united.Text+''' where plan_no='''+label1.Caption +'''';
plan.PlanUpdate(sql);
sql:='SELECT PLAN_INFO.PLAN_NO AS 计划单号, '
+' PLAN_INFO.PLAN_DATE AS 计划生成日期, '
+' PRO_INFO.PRO_NAME AS 物品名称,'
+' PLAN_INFO.PLAN_NUM AS 采购物品数量, PLAN_INFO.UNIT AS 物品单位, '
+' PRO_INFO.PRO_TYPE AS 物品类型, PRO_INFO.PRO_SIZE AS 物品规格, '
+' PRO_INFO.SUPPLIER_CODE AS 供应商编码 '
+' FROM PLAN_INFO INNER JOIN '
+' PRO_INFO ON PLAN_INFO.PRO_CODE = PRO_INFO.PRO_CODE where '
+'PLAN_INFO.PLAN_NO='''+label1.Caption+'''';
plan_cds1.Data :=plan.Plans(sql);
pro_codeed.Text :='';
united.Text :='';
showmessage('修改成功!');
end;
plan.Free;
product.Free;
end;
procedure Tplanfrm.Del_PlanClick(Sender: TObject);
var
sql:string;
begin
plan:=Tplan.create ;
if application.MessageBox('删除后信息不可恢复,要删除吗?','警告',mb_yesno+mb_iconquestion)=idyes then
begin
if label1.Caption='' then
begin
showmessage('请输入你要删除的计划单号!');
exit;
end;
if plan.PlanRec(label1.Caption)=false then
begin
showmessage('该计划单号不存在,删除失败!');
exit;
end;
sql:='delete from plan_info where plan_no='''+label1.Caption+'''';
plan.PlanDelete(sql);
sql:='SELECT PLAN_INFO.PLAN_NO AS 计划单号, '
+' PLAN_INFO.PLAN_DATE AS 计划生成日期, '
+' PRO_INFO.PRO_NAME AS 物品名称,'
+' PLAN_INFO.PLAN_NUM AS 采购物品数量, PLAN_INFO.UNIT AS 物品单位, '
+' PRO_INFO.PRO_TYPE AS 物品类型, PRO_INFO.PRO_SIZE AS 物品规格, '
+' PRO_INFO.SUPPLIER_CODE AS 供应商编码 '
+' FROM PLAN_INFO INNER JOIN '
+' PRO_INFO ON PLAN_INFO.PRO_CODE = PRO_INFO.PRO_CODE ';
plan_cds1.Data :=plan.Plans(sql);
pro_codeed.Text :='';
united.Text :='';
showmessage('恭喜你,该条计划信息已经删除成功!');
end;
plan.Free;
end;
procedure Tplanfrm.FormActivate(Sender: TObject);
begin
product:=Tproduct.create;
pro_codeed.Items:=product.GetProIdList();
end;
procedure Tplanfrm.BitBtn1Click(Sender: TObject);
var
s,m: String;
i: integer ;
begin
Label2.Caption := FormatDateTime('yyyy-mm-dd',Now());
s:= FormatDateTime('yyyymmdd',Now());
With DataMOD.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select max(plan_no) as ss From plan_info ');
Open;
end;
If Datamod.ADOQuery1.FieldByName('ss').Value = null then
s := s+'001'
else
begin
m:= Trim(Datamod.ADOQuery1.FieldByName('ss').Value) ;
i:= StrToInt(Trim(Copy(m,9,3))) ;
if i<9 then
s:= s + '00'+InttoStr(i +1)
else if i<99 then
s:= s + '0'+InttoStr(i +1)
else
s:=s+inttostr(i+1);
end;
label1.Caption :=s;
pro_codeed.Text :='';
united.Text :='';
plan_numed.Text :='';
end;
procedure Tplanfrm.pro_codeedClick(Sender: TObject);
begin
united.Text :=product.GetUnit(pro_codeed.Text );
united.Enabled :=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -