unitbomrequery.~pas

来自「BOM表」· ~PAS 代码 · 共 548 行 · 第 1/2 页

~PAS
548
字号
unit UnitBomRequery;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, dxExEdtr, dxCntner, dxTL, dxDBCtrl,
  dxDBGrid, cxTextEdit, cxMaskEdit, cxDBEdit, cxControls, cxContainer,
  cxEdit, cxLabel, ExtCtrls, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd,
  dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns,
  dxPSCore, dxPSdxTLLnk, dxPSdxDBCtrlLnk, dxPSdxDBGrLnk, dxPSContainerLnk;

type
  TFormBomRequery = class(TForm)
    dxDBGridBOM: TdxDBGrid;
    dxDBGridBOMColumn1: TdxDBGridColumn;
    dxDBGridBOMColumn2: TdxDBGridColumn;
    dxDBGridBOMColumn3: TdxDBGridColumn;
    dxDBGridBOMColumn4: TdxDBGridColumn;
    dxDBGridBOMColumn5: TdxDBGridColumn;
    DataSourceBOM: TDataSource;
    ADOQueryBOM: TADOQuery;
    ADOConnection1: TADOConnection;
    Panel2: TPanel;
    cxLabel1: TcxLabel;
    cxLabel8: TcxLabel;
    cxLabel4: TcxLabel;
    cxLabel3: TcxLabel;
    cxLabel2: TcxLabel;
    cxDBMaskEditQTXS: TcxDBMaskEdit;
    cxDBMaskEditXSXS: TcxDBMaskEdit;
    cxLabel9: TcxLabel;
    cxLabel10: TcxLabel;
    cxLabel11: TcxLabel;
    cxDBMaskEditGJCB: TcxDBMaskEdit;
    cxDBMaskEditQTCB: TcxDBMaskEdit;
    cxDBMaskEditXSCB: TcxDBMaskEdit;
    cxDBMaskEditMBBJ: TcxDBMaskEdit;
    cxDBMaskEditDQCB: TcxDBMaskEdit;
    cxDBMaskEditDQXS: TcxDBMaskEdit;
    ADOQueryPrice: TADOQuery;
    DSPrice: TDataSource;
    ADOQueryPriceid: TAutoIncField;
    ADOQueryPriceObjectID: TIntegerField;
    ADOQueryPriceChecherOptID: TIntegerField;
    ADOQueryPriceChecker: TStringField;
    ADOQueryPriceCheckContent: TWideStringField;
    ADOQueryPriceCheckTime: TDateTimeField;
    ADOQueryPriceCheckState: TWideStringField;
    ADOQueryPriceApplyCheckSign: TBooleanField;
    ADOQueryPriceApplyCheckSignTime: TDateTimeField;
    ADOQueryPriceBaojiaBianhao: TWideStringField;
    ADOQueryPriceMaoyiFangshi: TWideStringField;
    ADOQueryPriceHuobiDanwei: TWideStringField;
    ADOQueryPriceBaojiaYouxiaoqi: TWideStringField;
    ADOQueryPriceIsCostCompar: TBooleanField;
    ADOQueryPriceMuBiaoGJ: TFloatField;
    ADOQueryPriceMuBiaoQT: TFloatField;
    ADOQueryPriceMuBiaoQTXS: TBCDField;
    ADOQueryPriceMuBiaoXSY: TFloatField;
    ADOQueryPriceMuBiaoXSYXS: TBCDField;
    ADOQueryPriceMuBiaoDQ: TFloatField;
    ADOQueryPriceMuBiaoBaoJia: TFloatField;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    LabelXj: TLabel;
    ADOQueryPriceMuBiaoDQXS: TBCDField;
    ADOQueryPriceNotFirstShow: TBooleanField;
    cxDBMaskEditZZS: TcxDBMaskEdit;
    cxLabel5: TcxLabel;
    cxDBMaskEditZZSXS: TcxDBMaskEdit;
    cxLabel6: TcxLabel;
    cxMaskEditXiaoJi: TcxMaskEdit;
    ADOQueryPriceIsJoinBidUP: TBooleanField;
    ADOQueryPriceMuBiaoZZS: TFloatField;
    ADOQueryPriceMuBiaoZZSXS: TBCDField;
    dxDBGridBOMColumn6: TdxDBGridColumn;
    cxLabel7: TcxLabel;
    cxDBMaskEditFJS: TcxDBMaskEdit;
    cxDBMaskEditFJSXS: TcxDBMaskEdit;
    ADOQueryPriceBaoJiaOper: TWideStringField;
    ADOQueryPriceMuBiaoFJS: TFloatField;
    ADOQueryPriceMuBiaoFJSXS: TFloatField;
    cxTextEdit1: TcxTextEdit;
    ADOQueryPricePriceMemo: TWideStringField;
    ButtonRefresh: TButton;
    dxDBGridBOMColumn7: TdxDBGridColumn;
    Button3: TButton;
    dxComponentPrinter1: TdxComponentPrinter;
    dxComponentPrinter1Link1: TdxDBGridReportLink;
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure dxDBGridBOMCustomDrawFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
      AColumn: TdxTreeListColumn; var AText: String; var AColor: TColor;
      AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
    procedure Button1Click(Sender: TObject);
    procedure cxDBMaskEditGJCBPropertiesEditValueChanged(Sender: TObject);
    procedure cxDBMaskEditQTXSPropertiesEditValueChanged(Sender: TObject);
    procedure cxDBMaskEditXSXSPropertiesEditValueChanged(Sender: TObject);
    procedure cxDBMaskEditDQXSPropertiesEditValueChanged(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure cxDBMaskEditZZSPropertiesEditValueChanged(Sender: TObject);
    procedure cxDBMaskEditFJSXSPropertiesEditValueChanged(Sender: TObject);
    procedure ButtonRefreshClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    ObjID : Integer;
    TempValue : Double;
    TempSum  :Double;
    TempText : Double;
  end;

var
  FormBomRequery: TFormBomRequery;

implementation

{$R *.dfm}
uses Global, UnitCost;

procedure TFormBomRequery.FormDestroy(Sender: TObject);
begin
  Application.Handle := 0;
end;

procedure TFormBomRequery.FormCreate(Sender: TObject);
var
  i : integer;
begin

  for i := 0 to dxDBGridBOM.ColumnCount-1 do
  begin
    dxDBGridBOM.Columns[i].ReadOnly := True;
    dxDBGridBOM.Columns[i].Width := 90;
  end;

end;

procedure TFormBomRequery.dxDBGridBOMCustomDrawFooter(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
  AColumn: TdxTreeListColumn; var AText: String; var AColor: TColor;
  AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
var
  TempValue : Double;
begin

  if AColumn.Caption = '成本' then
  begin

    AText :=FormatFloat('0.00',TempText);
    TempSum := StrToFloat(AText);
    TempValue := StrToFloat(AText);
    with ADOQueryPrice do
    begin
       if Not (State in [dsInsert , dsEdit]) then Edit;
      FieldByName('MuBiaoZZSXS').Value := 0.17;
      FieldByName('MuBiaoZZS').Value := FieldByName('MuBiaoZZSXS').Value *TempValue;
      TempValue  := TempValue + FieldByName('MuBiaoZZS').AsFloat;

      FieldByName('MuBiaoFJSXS').Value := 0.10;
      FieldByName('MuBiaoFJS').Value := FieldByName('MuBiaoFJSXS').Value *TempValue;
      TempValue  := TempValue + FieldByName('MuBiaoFJS').AsFloat;
     
      //FieldByName('MuBiaoGJ').Value := 0.00;
      TempValue  := TempValue + FieldByName('MuBiaoGJ').AsFloat;

      cxMaskEditXiaoJi.Text := FormatFloat('0.00',TempValue);
      
      FieldByName('MuBiaoQT').Value := FieldByName('MuBiaoQTXS').Value *TempValue;
      TempValue :=  TempValue + FieldByName('MuBiaoQT').AsFloat;
      FieldByName('MuBiaoXSY').Value := FieldByName('MuBiaoXSYXS').Value *TempValue;
      TempValue :=  TempValue + FieldByName('MuBiaoXSY').AsFloat;
      FieldByName('MuBiaoDQ').Value := FieldByName('MuBiaoDQXS').Value *TempValue;
      TempValue :=  TempValue + FieldByName('MuBiaoDQ').AsFloat;
      FieldByName('MuBiaoBaoJia').Value := TempValue;
      UpdateBatch(arAll);
    end;
  end;
end;

procedure TFormBomRequery.Button1Click(Sender: TObject);
begin
  ADOQueryPrice.UpdateBatch(arAll);
  //ADOQueryPrice.Post;
  cxDBMaskEditZZSXS.Properties.ReadOnly := True;
  cxDBMaskEditQTXS.Properties.ReadOnly := True;
  cxDBMaskEditXSXS.Properties.ReadOnly := True;
  cxDBMaskEditDQXS.Properties.ReadOnly := True;
  cxDBMaskEditGJCB.Properties.ReadOnly := True;
   cxDBMaskEditFJS.Properties.ReadOnly := True;
   cxDBMaskEditFJSXS.Properties.ReadOnly := True;
  //cxMaskEditXiaoJi.Properties.ReadOnly := False;
  Button1.Enabled := False;
  with TADOQuery.Create(nil) do
  begin
    Try
      Connection := env.ADOConnection;
      SQL.Text := 'update App_Price set ApplyCheckSign_Price = 0,' +
                ' ChecherOptID_Price = ' + IntToStr(Env.OperatorID)  +
                ' ,CheckTime_Price = ' + DateToStr(now()) +
                ' where ObjectID = ' + IntToStr(ObjID);
      showmessage(SQL.Text);
      ExecSQL;
    finally
      Free;
    end;
  end;
  showmessage('  保存成功  ');
end;

procedure TFormBomRequery.cxDBMaskEditGJCBPropertiesEditValueChanged(
  Sender: TObject);
var
  TempVal : Double;
begin

    with ADOQueryPrice do
    begin
      if active  then
      begin
        if Not (State in [dsInsert , dsEdit] ) then Edit;
        TempVal  := TempSum ;//+ FieldByName('MuBiaoZZS').AsFloat;
        FieldByName('MuBiaoZZS').Value := FieldByName('MuBiaoZZSXS').Value *TempVal;
        TempVal  := TempVal + FieldByName('MuBiaoZZS').AsFloat;
        TempVal  := TempVal + FieldByName('MuBiaoFJS').AsFloat;
        TempVal  := TempVal + FieldByName('MuBiaoGJ').AsFloat;
        cxMaskEditXiaoJi.Text := FormatFloat('0.00',TempVal);

        FieldByName('MuBiaoQT').Value := FieldByName('MuBiaoQTXS').Value *TempVal;
        TempVal :=  TempVal + FieldByName('MuBiaoQT').AsFloat;
        FieldByName('MuBiaoXSY').Value := FieldByName('MuBiaoXSYXS').Value *TempVal;
        TempVal :=  TempVal + FieldByName('MuBiaoXSY').AsFloat;
        FieldByName('MuBiaoDQ').Value := FieldByName('MuBiaoDQXS').Value *TempVal;
        TempVal :=  TempVal + FieldByName('MuBiaoDQ').AsFloat;
        FieldByName('MuBiaoBaoJia').Value := TempVal;
        //UpdateBatch(arAll);
      end;
    end;
end;

procedure TFormBomRequery.cxDBMaskEditQTXSPropertiesEditValueChanged(
  Sender: TObject);
var
  TempVal : Double;
begin

    with ADOQueryPrice do
    begin
      if active  then
      begin
        if Not (State in [dsInsert , dsEdit] ) then Edit;
        TempVal  := TempSum ;//+ FieldByName('MuBiaoZZS').AsFloat;
        FieldByName('MuBiaoZZS').Value := FieldByName('MuBiaoZZSXS').Value *TempVal;
        TempVal  := TempVal + FieldByName('MuBiaoZZS').AsFloat;
        TempVal  := TempVal + FieldByName('MuBiaoFJS').AsFloat;
        TempVal  := TempVal + FieldByName('MuBiaoGJ').AsFloat;
        FieldByName('MuBiaoQT').Value := FieldByName('MuBiaoQTXS').Value *TempVal;
        TempVal :=  TempVal + FieldByName('MuBiaoQT').AsFloat;
        FieldByName('MuBiaoXSY').Value := FieldByName('MuBiaoXSYXS').Value *TempVal;
        TempVal :=  TempVal + FieldByName('MuBiaoXSY').AsFloat;
        FieldByName('MuBiaoDQ').Value := FieldByName('MuBiaoDQXS').Value *TempVal;
        TempVal :=  TempVal + FieldByName('MuBiaoDQ').AsFloat;
        FieldByName('MuBiaoBaoJia').Value := TempVal;
       //UpdateBatch(arAll);
      end;
    end;

end;

⌨️ 快捷键说明

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