📄 ord400_01.pas.svn-base
字号:
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 + -