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

📄 ord400_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
procedure TOrd400_01Form.ByItem(AFromDate, AToDate: TDateTime);  //按产品
begin
  //销售数量和销售金额统计  按销售日期
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select I150_001 as FNo,''[''+I150_002+'']''+I150_003 as FName,I150_001 as FParent,sum(O510B_005) as FQty,sum(O510B_013) as FAmount');
  ADOQuery1.SQL.Add('from ORD510A,ORD510B,INV150');
  ADOQuery1.SQL.Add('where O510A_001=O510B_001 and O510B_003=I150_001 and');
  ADOQuery1.SQL.Add('  O510A_003>='+GetDateString(AFromDate)+' and O510A_003<='+GetDateString(AToDate));
  ADOQuery1.SQL.Add('group by I150_001,''[''+I150_002+'']''+I150_003,I150_001');
  ADOQuery1.SQL.Add('order by ''[''+I150_002+'']''+I150_003');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    ADODataSet1.Append;
    ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('FNo').Value;
    ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('FName').Value;
    ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('FParent').Value;
    ADODataSet1.FieldByName('FQty').Value:=ADOQuery1.FieldByName('FQty').Value;
    ADODataSet1.FieldByName('FAmount').Value:=ADOQuery1.FieldByName('FAmount').Value;
    ADODataSet1.Post;
    ADOQuery1.Next;
  end;
end;

procedure TOrd400_01Form.ByItemClass(AFromDate,AToDate:TDateTime);  //按産品類別
var
  ABookmark:TBookmark;
  AValue,AParentNo:Integer;
begin
  //销售数量和销售金额统计  按销售日期
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select I120_001 as FNo,''[''+I120_002+'']''+I120_003 as FName,I120_004 as FParent,sum(O510B_005) as FQty,sum(O510B_013) as FAmount');
  ADOQuery1.SQL.Add('from ORD510A,ORD510B,INV150,INV120');
  ADOQuery1.SQL.Add('where O510A_001=O510B_001 and O510B_003=I150_001 and I150_005=I120_001 and');
  ADOQuery1.SQL.Add('  O510A_003>='+GetDateString(AFromDate)+' and O510A_003<='+GetDateString(AToDate));
  ADOQuery1.SQL.Add('group by I120_001,''[''+I120_002+'']''+I120_003,I120_004');
  ADOQuery1.SQL.Add('order by ''[''+I120_002+'']''+I120_003');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    ADODataSet1.Append;
    ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('FNo').Value;
    ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('FName').Value;
    ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('FParent').Value;
    ADODataSet1.FieldByName('FQty').Value:=ADOQuery1.FieldByName('FQty').Value;
    ADODataSet1.FieldByName('FAmount').Value:=ADOQuery1.FieldByName('FAmount').Value;
    ADODataSet1.Post;
    ADOQuery1.Next;
  end;

  //累加數量到上級類別
  ADODataSet1.First;
  while not ADODataSet1.Eof do
  begin
    ABookmark:=ADODataSet1.GetBookmark;
    AParentNo:=ADODataSet1.FieldByName('FParent').Value;
    if AParentNo<>0 then
    begin
      AValue:=ADODataSet1.FieldByName('FQty').AsInteger;
      UpdateParent(AParentNo,AValue,ADODataSet1,'FQty','INV120','I120_001','''[''+I120_002+'']''+I120_003','I120_004');
      ADODataSet1.GotoBookmark(ABookmark);
      AValue:=ADODataSet1.FieldByName('FAmount').AsInteger;
      UpdateParent(AParentNo,AValue,ADODataSet1,'FAmount','INV120','I120_001','''[''+I120_002+'']''+I120_003','I120_004');
    end;
    ADODataSet1.GotoBookmark(ABookmark);
    ADODataSet1.FreeBookmark(ABookmark);
    ADODataSet1.Next;
  end;
end;

procedure TOrd400_01Form.BySeller(AFromDate, AToDate: TDateTime);     //按销售员
begin
  //销售数量和销售金额统计  按销售日期
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select H150_001 as FNo,''[''+H150_002+'']''+H150_003 as FName,H150_001 as FParent,sum(O510B_005) as FQty,sum(O510B_013) as FAmount');
  ADOQuery1.SQL.Add('from ORD510A,ORD510B,HRM150');
  ADOQuery1.SQL.Add('where O510A_001=O510B_001 and O510A_005=H150_001 and');
  ADOQuery1.SQL.Add('  O510A_003>='+GetDateString(AFromDate)+' and O510A_003<='+GetDateString(AToDate));
  ADOQuery1.SQL.Add('group by H150_001,''[''+H150_002+'']''+H150_003,H150_001');
  ADOQuery1.SQL.Add('order by ''[''+H150_002+'']''+H150_003');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    ADODataSet1.Append;
    ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('FNo').Value;
    ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('FName').Value;
    ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('FParent').Value;
    ADODataSet1.FieldByName('FQty').Value:=ADOQuery1.FieldByName('FQty').Value;
    ADODataSet1.FieldByName('FAmount').Value:=ADOQuery1.FieldByName('FAmount').Value;
    ADODataSet1.Post;
    ADOQuery1.Next;
  end;
end;

procedure TOrd400_01Form.ByArea(AFromDate, AToDate: TDateTime);     //按地区
var
  ABookmark:TBookmark;
  AValue,AParentNo:Integer;
begin
  //销售数量和销售金额统计  按销售日期
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select O120_001 as FNo,O120_002 as FName,O120_003 as FParent,sum(O510B_005) as FQty,sum(O510B_013) as FAmount');
  ADOQuery1.SQL.Add('from ORD510A,ORD510B,ORD150,ORD120');
  ADOQuery1.SQL.Add('where O510A_001=O510B_001 and O510A_017=O150_001 and O150_011=O120_001 and');
  ADOQuery1.SQL.Add('  O510A_003>='+GetDateString(AFromDate)+' and O510A_003<='+GetDateString(AToDate));
  ADOQuery1.SQL.Add('group by O120_001,O120_002,O120_003');
  ADOQuery1.SQL.Add('order by O120_001');
  ADOQuery1.Open;
  while not ADOQuery1.Eof do
  begin
    ADODataSet1.Append;
    ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('FNo').Value;
    ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('FName').Value;
    ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('FParent').Value;
    ADODataSet1.FieldByName('FQty').Value:=ADOQuery1.FieldByName('FQty').Value;
    ADODataSet1.FieldByName('FAmount').Value:=ADOQuery1.FieldByName('FAmount').Value;
    ADODataSet1.Post;
    ADOQuery1.Next;
  end;

  //累加數量到上級類別
  ADODataSet1.First;
  while not ADODataSet1.Eof do
  begin
    ABookmark:=ADODataSet1.GetBookmark;
    AParentNo:=ADODataSet1.FieldByName('FParent').Value;
    if AParentNo<>0 then
    begin
      AValue:=ADODataSet1.FieldByName('FQty').AsInteger;
      UpdateParent(AParentNo,AValue,ADODataSet1,'FQty','ORD120','O120_001','O120_002','O120_003');
      ADODataSet1.GotoBookmark(ABookmark);
      AValue:=ADODataSet1.FieldByName('FAmount').AsInteger;
      UpdateParent(AParentNo,AValue,ADODataSet1,'FAmount','ORD120','O120_001','O120_002','O120_003');
    end;
    ADODataSet1.GotoBookmark(ABookmark);
    ADODataSet1.FreeBookmark(ABookmark);
    ADODataSet1.Next;
  end;
end;

procedure TOrd400_01Form.sbSearchClick(Sender: TObject);
begin
  inherited;
//查询
  if (edtFromDate.Text='') or (edtToDate.Text='') then
  begin
    ShowMsg('UMS10000319');  //起止日期不可为空
    if edtFromDate.Text='' then edtFromDate.SetFocus else edtToDate.SetFocus;
    Abort;
  end;
  if edtFromDate.Date>edtToDate.Date then
  begin
    ShowMsg('UMS10000320');  //结束日期不能小于起始日期
    edtToDate.SetFocus;
    Abort;
  end;
  Screen.Cursor:=crHourGlass;
  if Assigned(SYSDM.wwFilterDialog1.Form) then SYSDM.wwFilterDialog1.ClearFilter;
  ABusy:=True;
  ATotal[1]:=0;
  ATotal[2]:=0;
  ADODataSet1.DisableControls;
  ADODataSet1.Close;
  ADODataSet1.CreateDataSet;
  case cbType.ItemIndex of
    0:ByCustomer(edtFromDate.Date,edtToDate.Date);      //按客户
    1:ByCustomerClass(edtFromDate.Date,edtToDate.Date); //按客户类别
    2:ByItem(edtFromDate.Date,edtToDate.Date);          //按产品
    3:ByItemClass(edtFromDate.Date,edtToDate.Date);     //按产品类别
    4:BySeller(edtFromDate.Date,edtToDate.Date);        //按销售员
    5:ByArea(edtFromDate.Date,edtToDate.Date);          //按地区
  end;
  ADODataSet1.EnableControls;
  ABusy:=False;
  Screen.Cursor:=crDefault;
end;

procedure TOrd400_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
  inherited;

end;

procedure TOrd400_01Form.RefreshEvent;
begin
  inherited;
  sbSearch.Click;
end;

initialization
  RegisterClass(TOrd400_01Form);

finalization
  UnRegisterClass(TOrd400_01Form);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -