⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csh510_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
  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 + -