You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

929 lines
29 KiB
Plaintext

11 months ago
unit u_rp_zou_linehistry;
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,
wwdblook;
type
Tfrm_rp_zou_linehistry = 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;
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;
Chart1: TChart;
bsSkinRadioGroup1: TbsSkinRadioGroup;
RxDBLookupCombo10: TRxDBLookupCombo;
Label22: TLabel;
t_code_trade_two: TADOQuery;
t_code_trade_two1: TDataSource;
t_code_trade_one: TADOQuery;
t_code_trade_oneDSDesigner: TStringField;
t_code_trade_one1: TDataSource;
t_code_trade1: TDataSource;
t_code_trade: TADOQuery;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label4: TLabel;
bsSkinCheckGroup1: TbsSkinCheckGroup;
RxDBLookupCombo20: TRxDBLookupCombo;
Label21: TLabel;
Label2: TLabel;
RxDBLookupCombo1: TRxDBLookupCombo;
bsSkinRadioGroup2: TbsSkinRadioGroup;
bsSkinRadioGroup3: TbsSkinRadioGroup;
wwDBLookupCombo52: TwwDBLookupCombo;
Label124: TLabel;
Label5: TLabel;
cbeYear: TwwDBComboBox;
Label12: TLabel;
RxDBLookupCombo2: TRxDBLookupCombo;
bsSkinTabSheet3: TbsSkinTabSheet;
ado_bs_items: TADOQuery;
ado_bs_items1: TDataSource;
dxDBGrid2: TdxDBGrid;
dxDBGrid2Column1: TdxDBGridColumn;
dxDBGrid2Column2: TdxDBGridColumn;
dxDBGrid2Column3: TdxDBGridColumn;
dxDBGrid2Column4: TdxDBGridColumn;
dxDBGrid2Column5: TdxDBGridColumn;
dxDBGrid2Column6: TdxDBGridColumn;
Label53: TLabel;
wwDBComboBox58: TwwDBComboBox;
bsSkinCheckRadioBox1: TbsSkinCheckRadioBox;
bsSkinCheckRadioBox2: TbsSkinCheckRadioBox;
bsSkinGroupBox1: TbsSkinGroupBox;
Memo1: TMemo;
Series1: TBarSeries;
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);
procedure RxDBLookupCombo1Change(Sender: TObject);
procedure bsSkinRadioGroup2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Chart1DblClick(Sender: TObject);
procedure dxDBGrid1DblClick(Sender: TObject);
procedure dxDBGrid2DblClick(Sender: TObject);
private
FmDate,ToDate:String;
sqlstr,cntrstr,linestr:WideString;
procedure do_1(str_bill:widestring);
procedure GetNoFee;
procedure Getcntr;
procedure Getlirun;
procedure Getctnitems(years,weeks:Integer);
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;
function GetEtdStr(aYear,aWeek:Integer):String;
{ Private declarations }
public
{ Public declarations }
end;
var
frm_rp_zou_linehistry: Tfrm_rp_zou_linehistry;
frmshow:boolean;
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, u_data_share;
{$R *.dfm}
function Tfrm_rp_zou_linehistry.GetEtdStr(aYear,aWeek:Integer):String;
var
FirstweekDay,endWeekday,aPerWeek: TDate;
i:integer;
S,datetype:String;
begin
Result:='';
datetype:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if (bsSkinCheckRadioBox1.Checked) then datetype:='Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
S:='';
aperweek:=EncodeDate(aYear, 1, 1);
i:=DayOfWeek(aperweek);
if i=1 then
FirstweekDay:=aPerWeek-6
else
FirstweekDay:=aPerWeek-(i-2);
firstweekday:=firstweekday+7*(aWeek-1);
endWeekday:=FirstweekDay+6;
if S='' then begin
if (bsSkinCheckRadioBox1.Checked) then
S:=' t_op_seae.'+datetype+'>='''+FormatDateTime('YYYY-MM-DD',FirstweekDay)+''' and t_op_seae.'+datetype+'<'''+FormatDateTime('YYYY-MM-DD',FirstweekDay+7)+''''
else begin
S:=' t_op_seae.'+datetype+'>='''+FormatDateTime('YYYY-MM-DD',FirstweekDay)+''' and t_op_seae.'+datetype+'<='''+FormatDateTime('YYYY-MM-DD',FirstweekDay+6)+'''';
end;
end;
Result:=S;
end;
function Tfrm_rp_zou_linehistry.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_zou_linehistry.do_1(str_bill:widestring);
begin
end;
procedure Tfrm_rp_zou_linehistry.bsSkinButton5Click(Sender: TObject);
begin
close;
end;
procedure Tfrm_rp_zou_linehistry.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
frm_rp_zou_linehistry.Hide;
frm_rp_zou_linehistry.ManualFloat(frm_rp_zou_linehistry.BoundsRect );
frm_main.freeTabs('frm_rp_zou_linehistry');
action:=cafree;
frm_rp_zou_linehistry:=nil;
end;
procedure Tfrm_rp_zou_linehistry.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_zou_linehistry.bsSkinButton10Click(Sender: TObject);
var
FirstweekDay,endWeekday,aPerWeek: TDate;
barse:TBarSeries;
f,t,i,weekday:integer;
sdate:string;
aQuery:TAdoQuery;
begin
if cbyear.Text='' then begin
MessageDlg('ͳ<><CDB3><EFBFBD><EFBFBD><EAB2BB>Ϊ<EFBFBD><CEAA>!',mtWarning,[mbOk],0);
exit;
end;
f:=strtoint(edit1.Text);
t:=strtoint(edit2.text);
cntrstr:='';
for i:=0 to bsSkinCheckGroup1.Items.Count-1 do begin
if bsSkinCheckGroup1.Checked[i] then begin
if cntrstr='' then
cntrstr:=''''+StringReplace(bsSkinCheckGroup1.Items[i],'''','''''',[])+''''
else
cntrstr:=cntrstr+','+''''+StringReplace(bsSkinCheckGroup1.Items[i],'''','''''',[])+'''';
end;
end;
if cntrstr<>'' then
cntrstr:='('+cntrstr+')';
linestr:='';
if bsSkinRadioGroup2.ItemIndex<>0 then begin
linestr:=bsSkinRadioGroup2.Items.Strings[bsSkinRadioGroup2.ItemIndex];
linestr:='('+''''+linestr+''''+')';
end else
if (RxDBLookupCombo20.DisplayValue<>'') or (RxDBLookupCombo1.DisplayValue<>'') then
begin
aQuery:=CreateAdoQuery;
try
with aQuery do begin
Close;SQL.Clear;
sql.Add('select <20><><EFBFBD><EFBFBD> from t_code_trade where 1=1 ');
if RxDBLookupCombo20.DisplayValue<>'' then
sql.Add(' and һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo20.DisplayValue+'''');
if RxDBLookupCombo1.DisplayValue<>'' then
sql.Add(' and <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo1.DisplayValue+'''');
Open;
first;
while not eof do begin
if linestr='' then
linestr:=''''+FieldByName('<27><><EFBFBD><EFBFBD>').AsString+''''
else
linestr:=linestr+','+''''+FieldByName('<27><><EFBFBD><EFBFBD>').AsString+'''';
Next;
end;
if linestr<>'' then
linestr:='('+linestr+')';
end;
finally
FreeAndNil(aQuery);
end;
end;
Creatememtbl;
memtblDetail.DisableControls;
if bsSkinRadioGroup1.ItemIndex=0 then begin
Getcntr;
end;
if bsSkinRadioGroup1.ItemIndex=1 then begin
Getlirun;
end;
Memo1.Lines.Clear;
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>';
for i:=f to t do begin
sDate:=getleftstr(inttostr(i),2);
aperweek:=EncodeDate(StrToInt64(memtblDetail.fieldbyname('<27><><EFBFBD><EFBFBD>').asstring), 1, 1);
weekday:=DayOfWeek(aperweek);
if weekday=1 then
FirstweekDay:=aPerWeek-6
else
FirstweekDay:=aPerWeek-(weekday-2);
firstweekday:=firstweekday+7*(i-1);
endWeekday:=FirstweekDay+6;
barse.Add(memtblDetail.fieldbyname(sDate+'<27><><EFBFBD><EFBFBD>').AsFloat);
barse.Marks.Style:= smsValue;
Memo1.Lines.Add('<27><><EFBFBD><EFBFBD>:'+memtblDetail.fieldbyname('<27><><EFBFBD><EFBFBD>').asstring+'<27><>'+sDate+'<27><>('+FormatDateTime('YYYY-MM-DD',FirstweekDay)+'<27><>'+FormatDateTime('YYYY-MM-DD',endWeekday)+')')
end;
Chart1.AddSeries(barse);
memtblDetail.Next;
end;
Chart1.Repaint;
memtblDetail.EnableControls;
end;
procedure Tfrm_rp_zou_linehistry.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_zou_linehistry.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_zou_linehistry.GetNoFee;
begin
end;
procedure Tfrm_rp_zou_linehistry.Creatememtbl;
var
aDate,aToDate:TDate;
sDate,aYear,aMonth,acaption:String;
aColumn:TdxDBTreeListColumn;
aBand:TdxTreeListBand;
i,f,t:integer;
begin
f:=strtoint(edit1.Text);
t:=strtoint(edit2.text);
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;
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:=f to t do begin
aMonth:=getleftstr(inttostr(i),2);
aColumn:=dxDBGrid1.CreateColumn(TdxDBGridColumn);
aColumn.Caption:=aMonth+'<27><>'+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;
memtblDetail.IndexName:='<27><><EFBFBD><EFBFBD>';
end;
function Tfrm_rp_zou_linehistry.GetZhangQiNum(SaleID, Cust: String;
aetd: TDateTime): Double;
var
aQuery:TAdoQuery;
begin
aQuery:=CreateAdoQuery;
try
with aQuery do begin
Close;SQL.Clear;
SQL.Add('Select <20><><EFBFBD>ѽ<EFBFBD><D1BD><EFBFBD> from t_crm_client_sales where ״̬=''<27><><EFBFBD><EFBFBD>'' and <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><='''+FormatDateTime('YYYY-MM-DD',aetd)+''' and <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>='''+FormatDateTime('YYYY-MM-DD',aetd)+''' and <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>='''+Cust+''' and <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+SaleID+'''');
Open;
if not IsEmpty then begin
if FieldByName('<27><><EFBFBD>ѽ<EFBFBD><D1BD><EFBFBD>').IsNull or (FieldByName('<27><><EFBFBD>ѽ<EFBFBD><D1BD><EFBFBD>').AsFloat<=0) then begin
Result:=0;
end else begin
Result:=FieldByName('<27><><EFBFBD>ѽ<EFBFBD><D1BD><EFBFBD>').AsFloat;
end;
end else begin
Result:=-1;
end;
end;
finally
FreeAndNil(aQuery);
end;
end;
function Tfrm_rp_zou_linehistry.isChaoQi(SaleID, Cust: String): Boolean;
begin
end;
procedure Tfrm_rp_zou_linehistry.bsSkinCheckRadioBox3Click(Sender: TObject);
begin
GetNoFee;
end;
procedure Tfrm_rp_zou_linehistry.bsSkinCheckRadioBox2Click(Sender: TObject);
begin
GetNoFee;
end;
function Tfrm_rp_zou_linehistry.GetZhangQiStr(SaleID, Cust: String): String;
var
aQuery:TADOQuery;
begin
aQuery:=CreateAdoQuery;
Result:='';
try
with aQuery do begin
Close;SQL.Clear;
sql.Add(' select distinct SUBSTRING(CONVERT(char(15), dbo.v_op_bscard.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 111), 1, 7) from v_op_bscard left join t_ch_fee on t_ch_fee.<2E><><EFBFBD><EFBFBD>=v_op_bscard.<2E><><EFBFBD><EFBFBD> ');
sql.Add(sqlstr);
sql.Add(' and t_ch_fee.<2E>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>='''+Cust+''' and v_op_bscard.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+SaleID+'''');
Open;
if not IsEmpty then begin
first;
while not eof do begin
if Result='' then
result:=Fields[0].value
else
Result:=Result+','+Fields[0].value;
Next;
end;
Result:=Result+'<27><>Ƿ<EFBFBD><C7B7>'
end else
result:='';
end;
finally
FreeAndNil(aQuery);
end;
end;
procedure Tfrm_rp_zou_linehistry.FormShow(Sender: TObject);
begin
frmshow:=true;
cbyear.Items.IndexOf(FormatDateTime('YYYY',Now));
cbyear.text:=FormatDateTime('YYYY',Now);
cbeYear.Items.IndexOf(FormatDateTime('YYYY',Now));
cbeYear.text:=FormatDateTime('YYYY',Now);
edit1.Text:='1';
edit2.Text:=inttostr(WeekofYear(now));
t_code_trade_one.Open;
t_code_trade_two.Open;
t_code_trade.Open;
bsSkinCheckGroup1.Items.Clear;
frm_data_share.t_code_ctn.First;
while not frm_data_share.t_code_ctn.eof do begin
bsSkinCheckGroup1.Items.add(frm_data_share.t_code_ctn.fieldbyname('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ').AsString);
frm_data_share.t_code_ctn.Next;
end;
RxDBLookupCombo1.OnChange(nil);
frmshow:=false;
end;
procedure Tfrm_rp_zou_linehistry.N1101Click(Sender: TObject);
begin
chartpreview(frm_rp_zou_linehistry,chart1);
end;
function Tfrm_rp_zou_linehistry.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_zou_linehistry.Getcntr;
var
aQuery:TAdoQuery;
aDate,aToDate:TDate;
strdate,strbdate,sDate,yDate:String;
n,i,f,t,fyear,eyear,y:integer;
// S:TChartSeries;
begin
// DBChart3.AddSeries();
fyear:=strtoint(cbYear.text);
eyear:=strtoint(cbeYear.text);
aQuery:=CreateAdoQuery;
try
with aQuery do begin
if not ASSIGNED(frm_sys_progress) then
frm_sys_progress:=tfrm_sys_progress.Create(application);
frm_sys_progress.Show;
n:=eyear-fyear;
if n=0 then n:=1;
frm_sys_progress.bsSkinGauge1.MaxValue:=n;
frm_sys_progress.bsSkinGauge1.MinValue:=0;
frm_sys_progress.bsSkinGauge1.Value:=0;
frm_sys_progress.Update;
for y:=fyear to eyear do begin
f:=strtoint(edit1.Text);
t:=strtoint(edit2.text);
while not (f>t) do begin
ydate:=inttostr(y);
sDate:=getleftstr(inttostr(f),2);
frm_sys_progress.bsSkinGauge1.ProgressText:='<27><>:'+IntToStr(y)+' <20><> '+IntToStr(f);
CLOSE;
SQL.Clear;
{
SQL.Add('Select ');
SQL.Add('sum(isnull(t_op_ctn.TEU,0)) as <20><><EFBFBD><EFBFBD> ');
SQL.Add('from t_op_seae ');
SQL.Add('left join t_op_ctn on t_op_seae.<2E><><EFBFBD><EFBFBD>=t_op_ctn.<2E><><EFBFBD><EFBFBD> where '+GetEtdStr(y,f));
}
SQL.Add('Select ');
SQL.Add('sum(isnull(t_op_ctn.TEU,0)) as <20><><EFBFBD><EFBFBD> ');
SQL.Add('from t_op_ctn,t_op_seae ');
SQL.Add('where t_op_seae.<2E><><EFBFBD><EFBFBD>=t_op_ctn.<2E><><EFBFBD><EFBFBD> and '+GetEtdStr(y,f));
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;
if RxDBLookupCombo2.DisplayValue<>'' then begin
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD>˾='''+RxDBLookupCombo2.DisplayValues[1]+'''');
end;
if cntrstr<>'' then begin
SQL.Add(' and t_op_ctn.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ in '+cntrstr);
end;
if (wwDBComboBox58.Value<>'') then begin
SQL.Add(' and t_op_seae.<2E>Ƿ<EFBFBD>ռ<EFBFBD><D5BC>='''+wwDBComboBox58.Value+'''');
end;
if linestr<>'' then begin
if bsSkinRadioGroup3.ItemIndex=1 then
SQL.Add(' and EXISTS (select * from t_code_disport where t_code_disport.EDI<44><49><EFBFBD><EFBFBD>=t_op_seae.ж<><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and t_code_disport.<2E><><EFBFBD><EFBFBD> in '+linestr+')')
else
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD> in '+linestr)
end;
if wwDBLookupCombo52.Text<>'' then begin
SQL.Add(' and t_op_seae.ж<><D0B6><EFBFBD><EFBFBD> like ''%'+wwDBLookupCombo52.Text+'%''')
end;
SQL.Add(' and '+open_data('9009','t_op_seae.<2E><><EFBFBD><EFBFBD>Ա','t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','no','no','no','no'));
Open;
// showmessage(sql.Text);
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;
frm_sys_progress.bsSkinGauge1.ProgressText:='<27><>:'+IntToStr(y)+' <20><>: '+IntToStr(f);
Next;
end;
end;
frm_sys_progress.bsSkinGauge1.Value:=frm_sys_progress.bsSkinGauge1.Value+1;
f:=f+1;
end;
end;
end;
finally
FreeAndNil(aQuery);
freeAndNil(frm_sys_progress);
end;
end;
procedure Tfrm_rp_zou_linehistry.Getlirun;
var
aQuery:TAdoQuery;
aDate,aToDate:TDate;
strdate,strbdate,sDate,yDate:String;
i,f,t,n,fyear,eyear,y:integer;
// S:TChartSeries;
begin
// DBChart3.AddSeries();
fyear:=strtoint(cbYear.text);
eyear:=strtoint(cbeYear.text);
aQuery:=CreateAdoQuery;
try
with aQuery do begin
if not ASSIGNED(frm_sys_progress) then
frm_sys_progress:=tfrm_sys_progress.Create(application);
frm_sys_progress.Show;
n:=eyear-fyear;
if n=0 then n:=1;
frm_sys_progress.bsSkinGauge1.MaxValue:=n;
frm_sys_progress.bsSkinGauge1.MinValue:=0;
frm_sys_progress.bsSkinGauge1.Value:=0;
frm_sys_progress.Update;
for y:=fyear to eyear do begin
f:=strtoint(edit1.Text);
t:=strtoint(edit2.text);
while not (f>t) do begin
ydate:=inttostr(y);
sDate:=getleftstr(inttostr(f),2);
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> ');
SQL.Add(' where '+GetEtdStr(y,f));
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;
if RxDBLookupCombo2.DisplayValue<>'' then begin
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD>˾='''+RxDBLookupCombo2.DisplayValues[1]+'''');
end;
if (wwDBComboBox58.Value<>'') then begin
SQL.Add(' and t_op_seae.<2E>Ƿ<EFBFBD>ռ<EFBFBD><D5BC>='''+wwDBComboBox58.Value+'''');
end;
if cntrstr<>'' then begin
SQL.Add(' and EXISTS (select * from t_op_ctn where t_op_ctn.<2E><><EFBFBD><EFBFBD>=t_op_seae.<2E><><EFBFBD><EFBFBD> and t_op_ctn.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ in '+cntrstr+')');
end;
if linestr<>'' then begin
if bsSkinRadioGroup3.ItemIndex=1 then
SQL.Add(' and EXISTS (select * from t_code_disport where t_code_disport.EDI<44><49><EFBFBD><EFBFBD>=t_op_seae.ж<><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and t_code_disport.<2E><><EFBFBD><EFBFBD> in '+linestr+')')
else
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD> in '+linestr)
end;
if wwDBLookupCombo52.Text<>'' then begin
SQL.Add(' and t_op_seae.ж<><D0B6><EFBFBD><EFBFBD> like ''%'+wwDBLookupCombo52.Text+'%''')
end;
SQL.Add(' and '+open_data('9009','t_op_seae.<2E><><EFBFBD><EFBFBD>Ա','t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','no','no','no','no'));
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;
f:=f+1;
end;
end;
end;
finally
FreeAndNil(aQuery);
freeAndNil(frm_sys_progress);
end;
end;
procedure Tfrm_rp_zou_linehistry.Getctnitems(years,weeks:Integer);
begin
with ado_bs_items do
begin
CLOSE;
SQL.Clear;
SQL.Add('Select t_op_seae.<2E><><EFBFBD><EFBFBD>,t_op_seae.<2E><><EFBFBD><EFBFBD>˾,t_op_seae.ί<>е<EFBFBD>λ,t_op_seae.<2E><>װ<EFBFBD><D7B0>,t_op_seae.ж<><D0B6><EFBFBD><EFBFBD>,t_op_seae.<2E><><EFBFBD><EFBFBD><E1B5A5>,t_op_seae.ί<>е<EFBFBD>λ');
SQL.Add(',sum(isnull(t_op_ctn.TEU,0)) as <20><><EFBFBD><EFBFBD> ');
SQL.Add('from t_op_ctn,t_op_seae ');
SQL.Add('where t_op_seae.<2E><><EFBFBD><EFBFBD>=t_op_ctn.<2E><><EFBFBD><EFBFBD> and '+GetEtdStr(years,weeks));
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;
if RxDBLookupCombo2.DisplayValue<>'' then begin
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD>˾='''+RxDBLookupCombo2.DisplayValues[1]+'''');
end;
if cntrstr<>'' then begin
SQL.Add(' and t_op_ctn.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ in '+cntrstr);
end;
if linestr<>'' then begin
if bsSkinRadioGroup3.ItemIndex=1 then
SQL.Add(' and EXISTS (select * from t_code_disport where t_code_disport.EDI<44><49><EFBFBD><EFBFBD>=t_op_seae.ж<><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and t_code_disport.<2E><><EFBFBD><EFBFBD> in '+linestr+')')
else
SQL.Add(' and t_op_seae.<2E><><EFBFBD><EFBFBD> in '+linestr)
end;
if wwDBLookupCombo52.Text<>'' then begin
SQL.Add(' and t_op_seae.ж<><D0B6><EFBFBD><EFBFBD> like ''%'+wwDBLookupCombo52.Text+'%''')
end;
SQL.Add(' and '+open_data('9009','t_op_seae.<2E><><EFBFBD><EFBFBD>Ա','t_op_seae.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','no','no','no','no'));
SQL.Add('Group by t_op_seae.<2E><><EFBFBD><EFBFBD>,t_op_seae.<2E><><EFBFBD><EFBFBD>˾,t_op_seae.ί<>е<EFBFBD>λ,t_op_seae.<2E><>װ<EFBFBD><D7B0>,t_op_seae.ж<><D0B6><EFBFBD><EFBFBD>,t_op_seae.<2E><><EFBFBD><EFBFBD><E1B5A5>,t_op_seae.ί<>е<EFBFBD>λ');
Open;
end;
end;
procedure Tfrm_rp_zou_linehistry.bsSkinRadioGroup1Click(Sender: TObject);
begin
bsSkinButton10.OnClick(sender);
end;
procedure Tfrm_rp_zou_linehistry.RxDBLookupCombo1Change(Sender: TObject);
var
aQuery:TADOQuery;
begin
bsSkinRadioGroup2.Items.Clear;
bsSkinRadioGroup2.Items.Add('ȫ<><C8AB>');
if RxDBLookupCombo1.DisplayValue<>'' then begin
aQuery:=CreateAdoQuery;
try
with aQuery do begin
Close;SQL.Clear;
sql.Add('select <20><><EFBFBD><EFBFBD> from t_code_trade where 1=1 ');
if RxDBLookupCombo20.DisplayValue<>'' then
sql.Add(' and һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo20.DisplayValue+'''');
if RxDBLookupCombo1.DisplayValue<>'' then
sql.Add(' and <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo1.DisplayValue+'''');
Open;
first;
while not eof do begin
bsSkinRadioGroup2.Items.Add(FieldByName('<27><><EFBFBD><EFBFBD>').AsString);
Next;
end;
end;
finally
FreeAndNil(aQuery);
end;
end else begin
aQuery:=CreateAdoQuery;
try
with aQuery do begin
Close;SQL.Clear;
sql.Add('select <20><><EFBFBD><EFBFBD> from t_code_trade where 1=1 ');
Open;
first;
while not eof do begin
bsSkinRadioGroup2.Items.Add(FieldByName('<27><><EFBFBD><EFBFBD>').AsString);
Next;
end;
end;
finally
FreeAndNil(aQuery);
end;
end;
bsSkinRadioGroup2.ItemIndex:=0;
end;
procedure Tfrm_rp_zou_linehistry.bsSkinRadioGroup2Click(Sender: TObject);
begin
if frmshow then exit;
bsSkinButton10.OnClick(sender);
end;
procedure Tfrm_rp_zou_linehistry.Button1Click(Sender: TObject);
begin
showmessage(GetEtdStr(strtoint(cbYear.text),strtoint(edit1.text)));
end;
procedure Tfrm_rp_zou_linehistry.Chart1DblClick(Sender: TObject);
begin
//showmessage(Chart1.Title.);
//Chart1.SeriesList.g
end;
procedure Tfrm_rp_zou_linehistry.dxDBGrid1DblClick(Sender: TObject);
var years,weeks:integer;
begin
years:=strtoint(memtblDetail.FieldByName('<27><><EFBFBD><EFBFBD>').AsString);
weeks:=strtoint(Copy(dxDBGrid1.FocusedField.FieldName,1,2));
if bsSkinRadioGroup1.ItemIndex=0 then
begin
Getctnitems(years,weeks);
bsSkinPageControl1.ActivePageIndex:=2;
end;
end;
procedure Tfrm_rp_zou_linehistry.dxDBGrid2DblClick(Sender: TObject);
begin
fee_view(ado_bs_items.fieldbyname('<27><><EFBFBD><EFBFBD>').asstring);
end;
end.