📄 csh510_02.pas.svn-base
字号:
inherited;
//对象编号
if not edtCust.Focused then edtCust.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryOrd150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtCust.Text:=qryOrd150.FieldByName('FCode').AsString;
edtCustName.Text:=qryOrd150.FieldByName('FName').AsString;
end;
end;
procedure TCsh510_02Form.sbPersonClick(Sender: TObject);
begin
inherited;
//录入人员
if not edtPerson.Focused then edtPerson.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryHrm150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtPerson.Text:=qryHrm150.FieldByName('H150_002').AsString;
edtPersonName.Text:=qryHrm150.FieldByName('H150_003').AsString;
end;
end;
procedure TCsh510_02Form.wwDBGrid1ColExit(Sender: TObject);
begin
inherited;
if wwDBGrid1.GetActiveField.FieldName='FAmount' then
begin
AIsChanged:=True;
CheckItem;
end;
end;
procedure TCsh510_02Form.wwDBGrid1Exit(Sender: TObject);
begin
inherited;
OnKeyDown:=AKeyEvent;
end;
procedure TCsh510_02Form.wwDBGrid1Enter(Sender: TObject);
begin
inherited;
OnKeyDown:=nil;
end;
procedure TCsh510_02Form.wwDBGrid1UpdateFooter(Sender: TObject);
var
ARecAmount,AAmount:Double;
begin
inherited;
//更新应收金额和已收金额字段信息
if not AIsChanged then Exit;
ARecAmount:=0;
AAmount:=0;
if adsCsh510B.State in [dsInsert,dsEdit] then adsCsh510B.Post;
ADODataSet1.Clone(adsCsh510B);
ADODataSet1.DisableControls;
ADODataSet1.First;
//ARecAmount 应收 AAmount 实收
while not ADODataSet1.Eof do
begin
ARecAmount:=ARecAmount+StrToFloatA(FloatToStrF(ADODataSet1.FieldByName('FRecAmount').AsFloat,ffNumber,18,2));
AAmount:=AAmount+StrToFloatA(FloatToStrF(ADODataSet1.FieldByName('FAmount').AsFloat,ffNumber,18,2));
ADODataSet1.Next;
end;
ADODataSet1.EnableControls;
wwDBGrid1.Columns[0].FooterValue:=GetDBString('COM00004002')+FloatToStrF(ADODataSet1.RecordCount,ffNumber,18,0); //记录总数
wwDBGrid1.ColumnByName('FRecAmount').FooterValue:=FloatToStrF(ARecAmount,ffNumber,18,2);
wwDBGrid1.ColumnByName('FAmount').FooterValue:=FloatToStrF(AAmount,ffNumber,18,2);
edtAmount.Text:=FloatToStrF(AAmount,ffNumber,18,2);
AIsChanged:=False;
end;
procedure TCsh510_02Form.adsCsh510BNewRecord(DataSet: TDataSet);
begin
inherited;
ABusy:=True;
ALastNo:=ALastNo+1;
adsCsh510B.FieldByName('FLineNo').Value:=ALastNo;
adsCsh510B.FieldByName('FAmount').Value:=0;
end;
procedure TCsh510_02Form.adsCsh510BAfterScroll(DataSet: TDataSet);
begin
inherited;
AIsChanged:=False;
end;
procedure TCsh510_02Form.adsCsh510BBeforePost(DataSet: TDataSet);
begin
inherited;
if ABusy then Exit;
end;
procedure TCsh510_02Form.CheckItem;
begin
if adsCsh510B.FieldByName('FRecAmount').AsFloat>0 then
begin
if adsCsh510B.FieldByName('FAmount').AsFloat>adsCsh510B.FieldByName('FRecAmount').AsFloat then
begin
ShowMsg('UMS10000697'); //实收金额不能大于应收金额
Abort;
end;
end;
end;
procedure TCsh510_02Form.edtPersonExit(Sender: TObject);
begin
inherited;
//录入人员
if trim(edtPerson.Text)='' then Exit;
if qryHrm150.Locate('H150_002',edtPerson.Text,[]) then
begin
edtPerson.Text:=qryHrm150.FieldByName('H150_002').AsString;
edtPersonName.Text:=qryHrm150.FieldByName('H150_003').AsString;
end else
begin
ShowMsg('UMS10000698'); //输入的录入人员无效
edtPerson.Text:='';
edtPersonName.Text:='';
edtPerson.SetFocus;
Abort;
end;
end;
procedure TCsh510_02Form.edtCustExit(Sender: TObject);
begin
inherited;
//对象编号
if trim(edtCust.Text)='' then Exit;
if qryOrd150.Locate('FCode',edtCust.Text,[]) then
begin
edtCust.Text:=qryOrd150.FieldByName('FCode').AsString;
edtCustName.Text:=qryOrd150.FieldByName('FName').AsString;
end else
begin
ShowMsg('UMS10000589'); //输入的对象编号无效,请重新输入
edtCust.Text:='';
edtCustName.Text:='';
edtCust.SetFocus;
Abort;
end;
end;
procedure TCsh510_02Form.cbObjChange(Sender: TObject);
begin
inherited;
if (not cbFrom.Enabled) and (cbObj.ItemIndex=2) then cbObj.ItemIndex:=1;
edtCust.Enabled:=cbObj.ItemIndex<>2;
sbCust.Enabled:=cbObj.ItemIndex<>2;
if edtCust.Enabled then edtCust.Color:=AEnableColor else edtCust.Color:=ADisableColor;
qryOrd150.Close;
qryOrd150.SQL.Clear;
case cbObj.ItemIndex of
0:qryOrd150.SQL.Add('select O150_001 as FNo,O150_002 as FCode,O150_003 as FName from ORD150 order by O150_002'); //客户
1:qryOrd150.SQL.Add('select H150_001 as FNo,H150_002 as FCode,H150_003 as FName from HRM150 order by H150_002'); //员工
2:qryOrd150.SQL.Add('select O150_001 as FNo,O150_002 as FCode,O150_003 as FName from ORD150 order by O150_002'); //空白
end;
qryOrd150.Open;
end;
procedure TCsh510_02Form.GetDetailData;
begin
adsCsh510B.DisableControls;
adsCsh510B.Close;
adsCsh510B.CreateDataSet;
qryCsh510B.Close;
qryCsh510B.SQL.Clear;
qryCsh510B.SQL.Add('select B.*');
qryCsh510B.SQL.Add(' from CSH510A A,CSH510B B');
qryCsh510B.SQL.Add(' where B.C510B_001=A.C510A_001 and C510B_001='+''''+edtCode.Text+'''');
qryCsh510B.SQL.Add(' order by C510B_002');
qryCsh510B.Open;
while not qryCsh510B.Eof do
begin
adsCsh510B.Append;
adsCsh510B.FieldByName('FCode').Value:=qryCsh510B.FieldByName('C510B_001').Value; //
adsCsh510B.FieldByName('FLineNo').Value:=qryCsh510B.FieldByName('C510B_002').Value; //
adsCsh510B.FieldByName('FInvCode').Value:=qryCsh510B.FieldByName('C510B_003').Value; //
adsCsh510B.FieldByName('FInvLineNo').Value:=qryCsh510B.FieldByName('C510B_004').Value; //
adsCsh510B.FieldByName('FRecAmount').Value:=qryCsh510B.FieldByName('C510B_005').Value; //
adsCsh510B.FieldByName('FAmount').Value:=qryCsh510B.FieldByName('C510B_006').Value; //
adsCsh510B.FieldByName('FClassNo').Value:=qryCsh510B.FieldByName('C510B_007').Value; //
adsCsh510B.FieldByName('FProjectNo').Value:=qryCsh510B.FieldByName('C510B_008').Value; //
adsCsh510B.FieldByName('FDeptNo').Value:=qryCsh510B.FieldByName('C510B_009').Value; //
adsCsh510B.FieldByName('FTasCode').Value:=qryCsh510B.FieldByName('C510B_010').Value; //
adsCsh510B.FieldByName('FRemark').Value:=qryCsh510B.FieldByName('C510B_011').Value; //
adsCsh510B.Post;
ALastNo:=qryCsh510B.FieldByName('C510B_002').AsInteger;
qryCsh510B.Next;
end;
ALastNo:=0;
adsCsh510B.EnableControls;
AIsChanged:=True;
wwDBGrid1UpdateFooter(wwDBGrid1);
SetDBGridA(cbFrom.ItemIndex);
end;
procedure TCsh510_02Form.cbTypeChange(Sender: TObject);
begin
inherited;
case cbType.ItemIndex of
0,2,4:setqryClass(0); //收入业务分类
1,3,5:setqryClass(1); //支出业务分类
end;
case cbType.ItemIndex of
0,1:cbFrom.Enabled:=True;
2,3,4,5:cbFrom.Enabled:=False;
end;
if cbFrom.Enabled then
cbFrom.Color:=AEnableColor
else
begin
cbFrom.ItemIndex:=0;
cbFrom.Color:=ADisableColor;
end;
cbFromChange(cbFrom);
end;
procedure TCsh510_02Form.FormCreate(Sender: TObject);
begin
inherited;
ATableName:='CSH510A';
AFieldName:='C510A_001';
qryClass.Open;
qryProject.Open;
qryDept.Open;
qryHrm150.Open;
qryCsh510B.Open;
adsCsh510B.Close;
adsCsh510B.CreateDataSet;
SetDBGridA(cbFrom.ItemIndex);
AKeyEvent:=OnKeyDown;
end;
procedure TCsh510_02Form.cbFromChange(Sender: TObject);
begin
inherited;
case cbFrom.ItemIndex of
0:cbObj.ItemIndex:=2; //手工输入
1:cbObj.ItemIndex:=0; //销售定单
2:cbObj.ItemIndex:=0; //采购定单
3:cbObj.ItemIndex:=2; //任务工单
end;
if cbFrom.ItemIndex in [1,2] then
begin
cbObj.Enabled:=False;
cbObj.Visible:=True;
end else if cbFrom.ItemIndex=3 then
begin
cbObj.Enabled:=False;
cbObj.Visible:=True;
end else
begin
lblObj.Visible:=True;
cbObj.Enabled:=True;
cbObj.Visible:=True;
end;
if cbObj.Enabled then cbObj.Color:=AEnableColor else cbObj.Color:=ADisableColor;
cbObjChange(cbObj);
adsCsh510B.Close;
adsCsh510B.CreateDataSet;
SetDBGridA(cbFrom.ItemIndex);
end;
function TCsh510_02Form.GetCurrNo(ACurrNo: Integer): Integer;
begin
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select C550_005 from CSH550 where C550_001='+IntToStr(ACurrNo));
SYSDM.qryQuery.Open;
Result:=SYSDM.qryQuery.FieldByName('C550_005').AsInteger;
end;
procedure TCsh510_02Form.SetDBGridA(AFrom: Integer);
begin
//根据来源类型,调整明细内容
//0:手工输入 1:销售定单 2:采购定单 3:任务工单 True
if AFrom=0 then
begin
adsCsh510B.FieldByName('FInvCode').Visible:=False;
adsCsh510B.FieldByName('FInvLineNo').Visible:=False;
adsCsh510B.FieldByName('FTasCode').Visible:=False;
adsCsh510B.FieldByName('FRecAmount').Visible:=True;
adsCsh510B.FieldByName('FAmount').Visible:=True;
adsCsh510B.FieldByName('FRemark').Visible:=True;
adsCsh510B.FieldByName('FCode').Visible:=False;
adsCsh510B.FieldByName('FLineNo').Visible:=True;
adsCsh510B.FieldByName('FClassNo').Visible:=False;
adsCsh510B.FieldByName('FProjectNo').Visible:=False;
adsCsh510B.FieldByName('FDeptNo').Visible:=False;
adsCsh510B.FieldByName('FProject').Visible:=True;
adsCsh510B.FieldByName('FDept').Visible:=True;
adsCsh510B.FieldByName('FClass').Visible:=True;
end;
if (AFrom=1) or (AFrom=2) then
begin
adsCsh510B.FieldByName('FInvCode').Visible:=True;
adsCsh510B.FieldByName('FInvLineNo').Visible:=True;
adsCsh510B.FieldByName('FTasCode').Visible:=False;
adsCsh510B.FieldByName('FRecAmount').Visible:=True;
adsCsh510B.FieldByName('FAmount').Visible:=True;
adsCsh510B.FieldByName('FRemark').Visible:=True;
adsCsh510B.FieldByName('FCode').Visible:=True;
adsCsh510B.FieldByName('FLineNo').Visible:=False;
adsCsh510B.FieldByName('FClassNo').Visible:=False;
adsCsh510B.FieldByName('FProjectNo').Visible:=False;
adsCsh510B.FieldByName('FDeptNo').Visible:=False;
adsCsh510B.FieldByName('FProject').Visible:=True;
adsCsh510B.FieldByName('FDept').Visible:=True;
adsCsh510B.FieldByName('FClass').Visible:=True;
end;
if AFrom=3 then
begin
adsCsh510B.FieldByName('FInvCode').Visible:=False;
adsCsh510B.FieldByName('FInvLineNo').Visible:=False;
adsCsh510B.FieldByName('FTasCode').Visible:=True;
adsCsh510B.FieldByName('FRecAmount').Visible:=False;
adsCsh510B.FieldByName('FAmount').Visible:=True;
adsCsh510B.FieldByName('FRemark').Visible:=True;
adsCsh510B.FieldByName('FCode').Visible:=False;
adsCsh510B.FieldByName('FLineNo').Visible:=False;
adsCsh510B.FieldByName('FClassNo').Visible:=False;
adsCsh510B.FieldByName('FProjectNo').Visible:=False;
adsCsh510B.FieldByName('FDeptNo').Visible:=False;
adsCsh510B.FieldByName('FProject').Visible:=True;
adsCsh510B.FieldByName('FDept').Visible:=True;
adsCsh510B.FieldByName('FClass').Visible:=True;
end;
end;
procedure TCsh510_02Form.setqryClass(AFlag: Integer);
begin
qryClass.Close;
qryClass.SQL.Clear;
qryClass.SQL.Add('select * from CSH140 where C140_003='+inttostr(AFlag));
qryClass.Open;
end;
initialization
RegisterClass(TCsh510_02Form);
finalization
UnRegisterClass(TCsh510_02Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -