⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fin_product_xs.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -