【delphi开源代码栏目提醒】:网学会员鉴于大家对delphi开源代码十分关注,论文会员在此为大家搜集整理了“DaySellUnit.pas”一文,供大家参考学习
unit DaySellUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MainInputTYUnit, DB, DBTables, Grids, ComCtrls, StdCtrls,
ExtCtrls;
type
TDaySellForm = class(TMainInputTYfrm)
CB_Depot: TComboBox;
CB_YWY: TComboBox;
function User_save: boolean;
procedure FormShow(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure OKBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DaySellForm: TDaySellForm;
implementation
uses MainUnit, FunctionUnit;
{$R *.dfm}
function TDaySellForm.User_save: boolean;
var
I_errordb, I_temp, I_count, I_number: integer;
S_depotid, S_peopleid, S_id: string;
begin
I_errordb := 0;
I_count := 0;
S_depotid := '';
S_peopleid := '';
S_id := '';
//验证权限
if not Checkrights(USERRIGHTS, '增加') then
begin
messagedlg(Errormsg0006 + '0007', mterror, [mbok], 0);
result := false;
exit;
end;
//商场信息不能为空
if CB_depot.Text = '' then
begin
messagedlg(Errormsg0002 + '0002', mtwarning, [mbok], 0);
cb_depot.SetFocus;
result := false;
exit;
end;
//业务员信息不能为空
if CB_ywy.Text = '' then
begin
messagedlg(Errormsg0002 + '0002', mtwarning, [mbok], 0);
cb_ywy.SetFocus;
result := false;
exit;
end
else
result := true;
if result then
begin
for I_temp := 1 to 99 do //逐行检测进货记录是否有效
begin
if IMPSG_DATA.Cells[1, I_temp] <> '' then //有效记录
begin
inc(I_count);
if (IMPSG_DATA.cells[4, I_temp] = '') or (IMPSG_DATA.cells[5, I_temp] = '')
or (IMPSG_DATA.cells[6, I_temp] = '') then
begin
messagedlg('第' + inttostr(I_temp) +
'行记录的' + Errormsg0002 + '0015', mtError, [mbok], 0);
IMPSG_DATA.Row := I_temp;
IMPSG_DATA.Col := 4;
IMPSG_DATA.SetFocus;
result := false;
exit;
end;
try
strtofloat(IMPSG_DATA.Cells[4, I_temp]);
strtofloat(IMPSG_DATA.Cells[5, I_temp]);
strtofloat(IMPSG_DATA.Cells[6, I_temp]);
except
messagedlg('第' + inttostr(I_temp) +
'行记录的' + Errormsg0002 + '0015', mtError, [mbok], 0);
IMPSG_DATA.Row := I_temp;
IMPSG_DATA.Col := 4;
IMPSG_DATA.SetFocus;
result := false;
exit;
end;
end;
end;
if I_count < 1 then
begin
result := false;
messagedlg(Errormsg0008, mtwarning, [mbok], 0);
end;
end;
if result then
begin
with query_data do
begin
try
close;
sql.Clear;
sql.Text := 'select id from depot where name="' + cb_depot.Text + '"';
open;
S_depotid := fieldbyname('id').AsString;
close;
sql.Clear;
sql.Text := 'select id from YWYData where name="' + cb_ywy.Text + '"';
open;
S_peopleid := fieldbyname('id').AsString;
close;
//检查是否有库存,即销售数量是否合法
for I_temp := 1 to 99 do
begin
if IMPSG_DATA.Cells[1, I_temp] <> '' then //有效记录
begin
I_errordb := 2;
close;
sql.Clear;
sql.text := 'select id,number from Storagerecord where depotid="' +
S_depotid + '" and goodsid="' + IMPSG_DATA.Cells[1, I_temp] + '"';
open;
S_id := fieldbyname('id').asstring;
I_number := fieldbyname('number').AsInteger - strtoint(IMPSG_DATA.cells[4, I_temp]);
if (recordcount <= 0) or (s_id = '') then //本行商品没有库存记录
begin
messagedlg('在【' + cb_depot.Text + '】' + Errormsg0009, mtwarning, [mbok], 0);
impsg_data.Row := I_temp;
impsg_data.Col := 1;
result := false;
close;
exit;
end
else if I_number < 0 then //库存数量小于销售数量
begin
messagedlg('在【' + cb_depot.Text + '】' + Errormsg0010, mtwarning, [mbok], 0);
impsg_data.Row := I_temp;
impsg_data.Col := 4;
result := false;
close;
exit;
end;
end;
end;
for I_temp := 1 to 99 do
begin
if IMPSG_DATA.Cells[1, I_temp] <> '' then //有效记录
begin
I_errordb := 1; //销售记录更新
close;
sql.clear;
sql.text := 'insert into SELLRECORD (id,depotid,peopleid,mydate,goodsid,number,'
+ 'price,sellprice,memo) values ("' + Nowindex + '-' + inttostr(I_temp) + '","'
+ S_depotid + '","' + S_peopleid + '","' + formatdatetime('yyyy-mm-dd', DTP_date.DateTime) + '","'
+ IMPSG_DATA.Cells[1, I_temp] + '",' + IMPSG_DATA.Cells[4, I_temp] + ',' + IMPSG_DATA.Cells[5, I_temp] + ','
+ IMPSG_DATA.Cells[6, I_temp] + ',"' + IMPSG_DATA.Cells[9, I_temp] + '")';
execsql;
I_errordb := 2;//库存记录表查询
close;
sql.Clear;
sql.text := 'select id,number from Storagerecord where depotid="' +
S_depotid + '" and goodsid="' + IMPSG_DATA.Cells[1, I_temp] + '"';
open;
S_id := fieldbyname('id').asstring;
I_number := fieldbyname('number').AsInteger - strtoint(IMPSG_DATA.cells[4, I_temp]);
I_errordb := 3;//库存记录表更新
close;
sql.Clear;
sql.text := 'update Storagerecord set number=' + inttostr(i_number) + ' where id=''' + s_id + '''';
execsql;
close;
end;
end;
except
result := false;
if I_errordb = 1 then
messagedlg(Errormsg0004 + '0018', mtwarning, [mbok], 0)
else if I_errordb = 2 then
messagedlg(Errormsg0001 + '0019', mtwarning, [mbok], 0)
else if I_errordb = 3 then
messagedlg(Errormsg0004 + '0016', mtwarning, [mbok], 0)
else
messagedlg(Errormsg0001 + '0000', mtwarning, [mbok], 0);
close;
exit;
end;
end;
end;
end;
procedure TDaySellForm.FormShow(Sender: TObject);
begin
inherited;
with query_data do
begin
close;
sql.Clear;
sql.Text := 'select name from depot where type="外部"';
open;
cb_depot.Items.Clear;
cb_depot.Style := csDropDownList;
while not eof do
begin
CB_depot.Items.add(fieldbyname('name').asstring);
next;
end;
close;
sql.Clear;
sql.Text := 'select name from YWYData where usertype="在职"';
open;
cb_ywy.Items.Clear;
cb_ywy.Style := csDropDownList;
while not eof do
begin
CB_ywy.Items.add(fieldbyname('name').asstring);
next;
end;
close;
cb_depot.SetFocus;
end;
end;
procedure TDaySellForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
var
T_temp: TModalResult;
begin
inherited;
if OKBtn.Enabled then
begin
T_temp := messagedlg(Askmsg0001, mtConfirmation, mbYesnoCancel, 0);
if T_temp = mrYes then
begin
if not user_save then
begin
messagedlg('【' + cb_ywy.text + '】在〖' + cb_depot.Text + '〗的当日销售' + Infmsg0004, mtError, [mbok], 0);
canclose := false;
end
else
begin
messagedlg(Infmsg0001, mtInformation, [mbok], 0);
canclose := true;
end;
end
else if T_temp = mrNo then
canclose := true
else
canclose := false;
end
else
canclose := true;
end;
procedure TDaySellForm.OKBtnClick(Sender: TObject);
var
T_temp: TModalResult;
I_row, I_col: integer;
begin
T_temp := messagedlg(Askmsg0002 + ' - 【' + cb_ywy.text + '】在〖' + cb_depot.Text
+ '〗的当日销售', mtConfirmation, mbOKCancel, 0);
if T_temp = mrOk then
begin
if not user_save then
begin
messagedlg('【' + cb_ywy.text + '】在〖' + cb_depot.Text + '〗的当日销售' + Infmsg0004, mtError, [mbok], 0);
end
else
begin
T_temp := messagedlg(Infmsg0001 + ' ' + Askmsg0003, mtConfirmation, mbOKCancel, 0);
上一篇:
DateUnit.pas
下一篇:
白色姜花,略微开了