📄 inv_noorderopin_b.pas
字号:
unit Inv_NoOrderOpIn_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, DBCtrls, ExtPrintReport, jpeg;
Type
TFrm_Inv_NoOrderOpIn_B = Class(TFrm_Base_Entry_Body)
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
Label16: TLabel;
Extedt_Billno: TExtEdit;
Extedt_OutCode: TExtEdit;
medt_Date: TMaskEdit;
Extedt_memo: TExtEdit;
cmbbx_WhCode: TComboBox;
cmbbx_WhPositionCode: TComboBox;
cmbbx_BillType2Code: TComboBox;
lbl_OutName: TLabel;
Label6: TLabel;
Label9: TLabel;
lbl_CurrencyName: TLabel;
lb_Vendortaxrate_Percent: TLabel;
Panel1: TPanel;
Label3: TLabel;
DBText1: TDBText;
Panel2: TPanel;
Label11: TLabel;
DBText2: TDBText;
DBGridEh1: TDBGridEh;
AdoQry_RealOpQty: TAdoQuery;
DataSource1: TDataSource;
procedure FormCreate(Sender: TObject);
procedure Extedt_OutCodeExit(Sender: TObject);
procedure DateCheck(Sender: TObject);
procedure Act_QuitExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cmbbx_WhCodeChange(Sender: TObject);
procedure Extedt_OutCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure AdoQry_BodyAfterPost(DataSet: TDataSet);
procedure AdoQry_BodyBeforePost(DataSet: TDataSet);
procedure Act_PreviewExecute(Sender: TObject);
procedure Act_PrintExecute(Sender: TObject);
procedure cmbbx_BillType2CodeExit(Sender: TObject);
procedure Act_InsertLineExecute(Sender: TObject);
procedure Act_ModifyExecute(Sender: TObject);
procedure DataSourceDataChange(Sender: TObject; Field: TField);
procedure Act_DeleteLineExecute(Sender: TObject);
procedure Act_NewExecute(Sender: TObject);
procedure DBGridEh1DblClick(Sender: TObject);
procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormActivate(Sender: TObject);
private
Billid,Billmemo,BillwhCode,BillWhPositionCode,Billno,BillTypeCode,
BillBillType2Code,BilloutName,BilloutCode,BilloutType,BillLoginDate,
currencyCode,Vendortaxrate_Percent,ExchRate,BillHeadno:string;
IoType:real;
procedure checkIOType;
procedure InitCmbbx_WhPositionCode(whCode:string);
procedure InitCmbbx_BillType2Code;
{ Private declarations }
public
Bill_id:string;
procedure InitControls;Override;
procedure SaveHeadData;Override;
procedure SaveData; Override;//把表头控件写入缓存,不要Post
procedure SetStatus(CurrentStatus:String;var AnswerStatus,
EnableControls:String);Override;
{ Public declarations }
end;
var
Frm_Inv_NoOrderOpIn_B: TFrm_Inv_NoOrderOpIn_B;
implementation
uses Sys_Global,Inv_NoOrderOpIn_D,Inv_Global,Inv_NoOrderOpIn_RealOpQty_D,
Inv_NoOrderOpIn_H;
{$R *.DFM}
procedure TFrm_Inv_NoOrderOpIn_B.checkIOType;
begin
if IoType<>0 then
if AdoQry_Body.fieldbyname('InvBillqty').asfloat*IoType<0 then
begin
DispInfo('同一请领,不能出现正负数量混合的情况!',1);
abort;
end;
end;
procedure TFrm_Inv_NoOrderOpIn_B.InitCmbbx_WhPositionCode(whCode:string);
begin
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('select WhPositionCode,WhPositionName '+
' from WhPosition '+
' where whCode='''+whCode+''''+
' and WhPositionType<>1 '+
' and BackFlushWhP=0 '+
' Order by WhPositionCode ');
open;
cmbbx_WhPositionCode.clear;
if not Eof then
begin
First;
while not Eof do
begin
cmbbx_WhPositionCode.Items.Add(fieldbyname('WhPositionCode').asstring+' '+fieldbyname('WhPositionName').asstring);
Next;
end;
cmbbx_WhPositionCode.Itemindex:=0;
end;
end;
end;
procedure TFrm_Inv_NoOrderOpIn_B.InitCmbbx_BillType2Code;
begin
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('select BillType2Code,BillType2Name '+
' from BillType2 '+
' where io2=0');
open;
cmbbx_BillType2Code.clear;
if not Eof then
begin
First;
while not Eof do
begin
cmbbx_BillType2Code.Items.Add(fieldbyname('BillType2Code').asstring+' '+fieldbyname('BillType2Name').asstring);
Next;
end;
end;
end;
end;
procedure TFrm_Inv_NoOrderOpIn_B.InitControls;
begin//初始化Form上的控件
inherited;
//这两个参数是回传到基类后控制价格及金额的显示格式
AmountFields:='InvBillnotaxAmount,InvBillAmount,';
PriceFields:='InvBillnotaxPrice,InvBillPrice,';
FreeFields:='RealOpQty,realopScrAp_Percent,RealOpQtynew,realopScrAp_Percentnew,';
//初始化仓库
if Status<>'Add' then
ExtEdt_BillNo.Text:=Billno
else
ExtEdt_BillNo.Text:='';
if (showflag=True) and (status<>'Add') then
exit;
initUsablewhcmbx(AdoQry_tmp,userCode,cmbbx_WhCode,False);
//初始化单据类型
initcmbbx_BillType2Code;
//初始化入库对象
//如果是增加,让InvBillNO=-1
if Status<>'Add' then
if showflag=False then
Bill_ID:=AdoQry_Head.fieldbyname('InvBillid').AsString
else
Bill_ID:=Billid
else
Bill_ID:='-1';
//取得相应的记录显示于DBGIRD
if status='Add' then
begin
with AdoQry_Body do
begin
Close;
sql.clear;
sql.Add('select '+
' bl.InvBillid,'+
' bl.InvBilllineno,'+
' bl.InvBillqty,'+
' bl.ItemCode,'+
' i.ItemName,'+
' u.UomName,'+
' bl.BilllineremArk,'+
' bl.Batchno,'+
' bl.InvBillPrice,'+
' bl.InvBillAmount,'+
' bl.InvBillnotaxPrice,'+
' bl.InvBillnotaxAmount,'+
' bl.InvBillPricec,'+
' bl.InvBillAmountc,'+
' bl.InvBillnotaxPricec,'+
' bl.InvBillnotaxAmountc '+
' from InvInBillline bl,Item i,Uom u '+
' where bl.InvBillid='+Bill_id+
' and bl.ItemCode=i.ItemCode '+
' and i.UomCode=u.UomCode '+
' Order by bl.InvBilllineno ');
open;
end;
AdoQry_RealOpQty.Connection :=AdoQry_tmp.Connection;
AdoQry_RealOpQty.Close;
AdoQry_RealOpQty.SQL.Text:='Select RealOpQty.InvBillId'
+',RealOpQty.InvBillLineNo'
+',RealOpQty.ItemCode'
+',Item2.ItemName'
+',RealOpQty.Ite_ItemCode'
+',RealOpQty.Ite_ItemCode+'' ''+Item1.ItemName As Ite_ItemName'
+',RealOpQty.RealOpQty'
+',RealOpQty.RealOPScrAp_Percent'
+',RealOpQty.RealOpQtyNew'
+',RealOpQty.RealOPScrAp_PercentNew'
+' From RealOpQty'
+' Left Join Item Item1 On RealOpQty.Ite_ItemCode=Item1.ItemCode'
+' Left Join Item Item2 On RealOpQty.ItemCode=Item2.ItemCode'
+' Where RealOpQty.InvBillId='+Bill_id;
AdoQry_RealOpQty.Open;
AdoQry_RealOpQty.Sort:='Ite_ItemCode,ItemCode';
end
else
begin
if AdoQry_Head.fieldbyname('currencyCode').asstring='00' then
with AdoQry_Body do
begin
Close;
sql.clear;
sql.Add('select '+
' bl.InvBillid,'+
' bl.InvBilllineno,'+
' bl.InvBillqty,'+
' bl.ItemCode,'+
' i.ItemName,'+
' u.UomName,'+
' bl.BilllineremArk,'+
' bl.Batchno,'+
' bl.InvBillPrice,'+
' bl.InvBillAmount,'+
' bl.InvBillnotaxPrice,'+
' bl.InvBillnotaxAmount '+
' from InvInBillline bl,Item i,Uom u '+
' where bl.InvBillid='+Bill_id+
' and bl.ItemCode=i.ItemCode '+
' and i.UomCode=u.UomCode '+
' Order by bl.InvBilllineno ');
open;
end
else
with AdoQry_Body do
begin
Close;
sql.clear;
sql.Add('select '+
' bl.InvBillid,'+
' bl.InvBilllineno,'+
' bl.InvBillqty,'+
' bl.ItemCode,'+
' i.ItemName,'+
' u.UomName,'+
' bl.BilllineremArk,'+
' bl.Batchno,'+
' bl.InvBillPricec as InvBillPrice,'+
' bl.InvBillAmountc as InvBillAmount,'+
' bl.InvBillnotaxPricec as InvBillnotaxPrice,'+
' bl.InvBillnotaxAmountc as InvBillnotaxAmount'+
' from InvInBillline bl,Item i,Uom u '+
' where bl.InvBillid='+Bill_id+
' and bl.ItemCode=i.ItemCode '+
' and i.UomCode=u.UomCode '+
' Order by bl.InvBilllineno ');
open;
end;
AdoQry_RealOpQty.Connection :=AdoQry_tmp.Connection;
AdoQry_RealOpQty.Close;
AdoQry_RealOpQty.SQL.Text:='Select RealOpQty.InvBillId'
+',RealOpQty.InvBillLineNo'
+',RealOpQty.ItemCode'
+',Item2.ItemName'
+',RealOpQty.Ite_ItemCode'
+',RealOpQty.Ite_ItemCode+'' ''+Item1.ItemName As Ite_ItemName'
+',RealOpQty.RealOpQty'
+',RealOpQty.RealOPScrAp_Percent'
+',RealOpQty.RealOpQtyNew'
+',RealOpQty.RealOPScrAp_PercentNew'
+' From RealOpQty'
+' Left Join Item Item1 On RealOpQty.Ite_ItemCode=Item1.ItemCode'
+' Left Join Item Item2 On RealOpQty.ItemCode=Item2.ItemCode'
+' Where RealOpQty.InvBillId='+Bill_id;
AdoQry_RealOpQty.Open;
AdoQry_RealOpQty.Sort:='Ite_ItemCode,ItemCode';
end;
with AdoQry_Head do
begin
lb_Vendortaxrate_Percent.Caption:='0'+'%';
if status<>'Add' then
begin
act_insertline.Enabled :=False;
act_Deleteline.Enabled :=False;
act_Modify.Enabled :=False;
if fieldbyname('InvBillno').asstring<>'' then
begin
InitCmBxText(Cmbbx_WhCode,fieldbyname('whCode').asstring);
//初始化货位
cmbbx_WhCodeChange(cmbbx_WhCode);
InitCmBxText(Cmbbx_WhPositionCode,fieldbyname('WhPositionCode').asstring);
InitCmBxText(Cmbbx_BillType2Code,fieldbyname('BillType2Code').asstring);
Extedt_OutCode.text:=fieldbyname('outCode').asstring;
medt_Date.text:=fieldbyname('InvBilldate').asstring;
lbl_OutName.Caption:=fieldbyname('outName').asstring;
Extedt_Billno.text:=fieldbyname('InvBillno').asstring;
Extedt_memo.text:=fieldbyname('InvBillremArk').asstring;
lb_Vendortaxrate_Percent.Caption:=fieldbyname('InvBilltaxrate').asstring+'%';
lbl_CurrencyName.Caption:=fieldbyname('currencyCode').asstring;
end
else
begin
InitCmBxText(Cmbbx_WhCode,BillwhCode);
//初始化货位
// cmbbx_WhCodeexit(cmbbx_WhCode);
InitCmBxText(Cmbbx_WhPositionCode,BillWhPositionCode);
InitCmBxText(Cmbbx_BillType2Code,BillBillType2Code);
Extedt_OutCode.text:=BilloutCode;
lbl_OutName.Caption:=BilloutName;
Extedt_Billno.text:=Billno;
Extedt_memo.text:=Billmemo;
medt_Date.text:=BillLoginDate;
end;
end
else
begin
InitCmBxText(Cmbbx_WhCode,fieldbyname('whCode').asstring);
//初始化货位
cmbbx_WhCodeChange(cmbbx_WhCode);
InitCmBxText(Cmbbx_WhPositionCode,fieldbyname('WhPositionCode').asstring);
InitCmBxText(Cmbbx_BillType2Code,fieldbyname('BillType2Code').asstring);
Extedt_OutCode.text:=fieldbyname('outCode').asstring;
medt_Date.text:=LoginDate;//fieldbyname('InvBilldate').asstring;
lbl_OutName.Caption:=fieldbyname('outName').asstring;
Extedt_Billno.text:='';
end;
end;
currencyCode:='00';
lbl_CurrencyName.Caption:='00 人民币';
Vendortaxrate_Percent:='0';
ExchRate:='1';
IoType:=0;
//单据类型
BillTypeCode:=Param1;
end;
procedure TFrm_Inv_NoOrderOpIn_B.SetStatus(CurrentStatus:String;var AnswerStatus,
EnableControls:String);
begin//指明当前状态,定义Enable=True的控件
inherited;
if CurrentStatus='Add' then
begin
AnswerStatus:='Add';
EnableControls:='Extedt_memo,';
end
else if CurrentStatus='ReadOnly' then
begin
AnswerStatus:='ReadOnly';
EnableControls:='';
end;
end;
procedure TFrm_Inv_NoOrderOpIn_B.SaveHeadData;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -