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

📄 frmgzcalc.pas

📁 这是我在去年年底利用业余时间做的一个鞋塑企业的计件工资系统。由于本人技术有限
💻 PAS
字号:
unit frmGzcalc;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dxExEdtr, dxDBTLCl, dxGrClms, dxTL, dxDBCtrl, dxDBGrid,
  dxCntner, StdCtrls, Buttons, ComCtrls, dxEditor, dxEdLib, ExtCtrls, DB,
  ADODB,DateUtils, RM_dset, RM_dbset, RM_class;

type
  TGzcalcForm = class(TForm)
    Panel1: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Label1: TLabel;
    edtPersonID: TdxButtonEdit;
    edtFirstDate: TDateTimePicker;
    edtEndDate: TDateTimePicker;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    grdGzcalc: TdxDBGrid;
    spGzcalc: TADOStoredProc;
    dsGzcalc: TDataSource;
    spGzcalcRateID: TStringField;
    spGzcalcRateName: TStringField;
    spGzcalcModelID: TStringField;
    spGzcalcColor: TStringField;
    spGzcalcShoesize: TStringField;
    spGzcalcProdANums: TIntegerField;
    spGzcalcRateA: TBCDField;
    spGzcalcARates: TBCDField;
    spGzcalcProdBNums: TIntegerField;
    spGzcalcRateB: TBCDField;
    spGzcalcBRates: TBCDField;
    spGzcalcProdCNums: TIntegerField;
    spGzcalcRateC: TBCDField;
    spGzcalcCRates: TBCDField;
    spGzcalcSubsidy: TBCDField;
    grdGzcalcRateID: TdxDBGridMaskColumn;
    grdGzcalcRateName: TdxDBGridMaskColumn;
    grdGzcalcModelID: TdxDBGridMaskColumn;
    grdGzcalcColor: TdxDBGridMaskColumn;
    grdGzcalcShoesize: TdxDBGridMaskColumn;
    grdGzcalcProdANums: TdxDBGridMaskColumn;
    grdGzcalcRateA: TdxDBGridCurrencyColumn;
    grdGzcalcARates: TdxDBGridCurrencyColumn;
    grdGzcalcProdBNums: TdxDBGridMaskColumn;
    grdGzcalcRateB: TdxDBGridCurrencyColumn;
    grdGzcalcBRates: TdxDBGridCurrencyColumn;
    grdGzcalcProdCNums: TdxDBGridMaskColumn;
    grdGzcalcRateC: TdxDBGridCurrencyColumn;
    grdGzcalcCRates: TdxDBGridCurrencyColumn;
    grdGzcalcSubsidy: TdxDBGridCurrencyColumn;
    rmpGzCalc: TRMReport;
    RMDBDataSet1: TRMDBDataSet;
    SaveDialog: TSaveDialog;
    StatusBar1: TStatusBar;
    procedure BitBtn1Click(Sender: TObject);
    procedure edtPersonIDButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure FormCreate(Sender: TObject);
    procedure rmpGzCalcGetValue(const ParName: String;
      var ParValue: Variant);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  GzcalcForm: TGzcalcForm;


implementation

{$R *.dfm}
uses DataCenter, ChoicePerson,frmMsg, frmNoExist;

procedure TGzcalcForm.BitBtn1Click(Sender: TObject);
var
  NoexistQuery:TAdoQuery;
begin
  NoexistQuery:=TAdoQuery.Create(self);
  with NoexistQuery do
  begin
    Connection:=dmData.AdoConnection1;
    Sql.Add('select distinct a.OrderNo,b.ModelID,b.Color,b.Shoesize from RateForms a left join RateFormsDetail b on a.OrderNo=b.OrderNo');
    Sql.Add(' where (b.modelID<>'' and a.RateID<>''  and ((rtrim(b.ModelID)+rtrim(b.Color)+rtrim(b.Shoesize)) not in (select rtrim(ModelID)+rtrim(Color)+rtrim(Shoesize) from Rates)))');
    Open;
    if RecordCount>0 then
    begin
      application.CreateForm(TNoexistForm,NoexistForm);
      NoexistForm.dsNoexist.DataSet:=NoexistQuery;
      NoexistForm.ShowModal;
      NoexistForm.Hide;
      NoexistForm.Free;
    end;
    close;
    Free;
  end;
  GzcalcForm.Update;
  spGzcalc.Close;
  spGzcalc.Parameters[1].Value:=edtFirstDate.Date;
  spGzcalc.Parameters[2].Value:=edtEndDate.Date;
  spGzcalc.Parameters[3].Value:=edtPersonID.Text;
  MsgForm:=TmsgForm.create(self);
  MsgForm.Show;
  screen.Cursor:=crSQLWAIT;
  MsgForm.update;
  spGzcalc.open;
  MsgForm.Hide;
  screen.Cursor:=crDefault;
  MsgForm.Close;
  MsgForm.Free;
  StatusBar1.Panels[0].Text:='总有记录数:'+inttostr(spGzcalc.recordcount)+'条';
end;

procedure TGzcalcForm.edtPersonIDButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  if Application.FindComponent('frmChoicePerson')=nil then
      Application.CreateForm(TfrmChoicePerson,frmChoicePerson);
  dmData.aquPersonel.SQL.Text:='select * from Personel';
  dmData.aquPersonel.Open;
  case frmChoicePerson.ShowModal of  {返回的值}
    mrCancel:
    begin
      edtFirstDate.SetFocus;
//      ValueIsChange:=true;
    end;
    mrOk:
    begin
      edtPersonID.Text:=dmData.aquPersonelPersonID.Value;
      edtFirstDate.SetFocus;
    end;
  end;
end;

procedure TGzcalcForm.FormCreate(Sender: TObject);
begin
  edtFirstDate.Date:=Date()-dayof(date())+1;
  edtEndDate.Date:=date();
end;

procedure TGzcalcForm.rmpGzCalcGetValue(const ParName: String;
  var ParValue: Variant);
begin
  if ParName='FirstDate' then ParValue:=DateToStr(edtFirstDate.Date);
  if ParName='EndDate' then ParValue:=DateToStr(edtEndDate.Date);
end;

procedure TGzcalcForm.BitBtn3Click(Sender: TObject);
begin
  spGzcalc.DisableControls;
  rmpGzcalc.LoadFromFile('GzTryCalc');
  rmpGzcalc.ShowReport;
  spGzcalc.EnableControls;
end;

procedure TGzcalcForm.BitBtn4Click(Sender: TObject);
begin
  if SaveDialog.Execute then
  begin
    if FileExists(SaveDialog.FileName) then
      if MessageDlg(Format('文件"'+SaveDialog.FileName+'"已经存在,是否替换原有文件?', [SaveDialog.FileName]),mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit;
    grdGzCalc.SaveToXLS(SaveDialog.FileName,true);
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -