📄 pnmanage.pas
字号:
unit pnmanage;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, Grids, DBGrids, DBCtrls, Menus, DB, DBTables,
ComCtrls, constb, DBGridEh, ExtCtrls;
type
Tpnmanagefm = class(TForm)
pnoqy: TQuery;
pnodb: TDataSource;
GroupBox1: TGroupBox;
Label4: TLabel;
Label9: TLabel;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
ComboBox1: TComboBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
GroupBox2: TGroupBox;
DBGridEh1: TDBGridEh;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N3: TMenuItem;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
pnomemqy: TQuery;
Label2: TLabel;
Label3: TLabel;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
DateTimePicker3: TDateTimePicker;
DateTimePicker4: TDateTimePicker;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure pnoqyAfterDelete(DataSet: TDataSet);
procedure pnoqyAfterInsert(DataSet: TDataSet);
procedure pnoqyAfterPost(DataSet: TDataSet);
procedure pnoqyBeforePost(DataSet: TDataSet);
procedure pnoqyPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure pnoqyBeforeEdit(DataSet: TDataSet);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure DBGridEh1KeyPress(Sender: TObject; var Key: Char);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure DBGridEh1EditButtonClick(Sender: TObject);
procedure DBGridEh1DblClick(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure DBGridEh1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
oldpno: string;
{ Private declarations }
public
{ Public declarations }
end;
var
pnmanagefm: Tpnmanagefm;
implementation
uses guestmanage, finishpnomem;
{$R *.dfm}
procedure Tpnmanagefm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
end;
procedure Tpnmanagefm.FormDestroy(Sender: TObject);
begin
pnmanagefm := nil;
end;
procedure Tpnmanagefm.FormCreate(Sender: TObject);
var
years, months, days: word;
begin
pnoqy.RequestLive := true;
//decodedate(date, years, months, days);
combobox1.items := insertcombobox('kftable', 'kfjz'); //客户简称
dbgrideh1.Columns[9].FieldName := 'finishdate';
dbgrideh1.Columns[10].FieldName := 'finishflg';
//popupmenu1.Parent:=dbgrideh1;
pnoqy.SQL.clear;
pnoqy.sql.Add('select * from scpno ');
if schpnoflg then
begin
pnoqy.SQL.Add('where finishflg=:flg ');
pnoqy.ParamByName('flg').AsBoolean := false;
radiobutton3.Checked := true;
end;
pnoqy.sql.Add('order by pno desc');
pnoqy.open;
end;
procedure Tpnmanagefm.Button1Click(Sender: TObject);
begin
{with pnomemqy do
begin
sql.clear;
sql.add(' delete from scpno where pno=pno');
if edit1.text <> '' then
begin
sql.add(' and pno like :pno');
ParamByName('pno').asstring := '%' + edit1.text + '%';
end;
if edit2.text <> '' then
begin
sql.add(' and kno like :kno');
ParamByName('kno').asstring := '%' + edit2.text + '%';
end;
if combobox1.text <> '' then
begin
sql.add(' and kfjz like :kfjz');
ParamByName('kfjz').asstring := '%' + combobox1.Text + '%';
end;
if not radiobutton1.Checked then
begin
sql.add(' and finishflg = :finishflg');
ParamByName('finishflg').asboolean := radiobutton2.Checked;
end;
execsql;
end;
with pnomemqy do
begin
sql.clear;
sql.add(' insert into scpno(pno, kno, kfjz, eddate, pnonum, zxnum, ldfs, spnum, outdate,');
sql.add('finishdate, finishflg)');
sql.add('select pno, kno, kfjz, eddate, pnonum, zxnum, ldfs, spnum, outdate,');
sql.add('finishdate, finishflg FROM dayscpno WHERE (pno) = (pno) ');
if edit1.text <> '' then
begin
sql.add(' and pno like :pno');
ParamByName('pno').asstring := '%' + edit1.text + '%';
end;
if edit2.text <> '' then
begin
sql.add(' and kno like :kno');
ParamByName('kno').asstring := '%' + edit2.text + '%';
end;
if combobox1.text <> '' then
begin
sql.add(' and kfjz like :kfjz');
ParamByName('kfjz').asstring := '%' + combobox1.Text + '%';
end;
if not radiobutton1.Checked then
begin
sql.add(' and finishflg = :finishflg');
ParamByName('finishflg').asboolean := radiobutton2.Checked;
end;
execsql;
end; }
pnoqy.sql.Clear;
pnoqy.sql.add('select * from scpno where pno=pno ');
if edit1.text <> '' then
begin
pnoqy.sql.add(' and pno like :pno');
pnoqy.ParamByName('pno').asstring := '%' + edit1.text + '%';
end;
if edit2.text <> '' then
begin
pnoqy.sql.add(' and kno like :kno');
pnoqy.ParamByName('kno').asstring := '%' + edit2.text + '%';
end;
pnoqy.sql.add(' and eddate>=:ed1 and eddate<=:ed2 ');
if radiobutton2.Checked then
begin
pnoqy.sql.add(' and finishdate>=:fd1 and finishdate<=:fd2');
pnoqy.ParamByName('fd1').asdate:=datetimepicker3.Date;
pnoqy.ParamByName('fd2').asdate:=datetimepicker4.Date;
end;
pnoqy.ParamByName('ed1').asdate:=datetimepicker1.Date;
pnoqy.ParamByName('ed2').asdate:=datetimepicker2.Date;
if combobox1.text <> '' then
begin
pnoqy.sql.add(' and kfjz like :kfjz');
pnoqy.ParamByName('kfjz').asstring := '%' + combobox1.Text + '%';
end;
if not radiobutton1.Checked then
begin
pnoqy.sql.add(' and finishflg = :finishflg');
pnoqy.ParamByName('finishflg').asboolean := radiobutton2.Checked;
end;
pnoqy.SQL.Add(' order by pno desc');
//pnoqy.SQL.SaveToFile('c:\pno.txt');
pnoqy.Open;
end;
procedure Tpnmanagefm.pnoqyAfterDelete(DataSet: TDataSet);
begin
n3.Enabled := bool(dataset.recordcount);
button5.Enabled := bool(dataset.recordcount);
end;
procedure Tpnmanagefm.pnoqyAfterInsert(DataSet: TDataSet);
begin
dataset.FieldByName('finishflg').asboolean := false
end;
procedure Tpnmanagefm.pnoqyAfterPost(DataSet: TDataSet);
begin
dataset.Close;
dataset.Open;
end;
procedure Tpnmanagefm.pnoqyBeforePost(DataSet: TDataSet);
begin
if dataset.FieldByName('pno').asstring <> '' then
begin
case dataset.State of
dsinsert:
begin
if searchfield1('scpno', 'pno', dataset.FieldByName('pno').asstring)
then
begin
messagedlg('输入的批号重复,请重新输入!', mtinformation, [mbok], 0);
abort;
end
end;
dsedit:
begin
if oldpno <> dataset.FieldByName('pno').asstring then
if searchfield1('scpno', 'pno', dataset.FieldByName('pno').asstring)
then
begin
messagedlg('输入的批号简称重复,请重新输入!', mtinformation,
[mbok], 0);
abort;
end;
end;
end;
end
else
dataset.Cancel;
end;
procedure Tpnmanagefm.pnoqyPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
if (E is EDBEngineError) then
begin
if ((E as EDBEngineError).Errors
[0].Errorcode = 9729) or ((E as EDBEngineError).Errors
[0].Errorcode = 13059) then
begin
action := daabort;
end;
end;
end;
procedure Tpnmanagefm.pnoqyBeforeEdit(DataSet: TDataSet);
begin
oldpno := dataset.fieldbyname('pno').AsString;
end;
procedure Tpnmanagefm.N1Click(Sender: TObject);
begin
pnoqy.append;
end;
procedure Tpnmanagefm.N3Click(Sender: TObject);
begin
pnoqy.Delete;
end;
procedure Tpnmanagefm.DBGridEh1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
with Dbgrideh1 do
if Selectedindex < (FieldCount - 1) then
Selectedindex := Selectedindex + 1
else
begin
pnoqy.Next;
if not (pnoqy.state in [dsinsert, dsedit]) then
if pnoqy.Eof then
pnoqy.Append;
Selectedindex := 0;
end;
end;
end;
procedure Tpnmanagefm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
if not (ActiveControl is TDbgrideh) then
begin
key := #0;
perform(WM_NEXTDLGCTL, 0, 0);
end;
end;
procedure Tpnmanagefm.DBGridEh1EditButtonClick(Sender: TObject);
begin
case dbgrideh1.Selectedindex of
2:
begin
kfjz := '';
schflg := true;
if not assigned(guestmanagefm) then
guestmanagefm := tguestmanagefm.create(application);
guestmanagefm.formstyle := fsnormal;
guestmanagefm.Visible := false;
guestmanagefm.WindowState := wsnormal;
guestmanagefm.Showmodal;
pnoqy.Edit;
if kfjz <> '' then
pnoqy.FieldByName('kfjz').asstring := kfjz;
end;
end;
end;
procedure Tpnmanagefm.DBGridEh1DblClick(Sender: TObject);
begin
if schpnoflg then
begin
if not (pnoqy.state in [dsinsert, dsedit]) then
begin
if pnoqy.Active and (pnoqy.RecordCount > 0) then
begin
if not pnoqy.fieldbyname('finishflg').AsBoolean then
begin
pno := pnoqy.fieldbyname('pno').asstring;
close;
end
else
if messagedlg('此批号已完工!', mtinformation, mbokcancel,
0) = mrok then
begin
pno := pnoqy.fieldbyname('pno').asstring;
close;
end;
end;
end
end
end;
procedure Tpnmanagefm.Button4Click(Sender: TObject);
begin
close;
end;
procedure Tpnmanagefm.Button3Click(Sender: TObject);
begin
pnoqy.ApplyUpdates;
pnoqy.CommitUpdates;
Button1Click(Sender);
end;
procedure Tpnmanagefm.Button6Click(Sender: TObject);
begin
pnoqy.CancelUpdates;
end;
procedure Tpnmanagefm.DBGridEh1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 40 then
if pnoqy.Eof then
pnoqy.Cancel;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -