csh510_02.pas.svn-base
来自「一个用Delphi开发的ERP软件」· SVN-BASE 代码 · 共 996 行 · 第 1/3 页
SVN-BASE
996 行
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;
edtWork.Visible:=False;
sbWork.Visible:=False;
end else if cbFrom.ItemIndex=3 then
begin
lblObj.Caption:=GetDBString('CSH51002016'); //任务工单
cbObj.Enabled:=False;
cbObj.Visible:=False;
edtWork.Visible:=True;
sbWork.Visible:=True;
end else
begin
lblObj.Caption:=GetDBString('CSH51002005'); //对象类型
cbObj.Enabled:=True;
cbObj.Visible:=True;
edtWork.Visible:=False;
sbWork.Visible:=False;
end;
if cbObj.Enabled then cbObj.Color:=AEnableColor else cbObj.Color:=ADisableColor;
cbObjChange(cbObj);
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.bbtnBackClick(Sender: TObject);
begin
inherited;
//上一步
PageControl1.ActivePageIndex:=0;
bbtnBack.Enabled:=False;
bbtnNext.Visible:=True;
bbtnSave.Visible:=False;
end;
procedure TCsh510_02Form.bbtnNextClick(Sender: TObject);
var
ATypeNo:Integer;
begin
inherited;
//下一步
//检验输入的数据
CheckData;
//取得相关的来源单据信息
adsCsh510.Close;
adsCsh510.CreateDataSet;
qryQuery.Close;
qryQuery.SQL.Clear;
qryQuery.SQL.Add('select A510B_001 as FCode,A510B_002 as FLineNo,A510B_003 as FOrder,A510B_004 as FOrderLine,');
qryQuery.SQL.Add(' I150_002 as FItemID,I150_003 as FItemName,I150_004 as FItemSpec,I140_003 as FUnitName,');
qryQuery.SQL.Add(' A510B_010-A510B_012 as FTotAmt,0 as FFactAmt');
qryQuery.SQL.Add('from ACR510A,ACR510B,ORD510B,INV150,INV140');
qryQuery.SQL.Add('where A510A_001=A510B_001 and A510B_003=O510B_001 and A510B_004=O510B_002 and O510B_003=I150_001 and');
qryQuery.SQL.Add(' O510B_004=I140_001 and A510A_002=0 and A510A_003 in (0,2) and A510A_012='+qryOrd150.FieldByName('FNo').AsString);
qryQuery.Open;
while not qryQuery.Eof do
begin
adsCsh510.Append;
adsCsh510.FieldByName('FCode').Value:=qryQuery.FieldByName('FCode').Value;
adsCsh510.FieldByName('FLineNo').Value:=qryQuery.FieldByName('FLineNo').Value;
adsCsh510.FieldByName('FOrder').Value:=qryQuery.FieldByName('FOrder').Value;
adsCsh510.FieldByName('FOrderLine').Value:=qryQuery.FieldByName('FOrderLine').Value;
adsCsh510.FieldByName('FItemID').Value:=qryQuery.FieldByName('FItemID').Value;
adsCsh510.FieldByName('FItemName').Value:=qryQuery.FieldByName('FItemName').Value;
adsCsh510.FieldByName('FItemSpec').Value:=qryQuery.FieldByName('FItemSpec').Value;
adsCsh510.FieldByName('FUnitName').Value:=qryQuery.FieldByName('FUnitName').Value;
adsCsh510.FieldByName('FTotAmt').Value:=qryQuery.FieldByName('FTotAmt').Value;
adsCsh510.FieldByName('FFactAmt').Value:=qryQuery.FieldByName('FFactAmt').Value;
adsCsh510.Post;
qryQuery.Next;
end;
//收支类型(1=收入单,2=支出单,3=转帐单,4=借入单,5=借出单,6=还入单,7=还出单)
ATypeNo:=1;
case cbType.ItemIndex of
0:ATypeNo:=1;
1:ATypeNo:=2;
2:ATypeNo:=4;
3:ATypeNo:=5;
4:ATypeNo:=6;
5:ATypeNo:=7;
end;
qryQuery.Close;
qryQuery.SQL.Clear;
qryQuery.SQL.Add('select A510B_001 as FCode,A510B_002 as FLineNo,A510B_003 as FOrder,A510B_004 as FOrderLine,');
qryQuery.SQL.Add(' I150_002 as FItemID,I150_003 as FItemName,I150_004 as FItemSpec,I140_003 as FUnitName,');
qryQuery.SQL.Add(' C510_007 as FTotAmt,C510_008 as FFactAmt');
qryQuery.SQL.Add('from CSH510,ACR510B,ORD510B,INV150,INV140');
qryQuery.SQL.Add('where C510_005=A510B_001 and C510_006=A510B_002 and A510B_003=O510B_001 and A510B_004=O510B_002 and O510B_003=I150_001 and O510B_004=I140_001 and C510_001='+IntToStr(AccNo)+' and C510_002='+IntToStr(ATypeNo)+' and C510_003='+GetDateString(edtDate.Date)+' and C510_004='+edtBillNo.Text);
qryQuery.Open;
while not qryQuery.Eof do
begin
if adsCsh510.Locate('FCode;FLineNo',VarArrayOf([qryQuery.FieldByName('FCode').Value,qryQuery.FieldByName('FLineNo').Value]),[]) then adsCsh510.Edit else adsCsh510.Append;
adsCsh510.FieldByName('FCode').Value:=qryQuery.FieldByName('FCode').Value;
adsCsh510.FieldByName('FLineNo').Value:=qryQuery.FieldByName('FLineNo').Value;
adsCsh510.FieldByName('FOrder').Value:=qryQuery.FieldByName('FOrder').Value;
adsCsh510.FieldByName('FOrderLine').Value:=qryQuery.FieldByName('FOrderLine').Value;
adsCsh510.FieldByName('FItemID').Value:=qryQuery.FieldByName('FItemID').Value;
adsCsh510.FieldByName('FItemName').Value:=qryQuery.FieldByName('FItemName').Value;
adsCsh510.FieldByName('FItemSpec').Value:=qryQuery.FieldByName('FItemSpec').Value;
adsCsh510.FieldByName('FUnitName').Value:=qryQuery.FieldByName('FUnitName').Value;
adsCsh510.FieldByName('FTotAmt').Value:=qryQuery.FieldByName('FTotAmt').Value;
adsCsh510.FieldByName('FFactAmt').Value:=qryQuery.FieldByName('FFactAmt').Value;
adsCsh510.Post;
qryQuery.Next;
end;
PageControl1.ActivePageIndex:=1;
bbtnBack.Enabled:=True;
bbtnNext.Visible:=False;
bbtnSave.Visible:=True;
end;
procedure TCsh510_02Form.cbTypeChange(Sender: TObject);
begin
inherited;
qryCsh140.Close;
qryCsh140.SQL.Clear;
case cbType.ItemIndex of
0,2,4:qryCsh140.SQL.Add('select * from CSH140 where C140_003=0'); //收入
1,3,5:qryCsh140.SQL.Add('select * from CSH140 where C140_003=1'); //支出
end;
qryCsh140.Open;
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;
cbObj.ItemIndex:=1;
end;
cbFromChange(cbFrom);
case cbType.ItemIndex of
0,1:cbObj.ItemIndex:=0;
2,3,4,5:cbObj.ItemIndex:=1;
end;
cbObjChange(cbObj);
end;
procedure TCsh510_02Form.SetEmptyInit;
begin
cbType.ItemIndex:=0;
cbTypeChange(cbType);
edtCode.Text:='';
cbAcct.ItemIndex:=0;
cbFrom.ItemIndex:=0;
cbFromChange(cbFrom);
cbObj.ItemIndex:=2;
cbObjChange(cbObj);
cbClass.Text:='';
edtCust.Text:='';
edtCustName.Text:='';
edtRemark.Text:='';
cbItem.Text:='';
cbDept.Text:='';
edtDate.Date:=GetServerDate;
edtBillNo.Text:=GetBillNo(edtDate.Date);
edtAmount.Text:='0';
AOldAccNo:=0;
AOldDate:=0;
AOldBillNo:=0;
AOldAmount:=0;
AOldTasks:='';
AOldObjType:=0;
AOldCurrNo:=0;
end;
procedure TCsh510_02Form.qryCsh500AfterScroll(DataSet: TDataSet);
begin
inherited;
if qryCsh500.State in [dsInsert,dsEdit] then Exit;
if (qryCsh500.IsEmpty) or (AMode='ADD') then
begin
SetEmptyInit; //初始化
Exit;
end;
//收支类型(1=收入单,2=支出单,3=转帐单,4=借入单,5=借出单,6=还入单,7=还出单)
case qryCsh500.FieldByName('C500_002').AsInteger of
1:cbType.ItemIndex:=0;
2:cbType.ItemIndex:=1;
4:cbType.ItemIndex:=2;
5:cbType.ItemIndex:=3;
6:cbType.ItemIndex:=4;
7:cbType.ItemIndex:=5;
end;
cbTypeChange(cbType);
edtDate.Date:=qryCsh500.FieldByName('C500_003').Value; //日期
edtBillNo.Text:=qryCsh500.FieldByName('C500_004').AsString; //单据编号
AOldCustNo:=0;
if edtCust.Enabled then
begin
if qryOrd150.Locate('FNo',qryCsh500.FieldByName('C500_005').Value,[]) then
begin
edtCust.Text:=qryOrd150.FieldByName('FCode').AsString; //编号
edtCustName.Text:=qryOrd150.FieldByName('FName').AsString; //名称
edtCust1.Text:=qryOrd150.FieldByName('FCode').AsString; //编号
edtCustName1.Text:=qryOrd150.FieldByName('FName').AsString; //名称
AOldCustNo:=qryOrd150.FieldByName('FNo').AsInteger;
end else
begin
edtCust.Text:='';
edtCustName.Text:='';
edtCust1.Text:='';
edtCustName1.Text:='';
AOldCustNo:=0;
end;
end;
cbClass.Text:=qryCsh500.FieldByName('C140_002').AsString; //业务分类
edtAmount.Text:=qryCsh500.FieldByName('C500_007').AsString; //金额
edtRemark.Text:=qryCsh500.FieldByName('C500_009').AsString; //摘要
if qryCsh150.Locate('C150_001',qryCsh500.FieldByName('C500_011').Value,[]) then
cbItem.Text:=qryCsh150.FieldByName('C150_002').AsString //项目
else
cbItem.Text:='';
if qryHrm100.Locate('H100_001',qryCsh500.FieldByName('C500_012').Value,[]) then
cbDept.Text:=qryHrm100.FieldByName('H100_002').AsString //部门
else
cbDept.Text:='';
cbFrom.ItemIndex:=qryCsh500.FieldByName('C500_016').Value; //来源类型(0=手工输入,1=销售定单,2=采购定单,3=任务工单)
cbFromChange(cbFrom);
cbObj.ItemIndex:=qryCsh500.FieldByName('C500_015').Value; //对象类型(0=客户,1=员工,2=空白)
cbObjChange(cbObj);
edtCode.Text:=qryCsh500.FieldByName('C500_017').Value; //原始单号
AOldAccNo:=qryCsh500.FieldByName('C500_001').Value;
AOldDate:=qryCsh500.FieldByName('C500_003').Value;
AOldBillNo:=qryCsh500.FieldByName('C500_004').Value;
AOldAmount:=qryCsh500.FieldByName('C500_007').Value;
AOldTasks:=qryCsh500.FieldByName('C500_018').Value;
case cbObj.ItemIndex of
1:AOldObjType:=0;
2:AOldObjType:=1;
end;
AOldCurrNo:=GetValue('select C550_005 from CSH550 where C550_001='+IntToStr(AOldAccNo));
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;
edtCust1.Text:=qryOrd150.FieldByName('FCode').AsString;
edtCustName1.Text:=qryOrd150.FieldByName('FName').AsString;
end else
begin
ShowMsg('UMS10000589'); //输入的对象编号无效,请重新输入
edtCust.SetFocus;
Abort;
end;
end;
procedure TCsh510_02Form.sbWorkClick(Sender: TObject);
begin
inherited;
//任务工单
if not edtWork.Focused then edtWork.SetFocus;
qryTas520.Close;
qryTas520.Open;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryTas520,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtWork.Text:=qryTas520.FieldByName('T520_001').AsString;
end;
end;
procedure TCsh510_02Form.edtWorkExit(Sender: TObject);
begin
inherited;
//任务工单
if trim(edtWork.Text)='' then Exit;
qryTas520.Close;
qryTas520.Open;
if qryTas520.Locate('T520_001',edtWork.Text,[]) then
begin
edtWork.Text:=qryTas520.FieldByName('T520_001').AsString;
end else
begin
ShowMsg('UMS10000290'); //输入的工单编号无效
edtWork.SetFocus;
Abort;
end;
end;
procedure TCsh510_02Form.dxDBGrid1ColumnMoved(Sender: TObject; FromIndex,
ToIndex: Integer);
begin
inherited;
if adsCsh510.State in [dsEdit] then adsCsh510.Post;
end;
initialization
RegisterClass(TCsh510_02Form);
finalization
UnRegisterClass(TCsh510_02Form);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?