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

📄 gxmanage.pas

📁 实用的毛织生产管理系统
💻 PAS
字号:
unit gxmanage;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, DBTables, Menus, constb,
  Buttons;

type
  Tgxmanagefm = class(TForm)
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    scgxdb: TDataSource;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N3: TMenuItem;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    schdeptqy: TQuery;
    ComboBox1: TComboBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    scgxqy: TQuery;
    Button4: TButton;
    BitBtn1: TBitBtn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure scgxqyAfterDelete(DataSet: TDataSet);
    procedure scgxqyAfterPost(DataSet: TDataSet);
    procedure FormShow(Sender: TObject);
    procedure scgxqyBeforePost(DataSet: TDataSet);
    procedure scgxqyBeforeEdit(DataSet: TDataSet);
    procedure ComboBox1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure scgxqyPostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    procedure Button4Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    oldscgxno, olddept: string;
    { Private declarations }
  public
    dept: string;
    { Public declarations }
  end;

var
  gxmanagefm: Tgxmanagefm;

implementation

uses scgxprint, scbrow;

{$R *.dfm}

procedure Tgxmanagefm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  scgxqy.Close;
  action := cafree;
if  assigned(scbrowfm) then  
scbrowfm.WindowState := wsMaximized;
end;

procedure Tgxmanagefm.FormDestroy(Sender: TObject);
begin
  gxmanagefm := nil;
end;

procedure Tgxmanagefm.FormCreate(Sender: TObject);
begin
  scgxqy.RequestLive := true;
  combobox1.Items.Clear;
  schdeptqy.SQL.Clear;
  schdeptqy.SQL.Add('select dept from scgx  group by dept');
  schdeptqy.open;
  while  not schdeptqy.Eof do
  begin
  combobox1.Items.Add(schdeptqy.fieldbyname('dept').AsString);
  schdeptqy.Next;
  end;
  schdeptqy.Close;
  //dbgrid1.Columns[0].PickList := insertcombobox('scdepts', 'dept'); //部门
 

end;

procedure Tgxmanagefm.N1Click(Sender: TObject);
begin
  scgxqy.Append;
end;

procedure Tgxmanagefm.N3Click(Sender: TObject);
begin

  scgxqy.Delete;
  scgxqy.ApplyUpdates;
scgxqy.CommitUpdates;
ComboBox1Change(Sender);

end;

procedure Tgxmanagefm.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if key in ['a'..'z'] then
    key := upcase(key);
  if key = #13 then
  begin

    with Dbgrid1 do
      if Selectedindex < (FieldCount - 1) then
        Selectedindex := Selectedindex + 1
      else
      begin
        scgxqy.Next;
        if scgxqy.Eof then
          scgxqy.Append;
        Selectedindex := 0;
      end;
  end;
end;

procedure Tgxmanagefm.DBGrid1DblClick(Sender: TObject);
begin


  if schscgxflg then
    if scgxqy.Active and (scgxqy.RecordCount > 0) then
    begin
      scgx := scgxqy.Fieldbyname('scgx').asstring;
      scprice := scgxqy.Fieldbyname('scprice').asfloat;
      close;
    end;
end;

procedure Tgxmanagefm.scgxqyAfterDelete(DataSet: TDataSet);
begin
  n3.Enabled := bool(scgxqy.RecordCount);
end;

procedure Tgxmanagefm.scgxqyAfterPost(DataSet: TDataSet);
begin
 { scgxqy.Close;
  scgxqy.Open;}
end;

procedure Tgxmanagefm.FormShow(Sender: TObject);
begin
 scgxqy.SQL.Clear;
  scgxqy.SQL.Add('select * from scgx');
  if combobox1.Text<>'' then
    scgxqy.SQL.add('where dept=:dept');
  if combobox1.Text<>'' then     
    scgxqy.parambyname('dept').asstring := combobox1.text;

   scgxqy.SQL.Add(' order by dept,scgxno');
  scgxqy.Open;
end;

procedure Tgxmanagefm.scgxqyBeforePost(DataSet: TDataSet);
  function searchfield2(dept,scgxno:string): integer; //检查字段1
  var
    schqy: tquery;
    sqlstr: string;
  begin
  result:=0;
    sqlstr := 'select scgx from  scgx where dept=:dept and scgxno=:scgxno ';
    schqy := tquery.Create(nil);
    schqy.DatabaseName := 're_data';
    schqy.SQL.clear;
    schqy.SQL.Add(sqlstr);
    schqy.ParamByName('dept').asstring := dept;
    schqy.ParamByName('scgxno').asstring := scgxno;
    schqy.Open;
    result := schqy.RecordCount;
    schqy.Free;
  end;
begin
  case dataset.State of
    dsinsert:
      begin
        if searchfield2(dataset.FieldByName('dept').asstring,dataset.FieldByName('scgxno').asstring)>0 then
        begin
          messagedlg('输入的工序代码重复,请重新输入!', mtinformation, [mbok],
            0);
          abort;
        end
      end;
    dsedit:
      begin
       { if (oldscgxno <> dataset.FieldByName('scgxno').asstring) or
          (olddept <> dataset.FieldByName('dept').asstring) then
          if   bool(searchfield2(olddept,oldscgxno)) then
          begin
            messagedlg('输入的工序代码重复,请重新输入!', mtinformation, [mbok],
              0);
            abort;
          end;   }

      end;
  end;
end;

procedure Tgxmanagefm.scgxqyBeforeEdit(DataSet: TDataSet);
begin
  oldscgxno := scgxqy.fieldbyname('scgxno').asstring;
  olddept := scgxqy.fieldbyname('dept').asstring;
end;

procedure Tgxmanagefm.ComboBox1Change(Sender: TObject);
begin
scgxqy.SQL.Clear;
  scgxqy.SQL.Add('select * from scgx');
  if combobox1.Text <> '' then
  begin
    scgxqy.SQL.add('where dept=:dept');
    scgxqy.parambyname('dept').asstring := combobox1.Text;
  end;
  scgxqy.SQL.Add(' order by dept,scgxno');
  scgxqy.Open;
end;

procedure Tgxmanagefm.Button1Click(Sender: TObject);
begin
scgxqy.Append;
end;

procedure Tgxmanagefm.Button2Click(Sender: TObject);
begin
scgxqy.ApplyUpdates;
scgxqy.CommitUpdates;
ComboBox1Change(Sender);
end;

procedure Tgxmanagefm.Button3Click(Sender: TObject);
begin
scgxqy.CancelUpdates;
end;

procedure Tgxmanagefm.scgxqyPostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
messagedlg('工序代码有重复,请检查!',mtinformation,[mbok],0);

end;

procedure Tgxmanagefm.Button4Click(Sender: TObject);
begin
if not assigned(scgxprtfm) then
 scgxprtfm:=tscgxprtfm.create(self);
with  scgxprtfm do
begin
quickrep1.DataSet:=scgxqy;
qrdbtext1.DataSet:=scgxqy;
qrdbtext2.DataSet:=scgxqy;
qrdbtext3.DataSet:=scgxqy;
qrdbtext4.DataSet:=scgxqy;
quickrep1.Preview;

end;
end;

procedure Tgxmanagefm.BitBtn1Click(Sender: TObject);
begin
    schdeptqy.SQL.Clear;
    schdeptqy.SQL.Add('delete  from scgx');
    schdeptqy.SQL.add('where (scgxno=null and dept=:dept) or (scgxno=:no and dept=:dept)');
    schdeptqy.parambyname('dept').asstring :=scgxqy.fieldbyname('dept').asstring;
    schdeptqy.parambyname('no').asstring :=scgxqy.fieldbyname('scgxNO').asstring;    
    schdeptqy.execsql;
ComboBox1Change(Sender);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -