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

📄 sal_enter_backshiporder_c1.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Sal_Enter_BackShipOrder_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_BackShipOrder_C1 = Class(TFrm_Base_Qry)
    btn_ok: TButton;
    btn_Cancel: TButton;
    AdoQry_MainShipNo: TStringField;
    AdoQry_MainSloNo: TStringField;
    AdoQry_MainSloLineNo: TIntegerField;
    AdoQry_MainItemCode: TStringField;
    AdoQry_MainShipQty: TFloatField;
    AdoQry_MainWHCode: TStringField;
    AdoQry_MainWhPositionCode: TStringField;
    AdoQry_MainBatchNo: TStringField;
    AdoQry_MainNoTaxPrice: TFloatField;
    AdoQry_MainNoTaxAmount: TFloatField;
    AdoQry_MainTaxPrice: TFloatField;
    AdoQry_MainTaxAmount: TFloatField;
    AdoQry_MainDiSCountRate: TFloatField;
    AdoQry_MainDiSCountAmount: TFloatField;
    AdoQry_MainShipLineRemArk: TStringField;
    AdoQry_MainItemName: TStringField;
    AdoQry_MainUomName: TStringField;
    AdoQry_MainWhName: TStringField;
    AdoQry_MainWhPositionName: TStringField;
    btn_reselect: TButton;
    AdoQry_MainInvBillLineNo: TStringField;
    AdoQry_MainTmpField: TFloatField;
    AdoQry_MainCurrencyCode: TStringField;
    AdoQry_MainCurrencyName: TStringField;
    AdoQry_MaInBillTypeCode: TStringField;
    procedure FormDestroy(Sender: TObject);
    procedure btn_CancelClick(Sender: TObject);
    procedure DBGridEhTitleClick(Column: TColumnEh);
    procedure btn_okClick(Sender: TObject);
    procedure btn_reselectClick(Sender: TObject);
  private
  Flag:Boolean ;
    { Private declarations }
  public
  CreateDateStArt,CreateDateend,SloNoStArt,SloNoend,CustomerCode,CustomerName:string;
  procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;  
    { Public declarations }
  end;

var
  Frm_Sal_Enter_BackShipOrder_C1: TFrm_Sal_Enter_BackShipOrder_C1;

implementation

uses Sal_Enter_BackShipOrder_C, Sal_Enter_BackShipOrder, Sys_Global;

{$R *.DFM}

{ TFrm_Sal_Enter_ShipOrder_C1 }

procedure TFrm_Sal_Enter_BackShipOrder_C1.InitForm(
  AdOConnection: TAdOConnection; ReadOnly: Boolean);
begin
  inherited;
  Frm_Sys_Condition:= TFrm_Sal_Enter_BackShipOrder_C.Create(self);
  act_filter.Execute;
  SelectFromSql:=' Select InvOutBill.InvBillNo,InvOutBill.BillTypeCode,InvOutBill.CurrencyCode,Currency.CurrencyName, '
                +' InvOutBill.WhCode,InvOutBill.WhPositionCode,InvOutBillLine.* ,Item.ItemName,Uom.UomName,'
                +' Warehouse.WhName,WhPosition.WhPositionName    '
                +' From InvOutBillLine   '
                +' Join InvOutBill '
                +'   On InvOutBillLine.InvBillId=InvOutBill.InvBillId '
                +'   and InvOutBill.BillTypeCode in (''0205'',''0206'') '
                +' left Join Currency on InvOutBill.CurrencyCode=Currency.CurrencyCode '
                +' left Join Item  '
                +'   On InvOutBillLine.ItemCode=Item.ItemCode  '
                +' left Join Uom  '
                +'   On Item.UomCode=Uom.UomCode    '
                +' left Join Warehouse    '
                +'   On InvOutBill.WhCode=Warehouse.WhCode    '
                +' left Join WhPosition    '
                +'   On (InvOutBill.WhCode=WhPosition.WhCode   '
                +'     And InvOutBill.WhPositionCode=WhPosition.WhPositionCode)'
                +' Where CustomerCode= '''+CustomerCode +''''
                +'                  And (InvOutBill.InvBillNo between '''+SloNoStArt+''' and '''+SloNoend+''')'
                +'                  And (InvBillDate Between '''+CreateDateStArt+''' And '''+CreateDateend+''') '
                +'                  And InvBillWhChCk=1'
                +'                  and InvBillQty>0 ';
  Getdata;
  Flag:=False;
  DBGridEhTitleClick(DBGridEh.Columns[0] );
end;

procedure TFrm_Sal_Enter_BackShipOrder_C1.FormDestroy(Sender: TObject);
begin
  inherited;
  Frm_Sal_Enter_BackShipOrder_C1:=nil;
end;

procedure TFrm_Sal_Enter_BackShipOrder_C1.btn_CancelClick(Sender: TObject);
begin
  inherited;
  Frm_Sal_Enter_BackShipOrder_C1.Close;
end;

procedure TFrm_Sal_Enter_BackShipOrder_C1.DBGridEhTitleClick(
  Column: TColumnEh);
var
  BookMArk:String;
begin
  inherited;
  If Trim(Column.Title.Caption)<>'标记' Then
    Abort;
  If AdoQry_Main.RecordCount=0 Then
    Abort;
  BookMArk:=AdoQry_Main.BookmArk;
  If Not Flag Then
  begin
    AdoQry_Main.First;
    While Not AdoQry_Main.Eof Do
    begin
      AdoQry_Main.Edit;
      AdoQry_Main.fieldbyname('TmpField').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('TmpField').AsInteger:=0;
      AdoQry_Main.Post;
      AdoQry_Main.Next;
    end;
  end;
  AdoQry_Main.BookmArk:=BookMArk;
  Flag:=Not Flag;
end;

procedure TFrm_Sal_Enter_BackShipOrder_C1.btn_okClick(Sender: TObject);
var
  I:boolean;
  CurrencyCode,BillTypeCode : String;
begin
  inherited;
  I:=False;
  CurrencyCode := '++++++++';
  BillTypeCode := '********';
  AdoQry_Main.First;
  While Not AdoQry_Main.Eof do
  begin
    If AdoQry_Main.fieldbyname('TmpField').AsInteger>0 Then
    begin
      if Not (  (CurrencyCode='++++++++')  and (BillTypeCode='********')
               ) then
      begin
        if Not(  (AdoQry_Main.fieldbyname('CurrencyCode').AsString=CurrencyCode)
              and (AdoQry_Main.fieldbyname('BillTypeCode').AsString=BillTypeCode)
              )then
        begin
          DispInfo('必须选择单据类型、货币相同的销售发货单!',3);
          abort;
        end;
      end
      else 
      begin
        CurrencyCode := AdoQry_Main.fieldbyname('CurrencyCode').AsString;
        BillTypeCode := AdoQry_Main.fieldbyname('BillTypeCode').AsString;
      end;
    I := True;
    end;
    AdoQry_Main.Next;
  end;
  If I=True Then
  begin
    Frm_Sal_Enter_BackShipOrder:=TFrm_Sal_Enter_BackShipOrder.Create(Application);
    Frm_Sal_Enter_BackShipOrder.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
    Frm_Sal_Enter_BackShipOrder.BillTypeCode := BillTypeCode;
    Frm_Sal_Enter_BackShipOrder.InitForm(DbConnect,'Add',AdoQry_Main);
    Frm_Sal_Enter_BackShipOrder_C1.Hide;
    Frm_Sal_Enter_BackShipOrder.ShowModal;
    if  Frm_Sal_Enter_BackShipOrder_C1<>nil then
      Frm_Sal_Enter_BackShipOrder_C1.Close;
    if Frm_Sal_Enter_BackShipOrder<>nil then
    Frm_Sal_Enter_BackShipOrder.Close;
  end
  Else
  begin
    DispInfo('没有选定记录,不能执行新增操作!',3);
    Abort;
  end;
end;

procedure TFrm_Sal_Enter_BackShipOrder_C1.btn_reselectClick(
  Sender: TObject);
begin
  inherited;
  act_filter.Execute;
  SelectFromSql:=' Select InvOutBill.InvBillNo,InvOutBill.BillTypeCode,InvOutBill.CurrencyCode, Currency.CurrencyName, '
                +' InvOutBill.WhCode,InvOutBill.WhPositionCode,InvOutBillLine.* ,Item.ItemName,Uom.UomName,'
                +' Warehouse.WhName,WhPosition.WhPositionName    '
                +' From InvOutBillLine   '
                +' Join InvOutBill '
                +'   On InvOutBillLine.InvBillId=InvOutBill.InvBillId '
                +'   and InvOutBill.BillTypeCode in (''0205'',''0206'') '
                +' left Join Currency on InvOutBill.CurrencyCode=Currency.CurrencyCode '
                +' left Join Item  '
                +'   On InvOutBillLine.ItemCode=Item.ItemCode  '
                +' left Join Uom  '
                +'   On Item.UomCode=Uom.UomCode    '
                +' left Join Warehouse    '
                +'   On InvOutBill.WhCode=Warehouse.WhCode    '
                +' left Join WhPosition    '
                +'   On (InvOutBill.WhCode=WhPosition.WhCode   '
                +'     And InvOutBill.WhPositionCode=WhPosition.WhPositionCode)'
                +'      Where CustomerCode= '''+CustomerCode +''''
                +'                  And (InvOutBill.InvBillNo between '''+SloNoStArt+''' and '''+SloNoend+''')'
                +'                  And (InvBillDate Between '''+CreateDateStArt+''' And '''+CreateDateend+''') '
                +'                  And InvBillWhChCk=1'
                +'                  and InvBillQty>0 ';
  Getdata;
  Flag:=False;
  DBGridEhTitleClick(DBGridEh.Columns[0] );
end;

end.

⌨️ 快捷键说明

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