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

📄 sal_enter_shiporder_c1.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Sal_Enter_ShipOrder_C1;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Qry, StdCtrls, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids,
  DBGridEh, ExtCtrls, ComCtrls, ToolWin, jpeg;

Type
  TFrm_Sal_Enter_ShipOrder_C1 = Class(TFrm_Base_Qry)
    btn_ok: TButton;
    btn_Cancel: TButton;
    AdoQry_MainSloNo: TStringField;
    AdoQry_MainSloLineNo: TIntegerField;
    AdoQry_MainItemCode: TStringField;
    AdoQry_MainSloQty: TFloatField;
    AdoQry_MainPrepareShipQty: TFloatField;
    AdoQry_MainNoTaxPrice: TFloatField;
    AdoQry_MainNoTaxAmount: TFloatField;
    AdoQry_MainTaxPrice: TFloatField;
    AdoQry_MainTaxAmount: TFloatField;
    AdoQry_MainSloLineDate: TDateTimeField;
    AdoQry_MainSloLineStatus: TIntegerField;
    AdoQry_MainDiSCountRate: TFloatField;
    AdoQry_MainDiSCountAmount: TFloatField;
    AdoQry_MainSloLineRemArk: TStringField;
    AdoQry_MainItemName: TStringField;
    AdoQry_MainItemFalg: TStringField;
    AdoQry_MainUomName: TStringField;
    AdoQry_MainWhCode: TStringField;
    AdoQry_MainWhName: TStringField;
    AdoQry_MainWhPositionCode: TStringField;
    AdoQry_MainWhPositionName: TStringField;
    AdoQry_MainOnHandInv: TFloatField;
    AdoQry_MainSloCheck: TIntegerField;
    AdoQry_MainBatchCtrl: TIntegerField;
    AdoQry_MainBatchNo: TStringField;
    AdoQry_MainShipQty: TFloatField;
    AdoQry_MainLastOperationTime: TDateTimeField;
    AdoQry_MainNoShipQty: TFloatField;
    AdoQry_MainAbleShipQty: TFloatField;
    btn_reselect: TButton;
    AdoQry_MainDisedShipQty: TFloatField;
    AdoQry_MainCustomerCode: TStringField;
    AdoQry_MainCurrencyCode: TStringField;
    AdoQry_MainTaxRate_Percent: TFloatField;
    AdoQry_MainPayTermCode: TStringField;
    AdoQry_MainPayTermName: TStringField;
    procedure FormDestroy(Sender: TObject);
    procedure btn_CancelClick(Sender: TObject);
    procedure DBGridEhTitleClick(Column: TColumnEh);
    procedure btn_okClick(Sender: TObject);
    procedure btn_reselectClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure AdoQry_MainBeforeEdit(DataSet: TDataSet);
  private
  Flag:Boolean ;
    { Private declarations }
  public
  TmpFlag : Boolean;
  CreateDateStArt,CreateDateend,SloNoStArt,SloNoend,CustomerCode,CustomerName:string;
  procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;  
    { Public declarations }
  end;

var
  Frm_Sal_Enter_ShipOrder_C1: TFrm_Sal_Enter_ShipOrder_C1;

implementation

uses Sal_Enter_ShipOrder_C, Sal_Enter_ShipOrder, Sys_Global;

{$R *.DFM}

{ TFrm_Sal_Enter_ShipOrder_C1 }

procedure TFrm_Sal_Enter_ShipOrder_C1.InitForm(
  AdOConnection: TAdOConnection; ReadOnly: Boolean);
begin
  inherited;
end;

procedure TFrm_Sal_Enter_ShipOrder_C1.FormDestroy(Sender: TObject);
begin
  inherited;
  Frm_Sal_Enter_ShipOrder_C1:=nil;
end;

procedure TFrm_Sal_Enter_ShipOrder_C1.btn_CancelClick(Sender: TObject);
begin
  inherited;
//  Frm_Sal_Enter_ShipOrder_C1.Close;
end;

procedure TFrm_Sal_Enter_ShipOrder_C1.DBGridEhTitleClick(
  Column: TColumnEh);
var
  BookMArk:String;
  TmpDataSetEvent : TDataSetNotifyEvent;
begin
  inherited;
  If Trim(Column.Title.Caption)<>'标记' Then
    Abort;
  If AdoQry_Main.RecordCount=0 Then
    Abort;
  BookMArk:=AdoQry_Main.BookmArk;
  TmpDataSetEvent := AdoQry_Main.BeforeEdit;
  AdoQry_Main.BeforeEdit := Nil;
  If Not Flag Then
  begin
    AdoQry_Main.First;
    While Not AdoQry_Main.Eof Do
    begin
      AdoQry_Main.Edit;
      if AdoQry_Main.fieldbyname('AbleShipQty').AsFloat >=0 then
        AdoQry_Main.fieldbyname('SloCheck').AsInteger:=1;
      AdoQry_Main.Post;
      AdoQry_Main.Next;
    end;
  end
  Else
  begin
    AdoQry_Main.First;
    While Not AdoQry_Main.Eof Do
    begin
      AdoQry_Main.Edit;
      AdoQry_Main.fieldbyname('SloCheck').AsInteger:=0;
      AdoQry_Main.Post;
      AdoQry_Main.Next;
    end;
  end;
  AdoQry_Main.BookmArk:=BookMArk;
  AdoQry_Main.BeforeEdit := TmpDataSetEvent;
  Flag:=Not Flag;
end;

procedure TFrm_Sal_Enter_ShipOrder_C1.btn_okClick(Sender: TObject);
var
  I:boolean;
  WhCode ,WhName, 
  WhPositionCode,WhPositionName ,
  CurrencyCode,TaxRate_Percent: String;
  PayTermCode : String;  
begin
  inherited;
  I:=False;
  WhCode := 'WhCode';
  WhPositionCode := 'WhPositionCode';
  CurrencyCode := '++++++++';
  TaxRate_Percent := '9k9k9k9k9k';
  PayTermCode := 'PayTermCode+++++';
  AdoQry_Main.First;
  While Not AdoQry_Main.Eof do
  begin
    If AdoQry_Main.fieldbyname('SloCheck').AsInteger>0 Then
    begin
      if Not (   (WhCode='WhCode') 
              and (WhPositionCode='WhPositionCode') 
              and (CurrencyCode='++++++++')
              and (TaxRate_Percent='9k9k9k9k9k')  
              and (PayTermCode='PayTermCode+++++') ) then
      begin
        if Not( (AdoQry_Main.fieldbyname('WhCode').AsString=WhCode) 
            and (AdoQry_Main.fieldbyname('WhPositionCode').AsString=WhPositionCode) 
            and (AdoQry_Main.fieldbyname('CurrencyCode').AsString=CurrencyCode)
            and (AdoQry_Main.fieldbyname('TaxRate_Percent').AsString=TaxRate_Percent) 
            and (AdoQry_Main.fieldbyname('PayTermCode').AsString=PayTermCode)  )then
        begin
          DispInfo('必须选择仓库、货位、货币、税率、付款条款相同的销售订单!',3);
          abort;
        end;
      end
      else 
      begin
        WhCode := AdoQry_Main.fieldbyname('WhCode').AsString;
        WhName := AdoQry_Main.fieldbyname('WhName').AsString;
        WhPositionCode := AdoQry_Main.fieldbyname('WhPositionCode').AsString;
        WhPositionName := AdoQry_Main.fieldbyname('WhPositionName').AsString;
        CurrencyCode := AdoQry_Main.fieldbyname('CurrencyCode').AsString;
        TaxRate_Percent := AdoQry_Main.fieldbyname('TaxRate_Percent').AsString;
        PayTermCode := AdoQry_Main.fieldbyname('PayTermCode').AsString;
      end;
      I:=True;
//      Break;
    end;
    AdoQry_Main.Next;
  end;
  If I=True Then
  begin
    Frm_Sal_Enter_ShipOrder:=TFrm_Sal_Enter_ShipOrder.Create(Application);
    Frm_Sal_Enter_ShipOrder.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
    Frm_Sal_Enter_ShipOrder.Edt_WhCode.Text := WhCode;
    Frm_Sal_Enter_ShipOrder.Edt_WhName.Text := WhName;
    Frm_Sal_Enter_ShipOrder.Edt_WhPositionCode.Text := WhPositionCode;
    Frm_Sal_Enter_ShipOrder.Edt_WhPositionName.Text := WhPositionName;
    Frm_Sal_Enter_ShipOrder.InitForm(DbConnect,'Add',AdoQry_Main);
    Frm_Sal_Enter_ShipOrder_C1.Hide;
    Frm_Sal_Enter_ShipOrder.Showmodal;
    if Frm_Sal_Enter_ShipOrder<>nil then
    Frm_Sal_Enter_ShipOrder.Close;
    if  Frm_Sal_Enter_ShipOrder_C1<>nil then
      Frm_Sal_Enter_ShipOrder_C1.Close;
  end
  Else
  begin
    DispInfo('没有选定记录,不能执行新增操作!',3);
    Abort;
  end;
end;

procedure TFrm_Sal_Enter_ShipOrder_C1.btn_reselectClick(Sender: TObject);
begin
  inherited;
  act_filter.Execute;
  SelectFromSql:=' select Tmp.*, '
              +' AbleShipQty=case When OnHandInv-isnull(Tmp1.DisedShipQty,0) <=0 then 0 '
              +'                  When OnHandInv-IsNull(Tmp1.DisedShipQty,0)-NoShipQty>=0 then NoShipQty '

⌨️ 快捷键说明

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