📄 ar_enter_startbalance_d.pas
字号:
unit Ar_Enter_StArtBalance_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, Db, AdODB, ExtCtrls, StdCtrls, ExtEdit, Mask;
Type
TFrm_Ar_Enter_StArtBalance_D = Class(TFrm_Base_Detail)
Label12: TLabel;
edt_remArk: TEdit;
Label1: TLabel;
edt_CustomerCode: TEdit;
Label2: TLabel;
edt_CustomerName: TEdit;
Label3: TLabel;
medt_Month: TMaskEdit;
Label4: TLabel;
edt_Amount: TEdit;
Label5: TLabel;
edt_NoAmount: TEdit;
procedure btn_okClick(Sender: TObject);
procedure edt_CustomerCodeExit(Sender: TObject);
private
{ Private declarations }
public
function getserverdate:string;
procedure InitControls; Override;
procedure SaveData;Override;
procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
{ Public declarations }
end;
var
Frm_Ar_Enter_StArtBalance_D: TFrm_Ar_Enter_StArtBalance_D;
Balanceid:integer;
implementation
uses Sys_Global;
{$R *.DFM}
{ TFrm_Mrp_Enter_MsItemAssign_D }
procedure TFrm_Ar_Enter_StArtBalance_D.SaveData;
var tmpPmCode:integer;
begin
inherited;
if (Add) then
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('insert into sa_ArBalance(customerCode,BalanceYearMonth,InvoiceAmount,NoInvoiceAmount,remArk,createEmployeeCode,createdatetime,edItEmployeeCode,editdatetime) '
+' Values('
+ quotedstr(edt_CustomerCode.Text)+','
+quotedstr(medt_Month.text)+','
+Trim(edt_Amount.Text)+','
+Trim(edt_NoAmount.text)+','
+quotedstr(edt_remArk.text)+','
+quotedstr(userCode)+','
+quotedstr(getserverdate)+','
+'null,null'
+')');
Prepared;
execsql;
Close;
sql.Text:='select @@identity as Balanceid';
open;
Balanceid:=fieldbyname('Balanceid').asinteger;
end
else
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('update sa_ArBalance '
+' set InvoiceAmount='+Trim(edt_Amount.Text)+','
+'NoInvoiceAmount='+Trim(edt_NoAmount.text)+','
+' edItEmployeeCode='+quotedstr(userCode)+','
+' editdatetime='+quotedstr(getserverdate)+','
+' remArk='+quotedstr(edt_remArk.text)
+' where customerCode='+quotedstr(AdoQry_Maintain.fieldbyname('customerCode').asstring)
+' and BalanceYearMonth='+quotedstr(medt_Month.text));
Prepared;
execsql;
end;
with AdoQry_Maintain do
begin
fieldbyname('customerCode').AsString:=Trim(edt_CustomerCode.Text);
fieldbyname('customerName').asstring:=Trim(edt_CustomerName.text);
fieldbyname('BalanceYearMonth').asstring:=Trim(medt_Month.text);
fieldbyname('InvoiceAmount').asfloat:=strtofloat(Trim(edt_Amount.text));
fieldbyname('NoInvoiceAmount').asfloat:=strtofloat(Trim(edt_NoAmount.text));
fieldbyname('remArk').asstring:=edt_remArk.Text;
Post;
end;
end;
procedure TFrm_Ar_Enter_StArtBalance_D.InitControls;
begin
if (Add) then
begin
SetFocus_Control:=edt_CustomerCode;
edt_CustomerCode.Enabled:=True;
edt_CustomerName.Enabled:=True;
medt_Month.Enabled:=True;
end
else
SetFocus_Control:=edt_Amount;
inherited;
with AdoQry_Maintain do
begin
edt_CustomerCode.Text:=fieldbyname('customerCode').AsString;
edt_CustomerName.text:=fieldbyname('customerName').asstring;
medt_Month.Text:=fieldbyname('BalanceYearMonth').asstring;
edt_Amount.Text:=floattostr(fieldbyname('InvoiceAmount').Asfloat);
edt_NoAmount.Text:=floattostr(fieldbyname('NoInvoiceAmount').Asfloat);
edt_remArk.Text:=fieldbyname('remArk').asstring;
end;
if not Add then
begin
edt_CustomerCode.Enabled:=False;
edt_CustomerName.Enabled:=False;
medt_Month.Enabled:=False;
end;
end;
function TFrm_Ar_Enter_StArtBalance_D.getserverdate: string;
var AdoQry:TAdoQuery;
begin
Result:='';
AdoQry:=TAdoQuery.Create(nil);
AdoQry.Connection:=dbconnect;
try
with AdoQry do
begin
Close;
sql.clear;
sql.Add('select getdate() as serverdate');
open;
Result:=fieldbyname('serverdate').asstring;
end;
finally
AdoQry.Free;
end;
end;
procedure TFrm_Ar_Enter_StArtBalance_D.SetStatus(CurrentStatus: String;
var EnableControls: String);
begin
inherited;
// if Currentstatus='Query' then
// enablecontrols:='Extedt_rate,Extedt_qty,Extedt_PmCode,';
end;
procedure TFrm_Ar_Enter_StArtBalance_D.btn_okClick(Sender: TObject);
var sqltext:string;
begin
sqltext:='select * from customer where customerCode='+quotedstr(Trim(edt_CustomerCode.text));
Executesql(AdoQry_tmp,sqltext,0);
if AdoQry_tmp.RecordCount=0 then
begin
DispInfo('客户代码错误!',3);
edt_CustomerCode.SetFocus;
abort;
end;
if status='Add' then
begin
sqltext:='select * from sa_ArBalance where customerCode='+quotedstr(Trim(edt_CustomerCode.text))+' and BalanceYearMonth='+quotedstr(medt_Month.text);
Executesql(AdoQry_tmp,sqltext,0);
if AdoQry_tmp.RecordCount>0 then
begin
DispInfo('已存在该客户该月份的期初余额设置!',3);
edt_CustomerCode.SetFocus;
abort;
end;
end;
inherited;
end;
procedure TFrm_Ar_Enter_StArtBalance_D.edt_CustomerCodeExit(
Sender: TObject);
var sqltext:string;
begin
inherited;
sqltext:='select customerName from customer where customerCode='+quotedstr(Trim(edt_CustomerCode.text));
Executesql(AdoQry_tmp,sqltext,0);
edt_CustomerName.Text:=AdoQry_tmp.fieldbyname('customerName').asstring;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -