📄 pjly.pas
字号:
unit pjly;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, Grids, Wwdbigrd, Wwdbgrid, ExtCtrls, DB, dxExEdtr,
dxTL, dxDBCtrl, dxDBGrid, dxCntner;
type
TFrmpjly = class(TForm)
pnl1: TPanel;
btn1: TSpeedButton;
btn2: TSpeedButton;
btn4: TSpeedButton;
ds1: TDataSource;
SpeedButton1: TSpeedButton;
dxDBGrid1: TdxDBGrid;
dxDBGrid1Column1: TdxDBGridColumn;
dxDBGrid1Column2: TdxDBGridColumn;
dxDBGrid1Column3: TdxDBGridColumn;
dxDBGrid1Column4: TdxDBGridColumn;
dxDBGrid1Column5: TdxDBGridColumn;
dxDBGrid1Column6: TdxDBGridColumn;
dxDBGrid1Column7: TdxDBGridColumn;
SpeedButton2: TSpeedButton;
procedure btn1Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure dxDBGrid1DblClick(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
// procedure btn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frmpjly: TFrmpjly;
implementation
uses UDM,input,mxcu,SERCHDJMX,Unitstructls;
{$R *.dfm}
function numberformat(slen:string):string;
var i:integer;
begin
i:=length(slen);
case i of
5: result:='00000';
6: result:='000000';
7: result:='0000000';
8: result:='00000000';
9: result:='000000000';
10: result:='0000000000';
else
result:='0000';
end;
end;
procedure TFrmpjly.btn1Click(Sender: TObject);
begin
if dm.tblpjly.Active=false then
dm.tblpjly.Active:=true;
Frminput:=TFrminput.Create(SELF);
dm.tblpjly.Append;
Frminput.ShowModal;
FREEANDNIL(Frminput);
end;
procedure TFrmpjly.btn4Click(Sender: TObject);
begin
close;
end;
procedure TFrmpjly.btn2Click(Sender: TObject);
var
lyname,lytype,lynumberfrom,lynumberto,lynumberplace:string;
lydate:TDateTime;
begin
if (dm.tblpjly.State=dsbrowse) then
if (not dm.tblpjly.Bof) and (not dm.tblpjly.Eof) then
if messagedlg('确定要删除本条记录吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
lyname:=dm.tblpjly.fieldbyname('lyperson').AsString;
lytype:=dm.tblpjly.fieldbyname('numbertyoe').AsString;
lynumberfrom:=dm.tblpjly.fieldbyname('numbers').AsString;
lynumberto:=dm.tblpjly.fieldbyname('numberto').AsString;
lydate:=dm.tblpjly.fieldbyname('lydate').AsDateTime;
lynumberplace:=dm.tblpjly.fieldbyname('lydjplace').AsString;
//删除领用表中的生成的号码数据
with dm.qrytemp do
begin
close;
sql.Clear;
sql.Add('delete from libnumber');
sql.Add('where numberid>=:knumberid and numberid<=:jnumberid');
sql.Add('and numbertype=:numbertype and lypername=:lypername');
SQL.Add('and djdate=:lydate');
SQL.Add('and libnumberplace=:place');
parameters.ParamByName('lypername').Value:=lyname;
parameters.ParamByName('numbertype').Value:=lytype;
parameters.ParamByName('knumberid').Value:=lynumberfrom;
parameters.ParamByName('jnumberid').Value:=lynumberto;
Parameters.ParamByName('lydate').Value:=lydate;
Parameters.ParamByName('place').Value:=lynumberplace;
try
execsql;
dm.tblpjly.Delete;
except
messagebox(handle,'删除数据失败!','系统提示',mb_iconinformation+mb_ok);
exit;
end;
end;
end
else
exit
else
showmessage('表已空或处于编辑状态!');
end;
procedure TFrmpjly.FormShow(Sender: TObject);
begin
dm.tblpjly.open;
end;
//通过输入起始号码生成连续的号码
procedure TFrmpjly.SpeedButton1Click(Sender: TObject);
begin
FRMSERCHDJMX:=TFRMSERCHDJMX.Create(Self);
FRMSERCHDJMX.ShowModal;
FreeAndNil(FRMSERCHDJMX);
end;
procedure TFrmpjly.dxDBGrid1DblClick(Sender: TObject);
begin
Frmmxcx:=TFrmmxcx.Create(self);
with Frmmxcx do
begin
edt4.Text:=dm.tblpjly.fieldbyname('list').AsString;
edt1.Text:=dm.tblpjly.fieldbyname('lyperson').AsString;
edt3.Text:=dm.tblpjly.fieldbyname('numberto').AsString;
edt2.Text:=dm.tblpjly.fieldbyname('numbers').AsString;
edt5.Text:=dm.tblpjly.fieldbyname('numbertyoe').AsString;
edt6.Text:=dm.tblpjly.fieldbyname('lydjplace').AsString;
edt7.Text:=dm.tblpjly.fieldbyname('lydate').AsString;
with qrymx do
begin
close;
sql.Clear;
sql.Add('select * from libnumber');
sql.Add('where lypername=:lypername and hxbz=''0''');
parameters.ParamByName('lypername').Value:=dm.tblpjly.fieldbyname('lyperson').AsString;
try
open;
except
messagebox(handle,'提取数据失败!','系统提示',mb_iconinformation+mb_ok);
exit;
end;
end;
qrymx.Close;
qrymx.Open;
end;
Frmmxcx.ShowModal;
freeandnil(Frmmxcx);
end;
//经典for语句循环
{procedure TFrmpjly.btn3Click(Sender: TObject);
var
i:Integer;
begin
if dm.tblpjly.State in [dsedit,dsinsert] then
begin
dm.tblpjly.post;
if dm.tbllibnumber.Active=false then
dm.tbllibnumber.Active:=true;
DM.tbllibnumber.Next;
for i:=strtoint(dm.tblpjly.FieldValues['numbers']) to strtoint(dm.tblpjly.FieldValues['numberto']) do
begin
dm.tbllibnumber.Append;
dm.tbllibnumber.fieldbyname('numberid').AsString:=formatfloat(numberformat(dm.tblpjly.fieldbyname('numbers').AsString),i);
dm.tbllibnumber.FieldByName('list').AsString:=dm.tblpjly.fieldbyname('list').AsString;
dm.tbllibnumber.FieldByName('lypername').AsString:=dm.tblpjly.fieldbyname('lyperson').AsString;
dm.tbllibnumber.FieldByName('numbertype').AsString:=dm.tblpjly.fieldbyname('numbertyoe').AsString;
dm.tbllibnumber.FieldByName('A').AsBoolean:=FALSE;
dm.tbllibnumber.FieldByName('B').AsBoolean:=FALSE;
DM.tbllibnumber.FieldByName('hxbz').AsString:='0';
DM.tbllibnumber.FieldByName('djdate').AsDateTime:=DM.tblpjly.FIELDBYNAME('lydate').AsDateTime;
dm.tbllibnumber.FieldByName('libnumberplace').AsString:=dm.tblpjly.fieldbyname('lydjplace').AsString;
dm.tbllibnumber.Post;
end;
showmessage('数据保存成功!') ;
end
else
showmessage('没有未保存的数据!');
end;}
procedure TFrmpjly.SpeedButton2Click(Sender: TObject);
begin
Formstructls:=TFormstructls.Create(Self);
Formstructls.ShowModal;
FreeAndNil(Formstructls);
end;
END.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -