📄 sal_enter_shiporder_c1.pas
字号:
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 + -