📄 scheme.pas
字号:
unit Scheme;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Inherit, Buttons, StdCtrls, Mask, DBCtrls, ImgList, ComCtrls,
ToolWin, Grids, DBGrids, ExtCtrls;
type
TSchemeFrm = class(TInheritFrm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
SpeedButton1: TSpeedButton;
Label6: TLabel;
Label9: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
SpeedButton2: TSpeedButton;
DateTime: TDateTimePicker;
Panel2: TPanel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Panel3: TPanel;
SchemeSG: TStringGrid;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
procedure SpeedButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure DateTimeCloseUp(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure Edit10Exit(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
SchemeFrm: TSchemeFrm;
time:string;
n:integer=0;
k:integer;
SQNo:integer;
Scheme_AllNum:integer;
Department:array [1..10,1..2] of string;
implementation
uses DataModule,DepartmentSelect,ProductSelect,Scheme_Modfy,S_SQ,Main,Login;
{$R *.dfm}
procedure TSchemeFrm.SpeedButton1Click(Sender: TObject);
begin
inherited;
DM.AQ_Department.Active:=true;
Application.CreateForm(TDepartmentSelectFrm,DepartmentSelectFrm); //动态创建部门选择窗体
DepartmentSelectFrm.Left:=SchemeFrm.Left+SpeedButton2.Left; //定义部门选择窗体的位置
DepartmentSelectFrm.Top:=SchemeFrm.Top+SpeedButton2.Top;
DepartmentSelectFrm.ShowModal; //显示部门选择窗体
if DepartmentSelectFrm.ModalResult = mrOk then
Edit4.Text:=inttostr(DepartmentSelectFrm.D_ID);
Edit5.Text:=DepartmentSelectFrm.D_Name;
end;
procedure TSchemeFrm.FormCreate(Sender: TObject);
begin
inherited;
DBEdit1.Text:=LoginFrm.User;
DBEdit2.Text:=LoginFrm.ID;
DM.AT_Scheme.Filtered:=false; //关闭生产计划信息表过滤器
DM.AQ_Department.Filtered:=false; //关闭生产部门信息表过滤器
DM.AQ_Product.Filtered:=false; //关闭产品信息表过滤器
with SchemeSG do //定义SchemeSG表的项目
begin
SchemeSG.ColCount:=7;
cells[0,0]:='序号';
cells[1,0]:='产品名称';
cells[2,0]:='产品编号';
cells[3,0]:='产品规格';
cells[4,0]:='计量单位';
cells[5,0]:='计划数量';
cells[6,0]:='备注';
end;
Edit1.Text:=''; //初始化Edit输入框
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
Edit10.Text:='';
end;
procedure TSchemeFrm.SpeedButton2Click(Sender: TObject);
begin
inherited;
DM.AQ_Product.Active:=true;
Application.CreateForm(TProductSelectFrm,ProductSelectFrm); //动态创建产品选择窗口
ProductSelectFrm.Left:=SchemeFrm.Left+SpeedButton2.Left; //定义产品选择窗口的弹出位置
ProductSelectFrm.Top:=SchemeFrm.Top+SpeedButton2.Top;
ProductSelectFrm.ShowModal; //显示产品选择窗体
if ProductSelectFrm.ModalResult = mrOk then
begin
Edit6.Text:=ProductSelectFrm.P_Name; //还回值
Edit7.Text:=inttostr(ProductSelectFrm.P_ID);
Edit8.Text:=ProductSelectFrm.P_Standard;
Edit9.Text:=ProductSelectFrm.P_Unit;
end;
end;
procedure TSchemeFrm.ToolButton1Click(Sender: TObject);
var
i,j:integer;
begin
inherited;
with SchemeSG do //根据SchemeSG表中的值保存数据
for i:=1 to SchemeSG.RowCount-1 do
begin
DM.AT_Scheme.Insert;
DM.AT_Scheme['Scheme_Time']:=time;
DM.AT_Scheme['Credence_ID']:=Edit2.Text;
DM.AT_Scheme['Credence_OID']:=Edit3.Text;
DM.AT_Scheme['Department_ID']:=Edit4.Text;
DM.AT_Scheme['Department_Name']:=Edit5.Text;
DM.AT_Scheme['Scheme_No']:=Cells[0,i];
DM.AT_Scheme['Product_Name']:=Cells[1,i];
DM.AT_Scheme['Product_ID']:=Cells[2,i];
DM.AT_Scheme['Product_Standard']:=Cells[3,i];
DM.AT_Scheme['Product_Unit']:=Cells[4,i];
DM.AT_Scheme['Scheme_Num']:=Cells[5,i];
DM.AT_Scheme['Scheme_Memo']:=Cells[6,i];
DM.AT_Scheme['Scheme_State']:='否';
DM.AT_Scheme['Scheme_ALLNum']:=Edit1.Text;
DM.AT_Scheme.Post;
end;
//选择是否打印预览
if Application.MessageBox('是否要打印预览?','提示对话框',MB_OKCANCEL)=mrok then
begin
with DM.AQ_Scheme do
begin
close;
SQL.Clear;
SQL.Add('Select * from Scheme where Credence_ID='+''''+Edit2.Text+'''');
open;
end;
if DM.AQ_Scheme.RecordCount=0 then
Application.MessageBox('没有数据要打印!','提示对话框',MB_OK);
DM.RP_Scheme.ProjectFile:='.\Scheme.rav'; //打印报表保存位置
DM.RP_Scheme.Open; //打开打印报表
DM.RP_Scheme.Execute; //执行打印报表
DM.RP_Scheme.Close; //关闭打印报表
end;
Application.MessageBox('数据保存完成!','提示对话框',MB_OK);
for i:=0 to 10 do
for j:=1 to 6 do
SchemeSG.Cells[i,j]:='';
Edit1.Text:='';
SchemeSG.RowCount:=1;
end;
procedure TSchemeFrm.DateTimeCloseUp(Sender: TObject);
begin
inherited;
time:=formatDatetime('yyyy-m-d',DateTime.Date); //时间日期转换
with DM.AQ_Scheme do
begin
close;
SQL.Clear;
SQL.Add('Select * From Scheme where Scheme_Time='+'#'+time+'#'+''+' and'+''+' Scheme_No='+'1');
Open;
end;
Edit2.Text:=formatDatetime('yyyymmdd',DateTime.Date)+'00'+inttostr(DM.AQ_Scheme.RecordCount+1); //定义凭证号
end;
procedure TSchemeFrm.ToolButton3Click(Sender: TObject);
begin
inherited;
DM.AT_Scheme.Last;
if Application.MessageBox('真的要删除该记录?','警告对话框',MB_OKCANCEL)=MB_OK then
DM.AT_Scheme.Delete;
end;
procedure TSchemeFrm.ToolButton2Click(Sender: TObject);
begin
inherited;
Application.CreateForm(TScheme_ModfyFrm,Scheme_ModfyFrm); //动态创建计划管理单据修改窗体
Scheme_ModfyFrm.Show; //计划管理单据修改窗体显示
end;
procedure TSchemeFrm.ToolButton4Click(Sender: TObject);
begin
inherited;
Application.CreateForm(TS_SQFrm,S_SQFrm); //动态创建计划管理查询窗体
S_SQFrm.Show; //计划管理查询窗体显示
end;
procedure TSchemeFrm.Edit10Exit(Sender: TObject);
var
i:integer;
flag:integer;
begin
inherited;
n:=0;
flag:=0;
Scheme_AllNum:=0;
if Edit10.Text<>'' then
begin
for i:=1 to SchemeSG.RowCount do
if Edit7.Text=SchemeSG.cells[2,i] then
begin
SchemeSG.Cells[5,i]:=inttostr(strtoint(SchemeSG.Cells[5,i])+strtoint(Edit10.Text));
flag:=0;
break;
end
else
begin
n:=n+1;
flag:=1;
end;
if flag=1 then
with SchemeSG do
begin
SchemeSG.RowCount:=n+1; //在SchemeSG表中显示计划项目
cells[0,n]:=inttostr(n);
cells[1,n]:=Edit6.Text;
cells[2,n]:=Edit7.Text;
cells[3,n]:=Edit8.Text;
cells[4,n]:=Edit9.Text;
Cells[5,n]:=Edit10.Text;
end;
for i:=1 to SchemeSG.RowCount-1 do
begin
Scheme_AllNum:=Scheme_AllNum+strtoint(SchemeSG.Cells[5,i]); //统计计划数量
end;
Edit1.Text:=inttostr(Scheme_AllNum); //显示计划数量
end;
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
Edit10.Text:='';
end;
procedure TSchemeFrm.ToolButton5Click(Sender: TObject);
begin
inherited;
DM.AT_Scheme.Active:=false; //关闭计划管理窗体
SchemeFrm.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -