📄 uxsd.~pas
字号:
unit UXsd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BusinessSkinForm, bsSkinCtrls,
StdCtrls, bsSkinBoxCtrls, Mask, ComCtrls;
type
TfrmXsd = class(TForm)
bsBusinessSkinForm1: TbsBusinessSkinForm;
bsSkinPanel1: TbsSkinPanel;
scrH: TbsSkinScrollBar;
scrV: TbsSkinScrollBar;
bsSkinLabel5: TbsSkinLabel;
edtYS: TbsSkinEdit;
bsSkinLabel6: TbsSkinLabel;
bsSkinLabel7: TbsSkinLabel;
edtSX: TbsSkinEdit;
edtZS: TbsSkinEdit;
cbSpMC: TbsSkinComboBox;
bsSkinLabel8: TbsSkinLabel;
bsSkinLabel9: TbsSkinLabel;
lvSplist: TbsSkinListView;
edtSl: TbsSkinEdit;
edtAdd: TbsSkinButton;
edtDel: TbsSkinButton;
edtSK: TbsSkinButton;
edtExit: TbsSkinButton;
lbNow: TbsSkinLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure edtSKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure edtSlKeyPress(Sender: TObject; var Key: Char);
procedure edtSXKeyPress(Sender: TObject; var Key: Char);
procedure edtAddClick(Sender: TObject);
procedure edtExitClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure edtSlKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtDelClick(Sender: TObject);
procedure edtSXChange(Sender: TObject);
procedure edtYSChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmXsd: TfrmXsd;
fCount:integer;
fJine:double;
fSK:boolean;
fYS:double;
spMlr:Tstringlist;
implementation
uses upublic,comobj,umain;
{$R *.dfm}
procedure TfrmXsd.FormClose(Sender: TObject; var Action: TCloseAction);
begin
spMlr.free;
action:=cafree;
frmXsd:=nil;
end;
//收款
procedure TfrmXsd.edtSKClick(Sender: TObject);
var
i:integer;
begin
if lvSplist.Items.Count=0 then exit;
if strtofloat(edtZS.text)<0 then
begin
frmmain.bsmessage.MessageDlg('请输入收款金额!',mtInformation,mbOKCancel,0);
edtSX.SetFocus;
exit;
end;
if frmmain.bsmessage.MessageDlg('真的要进行收款操作?',mtInformation,mbOKCancel,0)=idok then
begin
rs:=CreateOleObject('ADODB.Recordset');
rs.open('select * from txiaoshou order by id',conn,1,3);
for i:=0 to lvSplist.Items.Count -1 do
begin
rs.addnew;
rs.fields.Item['sptm'].value:=lvSpList.Items[i].Caption;
rs.fields.Item['spmc'].value:=lvSpList.Items[i].SubItems[0];
rs.fields.Item['spclass'].value:=lvSpList.Items[i].SubItems[1];
rs.fields.Item['spdj'].value:=lvSpList.Items[i].SubItems[2];
rs.fields.Item['xssl'].value:=lvSpList.Items[i].SubItems[3];
rs.fields.Item['spje'].value:=lvSpList.Items[i].SubItems[4];
rs.fields.Item['gtdm'].value:=userInfoA.Gtdm;
rs.fields.Item['mlr'].value:=strtofloat(lvSpList.Items[i].SubItems[4])-strtofloat(spmlr.Strings[i])*strtofloat(lvSpList.Items[i].SubItems[3]);
rs.update;
application.ProcessMessages;
end;
fSK:=true;
rs.close;
rs:=unassigned;
lvSpList.Clear;
fYS:=0;
edtSX.text:='0';
edtsl.text:='0';
edtZS.text:='0';
edtys.text:='0';
cbSpMC.Text:='';
fSK:=false;
end;
end;
procedure TfrmXsd.FormCreate(Sender: TObject);
begin
spMlr:=tstringlist.Create;
lbNow.Caption:='当前时间: '+DateTimetostr(now)+' 柜台代码: '+inttostr(userinfoa.gtdm);
rs:=CreateOleObject('ADODB.Recordset');
rs.open('select * from tShangpin order by spid',conn,1,1);
if not rs.eof then
begin
rs.movefirst;
repeat
cbSpMC.Items.Add(rs.fields.Item['sptm'].value);
rs.movenext;
until rs.eof;
end;
rs.close;
rs:=unassigned;
//cbSpMC
end;
procedure TfrmXsd.edtSlKeyPress(Sender: TObject; var Key: Char);
begin
MxFormatEditKeyPress(sender as TbsSkinEdit ,key,2,0);
end;
procedure TfrmXsd.edtSXKeyPress(Sender: TObject; var Key: Char);
begin
MxFormatEditKeyPress(sender as TbsSkinEdit ,key,3,2);
end;
//增加
procedure TfrmXsd.edtAddClick(Sender: TObject);
begin
if (trim(cbSpMC.Text)='') or (trim(edtsl.Text)='') then exit;
rs:=CreateOleObject('ADODB.Recordset');
rs.open('select * from tShangpin where sptm='+yinhao+trim(cbSpMC.Text)+yinhao,conn,1,1);
if rs.eof then
begin
frmmain.bsmessage.MessageDlg('此商品不存在!',mtWarning,[mbok],0);
exit;
end
else
begin
with lvSplist.Items.Add do
begin
caption:=rs.fields.Item['sptm'].value;
subitems.Add(rs.fields.Item['spmc'].value);
subitems.Add(rs.fields.Item['class'].value);
subitems.Add(FloatToStr(rs.fields.Item['spdj'].value));
subitems.Add(trim(edtsl.text));
fJine:=rs.fields.Item['spdj'].value * strtoint(edtsl.text);
subitems.Add(FloatToStr(fJine));
spMlr.Add(rs.fields.Item['jhjg'].value);//进货价格
end;
end;
rs.close;
rs:=unassigned;
FYS:=fYS+fJine;
edtYS.Text:=FloatToStr(FYS);
end;
procedure TfrmXsd.edtExitClick(Sender: TObject);
begin
close;
end;
procedure TfrmXsd.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if lvSplist.Items.Count=0 then
begin
CanClose:=true;
exit;
end;
if (not fSK) then
begin
frmmain.bsmessage.MessageDlg('此销售单尚未入帐,请单击【收款按钮】进行入帐',mtInformation,[mbOK],0);
CanClose:=false;
end;
end;
procedure TfrmXsd.edtSlKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
edtadd.SetFocus;
end;
//删除
procedure TfrmXsd.edtDelClick(Sender: TObject);
begin
if lvSplist.Selected=nil then exit;
if frmmain.bsmessage.MessageDlg('真的要删除所选行?',mtInformation,mbOKCancel,0)=idok then
begin
FYS:=FYS-strtoFloat(lvSplist.Selected.SubItems[4]);
lvSplist.Selected.Delete;
edtYS.Text:=FloatToStr(FYS);
end;
end;
procedure TfrmXsd.edtSXChange(Sender: TObject);
begin
if length(edtSX.text)>0 then
edtZS.text:=floattostr(strtoFloat(edtSX.text)-FYS);
end;
procedure TfrmXsd.edtYSChange(Sender: TObject);
begin
edtZS.text:=floattostr(strtoFloat(edtSX.text)-FYS);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -