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

📄 input.pas

📁 Delphi编程┃Delphi数据库编程
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -