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

📄 pprice.pas

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

interface

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

type
  Tppricefm = 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;
    Label2: TLabel;
    ComboBox2: TComboBox;
    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);
    procedure scgxqyAfterInsert(DataSet: TDataSet);
  private
    oldscgxno, olddept: string;
    { Private declarations }
  public
    dept: string;
    { Public declarations }
  end;

var
  ppricefm: Tppricefm;

implementation

uses scgxprint, scbrow, gxmanage;

{$R *.dfm}

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

procedure Tppricefm.FormDestroy(Sender: TObject);
begin
  ppricefm := nil;
end;

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

  combobox2.Items.Clear;
  schdeptqy.SQL.Clear;
  schdeptqy.SQL.Add('select dept from scgx  group by dept');
  schdeptqy.open;
  while  not schdeptqy.Eof do
  begin
  combobox2.Items.Add(schdeptqy.fieldbyname('dept').AsString);
  schdeptqy.Next;
  end;
  schdeptqy.Close;

end;

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

procedure Tppricefm.N3Click(Sender: TObject);
begin

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

end;

procedure Tppricefm.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;

//////////////////
     with schdeptqy do
    begin
      sql.clear;
      sql.add('select *  from   scgx where dept=:dept and  scgxno=:gxno');
      parambyname('dept').asstring:=scgxqy.fieldbyname('dept').asstring;
      parambyname('gxno').asstring:=scgxqy.fieldbyname('gxno').asstring;
      open;
      if recordcount>0 then
      begin
        scgxqy.FieldByName('scgx').asstring:=schdeptqy.fieldbyname('scgx').asstring;
      //  scgxqy.FieldByName('scprice').asfloat:=schdeptqy.fieldbyname('scprice').asfloat;
      end;

    end;
end;

procedure Tppricefm.DBGrid1DblClick(Sender: TObject);
begin  
   if schscgxflg then
    if scgxqy.Active and (scgxqy.RecordCount > 0) then
    begin
      scbrowfm.inmxqy.FieldByName('SCgx').asstring := scgxqy.Fieldbyname('scgx').asstring;
      scbrowfm.inmxqy.FieldByName('gxNO').asstring := scgxqy.Fieldbyname('gxNO').asstring;
      scbrowfm.inmxqy.FieldByName('INPRICE').asFLOAT := scgxqy.Fieldbyname('scprice').asfloat;
      close;

    end;
end;

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

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

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

  scgxqy.Open;
end;

procedure Tppricefm.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 Tppricefm.scgxqyBeforeEdit(DataSet: TDataSet);
begin
  oldscgxno := scgxqy.fieldbyname('SCGX').asstring;
  olddept := scgxqy.fieldbyname('PNO').asstring;
end;

procedure Tppricefm.ComboBox1Change(Sender: TObject);
begin
scgxqy.SQL.Clear;
  scgxqy.SQL.Add('select * from scpo');
  if combobox1.Text <> '' then
  begin
    scgxqy.SQL.add('where pno=:pno');
    scgxqy.parambyname('pno').asstring := combobox1.Text;
  end;
  scgxqy.Open;
end;

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

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

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

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

end;

procedure Tppricefm.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 Tppricefm.BitBtn1Click(Sender: TObject);
begin
    schdeptqy.SQL.Clear;
    schdeptqy.SQL.Add('delete  from scpo');
    schdeptqy.SQL.add('where (pno=:pno and scgx=:gx)');
    schdeptqy.parambyname('pno').asstring :=scgxqy.fieldbyname('pno').asstring;
    schdeptqy.parambyname('gx').asstring :=scgxqy.fieldbyname('scgx').asstring;
    schdeptqy.execsql;
   ComboBox1Change(Sender);
end;

procedure Tppricefm.scgxqyAfterInsert(DataSet: TDataSet);
begin
scgxqy.fieldbyname('dept').asstring:=combobox2.Text;
scgxqy.fieldbyname('pno').asstring:=combobox1.Text;
end;

end.

⌨️ 快捷键说明

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