📄 inv_otheropout_b.pas
字号:
unit Inv_OtherOpOut_B;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Body, Db, ActnList, AdODB, Grids, DBGridEh, ExtCtrls,
ComCtrls, ToolWin, Mask, StdCtrls, ExtEdit, ExtPrintReport, jpeg;
Type
TFrm_Inv_OtherOpOut_B = Class(TFrm_Base_Entry_Body)
Cmbx_WhCodeName: TComboBox;
Cmbx_Position: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Edt_Memo: TEdit;
Label5: TLabel;
Label6: TLabel;
Label8: TLabel;
Label9: TLabel;
Edt_BillNo: TEdit;
Label10: TLabel;
Medt_Date: TMaskEdit;
Lbl_OutName: TLabel;
Edt_OutCode: TExtEdit;
Label7: TLabel;
Cmbx_BillType2CodeName: TComboBox;
procedure Cmbx_OutTypeExit(Sender: TObject);
procedure Medt_DateExit(Sender: TObject);
procedure Act_SaveExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Act_InsertLineExecute(Sender: TObject);
procedure Edt_OutCodeExit(Sender: TObject);
procedure Act_ModifyExecute(Sender: TObject);
procedure Cmbx_WhCodeNameExit(Sender: TObject);
procedure Edt_OutCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure Act_PreviewExecute(Sender: TObject);
procedure Act_PrintExecute(Sender: TObject);
procedure Cmbx_BillType2CodeNameExit(Sender: TObject);
procedure AdoQry_BodyAfterPost(DataSet: TDataSet);
procedure AdoQry_BodyAfterScroll(DataSet: TDataSet);
procedure FormActivate(Sender: TObject);
procedure Cmbx_WhCodeNameChange(Sender: TObject);
procedure Cmbx_PositionChange(Sender: TObject);
procedure Cmbx_BillType2CodeNameChange(Sender: TObject);
procedure DBGridEhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
Modify:Boolean;
IsPlanPrice:boolean;
Checked:Boolean;
BillTypeCode :string;
procedure disableall(flag:boolean);
procedure InitCmbx_WhPosition(whCode:string);
procedure InitCmbx_BillType2CodeName;
procedure InitGrid;
{ Private declarations }
public
HasNegative: String;
procedure InitForm(AdOConnection:TAdOConnection;FormStatus:String;
AdoQuery:TAdoQuery);OverRide;
procedure InitControls;Override;
procedure SetStatus(CurrentStatus:String;var AnswerStatus,
EnableControls:String);Override;
Protected
procedure SaveData;Override;
end;
var
Frm_Inv_OtherOpOut_B: TFrm_Inv_OtherOpOut_B;
implementation
Uses Sys_Global,Inv_OtherOpOut_D,Inv_Global;
{$R *.DFM}
{ TFrm_Inv_OtherOut_B }
procedure TFrm_Inv_OtherOpOut_B.InitCmbx_BillType2CodeName;
begin
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('select BillType2Code,BillType2Name '+
' from BillType2 '+
' where io2=1 ');
open;
cmbx_BillType2CodeName.clear;
if not Eof then
begin
First;
while not Eof do
begin
cmbx_BillType2CodeName.Items.Add(fieldbyname('BillType2Code').asstring+' '+fieldbyname('BillType2Name').asstring);
Next;
end;
end;
end;
end;
procedure TFrm_Inv_OtherOpOut_B.InitCmbx_WhPosition(whCode: string);
begin
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('select P.WhPositionCode,P.WhPositionName '+
' from WhPosition P,Warehouse W '+
' where P.WhCode='''+WhCode+''''+
' and p.whCode=W.whCode'+
' and p.BackFlushWhP=0 '+
' and P.WhPositionType<>1');
open;
cmbx_Position.clear;
if not Eof then
begin
First;
while not Eof do
begin
cmbx_Position.Items.Add(fieldbyname('WhPositionCode').asstring+' '+fieldbyname('WhPositionName').asstring);
Next;
end;
end;
end;
end;
procedure TFrm_Inv_OtherOpOut_B.InitControls;
var InvBillId : double;
I:Integer;
sql_txt:string;
begin
inherited;
PriceFields:='InvBillNoTaxPrice,';
AmountFields:='InvBillNoTaxAmount,';
InitUsableWHCmbx(AdoQry_Tmp,UserCode,Cmbx_WhCodeName,False);
InitCmbx_WhPosition(getCode(Cmbx_WhCodeName.text));
InitCmbx_BillType2CodeName;
if Status<>'Add' then
begin
InvBillId:=AdoQry_Head.fieldbyname('InvBillid').AsFloat;
act_insertline.enabled:=False;
act_Deleteline.enabled:=False;
act_Modify.enabled:=False;
DBGridEh.ReadOnly:=True;
Edt_Memo.Enabled:=False;
Cmbx_WhCodeName.Enabled:=False;
Cmbx_Position.enabled:=False;
Cmbx_BillType2CodeName.enabled:=False;
edt_Billno.Enabled :=False;
// ChckBx_PriceAdjust.checked:=(AdoQry_Head.fieldbyname('PriceAdjustBill').Asinteger=1);
end
else
begin
InvBillId:=-1;
act_insertline.enabled:=True;
act_Deleteline.enabled:=True;
act_Modify.enabled:=True;
DBGridEh.ReadOnly:=True;
Edt_Memo.Enabled:=True;
Cmbx_WhCodeName.Enabled:=True;
Cmbx_Position.enabled:=True;
Cmbx_BillType2CodeName.enabled:=True;
edt_Billno.Enabled :=False;
// ChckBx_PriceAdjust.checked:=False;
end;
with AdoQry_Body do
begin
Close;
sql.clear;
sql_txt:='select B.InvBillId,B.InvBillLineNo,B.InvBillQty,B.ItemCode, '+
' I.ItemName,U.UomName,B.InvBillNoTaxPrice,'+
' B.InvBillNoTaxAmount,IB.InvBillMonth,'+
' B.BatchNo,'+
' B.BillLineReMArk '+
' from InvOutBillLine B '+
' Left join Item I '+
' on B.ItemCode=I.ItemCode '+
' Left Join Uom U '+
' on I.UomCode=U.UomCode '+
' Left JOin InvOutBill IB '+
' on IB.InvBillid=B.InvBillid '+
' where B.InvBillId='+floattostr(InvBillId);
sql.Add(sql_txt);
open;
if Status='Add' then
for I:=0 to recordCount-1 do
begin
edit;
fieldbyname('BatchNo').asstring:='';
post;
end;
end;
{ With AdoQry_tmp do
begin
Close;
SQL.clear;
Sql.Add(' select Count(*) As RecCount'+
' from InvOutBillLine B,Item I,Uom U '+
' where B.InvBillId='+floattostr(InvBillId)+
' and B.ItemCode=I.ItemCode '+
' and I.UomCode=U.UomCode ');
Open;
If (fieldbyname('RecCount').AsInteger>0) and (Status='AllEdit') then
begin
Cmbx_WhCodeName.Enabled:=False;
Cmbx_Position.Enabled:=False;
Edt_OutCode.Enabled:=False;
chckbx_PriceAdjust.Enabled:=False;
Cmbx_BillType2CodeName.Enabled:=False;
Medt_Date.Enabled:=False;
Edt_BillNo.Enabled:=False;
end
Else
begin
Cmbx_WhCodeName.Enabled:=True;
Cmbx_Position.Enabled:=True;
Edt_OutCode.Enabled:=True;
chckbx_PriceAdjust.Enabled:=True;
Cmbx_BillType2CodeName.Enabled:=True;
Medt_Date.Enabled:=True;
Edt_BillNo.Enabled:=False;
end;
end; }
Edt_Memo.Enabled:=True;
with AdoQry_Head do
begin
InitCmBxText(Cmbx_WhCodeName,GetCode(fieldbyname('WhCodeName').asstring));
InitCmBxText(Cmbx_Position,GetCode(fieldbyname('WhPositionName').asstring));
InitCmBxText(Cmbx_BillType2CodeName,GetCode(fieldbyname('BillType2CodeName').asstring));
{medt_Date.text:=FormatDateTime('yyyy.mm.dd',Now);
if status<>'Add' then
Edt_BillNo.Text:=fieldbyname('InvBillno').asstring
else
edt_Billno.Text :='';}
If Status<>'Add' then
begin
Edt_BillNo.Text:=fieldbyname('InvBillNo').AsString ;
medt_Date.text:=FormatDateTime('yyyy.mm.dd',strtodatetime(fieldbyname('InvBillDate').asstring));
end
Else
begin
Edt_BillNo.Text:='';
medt_Date.text:=FormatDateTime('yyyy.mm.dd',Now);
end;
edt_OutCode.Text:=getCode(fieldbyname('Vendorflag').asstring);
lbl_OutName.Caption :=getName(fieldbyname('Vendorflag').asstring);
edt_memo.Text :=fieldbyname('InvBillRemArk').asstring;
end;
end;
procedure TFrm_Inv_OtherOpOut_B.InitForm(AdOConnection: TAdOConnection;
FormStatus: String; AdoQuery: TAdoQuery);
begin
inherited;
InitGrid;
BillTypeCode:=Param1;
HasNegative:=Param2;
Frm_Entry_Detail:=TFrm_Inv_OtherOpOut_D.Create(self);
Frm_Entry_Detail.SetSysParam(userCode,ModuleCode,menuid,LoginDate);
Frm_Entry_Detail.SetUserParam(Param1,Param2,Param3,Param4,Param5,Param6);
end;
procedure TFrm_Inv_OtherOpOut_B.Cmbx_OutTypeExit(Sender: TObject);
begin
inherited;
if Edt_OutCode.text='' then
begin
Edt_OutCode.SetFocus;
exit;
end;
VendorCodeCheck(Edt_OutCode);
end;
procedure TFrm_Inv_OtherOpOut_B.Medt_DateExit(Sender: TObject);
begin
inherited;
If not WHClsPeriodCheck(AdoQry_Tmp,GetCode(Cmbx_WhCodeName.text),
Copy(Medt_Date.Text,1,7)) then
begin
if medt_Date.CanFocus then
Medt_Date.SetFocus;
Abort;
end
end;
procedure TFrm_Inv_OtherOpOut_B.Act_SaveExecute(Sender: TObject);
begin
//inherited;
//是否有记录 Act_SaveExecute
SaveData;
act_Check.Enabled:=True;
end;
procedure TFrm_Inv_OtherOpOut_B.SaveData;
var
Billid,Billno,OutFieldName,OutFieldValue:string;
//OutFieldName用来确认出库对象代码所对应的字段
BeforeSaveError:boolean;
//用来确认是否是在验证阶段出错还是存盘阶段出错。
M: integer;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -