ad_enter_assetcardusedept.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 213 行
PAS
213 行
unit Ad_Enter_AssetCardUseDept;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Body, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
ExtCtrls, ComCtrls, ToolWin, StdCtrls, Mask, ExtEdit, linkedit,Ad_Enter_AssetCard_D,
jpeg;
Type
TFrm_Ad_Enter_AssetCardUseDept = Class(TFrm_Base_Entry_Body)
Lab_ShipAddressName: TLabel;
Lab_SaleTermName: TLabel;
Lab_CurrencyName: TLabel;
Lab_SaleDeptName: TLabel;
Lab_CustomerName: TLabel;
Lab_SaleEmployeeName: TLabel;
Label2: TLabel;
Label1: TLabel;
Edt_AssetCode: TEdit;
Label3: TLabel;
EDT_AssetName: TEdit;
Label24: TLabel;
EDT_DepositaryCode: TLinkEdit;
EDT_DepositaryName: TExtEdit;
Label15: TLabel;
MEDT_InAccountDate: TMaskEdit;
Label25: TLabel;
MEDT_StartUseDate: TMaskEdit;
Label26: TLabel;
EDT_AdChangeTypeCode: TLinkEdit;
EDT_AdChangeTypeName: TExtEdit;
Label27: TLabel;
EDT_UseStatusCode: TLinkEdit;
EDT_UseStatusName: TExtEdit;
Label18: TLabel;
EDT_FirstFAmount: TExtEdit;
Label11: TLabel;
CMBX_DepreciationWay: TComboBox;
Label19: TLabel;
EDT_IntendingPeriod: TExtEdit;
AdoQry_BodyAssetCode: TStringField;
AdoQry_BodyDeptCode: TStringField;
AdoQry_BodyAssignRate: TFloatField;
AdoQry_BodyRemArk: TStringField;
AdoQry_BodyDeptName: TStringField;
AdoQry_BodykmCode: TStringField;
AdoQry_BodykmName: TStringField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Act_SaveExecute(Sender: TObject);
private
AssetCard_D:TFrm_Ad_Enter_AssetCard_D;
procedure SaveBodyInfo;
{ Private declarations }
public
procedure init(Sender:TObject;AdOConnection:TAdOConnection;HeadText:Array of String;isQuery:Boolean);
{ Public declarations }
end;
var
Frm_Ad_Enter_AssetCardUseDept: TFrm_Ad_Enter_AssetCardUseDept;
implementation
uses Sys_Global, Ad_Enter_AssetCardUseDept_D;
{$R *.DFM}
{ TFrm_Ad_Enter_AssetCardUseDept }
procedure TFrm_Ad_Enter_AssetCardUseDept.init(Sender:TObject;AdOConnection:TAdOConnection;HeadText: Array of String;isQuery:Boolean);
var
i:Integer;
begin
SetDBConnect(AdOConnection);
AdoQry_Body.Connection:=AdOConnection;
AdoQry_Tmp.Connection:=AdOConnection;
Edt_AssetCode.Text:=HeadText[0];
EDT_AssetName.Text:=HeadText[1];
MEDT_InAccountDate.Text:=HeadText[2];
MEDT_StartUseDate.Text:=HeadText[3];
CMBX_DepreciationWay.ItemIndex:=StrToInt(HeadText[4]);
EDT_FirstFAmount.Text:=HeadText[5];
EDT_IntendingPeriod.Text:=HeadText[6];
EDT_DepositaryCode.Text:=HeadText[7];
EDT_DepositaryName.Text:=HeadText[8];
EDT_AdChangeTypeCode.Text:=HeadText[9];
EDT_AdChangeTypeName.Text:=HeadText[10];
EDT_UseStatusCode.Text:=HeadText[11];
EDT_UseStatusName.Text:=HeadText[12];
With AdoQry_Body Do
begin
Close;
Sql.clear;
Sql.Text:='select top 0 Ad_UseDept.AssetCode,Ad_UseDept.DeptCode,Dept.DeptName,'
+' Ad_useDept.kmCode,Gl_AccountSubject.kmName,Ad_UseDept.AssignRate,Ad_UseDept.RemArk '+
'from Ad_UseDept Left Join Dept On Ad_UseDept.DeptCode=Dept.DeptCode '+
' left join Gl_AccountSubject on Ad_useDept.kmCode=Gl_AccountSubject.kmCode '+
'where Ad_UseDept.AssetCode='''+Edt_AssetCode.Text+''' ';
Open;
end;
AssetCard_D:=TFrm_Ad_Enter_AssetCard_D(Sender);
If AssetCard_D.DeptInfo.RecordCount>0 Then
begin
For i:=0 to AdoQry_Body.RecordCount-1 do AdoQry_Body.Delete;
with AdoQry_Body do
begin
For i:=0 to AssetCard_D.DeptInfo.RecordCount-1 do
begin
AdoQry_Body.Append;
fieldbyname('AssetCode').AsString:=AssetCard_D.DeptInfo.AssetCode[i];
fieldbyname('DeptCode').AsString:=AssetCard_D.DeptInfo.DeptCode[i];
fieldbyname('DeptName').AsString:=AssetCard_D.DeptInfo.DeptName[i];
fieldbyname('kmCode').AsString:=AssetCard_D.DeptInfo.kmCode[i];
fieldbyname('kmName').AsString:=AssetCard_D.DeptInfo.kmName[i];
fieldbyname('AssignRate').AsString:=AssetCard_D.DeptInfo.AssignRate[i];
fieldbyname('RemArk').AsString:=AssetCard_D.DeptInfo.RemArk[i];
Post;
end;
end;
end;
Frm_Entry_Detail:=TFrm_Ad_Enter_AssetCardUseDept_D.Create(Application);
If isQuery Then
begin
TlBtn_InsertLine.Visible:=False;
TlBtn_Modify.Visible:=False;
TlBtn_DeleteLine.Visible:=False;
TlBtn_InsertLine.Enabled:=False;
TlBtn_Modify.Enabled:=False;
TlBtn_DeleteLine.Enabled:=False;
ToolButton2.Enabled:=False;
ToolButton2.Visible:=False;
DBGridEh.OnDblClick:=nil;
end;
end;
procedure TFrm_Ad_Enter_AssetCardUseDept.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if(Act_Save.Enabled)then
begin
if(DispInfo('数据有改动,需要保存吗?',2)='y')then
begin
SaveBodyInfo;
Self.ModalResult:=mrOk;
end
else
begin
if(AdoQry_Body.State in [dsInsert,dsEdit])then
AdoQry_Body.Cancel;
end;
end
else
begin
Self.ModalResult:=mrOk;
end;
end;
procedure TFrm_Ad_Enter_AssetCardUseDept.SaveBodyInfo;
var
i:Integer;
Rate:Real;
begin
i:=0;
IF AssetCard_D.DeptInfo.RecordCount>0 Then
begin
{
For i:=0 to AssetCard_D.DeptInfo.RecordCount-1 do
begin
AssetCard_D.DeptInfo.AssetCode[i]:='';
AssetCard_D.DeptInfo.DeptCode[i]:='';
AssetCard_D.DeptInfo.DeptName[i]:='';
AssetCard_D.DeptInfo.AssignRate[i]:='0';
AssetCard_D.DeptInfo.RemArk[i]:='';
end;}
AssetCard_D.DeptInfo.RecordCount:=0;
// i:=0;
end;
with AdoQry_Body do
begin
First;
while not Eof do
begin
AssetCard_D.DeptInfo.AssetCode[i]:=Edt_AssetCode.Text;
AssetCard_D.DeptInfo.DeptCode[i]:=fieldbyname('DeptCode').AsString;
AssetCard_D.DeptInfo.DeptName[i]:=fieldbyname('DeptName').AsString;
AssetCard_D.DeptInfo.kmCode[i]:=fieldbyname('kmCode').AsString;
AssetCard_D.DeptInfo.kmName[i]:=fieldbyname('kmName').AsString;
AssetCard_D.DeptInfo.AssignRate[i]:=fieldbyname('AssignRate').AsString;
AssetCard_D.DeptInfo.RemArk[i]:=fieldbyname('RemArk').AsString;
Rate:=Rate+fieldbyname('AssignRate').AsFloat;
Next;
i:=i+1;
end;
If Rate<>100 Then
begin
DispInfo('分配率不等于100%,不能保存!',3);
Abort;
end;
AssetCard_D.DeptInfo.RecordCount:=i;
end;
end;
procedure TFrm_Ad_Enter_AssetCardUseDept.Act_SaveExecute(Sender: TObject);
begin
SaveBodyInfo;
DispInfo('数据保存成功',3);
Act_Save.Enabled:=False;
Self.ModalResult:=mrOk;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?