⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scheme.pas

📁 完整的delphi书籍源代码,大家有空的时候自己慢慢看看
💻 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 + -