D7snShanfengT/山峰贸易管理/U_ContractListXF_CX.pas
DESKTOP-E401PHE\Administrator c363cb75a7 调整之后的山凤水泥厂
2026-02-26 09:41:35 +08:00

583 lines
17 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_ContractListXF_CX;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter,
RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls,
Menus, cxPC, cxButtonEdit, cxTextEdit, cxCurrencyEdit, RM_e_Graphic,
RM_e_Jpeg;
type
TfrmContractList_XF_CX = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBClose: TToolButton;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
v1YWY: TcxGridDBColumn;
v1XHNo: TcxGridDBColumn;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBDataSet1: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
v1FLZQty: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
ADOQueryPrint: TADOQuery;
CDS_Print: TClientDataSet;
PopupMenu2: TPopupMenu;
N11: TMenuItem;
N21: TMenuItem;
N31: TMenuItem;
Panel1: TPanel;
Label8: TLabel;
Label9: TLabel;
Label12: TLabel;
Label13: TLabel;
MPRTCodeName: TEdit;
YWY: TEdit;
MPRTKZ: TEdit;
MPRTMF: TEdit;
cxTabControl1: TcxTabControl;
ADOQuerySub: TADOQuery;
DataSource2: TDataSource;
Panel4: TPanel;
Label14: TLabel;
Panel10: TPanel;
Image2: TImage;
Button1: TButton;
RadioGroup1: TRadioGroup;
RMJPEGExport1: TRMJPEGExport;
Label7: TLabel;
GCName: TEdit;
v1GCName: TcxGridDBColumn;
order_Sub: TClientDataSet;
v1FKType: TcxGridDBColumn;
vXFBFB: TcxGridDBColumn;
vNote: TcxGridDBColumn;
v1KSFee: TcxGridDBColumn;
Label1: TLabel;
Label3: TLabel;
TBPrint: TToolButton;
v1GLQty: TcxGridDBColumn;
Note: TMemo;
FKType: TMemo;
v1QDDate: TcxGridDBColumn;
v1SYFLQty: TcxGridDBColumn;
Label2: TLabel;
BDays: TComboBox;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBTPClick(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure CustomerNoChange(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure TBPrintClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView;
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
procedure v1SYFLQtyPropertiesEditValueChanged(Sender: TObject);
procedure GCNameKeyPress(Sender: TObject; var Key: Char);
private
DQdate:TDateTime;
procedure InitGrid();
procedure InitForm();
function DelData():Boolean;
procedure InitGridFH();
procedure SetStatus();
procedure InitSub();
{ Private declarations }
public
FFInt,FCloth:Integer;
canshu1:string;
{ Public declarations }
end;
var
frmContractList_XF_CX: TfrmContractList_XF_CX;
implementation
uses
U_DataLink,U_ConInPutXF,U_Fun,U_ZDYHelp,U_SKCR_CX,U_FjList_RZ;
{$R *.dfm}
procedure TfrmContractList_XF_CX.InitSub();
begin
IF Order_Main.IsEmpty then exit;
with ADOQuerySub do
begin
close;
sql.Clear;
sql.Add('select * from JYOrderCon_sub ');
sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString)));
open;
end;
SCreateCDS20(ADOQuerySub,Order_Sub);
SInitCDSData20(ADOQuerySub,Order_Sub);
end;
procedure TfrmContractList_XF_CX.SetStatus();
begin
end;
procedure TfrmContractList_XF_CX.FormDestroy(Sender: TObject);
begin
frmContractList_XF_CX:=nil;
end;
procedure TfrmContractList_XF_CX.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmContractList_XF_CX.FormCreate(Sender: TObject);
begin
cxgrid1.Align:=alClient;
//BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7;
//EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp);
DQdate:=SGetServerDate(ADOQueryTemp);
cxTabControl1.TabIndex:=0;
canshu1:=trim(DParameters1);
end;
procedure TfrmContractList_XF_CX.TBCloseClick(Sender: TObject);
begin
Close;
if FCloth<>1 then
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>б<EFBFBD>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')
else
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>б<EFBFBD>ѡ<EFBFBD><D1A1>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmContractList_XF_CX.InitGrid();
var i:Integer;
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('select A.*,Cast(0 as int) XHNo ');
SQL.Add(',FLZQty=(select Sum(FLQty) from JYOrderCon_Sub B where B.MainId=A.MainId)');
sql.add(',XFBFB=(select Top 1 XFBFB from JYOrderCon_Sub B where B.MainId=A.MainId)');
sql.add(',KSFee=(select Top 1 KSFee from JYOrderCon_Sub B where B.MainId=A.MainId)');
sql.Add(' from JYOrderCon_Main A ');
SQL.Add('where isnull(A.status,''0'')<>''3'' ');
if cxTabControl1.TabIndex<>4 then
sql.Add(' and isnull(A.ConType,'''')='''+Trim(cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption)+'''');
sql.Add(' order by A.QDDate');
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
with Order_Main do
begin
first;
i:=1;
while not Eof do
begin
Edit;
FieldByName('XHNo').AsInteger:=i;
i:=i+1;
next;
end;
end;
finally;
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmContractList_XF_CX.InitGridFH();
begin
end;
procedure TfrmContractList_XF_CX.InitForm();
begin
if FCloth<>1 then
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>б<EFBFBD>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')
else
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>б<EFBFBD>ѡ<EFBFBD><D1A1>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
InitGrid();
end;
procedure TfrmContractList_XF_CX.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
end;
function TfrmContractList_XF_CX.DelData():Boolean;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrderCon_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
sql.Add('delete JYOrderCon_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
sql.Add(' '+quotedstr(trim(DName)));
sql.Add(',getdate() ');
sql.Add(','+quotedstr(trim(self.Caption)));
sql.Add(','+quotedstr(trim('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬɾ<CDAC><C9BE>')));
sql.Add(','+quotedstr(trim('<27><>ͬ<EFBFBD>ţ<EFBFBD>'+trim(Order_Main.FieldByName('conNo').AsString))));
sql.Add(','+quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=True;
except
ADOQueryCmd.Connection.RollbackTrans;
Result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><ECB3A3>','<27><>ʾ',0);
end;
end;
procedure TfrmContractList_XF_CX.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
SelExportData(Tv1,ADOQueryMain,'<27><>ͬ<EFBFBD>б<EFBFBD>');
end;
procedure TfrmContractList_XF_CX.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmContractList_XF_CX.FormShow(Sender: TObject);
begin
SetStatus();
InitForm();
end;
procedure TfrmContractList_XF_CX.TBTPClick(Sender: TObject);
var
FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String;
begin
end;
procedure TfrmContractList_XF_CX.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmContractList_XF_CX.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmContractList_XF_CX.Tv1StylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
id,id10:Integer;
begin
{try
if Tv1.GroupedItemCount=0 then
begin
Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount;
Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount;
if Trim(VarToStr(ARecord.Values[id]))='' then Exit;
if Id<0 then Exit;
if ARecord.Values[id10]='<27><><EFBFBD><EFBFBD>' then exit;
if (ARecord.Values[id]-DQdate)>=4 then Exit;
if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then
AStyle:=DataLink_.QHuangSe
else
if ARecord.Values[id]-DQdate<0 then
begin
AStyle:=DataLink_OrderManage.FenHongS;
end;
end else
begin
end;
except
end; }
end;
procedure TfrmContractList_XF_CX.v1DeliveryDateCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
{ Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount;
Id10:=TV1.GetColumnByFieldName('SubStatus').Index;
if Id<0 then Exit;
if AViewInfo.GridRecord.Values[Id10]='<27><><EFBFBD><EFBFBD>' then Exit;
if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit;
if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then
ACanvas.Brush.Color:=clYellow
else
if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then
begin
ACanvas.Brush.Color:=clRed;
end;
begin
ACanvas.Brush.Color:=clRed;
end else
if AViewInfo.GridRecord.Values[Id]='Purple' then
begin
ACanvas.Brush.Color:=clPurple;
end else
if AViewInfo.GridRecord.Values[Id]='Olive' then
begin
ACanvas.Brush.Color:=clOlive;
end else
if AViewInfo.GridRecord.Values[Id]='Teal' then
begin
ACanvas.Brush.Color:=clTeal;
end else
if AViewInfo.GridRecord.Values[Id]='Background' then
begin
ACanvas.Brush.Color:=clBackground;
end; }
end;
procedure TfrmContractList_XF_CX.N1Click(Sender: TObject);
var
fPrintFile:string;
Porderno:string;
begin
if Order_Main.IsEmpty then Exit;
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>10.rmf' ;
SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+'''');
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString);
if FileExists(fPrintFile) then
begin
//RMVariables['begindate']:=begindate.DateTime;
//RMVariables['enddate']:=enddate.DateTime;
//RMVariables['printtime']:=Now;
//RMVariables['printer']:=Trim(gUserName);
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>10.rmf'),'<27><>ʾ',0);
end;
SDofilter(ADOQueryMain,'');
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
Order_Main.Locate('ordernoM',Porderno,[]);
end;
procedure TfrmContractList_XF_CX.N2Click(Sender: TObject);
var
fPrintFile:string;
Porderno:string;
begin
if Order_Main.IsEmpty then Exit;
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>.rmf' ;
SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+'''');
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString);
if FileExists(fPrintFile) then
begin
//RMVariables['begindate']:=begindate.DateTime;
//RMVariables['enddate']:=enddate.DateTime;
//RMVariables['printtime']:=Now;
//RMVariables['printer']:=Trim(gUserName);
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>.rmf'),'<27><>ʾ',0);
end;
SDofilter(ADOQueryMain,'');
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
Order_Main.Locate('ordernoM',Porderno,[]);
end;
procedure TfrmContractList_XF_CX.CustomerNoChange(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
end;
procedure TfrmContractList_XF_CX.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
if cxTabControl1.TabIndex>1 then
begin
if cxTabControl1.TabIndex<4 then
begin
BDays.Text:='60';
end;
end;
TBRafresh.Click;
end;
procedure TfrmContractList_XF_CX.Image2Click(Sender: TObject);
begin
Panel4.Visible:=False;
end;
procedure TfrmContractList_XF_CX.TBPrintClick(Sender: TObject);
var
fPrintFile:string;
EngMoney:string;
begin
if Order_Main.IsEmpty then Exit;
Button1.Click;
end;
procedure TfrmContractList_XF_CX.Button1Click(Sender: TObject);
var
fPrintFile:string;
EngMoney:string;
FimageFile: string;
begin
FimageFile:='';
if Order_Main.IsEmpty then Exit;
if radiogroup1.ItemIndex=0 then
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ.rmf' ;
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.Add('select A.*,B.* ');
sql.Add(',SumFLQty=(select Sum(C.FLQty) from JYOrderCon_Sub C where C.Mainid=A.Mainid)');
sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.MainId ');
sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
Open;
end;
SCreateCDS20(ADOQueryPrint,CDS_Print);
SInitCDSData20(ADOQueryPrint,CDS_Print);
if FileExists(fPrintFile) then
begin
RMVariables['ImageFile']:=trim(FimageFile);
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ.rmf'),'<27><>ʾ',0);
end;
end;
procedure TfrmContractList_XF_CX.Tv1FocusedRecordChanged(
Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
begin
if Order_Main.IsEmpty then Exit;
Note.Text:=Trim(Order_Main.fieldbyname('Note').AsString);
FKType.Text:=Trim(Order_Main.fieldbyname('FKType').AsString);
end;
procedure TfrmContractList_XF_CX.v1SYFLQtyPropertiesEditValueChanged(
Sender: TObject);
var mavlue: string;
begin
mavlue:=TcxTextEdit(Sender).EditingText;
if mavlue='' then mavlue:='0';
with Order_Main do
begin
edit;
FieldByName('SYFLQty').Value:=mavlue;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update JYOrderCon_Main set ');
sql.Add('SYFLQty='''+trim(mavlue)+''' ');
sql.Add('where mainid='''+trim(Order_Main.fieldbyname('Mainid').AsString)+'''');
execsql;
end;
end;
procedure TfrmContractList_XF_CX.GCNameKeyPress(Sender: TObject;
var Key: Char);
var i:Integer;
begin
if Key=#13 then
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('select A.*,Cast(0 as int) XHNo ');
SQL.Add(',FLZQty=(select Sum(FLQty) from JYOrderCon_Sub B where B.MainId=A.MainId)');
sql.add(',XFBFB=(select Top 1 XFBFB from JYOrderCon_Sub B where B.MainId=A.MainId)');
sql.add(',KSFee=(select Top 1 KSFee from JYOrderCon_Sub B where B.MainId=A.MainId)');
sql.Add(' from JYOrderCon_Main A ');
SQL.Add('where isnull(A.status,''0'')<>''3'' and A.GCName like '''+'%'+trim(GCName.Text)+'%'+''' ');
if cxTabControl1.TabIndex<>4 then
sql.Add(' and isnull(A.ConType,'''')='''+Trim(cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption)+'''');
sql.Add(' order by A.QDDate');
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
with Order_Main do
begin
first;
i:=1;
while not Eof do
begin
Edit;
FieldByName('XHNo').AsInteger:=i;
i:=i+1;
next;
end;
end;
finally;
ADOQueryMain.EnableControls;
end;
end;
end;
end.