|
|
unit u_rp_hl_histry;
|
|
|
|
|
|
interface
|
|
|
|
|
|
uses
|
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
|
Dialogs, bsSkinCtrls, ExtCtrls, ComCtrls, bsSkinTabs, DB, ADODB,DateUtils,
|
|
|
dxExEdtr, dxDBTLCl, dxGrClms, dxDBGrid, dxTL, dxDBCtrl, dxCntner,
|
|
|
kbmMemTable, kbmMemBinaryStreamFormat, Menus, StdCtrls,
|
|
|
wwdbdatetimepicker, Grids, DBGridEh, Mask, wwdbedit, Wwdotdot, Wwdbcomb,teeprevi,
|
|
|
RxLookup, TeEngine, Series, TeeProcs, Chart, DbChart, DBGrids, TeeFunci;
|
|
|
|
|
|
type
|
|
|
Tfrm_rp_hl_histry = class(TForm)
|
|
|
Panel1: TPanel;
|
|
|
bsSkinPanel2: TbsSkinPanel;
|
|
|
bsSkinButton10: TbsSkinButton;
|
|
|
bsSkinButton9: TbsSkinButton;
|
|
|
bsSkinButton1: TbsSkinButton;
|
|
|
bsSkinButton5: TbsSkinButton;
|
|
|
SaveDialog: TSaveDialog;
|
|
|
kbmBinaryStreamFormat1: TkbmBinaryStreamFormat;
|
|
|
kbmThreadDataSet1: TkbmThreadDataSet;
|
|
|
PopupMenu1: TPopupMenu;
|
|
|
N1101: TMenuItem;
|
|
|
memtblDetail: TkbmMemTable;
|
|
|
p_total1: TDataSource;
|
|
|
bsSkinPanel1: TbsSkinPanel;
|
|
|
Label1: TLabel;
|
|
|
cbdate: TwwDBComboBox;
|
|
|
Label3: TLabel;
|
|
|
cbYear: TwwDBComboBox;
|
|
|
Label13: TLabel;
|
|
|
RxDBLookupCombo5: TRxDBLookupCombo;
|
|
|
Label14: TLabel;
|
|
|
wwDBComboBox14: TwwDBComboBox;
|
|
|
RxDBLookupCombo3: TRxDBLookupCombo;
|
|
|
bsSkinPageControl1: TbsSkinPageControl;
|
|
|
bsSkinTabSheet1: TbsSkinTabSheet;
|
|
|
bsSkinTabSheet2: TbsSkinTabSheet;
|
|
|
dxDBGrid1: TdxDBGrid;
|
|
|
dxDBGrid1Column5: TdxDBGridColumn;
|
|
|
dxDBGridMaskColumn95: TdxDBGridMaskColumn;
|
|
|
memtotal1: TDataSource;
|
|
|
memtotal: TkbmMemTable;
|
|
|
memtotalField: TStringField;
|
|
|
memtotalField2: TFloatField;
|
|
|
memtblDetailField: TStringField;
|
|
|
memtblDetailField01: TFloatField;
|
|
|
memtblDetailField02: TFloatField;
|
|
|
memtblDetailField03: TFloatField;
|
|
|
memtblDetailField04: TFloatField;
|
|
|
memtblDetailField05: TFloatField;
|
|
|
memtblDetailField06: TFloatField;
|
|
|
memtblDetailField07: TFloatField;
|
|
|
memtblDetailField08: TFloatField;
|
|
|
memtblDetailField09: TFloatField;
|
|
|
memtblDetailField10: TFloatField;
|
|
|
memtblDetailField11: TFloatField;
|
|
|
memtblDetailField12: TFloatField;
|
|
|
memtblDetailField2: TFloatField;
|
|
|
Label4: TLabel;
|
|
|
cbeYear: TwwDBComboBox;
|
|
|
Chart1: TChart;
|
|
|
bsSkinRadioGroup1: TbsSkinRadioGroup;
|
|
|
RxDBLookupCombo10: TRxDBLookupCombo;
|
|
|
Label22: TLabel;
|
|
|
bsSkinCheckRadioBox2: TbsSkinCheckRadioBox;
|
|
|
bsSkinCheckRadioBox1: TbsSkinCheckRadioBox;
|
|
|
procedure bsSkinButton5Click(Sender: TObject);
|
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
|
procedure Panel1Resize(Sender: TObject);
|
|
|
procedure bsSkinButton10Click(Sender: TObject);
|
|
|
procedure bsSkinButton1Click(Sender: TObject);
|
|
|
procedure bsSkinButton9Click(Sender: TObject);
|
|
|
procedure bsSkinCheckRadioBox3Click(Sender: TObject);
|
|
|
procedure bsSkinCheckRadioBox2Click(Sender: TObject);
|
|
|
procedure FormShow(Sender: TObject);
|
|
|
procedure N1101Click(Sender: TObject);
|
|
|
procedure bsSkinRadioGroup1Click(Sender: TObject);
|
|
|
private
|
|
|
procedure do_1(str_bill:widestring);
|
|
|
procedure GetNoFee;
|
|
|
procedure Getcntr;
|
|
|
procedure Getlirun;
|
|
|
procedure Creatememtbl;
|
|
|
function GetZhangQi(SaleID,Cust:String):String;
|
|
|
function isChaoQi(SaleID,Cust:String):Boolean;
|
|
|
function GetZhangQiNum(SaleID,Cust:String;aetd:TDateTime):Double;
|
|
|
function GetZhangQiStr(SaleID,Cust:String):String;
|
|
|
function getleftstr(substr:String;leng:integer;left:boolean=true):String;
|
|
|
|
|
|
{ Private declarations }
|
|
|
public
|
|
|
{ Public declarations }
|
|
|
end;
|
|
|
|
|
|
var
|
|
|
frm_rp_hl_histry: Tfrm_rp_hl_histry;
|
|
|
FmDate,ToDate:String;
|
|
|
sqlstr:WideString;
|
|
|
|
|
|
implementation
|
|
|
|
|
|
uses u_main, u_rp_no_seae_query,my_sys_function, u_rp_total_query,
|
|
|
u_rp_no_total, u_sys_progress, u_rp_no_selfno;
|
|
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
function Tfrm_rp_hl_histry.GetZhangQi(SaleID,Cust:String):String;
|
|
|
var
|
|
|
aQuery:TADOQuery;
|
|
|
S:String;
|
|
|
begin
|
|
|
if (FmDate='') then begin
|
|
|
FmDate:='2006-01-01';
|
|
|
end;
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
Close;SQL.Clear;
|
|
|
// SQL.Add('Select * from t_crm_client_sales where ״̬=''<27><><EFBFBD><EFBFBD>'' and <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><='''+FmDate+''' and <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>='''+ToDate+''' and <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>='''+Cust+''' and <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+SaleID+'''');
|
|
|
SQL.Add('Select * from t_crm_client_sales where ״̬=''<27><><EFBFBD><EFBFBD>'' and <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>'''+FmDate+''' and <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>='''+Cust+''' and <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+SaleID+'''');
|
|
|
Open;
|
|
|
if not IsEmpty then begin
|
|
|
first;
|
|
|
S:='';
|
|
|
while not eof do begin
|
|
|
S:=S+'<27><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>:'+FormatDateTime('YYYY-MM-DD',FieldByName('<27><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>').AsDateTime)+',<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'+FormatDateTime('YYYY-MM-DD',FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsDateTime);
|
|
|
if FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString='<27>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>' then begin
|
|
|
S:=S+'<27><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>;';
|
|
|
end else if FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString='Լ<><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then begin
|
|
|
S:=S+'Լ<><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'+fieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString+'<27><>;';
|
|
|
end else if FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString='Լ<><D4BC>ʱ<EFBFBD><CAB1>' then begin
|
|
|
S:=S+'Լ<><D4BC>ʱ<EFBFBD><CAB1>,'+FieldByName('<27><><EFBFBD><EFBFBD>ģʽ').AsString+'<27><>;'+FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString+'<27>ս<EFBFBD><D5BD><EFBFBD>';
|
|
|
end else if FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString='<27>ֽθ<D7B6><CEB8><EFBFBD>' then begin
|
|
|
S:=S+'<27>ֽθ<D7B6><CEB8><EFBFBD>;';
|
|
|
end;
|
|
|
Next;
|
|
|
end;
|
|
|
result:=S;
|
|
|
end else begin
|
|
|
Result:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|
|
end;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.do_1(str_bill:widestring);
|
|
|
begin
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.bsSkinButton5Click(Sender: TObject);
|
|
|
begin
|
|
|
close;
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.FormClose(Sender: TObject;
|
|
|
var Action: TCloseAction);
|
|
|
begin
|
|
|
frm_rp_hl_histry.Hide;
|
|
|
frm_rp_hl_histry.ManualFloat(frm_rp_hl_histry.BoundsRect );
|
|
|
frm_main.freeTabs('frm_rp_hl_histry');
|
|
|
action:=cafree;
|
|
|
frm_rp_hl_histry:=nil;
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.Panel1Resize(Sender: TObject);
|
|
|
var
|
|
|
i:integer;
|
|
|
begin
|
|
|
i:=round(bsSkinPanel2.Width/7);
|
|
|
bsSkinButton10.Width:=i;
|
|
|
bsSkinButton9.Width:=i;
|
|
|
bsSkinButton1.Width:=i;
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.bsSkinButton10Click(Sender: TObject);
|
|
|
var
|
|
|
barse:TBarSeries;
|
|
|
begin
|
|
|
if cbyear.Text='' then begin
|
|
|
MessageDlg('ͳ<><CDB3><EFBFBD>겻<EFBFBD><EAB2BB>Ϊ<EFBFBD><CEAA>!',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
|
|
|
if cbeyear.Text='' then begin
|
|
|
MessageDlg('ͳ<><CDB3><EFBFBD>겻<EFBFBD><EAB2BB>Ϊ<EFBFBD><CEAA>!',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
|
|
|
if strtoint(cbeyear.Text)<strtoint(cbyear.Text) then begin
|
|
|
MessageDlg('<27><>ʼ<EFBFBD><CABC><EFBFBD>ݲ<EFBFBD><DDB2>ܴ<EFBFBD><DCB4>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
|
|
|
if cbdate.Text='' then begin
|
|
|
MessageDlg('ͳ<><CDB3><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>Ϊ<EFBFBD><CEAA>!',mtWarning,[mbOk],0);
|
|
|
exit;
|
|
|
end;
|
|
|
|
|
|
|
|
|
Creatememtbl;
|
|
|
if bsSkinRadioGroup1.ItemIndex=0 then begin
|
|
|
Getcntr;
|
|
|
end;
|
|
|
if bsSkinRadioGroup1.ItemIndex=1 then begin
|
|
|
Getlirun;
|
|
|
end;
|
|
|
if bsSkinRadioGroup1.ItemIndex=2 then begin
|
|
|
GetNoFee;
|
|
|
end;
|
|
|
Chart1.SeriesList.Clear;
|
|
|
memtblDetail.First;
|
|
|
while not memtblDetail.Eof do begin
|
|
|
barse:=TBarSeries.Create(self);
|
|
|
barse.Title:=memtblDetail.fieldbyname('<27><><EFBFBD><EFBFBD>').asstring+'<27><><EFBFBD><EFBFBD>';
|
|
|
barse.Add(memtblDetail.fieldbyname('01<30><31><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('02<30><32><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('03<30><33><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('04<30><34><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('05<30><35><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('06<30><36><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('07<30><37><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('08<30><38><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('09<30><39><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('10<31><30><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('11<31><31><EFBFBD><EFBFBD>').AsFloat);
|
|
|
barse.Add(memtblDetail.fieldbyname('12<31><32><EFBFBD><EFBFBD>').AsFloat);
|
|
|
Chart1.AddSeries(barse);
|
|
|
memtblDetail.Next;
|
|
|
end;
|
|
|
Chart1.Repaint;
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.bsSkinButton1Click(Sender: TObject);
|
|
|
begin
|
|
|
with SaveDialog do
|
|
|
begin
|
|
|
DefaultExt :='xls';
|
|
|
Filter := '(*.xls)|*.xls';
|
|
|
if Execute then
|
|
|
begin
|
|
|
dxDBGrid1.SaveToXLS(FileName,true)
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.bsSkinButton9Click(Sender: TObject);
|
|
|
begin
|
|
|
sys_print('ҵ<><D2B5><EFBFBD>ۺ<EFBFBD>Ƿ<EFBFBD><C7B7>',2,nil,nil,nil,nil,p_total1,nil,nil,nil,nil,nil,nil);
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.GetNoFee;
|
|
|
var
|
|
|
aQuery:TAdoQuery;
|
|
|
aDate,aToDate:TDate;
|
|
|
strdate,sDate,yDate,datetype:String;
|
|
|
i:integer;
|
|
|
// S:TChartSeries;
|
|
|
begin
|
|
|
// DBChart3.AddSeries();
|
|
|
datetype:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|
|
if (bsSkinCheckRadioBox1.Checked) then datetype:='Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|
|
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
aDate:=EncodeDate(strtoint(cbYear.Text),1,1);
|
|
|
aToDate:=EncodeDate(strtoint(cbeYear.Text),12,2);
|
|
|
if not ASSIGNED(frm_sys_progress) then
|
|
|
frm_sys_progress:=tfrm_sys_progress.Create(application);
|
|
|
frm_sys_progress.Show;
|
|
|
frm_sys_progress.bsSkinGauge1.MaxValue:=MonthsBetween(aDate,aToDate)*2;
|
|
|
frm_sys_progress.bsSkinGauge1.MinValue:=0;
|
|
|
frm_sys_progress.bsSkinGauge1.Value:=0;
|
|
|
frm_sys_progress.Update;
|
|
|
|
|
|
while not (aDate>aToDate) do begin
|
|
|
if MonthDays[isLeapYear(YearOf(aDate)),strtoint(FormatDateTime('MM',aDate))]<strtoint(cbdate.text) then
|
|
|
strdate:=FormatDateTime('YYYY-MM-DD',EncodeDate(YearOf(aDate),strtoint(FormatDateTime('MM',aDate)),MonthDays[isLeapYear(YearOf(aDate)),strtoint(FormatDateTime('MM',aDate))]))
|
|
|
else
|
|
|
strdate:=FormatDateTime('YYYY-MM',aDate)+'-'+cbdate.Text;
|
|
|
sDate:=FormatDateTime('MM',aDate);
|
|
|
yDate:=FormatDateTime('YYYY',aDate);
|
|
|
strdate:=FormatDateTime('YYYY-MM-DD',strtodatetime(strdate)+1);
|
|
|
CLOSE;
|
|
|
SQL.Clear;
|
|
|
SQL.Add('Select ');
|
|
|
SQL.Add('sum(case t_ch_fee.<2E><><EFBFBD><EFBFBD> when ''<27><>'' then (case t_ch_fee.<2E>ұ<EFBFBD> when ''USD'' then t_ch_fee.<2E><><EFBFBD><EFBFBD>-t_ch_fee.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> else 0 end) else 0 end) as δ<><CEB4>USD,');
|
|
|
SQL.Add('sum(case t_ch_fee.<2E><><EFBFBD><EFBFBD> when ''<27><>'' then (case t_ch_fee.<2E>ұ<EFBFBD> when ''USD'' then 0 else t_ch_fee.<2E><><EFBFBD><EFBFBD>-t_ch_fee.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> end) else 0 end) as δ<><CEB4>RMB,');
|
|
|
SQL.Add('sum(case t_ch_fee.<2E><><EFBFBD><EFBFBD> when ''<27><>'' then (t_ch_fee.<2E><><EFBFBD><EFBFBD>-t_ch_fee.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)*t_ch_fee.<2E><><EFBFBD><EFBFBD> else 0 end) as δ<>պϼ<D5BA>');
|
|
|
SQL.Add('from t_ch_fee inner join t_op_seae on t_ch_fee.<2E><><EFBFBD><EFBFBD>=t_op_seae.<2E><><EFBFBD><EFBFBD> where t_op_seae.'+datetype+'<='''+strdate+'''');
|
|
|
if RxDBLookupCombo5.DisplayValues[1]<>'' then
|
|
|
SQL.Add(' and t_ch_fee.<2E>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo5.DisplayValues[1]+'''');
|
|
|
if RxDBLookupCombo3.DisplayValue<>'' then begin
|
|
|
if wwDBComboBox14.Text='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'''+RxDBLookupCombo3.DisplayValues[0]+'''')
|
|
|
else
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo3.DisplayValues[0]+'''');
|
|
|
end;
|
|
|
if RxDBLookupCombo10.DisplayValue<>'' then begin
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD>۲<EFBFBD><DBB2><EFBFBD>='''+RxDBLookupCombo10.DisplayValues[0]+'''');
|
|
|
end;
|
|
|
Open;
|
|
|
if not IsEmpty then begin
|
|
|
first;
|
|
|
while not eof do begin
|
|
|
if memtblDetail.Locate('<27><><EFBFBD><EFBFBD>',Ydate,[]) then begin
|
|
|
memtblDetail.Edit;
|
|
|
memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat:=memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat+FieldbyName('δ<>պϼ<D5BA>').AsFloat;
|
|
|
memtblDetail.Post;
|
|
|
end else begin
|
|
|
memtblDetail.Insert;
|
|
|
for i:=0 to memtbldetail.FieldCount-1 do begin
|
|
|
if memtbldetail.Fields[i].FieldName='<27><><EFBFBD><EFBFBD>' then
|
|
|
memtbldetail.Fields[i].AsString:=Ydate
|
|
|
else
|
|
|
memtbldetail.Fields[i].AsFloat:=0;
|
|
|
end;
|
|
|
memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat:=memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat+FieldbyName('δ<>պϼ<D5BA>').AsFloat;
|
|
|
memtblDetail.Post;
|
|
|
end;
|
|
|
Next;
|
|
|
end;
|
|
|
end;
|
|
|
frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1;
|
|
|
|
|
|
|
|
|
CLOSE;
|
|
|
SQL.Clear;
|
|
|
SQL.Add('Select ');
|
|
|
SQL.Add('sum(case v_fee_do_detail.<2E><><EFBFBD><EFBFBD> when ''<27><>'' then (case v_fee_do_detail.ԭʼ<D4AD>ұ<EFBFBD> when ''USD'' then v_fee_do_detail.ԭʼ<D4AD><CABC><EFBFBD><EFBFBD> else 0 end) else 0 end) as δ<><CEB4>USD,');
|
|
|
SQL.Add('sum(case v_fee_do_detail.<2E><><EFBFBD><EFBFBD> when ''<27><>'' then (case v_fee_do_detail.ԭʼ<D4AD>ұ<EFBFBD> when ''USD'' then 0 else v_fee_do_detail.ԭʼ<D4AD><CABC><EFBFBD><EFBFBD> end) else 0 end) as δ<><CEB4>RMB,');
|
|
|
SQL.Add('sum(case v_fee_do_detail.<2E><><EFBFBD><EFBFBD> when ''<27><>'' then v_fee_do_detail.ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>*v_fee_do_detail.<2E><><EFBFBD><EFBFBD> else 0 end) as δ<>պϼ<D5BA>');
|
|
|
SQL.Add('from v_fee_do_detail inner join t_op_seae on v_fee_do_detail.<2E><><EFBFBD><EFBFBD>=t_op_seae.<2E><><EFBFBD><EFBFBD> where t_op_seae.'+datetype+'<='''+strdate+''' and v_fee_do_detail.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>'''+strdate+'''');
|
|
|
if RxDBLookupCombo5.DisplayValues[1]<>'' then
|
|
|
SQL.Add(' and v_fee_do_detail.<2E>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo5.DisplayValues[1]+'''');
|
|
|
if RxDBLookupCombo3.DisplayValue<>'' then begin
|
|
|
if wwDBComboBox14.Text='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'''+RxDBLookupCombo3.DisplayValues[0]+'''')
|
|
|
else
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo3.DisplayValues[0]+'''');
|
|
|
end;
|
|
|
if RxDBLookupCombo10.DisplayValue<>'' then begin
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD>۲<EFBFBD><DBB2><EFBFBD>='''+RxDBLookupCombo10.DisplayValues[0]+'''');
|
|
|
end;
|
|
|
|
|
|
Open;
|
|
|
if not IsEmpty then begin
|
|
|
first;
|
|
|
while not eof do begin
|
|
|
if memtblDetail.Locate('<27><><EFBFBD><EFBFBD>',ydate,[]) then begin
|
|
|
memtblDetail.Edit;
|
|
|
memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat:=memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat+FieldbyName('δ<>պϼ<D5BA>').AsFloat;
|
|
|
memtblDetail.Post;
|
|
|
end else begin
|
|
|
memtblDetail.Insert;
|
|
|
for i:=0 to memtbldetail.FieldCount-1 do begin
|
|
|
if memtbldetail.Fields[i].FieldName='<27><><EFBFBD><EFBFBD>' then
|
|
|
memtbldetail.Fields[i].AsString:=ydate
|
|
|
else
|
|
|
memtbldetail.Fields[i].AsFloat:=0;
|
|
|
end;
|
|
|
memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat:=memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat+FieldbyName('δ<>պϼ<D5BA>').AsFloat;
|
|
|
memtblDetail.Post;
|
|
|
end;
|
|
|
Next;
|
|
|
end;
|
|
|
end;
|
|
|
frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1;
|
|
|
aDate:=IncMonth(aDate,1);
|
|
|
end;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
freeAndNil(frm_sys_progress);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.Creatememtbl;
|
|
|
var
|
|
|
aDate,aToDate:TDate;
|
|
|
sDate,aYear,aMonth,acaption:String;
|
|
|
aColumn:TdxDBTreeListColumn;
|
|
|
aBand:TdxTreeListBand;
|
|
|
i:integer;
|
|
|
begin
|
|
|
|
|
|
|
|
|
dxDBGrid1.Bands.Clear;
|
|
|
// dxDBGrid1.DestroyColumns;
|
|
|
while dxDBGrid1.columncount>0 do
|
|
|
begin
|
|
|
dxDBGrid1.Columns[0].Destroy;
|
|
|
end;
|
|
|
|
|
|
memtblDetail.Close;
|
|
|
memtblDetail.EmptyTable;
|
|
|
if bsSkinRadioGroup1.ItemIndex=0 then begin
|
|
|
acaption:='<27><><EFBFBD><EFBFBD>';
|
|
|
end else if bsSkinRadioGroup1.ItemIndex=1 then begin
|
|
|
acaption:='<27><><EFBFBD><EFBFBD>';
|
|
|
end else if bsSkinRadioGroup1.ItemIndex=2 then begin
|
|
|
acaption:='Ƿ<><C7B7>';
|
|
|
end;
|
|
|
{
|
|
|
memtblDetail.Fields.Clear;
|
|
|
memtblDetail.FieldDefs.Clear;
|
|
|
memtblDetail.FieldDefs.Add('<27><><EFBFBD><EFBFBD>', ftString, 20, false);
|
|
|
}
|
|
|
aBand:=dxDBGrid1.Bands.Add;
|
|
|
aBand.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ';
|
|
|
aColumn:=dxDBGrid1.CreateColumn(TdxDBGridColumn);
|
|
|
aColumn.Caption:='<27><><EFBFBD><EFBFBD>';
|
|
|
aColumn.BandIndex:=0;
|
|
|
aColumn.FieldName:='<27><><EFBFBD><EFBFBD>';
|
|
|
|
|
|
aBand:=dxDBGrid1.Bands.Add;
|
|
|
aBand.Caption:=acaption;
|
|
|
for i:=1 to 12 do begin
|
|
|
aMonth:=getleftstr(inttostr(i),2);
|
|
|
aColumn:=dxDBGrid1.CreateColumn(TdxDBGridColumn);
|
|
|
aColumn.Caption:=aMonth+'<27>·<EFBFBD>'+acaption;
|
|
|
aColumn.FieldName:=aMonth+'<27><><EFBFBD><EFBFBD>';
|
|
|
aColumn.SummaryFooterType:=cstAvg;
|
|
|
aColumn.BandIndex:=1;
|
|
|
// memtblDetail.FieldDefs.Add(aMonth+'<27><><EFBFBD><EFBFBD>',ftFloat, 0, false);
|
|
|
end;
|
|
|
|
|
|
aColumn:=dxDBGrid1.CreateColumn(TdxDBGridColumn);
|
|
|
aColumn.Caption:='ƽ<><C6BD>'+acaption;
|
|
|
aColumn.FieldName:='ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|
|
aColumn.SummaryFooterType:=cstAvg;
|
|
|
aColumn.BandIndex:=1;
|
|
|
|
|
|
// memtblDetail.FieldDefs.Add('ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',ftFloat, 0, false);
|
|
|
// memtblDetail.CreateTable;
|
|
|
memtblDetail.Open;
|
|
|
|
|
|
end;
|
|
|
|
|
|
function Tfrm_rp_hl_histry.GetZhangQiNum(SaleID, Cust: String;
|
|
|
aetd: TDateTime): Double;
|
|
|
|
|
|
begin
|
|
|
|
|
|
end;
|
|
|
|
|
|
function Tfrm_rp_hl_histry.isChaoQi(SaleID, Cust: String): Boolean;
|
|
|
begin
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.bsSkinCheckRadioBox3Click(Sender: TObject);
|
|
|
begin
|
|
|
GetNoFee;
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.bsSkinCheckRadioBox2Click(Sender: TObject);
|
|
|
begin
|
|
|
GetNoFee;
|
|
|
end;
|
|
|
|
|
|
function Tfrm_rp_hl_histry.GetZhangQiStr(SaleID, Cust: String): String;
|
|
|
begin
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.FormShow(Sender: TObject);
|
|
|
begin
|
|
|
cbyear.Items.IndexOf(FormatDateTime('YYYY',Now));
|
|
|
cbyear.text:=FormatDateTime('YYYY',Now);
|
|
|
cbeyear.Items.IndexOf(FormatDateTime('YYYY',Now));
|
|
|
cbeyear.text:=FormatDateTime('YYYY',Now);
|
|
|
cbdate.Items.IndexOf('31');
|
|
|
cbdate.text:='31';
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.N1101Click(Sender: TObject);
|
|
|
begin
|
|
|
chartpreview(frm_rp_hl_histry,chart1);
|
|
|
end;
|
|
|
|
|
|
function Tfrm_rp_hl_histry.getleftstr(substr: String; leng: integer;
|
|
|
left: boolean=true): String;
|
|
|
var
|
|
|
str:String;
|
|
|
begin
|
|
|
str:=substr;
|
|
|
if length(str)>=leng then begin
|
|
|
result:=str;
|
|
|
exit;
|
|
|
end;
|
|
|
while length(str)<leng do begin
|
|
|
if left then
|
|
|
str:='0'+str
|
|
|
else
|
|
|
str:=str+'0';
|
|
|
end;
|
|
|
result:=str;
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.Getcntr;
|
|
|
var
|
|
|
aQuery:TAdoQuery;
|
|
|
aDate,aToDate:TDate;
|
|
|
strdate,strbdate,sDate,yDate,datetype:String;
|
|
|
i:integer;
|
|
|
// S:TChartSeries;
|
|
|
begin
|
|
|
// DBChart3.AddSeries();
|
|
|
|
|
|
datetype:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|
|
if (bsSkinCheckRadioBox1.Checked) then datetype:='Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|
|
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
aDate:=EncodeDate(strtoint(cbYear.Text),1,1);
|
|
|
aToDate:=EncodeDate(strtoint(cbeYear.Text),12,2);
|
|
|
if not ASSIGNED(frm_sys_progress) then
|
|
|
frm_sys_progress:=tfrm_sys_progress.Create(application);
|
|
|
frm_sys_progress.Show;
|
|
|
frm_sys_progress.bsSkinGauge1.MaxValue:=MonthsBetween(aDate,aToDate)*2;
|
|
|
frm_sys_progress.bsSkinGauge1.MinValue:=0;
|
|
|
frm_sys_progress.bsSkinGauge1.Value:=0;
|
|
|
frm_sys_progress.Update;
|
|
|
|
|
|
while not (aDate>aToDate) do begin
|
|
|
if MonthDays[isLeapYear(YearOf(aDate)),strtoint(FormatDateTime('MM',aDate))]<strtoint(cbdate.text) then
|
|
|
strdate:=FormatDateTime('YYYY-MM-DD',EncodeDate(YearOf(aDate),strtoint(FormatDateTime('MM',aDate)),MonthDays[isLeapYear(YearOf(aDate)),strtoint(FormatDateTime('MM',aDate))]))
|
|
|
else
|
|
|
strdate:=FormatDateTime('YYYY-MM',aDate)+'-'+cbdate.Text;
|
|
|
strbdate:=FormatDateTime('YYYY-MM',aDate)+'-'+'01';
|
|
|
sDate:=FormatDateTime('MM',aDate);
|
|
|
yDate:=FormatDateTime('YYYY',aDate);
|
|
|
CLOSE;
|
|
|
SQL.Clear;
|
|
|
SQL.Add('Select ');
|
|
|
SQL.Add('sum(t_op_seae.<2E><>TEU) as <20><><EFBFBD><EFBFBD> ');
|
|
|
SQL.Add('from t_op_seae where t_op_seae.'+datetype+'<='''+strdate+''' and t_op_seae.'+datetype+'>='''+strbdate+'''');
|
|
|
if RxDBLookupCombo5.DisplayValues[1]<>'' then
|
|
|
SQL.Add(' and t_op_seae.ί<>е<EFBFBD>λ='''+RxDBLookupCombo5.DisplayValues[1]+'''');
|
|
|
if RxDBLookupCombo3.DisplayValue<>'' then begin
|
|
|
if wwDBComboBox14.Text='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'''+RxDBLookupCombo3.DisplayValues[0]+'''')
|
|
|
else
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo3.DisplayValues[0]+'''');
|
|
|
end;
|
|
|
if RxDBLookupCombo10.DisplayValue<>'' then begin
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD>۲<EFBFBD><DBB2><EFBFBD>='''+RxDBLookupCombo10.DisplayValues[0]+'''');
|
|
|
end;
|
|
|
|
|
|
Open;
|
|
|
if not IsEmpty then begin
|
|
|
first;
|
|
|
while not eof do begin
|
|
|
if memtblDetail.Locate('<27><><EFBFBD><EFBFBD>',Ydate,[]) then begin
|
|
|
memtblDetail.Edit;
|
|
|
memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat:=memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat+FieldbyName('<27><><EFBFBD><EFBFBD>').AsFloat;
|
|
|
memtblDetail.Post;
|
|
|
end else begin
|
|
|
memtblDetail.Insert;
|
|
|
for i:=0 to memtbldetail.FieldCount-1 do begin
|
|
|
if memtbldetail.Fields[i].FieldName='<27><><EFBFBD><EFBFBD>' then
|
|
|
memtbldetail.Fields[i].AsString:=Ydate
|
|
|
else
|
|
|
memtbldetail.Fields[i].AsFloat:=0;
|
|
|
end;
|
|
|
memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat:=memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat+FieldbyName('<27><><EFBFBD><EFBFBD>').AsFloat;
|
|
|
memtblDetail.Post;
|
|
|
end;
|
|
|
Next;
|
|
|
end;
|
|
|
end;
|
|
|
frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1;
|
|
|
|
|
|
aDate:=IncMonth(aDate,1);
|
|
|
end;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
freeAndNil(frm_sys_progress);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.Getlirun;
|
|
|
var
|
|
|
aQuery:TAdoQuery;
|
|
|
aDate,aToDate:TDate;
|
|
|
strdate,strbdate,sDate,yDate,datetype:String;
|
|
|
i:integer;
|
|
|
// S:TChartSeries;
|
|
|
begin
|
|
|
// DBChart3.AddSeries();
|
|
|
|
|
|
datetype:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|
|
if (bsSkinCheckRadioBox1.Checked) then datetype:='Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
|
|
|
|
|
aQuery:=CreateAdoQuery;
|
|
|
try
|
|
|
with aQuery do begin
|
|
|
aDate:=EncodeDate(strtoint(cbYear.Text),1,1);
|
|
|
aToDate:=EncodeDate(strtoint(cbeYear.Text),12,2);
|
|
|
if not ASSIGNED(frm_sys_progress) then
|
|
|
frm_sys_progress:=tfrm_sys_progress.Create(application);
|
|
|
frm_sys_progress.Show;
|
|
|
frm_sys_progress.bsSkinGauge1.MaxValue:=MonthsBetween(aDate,aToDate)*2;
|
|
|
frm_sys_progress.bsSkinGauge1.MinValue:=0;
|
|
|
frm_sys_progress.bsSkinGauge1.Value:=0;
|
|
|
frm_sys_progress.Update;
|
|
|
|
|
|
while not (aDate>aToDate) do begin
|
|
|
if MonthDays[isLeapYear(YearOf(aDate)),strtoint(FormatDateTime('MM',aDate))]<strtoint(cbdate.text) then
|
|
|
strdate:=FormatDateTime('YYYY-MM-DD',EncodeDate(YearOf(aDate),strtoint(FormatDateTime('MM',aDate)),MonthDays[isLeapYear(YearOf(aDate)),strtoint(FormatDateTime('MM',aDate))]))
|
|
|
else
|
|
|
strdate:=FormatDateTime('YYYY-MM',aDate)+'-'+cbdate.Text;
|
|
|
strbdate:=FormatDateTime('YYYY-MM',aDate)+'-'+'01';
|
|
|
sDate:=FormatDateTime('MM',aDate);
|
|
|
yDate:=FormatDateTime('YYYY',aDate);
|
|
|
CLOSE;
|
|
|
SQL.Clear;
|
|
|
SQL.Add('Select ');
|
|
|
SQL.Add('sum(t_op_gain_main.ë<><C3AB><EFBFBD><EFBFBD>) as <20><><EFBFBD><EFBFBD> ');
|
|
|
SQL.Add('from t_op_seae inner JOIN t_op_gain_main ON t_op_seae.<2E><><EFBFBD><EFBFBD> =t_op_gain_main.<2E><><EFBFBD><EFBFBD> where t_op_seae.'+datetype+'<='''+strdate+''' and t_op_seae.'+datetype+'>='''+strbdate+'''');
|
|
|
if RxDBLookupCombo5.DisplayValues[1]<>'' then
|
|
|
SQL.Add(' and t_op_seae.ί<>е<EFBFBD>λ='''+RxDBLookupCombo5.DisplayValues[1]+'''');
|
|
|
if RxDBLookupCombo3.DisplayValue<>'' then begin
|
|
|
if wwDBComboBox14.Text='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'''+RxDBLookupCombo3.DisplayValues[0]+'''')
|
|
|
else
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo3.DisplayValues[0]+'''');
|
|
|
end;
|
|
|
if RxDBLookupCombo10.DisplayValue<>'' then begin
|
|
|
SQL.Add(' and t_op_seae.<2E><><EFBFBD>۲<EFBFBD><DBB2><EFBFBD>='''+RxDBLookupCombo10.DisplayValues[0]+'''');
|
|
|
end;
|
|
|
|
|
|
Open;
|
|
|
if not IsEmpty then begin
|
|
|
first;
|
|
|
while not eof do begin
|
|
|
if memtblDetail.Locate('<27><><EFBFBD><EFBFBD>',Ydate,[]) then begin
|
|
|
memtblDetail.Edit;
|
|
|
memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat:=memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat+FieldbyName('<27><><EFBFBD><EFBFBD>').AsFloat;
|
|
|
memtblDetail.Post;
|
|
|
end else begin
|
|
|
memtblDetail.Insert;
|
|
|
for i:=0 to memtbldetail.FieldCount-1 do begin
|
|
|
if memtbldetail.Fields[i].FieldName='<27><><EFBFBD><EFBFBD>' then
|
|
|
memtbldetail.Fields[i].AsString:=Ydate
|
|
|
else
|
|
|
memtbldetail.Fields[i].AsFloat:=0;
|
|
|
end;
|
|
|
memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat:=memtblDetail.FieldByName(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat+FieldbyName('<27><><EFBFBD><EFBFBD>').AsFloat;
|
|
|
memtblDetail.Post;
|
|
|
end;
|
|
|
Next;
|
|
|
end;
|
|
|
end;
|
|
|
frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1;
|
|
|
|
|
|
aDate:=IncMonth(aDate,1);
|
|
|
end;
|
|
|
end;
|
|
|
finally
|
|
|
FreeAndNil(aQuery);
|
|
|
freeAndNil(frm_sys_progress);
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
procedure Tfrm_rp_hl_histry.bsSkinRadioGroup1Click(Sender: TObject);
|
|
|
begin
|
|
|
bsSkinButton10.OnClick(sender);
|
|
|
end;
|
|
|
|
|
|
end.
|