400 lines
12 KiB
ObjectPascal
400 lines
12 KiB
ObjectPascal
unit U_FanYangListHZ;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
|
||
cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, RM_Dataset, RM_System,
|
||
RM_Common, RM_Class, RM_GridReport, DBClient, ADODB,
|
||
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel,
|
||
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
|
||
cxControls, cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ExtCtrls,
|
||
ToolWin, cxPC, cxGridBandedTableView, cxGridDBBandedTableView,
|
||
cxCustomPivotGrid, cxDBPivotGrid, cxContainer, cxTextEdit, cxCurrencyEdit;
|
||
|
||
type
|
||
TFrmFanYangListHZ = class(TForm)
|
||
ToolBar1: TToolBar;
|
||
TBRafresh: TToolButton;
|
||
TBFind: TToolButton;
|
||
ToolButton1: TToolButton;
|
||
TBPrint: TToolButton;
|
||
TBClose: TToolButton;
|
||
Panel1: TPanel;
|
||
Label1: TLabel;
|
||
Label3: TLabel;
|
||
Label4: TLabel;
|
||
Label8: TLabel;
|
||
Label9: TLabel;
|
||
Label10: TLabel;
|
||
Label11: TLabel;
|
||
Label12: TLabel;
|
||
Label13: TLabel;
|
||
BegDate: TDateTimePicker;
|
||
EndDate: TDateTimePicker;
|
||
OrderNoM: TEdit;
|
||
CustomerNo: TEdit;
|
||
MPRTCodeName: TEdit;
|
||
ConNo: TEdit;
|
||
MPRTKuanNO: TEdit;
|
||
MPRTCode: TEdit;
|
||
MPRTKZ: TEdit;
|
||
MPRTMF: TEdit;
|
||
cxGrid1: TcxGrid;
|
||
cxGrid1Level1: TcxGridLevel;
|
||
cxGridPopupMenu1: TcxGridPopupMenu;
|
||
ADOQueryTmp: TADOQuery;
|
||
DataSource1: TDataSource;
|
||
Order_Main: TClientDataSet;
|
||
RM1: TRMGridReport;
|
||
RMDBMain: TRMDBDataSet;
|
||
ADOQueryPrint: TADOQuery;
|
||
CDS_Print: TClientDataSet;
|
||
TChk: TToolButton;
|
||
TNoChk: TToolButton;
|
||
cxTabControl1: TcxTabControl;
|
||
TV1: TcxGridDBBandedTableView;
|
||
VOrdDate: TcxGridDBBandedColumn;
|
||
V1OrdDefStr1: TcxGridDBBandedColumn;
|
||
V1Mainid: TcxGridDBBandedColumn;
|
||
V1MPRTCodeName: TcxGridDBBandedColumn;
|
||
V1MPRTCode: TcxGridDBBandedColumn;
|
||
V1PRTColor: TcxGridDBBandedColumn;
|
||
V1PRTOrderQty: TcxGridDBBandedColumn;
|
||
V1OrdQty4: TcxGridDBBandedColumn;
|
||
V1SOrdQty1: TcxGridDBBandedColumn;
|
||
V1MLF: TcxGridDBBandedColumn;
|
||
V1OrdQty5: TcxGridDBBandedColumn;
|
||
V1OrdQty2: TcxGridDBBandedColumn;
|
||
V1OrdQty1: TcxGridDBBandedColumn;
|
||
V1ZWF: TcxGridDBBandedColumn;
|
||
V1OrdQty3: TcxGridDBBandedColumn;
|
||
V1SMPYF: TcxGridDBBandedColumn;
|
||
V1ZJ: TcxGridDBBandedColumn;
|
||
V1Note: TcxGridDBBandedColumn;
|
||
V1OrderUnit: TcxGridDBBandedColumn;
|
||
V1OrdQty6: TcxGridDBBandedColumn;
|
||
V1SOrdQty2: TcxGridDBBandedColumn;
|
||
V1OrdDefStr6: TcxGridDBBandedColumn;
|
||
OrdDefStr1: TEdit;
|
||
Label2: TLabel;
|
||
V1CustomerNoName: TcxGridDBBandedColumn;
|
||
V1OrdQty7: TcxGridDBBandedColumn;
|
||
PanelSh: TPanel;
|
||
Label5: TLabel;
|
||
Orddefdate1: TDateTimePicker;
|
||
Label6: TLabel;
|
||
ordQty9: TcxCurrencyEdit;
|
||
Label7: TLabel;
|
||
OrddefNote1: TMemo;
|
||
Button1: TButton;
|
||
Button2: TButton;
|
||
V1Orddefdate1: TcxGridDBBandedColumn;
|
||
V1OrdQty9: TcxGridDBBandedColumn;
|
||
V1OrddefNote1: TcxGridDBBandedColumn;
|
||
ToolButton2: TToolButton;
|
||
V1conNo: TcxGridDBBandedColumn;
|
||
V1orddefstr7: TcxGridDBBandedColumn;
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure FormDestroy(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure TBRafreshClick(Sender: TObject);
|
||
procedure TBCloseClick(Sender: TObject);
|
||
procedure TBFindClick(Sender: TObject);
|
||
procedure OrderNoMChange(Sender: TObject);
|
||
procedure ToolButton1Click(Sender: TObject);
|
||
procedure cxTabControl1Change(Sender: TObject);
|
||
procedure TChkClick(Sender: TObject);
|
||
procedure TNoChkClick(Sender: TObject);
|
||
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView;
|
||
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
|
||
AShift: TShiftState; var AHandled: Boolean);
|
||
procedure TBPrintClick(Sender: TObject);
|
||
procedure VOrdDateCompareRowValuesForCellMerging(Sender: TcxGridColumn;
|
||
ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties;
|
||
const AValue1: Variant; ARow2: TcxGridDataRow;
|
||
AProperties2: TcxCustomEditProperties; const AValue2: Variant;
|
||
var AAreEqual: Boolean);
|
||
procedure V1PRTColorCompareRowValuesForCellMerging(
|
||
Sender: TcxGridColumn; ARow1: TcxGridDataRow;
|
||
AProperties1: TcxCustomEditProperties; const AValue1: Variant;
|
||
ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties;
|
||
const AValue2: Variant; var AAreEqual: Boolean);
|
||
procedure Button1Click(Sender: TObject);
|
||
procedure Button2Click(Sender: TObject);
|
||
procedure ToolButton2Click(Sender: TObject);
|
||
private
|
||
procedure initGrid();
|
||
{ Private declarations }
|
||
public
|
||
{ Public declarations }
|
||
end;
|
||
|
||
var
|
||
FrmFanYangListHZ: TFrmFanYangListHZ;
|
||
|
||
implementation
|
||
|
||
uses U_DataLink,U_FanYangList_Sub,U_Fun;
|
||
|
||
{$R *.dfm}
|
||
|
||
procedure TFrmFanYangListHZ.initGrid();
|
||
begin
|
||
with ADOQueryTmp do
|
||
begin
|
||
Filtered:=False;
|
||
close;
|
||
sql.Clear;
|
||
sql.add('exec P_Get_FYList ');
|
||
sql.add('@begdate='''+formatdatetime('yyyy-MM-dd',begdate.DateTime)+''' ');
|
||
sql.Add(',@endDate='''+formatdatetime('yyyy-MM-dd',endDate.DateTime+1)+''' ');
|
||
open;
|
||
end;
|
||
SCreateCDS20(ADOQueryTmp,Order_Main);
|
||
SInitCDSData20(ADOQueryTmp,Order_Main);
|
||
TBFind.Click;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.FormClose(Sender: TObject;
|
||
var Action: TCloseAction);
|
||
begin
|
||
Action:=caFree;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.FormCreate(Sender: TObject);
|
||
begin
|
||
cxgrid1.Align:=alClient;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.FormDestroy(Sender: TObject);
|
||
begin
|
||
FrmFanYangListHZ:=nil;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.FormShow(Sender: TObject);
|
||
begin
|
||
ReadCxBandedGrid(self.Caption+Tv1.Name+'5',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>ͳ<EFBFBD><CDB3>');
|
||
BegDate.DateTime:=SGetServerDate10(ADOQueryPrint)-15;
|
||
EndDate.DateTime:=SGetServerDate10(ADOQueryPrint);
|
||
initGrid();
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.TBRafreshClick(Sender: TObject);
|
||
begin
|
||
initGrid();
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.TBCloseClick(Sender: TObject);
|
||
begin
|
||
Close;
|
||
WriteCxBandedGrid(self.Caption+Tv1.Name+'5',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>ͳ<EFBFBD><CDB3>');
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.TBFindClick(Sender: TObject);
|
||
var strwhere: string;
|
||
begin
|
||
if ADOQueryTmp.Active=False then Exit;
|
||
strwhere:=SGetFilters(Panel1,1,2);
|
||
IF strwhere='' then
|
||
begin
|
||
if cxTabControl1.TabIndex<2 then
|
||
strwhere:=' status ='''+inttostr(cxTabControl1.TabIndex)+'''';
|
||
end
|
||
else
|
||
begin
|
||
if cxTabControl1.TabIndex<2 then
|
||
strwhere:=strwhere+' and status ='''+inttostr(cxTabControl1.TabIndex)+'''';
|
||
end;
|
||
SDofilter(ADOQueryTmp,strwhere);
|
||
SCreateCDS20(ADOQueryTmp,Order_Main);
|
||
SInitCDSData20(ADOQueryTmp,Order_Main);
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.OrderNoMChange(Sender: TObject);
|
||
begin
|
||
TBFind.Click;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.ToolButton1Click(Sender: TObject);
|
||
begin
|
||
if Order_Main.IsEmpty then Exit;
|
||
try
|
||
FrmFanYangListSub:=TFrmFanYangListSub.Create(Application);
|
||
with FrmFanYangListSub do
|
||
begin
|
||
FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString);
|
||
ToolBar2.Visible:=False;
|
||
TBSave.Visible:=False;
|
||
Panel1.Enabled:=False;
|
||
if ShowModal=1 then
|
||
begin
|
||
initGrid();
|
||
end;
|
||
end;
|
||
finally
|
||
FrmFanYangListSub.Free;
|
||
end;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.cxTabControl1Change(Sender: TObject);
|
||
begin
|
||
Tchk.Visible:=False;
|
||
TNochk.Visible:=False;
|
||
if CxTabControl1.TabIndex=0 then
|
||
begin
|
||
Tchk.Visible:=True;
|
||
end;
|
||
if CxTabControl1.TabIndex=1 then
|
||
begin
|
||
TNochk.Visible:=true;
|
||
end;
|
||
initGrid();
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.TChkClick(Sender: TObject);
|
||
begin
|
||
if order_Main.IsEmpty then exit;
|
||
|
||
PanelSh.Left:=(Width-PanelSh.Width) div 2;
|
||
PanelSh.top:=(Height-PanelSh.Height-100) div 2;
|
||
Orddefdate1.DateTime:=date();
|
||
ordQty9.Text:='';
|
||
OrddefNote1.Text:='';
|
||
PanelSh.Visible:=true;
|
||
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.TNoChkClick(Sender: TObject);
|
||
begin
|
||
if order_Main.IsEmpty then exit;
|
||
try
|
||
with ADOQueryTmp do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.add('update jYorderFY_Main set Chker='''',Chktime=Null,status=''0'' ');
|
||
sql.Add(',Orddefdate1=null,ordQty9=0,OrddefNote1='''' ');
|
||
sql.add('where Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''' ');
|
||
execsql;
|
||
end;
|
||
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ');
|
||
initGrid();
|
||
except
|
||
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
|
||
end;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.Tv1CellDblClick(Sender: TcxCustomGridTableView;
|
||
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
|
||
AShift: TShiftState; var AHandled: Boolean);
|
||
begin
|
||
ToolButton1.Click;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.TBPrintClick(Sender: TObject);
|
||
var
|
||
fPrintFile:string;
|
||
begin
|
||
if order_Main.IsEmpty then exit;
|
||
{with ADOQueryPrint do
|
||
begin
|
||
close;
|
||
sql.clear;
|
||
sql.Add('select A.*,B.*,');
|
||
//Sql.add('CLRGS=(select count(AA.PRTColor) from (select distinct D.PRTColor from JYOrderFy_Sub D where D.Mainid=A.Mainid ) AA),');
|
||
//sql.add('SumOrdQty1=(select Sum(D.SOrdQty1) from JYOrderFY_Sub D where D.Mainid=A.Mainid ),');
|
||
//sql.add('ZJ=(select C.OrdQty5*Count(D.PRTColor)+C.OrdQty1*C.OrdQty2+C.OrdQty3*Sum(D.SOrdQty1)+C.OrdQty4*Sum(D.SOrdQty1)');
|
||
//sql.add(' from JYOrderFy_Main C inner join JYOrderFy_Sub D on D.Mainid=C.Mainid where C.Mainid=A.Mainid ');
|
||
//sql.add('group by C.OrdQty5,C.OrdQty1,C.OrdQty2,C.OrdQty3,C.OrdQty4 ),');
|
||
sql.add('ZJ=(select (AA.OrdQty5*Count(AA.PRTColor)+AA.OrdQty1*AA.OrdQty2+AA.OrdQty3*Sum(SL)+AA.OrdQty4*Sum(SL)) from ');
|
||
sql.add('(select E.PRTColor,F.OrdQty5,F.OrdQty1,F.OrdQty2,F.OrdQty3,F.OrdQty4,Sum(E.SOrdQty1) SL From JYOrderFy_Sub E inner join ');
|
||
sql.add('JYOrderFy_Main F on F.Mainid=E.Mainid where F.Mainid=A.Mainid group by E.PRTColor,F.OrdQty5,F.OrdQty1,F.OrdQty2,F.OrdQty3,F.OrdQty4 ) AA ');
|
||
sql.add('group by AA.OrdQty5,AA.OrdQty1,AA.OrdQty2,AA.OrdQty3,AA.OrdQty4) ,');
|
||
|
||
sql.add('MLF=SOrdQty1*OrdQty4,ZWF=OrdQty2*OrdQty1,SMPYF=OrdQty3*SOrdQty1 ');
|
||
sql.add('from JYOrderFy_Main A ');
|
||
sql.add('inner join JYOrderFy_Sub B on B.Mainid=A.Mainid ');
|
||
sql.Add('where A.Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''' ');
|
||
open;
|
||
end;
|
||
SCreateCDS20(ADOQueryPrint,CDS_Print);
|
||
SInitCDSData20(ADOQueryPrint,CDS_Print);}
|
||
fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>ͳ<EFBFBD><CDB3>.rmf' ;
|
||
if FileExists(fPrintFile) then
|
||
begin
|
||
RM1.LoadFromFile(fPrintFile);
|
||
RM1.ShowReport;
|
||
end else
|
||
begin
|
||
Application.MessageBox(PChar('û<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>ͳ<EFBFBD><CDB3>.rmf'),'<27><>ʾ',0);
|
||
end;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.VOrdDateCompareRowValuesForCellMerging(
|
||
Sender: TcxGridColumn; ARow1: TcxGridDataRow;
|
||
AProperties1: TcxCustomEditProperties; const AValue1: Variant;
|
||
ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties;
|
||
const AValue2: Variant; var AAreEqual: Boolean);
|
||
begin
|
||
if ARow1.Values[V1Mainid.Index]=ARow2.Values[V1Mainid.Index] then
|
||
AAreEqual:=True
|
||
else
|
||
AAreEqual:=False;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.V1PRTColorCompareRowValuesForCellMerging(
|
||
Sender: TcxGridColumn; ARow1: TcxGridDataRow;
|
||
AProperties1: TcxCustomEditProperties; const AValue1: Variant;
|
||
ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties;
|
||
const AValue2: Variant; var AAreEqual: Boolean);
|
||
begin
|
||
if (ARow1.Values[V1Mainid.Index]=ARow2.Values[V1Mainid.Index]) and
|
||
(ARow1.Values[V1PRTColor.Index]=ARow2.Values[V1PRTColor.Index]) then
|
||
begin
|
||
AAreEqual:=true
|
||
end
|
||
else
|
||
AAreEqual:=False;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.Button1Click(Sender: TObject);
|
||
begin
|
||
try
|
||
with ADOQueryTmp do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.add(' update jYorderFY_Main set Chker='''+Trim(DName)+''',Chktime=getdate(),status=''1'' ');
|
||
IF strTofloatdef(trim(OrdQty9.Text),0)<>0 then
|
||
begin
|
||
sql.Add(',Orddefdate1='''+formatdateTime('yyyy-MM-dd',Orddefdate1.DateTime)+''' ');
|
||
sql.Add(',OrdQty9='''+floattostr(strTofloatdef(trim(OrdQty9.Text),0))+''' ');
|
||
sql.Add(',OrddefNote1='''+trim(OrddefNote1.Text)+''' ');
|
||
end;
|
||
sql.add(' where Mainid='''+trim(Order_Main.fieldbyname('Mainid').asstring)+''' ');
|
||
execsql;
|
||
end;
|
||
PanelSh.Visible:=false;
|
||
application.MessageBox('<27><><EFBFBD>˳ɹ<CBB3><C9B9><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ');
|
||
initGrid();
|
||
except
|
||
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
|
||
end;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.Button2Click(Sender: TObject);
|
||
begin
|
||
PanelSh.Visible:=false;
|
||
end;
|
||
|
||
procedure TFrmFanYangListHZ.ToolButton2Click(Sender: TObject);
|
||
begin
|
||
IF Order_Main.IsEmpty then exit;
|
||
TcxGridToExcel(self.Caption,CXGrid1);
|
||
end;
|
||
|
||
end.
|