📄 fin_product_xs.pas
字号:
unit Fin_Product_XS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, ComCtrls, StdCtrls, Grids, DBGrids, Mask, Buttons,
ExtCtrls, DB, ADODB;
type
TForm_Fin_Product_XS = class(TForm)
ADOV_KC_Fin: TADOQuery;
ADOV_KC_Finord_id: TStringField;
ADOV_KC_Fincostume_name: TStringField;
ADOV_KC_Fincust_name: TStringField;
ADOV_KC_Finclo_name: TStringField;
ADOV_KC_Finnum: TIntegerField;
ADOV_KC_Finunit: TStringField;
ADOV_KC_Finsize_1: TIntegerField;
ADOV_KC_Finsize_2: TIntegerField;
ADOV_KC_Finsize_3: TIntegerField;
ADOV_KC_Finsize_4: TIntegerField;
ADOV_KC_Finsize_5: TIntegerField;
ADOV_KC_Finsize_6: TIntegerField;
DS_KC_Fin_V: TDataSource;
DS_XS_Fin: TDataSource;
ADOV_XS_Fin: TADOQuery;
ADOV_XS_Finord_id: TStringField;
ADOV_XS_Fincust_name: TStringField;
ADOV_XS_Fincostume_name: TStringField;
ADOV_XS_Finclo_name: TStringField;
ADOV_XS_Finnum: TIntegerField;
ADOV_XS_Finunit: TStringField;
ADOV_XS_Fintmp_id: TIntegerField;
ADOV_XS_Finoperid: TStringField;
ADOV_XS_Finopername: TStringField;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel1: TPanel;
Button1: TButton;
Panel6: TPanel;
GroupBox4: TGroupBox;
DBGrid1: TDBGrid;
TabSheet2: TTabSheet;
Panel4: TPanel;
DBGrid2: TDBGrid;
Panel5: TPanel;
Label22: TLabel;
Label23: TLabel;
Label25: TLabel;
Bevel1: TBevel;
OKBtn: TBitBtn;
CancelBtn: TBitBtn;
ComboBox1: TComboBox;
Edit1: TEdit;
ComboBox3: TComboBox;
Edit2: TEdit;
ComboBox2: TComboBox;
GroupBox6: TGroupBox;
Label31: TLabel;
Label32: TLabel;
Sdate: TDateTimePicker;
Edate: TDateTimePicker;
Panel3: TPanel;
ADOV_XS_Finxsid: TAutoIncField;
ADOV_XS_Finsize_name: TStringField;
ADOV_XS_Finprice: TFloatField;
ADOV_XS_Finmoney: TFloatField;
ADOV_XS_Finxsdate: TDateTimeField;
GroupBox1: TGroupBox;
Label7: TLabel;
Label9: TLabel;
DBComboBox2: TComboBox;
edtname: TEdit;
Label10: TLabel;
edtsex: TEdit;
adoq_temp: TADOQuery;
ADOQ_tmp: TADOQuery;
Label12: TLabel;
ComboBox_ordid: TComboBox;
Label14: TLabel;
ComboBox_costume: TComboBox;
Label13: TLabel;
ComBox_custname: TComboBox;
Label15: TLabel;
ComboBox_cloth: TComboBox;
Label28: TLabel;
ComBox_opeid: TComboBox;
Panel2: TPanel;
Label16: TLabel;
Label11: TLabel;
DBLookupComboBox1: TComboBox;
Edit3: TEdit;
Bit_Ser2: TBitBtn;
Panel7: TPanel;
BitBtn_XS: TBitBtn;
Label2: TLabel;
Edit_price: TEdit;
Label18: TLabel;
ComboBox_size: TComboBox;
Label6: TLabel;
Label3: TLabel;
Edit_num: TEdit;
DBText1: TDBText;
Bevel2: TBevel;
DBE_costume: TDBEdit;
Label5: TLabel;
Label4: TLabel;
DBE_custname: TDBEdit;
Label1: TLabel;
DBE_ordid: TDBEdit;
Label21: TLabel;
Label20: TLabel;
ChkBox_Flag: TCheckBox;
Panel8: TPanel;
BitBtn1: TBitBtn;
LocateBtn: TBitBtn;
ExtBtn: TBitBtn;
BtnExport: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn_XSClick(Sender: TObject);
procedure Edit_priceKeyPress(Sender: TObject; var Key: Char);
procedure LocateBtnClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
procedure ChkBox_FlagClick(Sender: TObject);
procedure DBComboBox2KeyPress(Sender: TObject; var Key: Char);
procedure DBComboBox2Change(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Bit_Ser2Click(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure PageControl1Change(Sender: TObject);
procedure Edit_priceEnter(Sender: TObject);
procedure DBLookupComboBox1Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure BtnExportClick(Sender: TObject);
private
{ Private declarations }
procedure refreshdb;
procedure add_combox_item;
function calbal(emp_id:integer):real;
public
{ Public declarations }
tmp_costume, tmp_unit, size_name, size_type, emp_name:string;
emp_id, XS_num: integer;
tmp_price, tmp_money: real;
money_Flag: boolean;
end;
var
Form_Fin_Product_XS: TForm_Fin_Product_XS;
implementation
uses sharevar, sharefun, data, FinPro_XS_Query, Main;
{$R *.dfm}
function TForm_Fin_Product_XS.calbal(emp_id:integer):real;
var earning_1,earning_2,earning_3:real;
begin
with adoq_temp do
begin
//计算工序收入
close;sql.clear;
sql.add('select sum(a.seq_price*b.num) as totalsum from sequence_price a,outbom_log b where b.flag=1 and a.temp_key=b.temp_key and b.empid=:v_empid');
parameters.ParamValues['v_empid']:=emp_id;
open;
if fieldvalues['totalsum']=NULL then
earning_1:=0
else
earning_1:=fieldvalues['totalsum'];
//计算工资收入
close;sql.clear;
sql.add('select sum(money) as totalsum from emp_payout');
sql.Add(' where empid=:v_empid');
parameters.ParamValues['v_empid']:=emp_id;
try
execsql; open;
except
msgErr(handle,'计算员工工资收入失败!');
result:=0; exit;
end;
if fieldvalues['totalsum']=NULL then
earning_2:=0
else
earning_2:=fieldvalues['totalsum'];
//员工附加收入
close; sql.Clear;
sql.Add('select sum(money) as totalsum from earn_ABS where empid=:V_empid');
parameters.ParamValues['V_empid']:=emp_id;
open;
if fieldvalues['totalsum']=NULL then
earning_3:=0
else
earning_3:=fieldvalues['totalsum'];
end;
earning_1:=earning_1+earning_2+earning_3;
//计算当前人员支出情况
with adoq_temp do
begin
close;sql.clear;
sql.add('select sum(money) as totalsum from brrow where empid=:v_empid');
parameters.ParamValues['v_empid']:=emp_id;
open;
if fieldvalues['totalsum']=NULL then
earning_2:=0
else
earning_2:=fieldvalues['totalsum'];
end;
result:=earning_1-earning_2;
end;
procedure TForm_Fin_Product_XS.refreshdb;
begin
with ADOV_KC_Fin do
begin
close;
sql.Strings[1]:='';
open;
end;
with ADOV_XS_Fin do
begin
sql.Strings[1]:='';
sql.Strings[2]:='order by clo_name,cust_name,ord_id,xsdate desc';
try
execsql;
open;
except
msgErr(handle,'刷新数据库失败!(View_RK_Fin)');
end;
end;
end;
procedure TForm_Fin_Product_XS.add_combox_item;
begin
with ADOQ_tmp do
begin
close; sql.Clear;
sql.Add('select ord_id, costume_name from order_msg');
open; First;
ComboBox_ordid.Clear;
ComboBox_costume.Clear;
ComboBox_ordid.Items.Add(' ');
ComboBox_costume.Items.Add(' ');
while not eof do
begin
ComboBox_ordid.Items.Add(fieldvalues['ord_id']);
ComboBox_costume.Items.Add(fieldvalues['costume_name']);
next;
end;
close; sql.Clear;
sql.Add('select clo_name from clothing');
open ; First;
ComboBox_cloth.Items.Clear;
ComboBox_cloth.Items.Add(' ');
while not eof do
begin
ComboBox_cloth.Items.Add(fieldvalues['clo_name']);
next;
end;
close; sql.Clear;
sql.Add('select opername from operator');
open ; First;
ComBox_opeid.Items.Clear;
ComBox_opeid.Items.Add(' ');
while not eof do
begin
ComBox_opeid.Items.Add(fieldvalues['opername']);
next;
end;
close;
end;
end;
procedure TForm_Fin_Product_XS.FormCreate(Sender: TObject);
begin
if not ADOV_KC_Fin.Active then ADOV_KC_Fin.Open;
Edit_price.Text:='¥0.00';
Edit_num.Text:='0';
ComboBox_size.Text:='';
end;
procedure TForm_Fin_Product_XS.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if ADOV_KC_Fin.Active then ADOV_KC_Fin.Close;
if ADOV_XS_Fin.Active then ADOV_XS_Fin.Close;
action:=cafree;
end;
procedure TForm_Fin_Product_XS.Edit_priceKeyPress(Sender: TObject;
var Key: Char);
begin
if not (key in ['0'..'9',#110,#13,#8]) then abort;
end;
procedure TForm_Fin_Product_XS.BitBtn_XSClick(Sender: TObject);
var
ord_id, info: string;
kcNum_size: integer;
Emp_SL:real;
begin
ord_id:=trim(DBE_ordid.Text);
if ord_id='' then
begin
MsgOk(handle, '请选择待销售的服装成品!');
DBE_ordid.SetFocus;
exit;
end;
tmp_unit:=ADOV_KC_Fin.FieldValues['unit'];
tmp_costume:=DBE_costume.Text;
if trim(Edit_num.Text)='' then
begin
msgok(handle, '请输入待销售的服装成品数量!');
edit_num.SetFocus;
exit;
end;
try
strtoint(trim(Edit_num.Text))
except
msgok(handle, '请输入待销售的服装成品数量!');
edit_num.SetFocus;
exit;
end;
try
XS_num:=strtoint(trim(Edit_num.Text));
except
MsgErr(handle,'请输入正确的销售数量!');
Edit_num.SetFocus;
exit;
end;
if (XS_num<=0) or (xs_num=null) then
begin
messagebox(handle,'请输入正确的销售数量!','警告',mb_ok or MB_ICONINFORMATION);
Edit_num.SetFocus;
exit;
end;
size_name:=trim(ComboBox_size.Text);
if size_name='' then
begin
MsgOK(handle, '请选择待销售的服装的大小型号!');
ComboBox_size.SetFocus;
exit;
end;
if (trim(Edit_price.Text)='') or (Edit_price.Text='¥0.00') then
begin
msgok(handle, '请输入服装成品销售单价!');
Edit_price.SetFocus;
exit;
end;
if not ToMoney(Edit_price.Text,info) then
begin
MsgErr(handle,'金额格式不对[0.00]!');
Edit_price.SetFocus; abort; exit;
end;
tmp_price:=strtofloat(trim(Edit_price.Text));
if tmp_price<=0 then
begin
messagebox(handle,'请输入正确的销售单价!','警告',mb_ok or MB_ICONINFORMATION);
Edit_price.SetFocus;
exit;
end;
//判断成品服装存数量是否够发料
with ADOV_KC_Fin do
begin
if size_name='S / 6' then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -