D7snShanfengT/应收应付/U_OrderInPutZP.pas

527 lines
16 KiB
ObjectPascal
Raw Normal View History

2026-02-26 09:41:35 +08:00
unit U_OrderInPutZP;
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, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP,ShellAPI
,IniFiles;
type
TfrmProductOrderList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBPrint: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
Label1: TLabel;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
Label3: TLabel;
OrderNoM: TEdit;
TBExport: TToolButton;
v1OrderNo: TcxGridDBColumn;
v1OrdDate: TcxGridDBColumn;
v1DeliveryDate: TcxGridDBColumn;
v1OrdPerson1: TcxGridDBColumn;
v1PRTColor: TcxGridDBColumn;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
v1CustomerNoName: TcxGridDBColumn;
Label4: TLabel;
CustomerNoName: TEdit;
v1MPRTCodeName: TcxGridDBColumn;
v1MPRTMF: TcxGridDBColumn;
v1PRTOrderQty: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
v1PRTPrice: TcxGridDBColumn;
Label5: TLabel;
OrdPerson1: TEdit;
Label7: TLabel;
PRTColor: TEdit;
Label8: TLabel;
MPRTCodeName: TEdit;
v1MPRTKZ: TcxGridDBColumn;
v1OrdDefStr1: TcxGridDBColumn;
Label11: TLabel;
OrdDefStr1: TEdit;
Label12: TLabel;
MPRTKZ: TEdit;
Label13: TLabel;
MPRTMF: TEdit;
ADOQueryPrint: TADOQuery;
CDS_Print: TClientDataSet;
ToolButton3: TToolButton;
v1Column4: TcxGridDBColumn;
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 TBPrintClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure OrderNoMChange(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 ToolButton3Click(Sender: TObject);
private
DQdate:TDateTime;
procedure InitGrid();
procedure InitForm();
function DelData():Boolean;
procedure InitGridFH();
procedure ReadINIFile();
{ Private declarations }
public
FFInt,FCloth:Integer;
{ Public declarations }
end;
var
frmProductOrderList: TfrmProductOrderList;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmProductOrderList.FormDestroy(Sender: TObject);
begin
frmProductOrderList:=nil;
end;
procedure TfrmProductOrderList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmProductOrderList.FormCreate(Sender: TObject);
begin
cxgrid1.Align:=alClient;
//BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7;
//EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp);
DQdate:=SGetServerDate(ADOQueryTemp);
end;
procedure TfrmProductOrderList.TBCloseClick(Sender: TObject);
begin
Close;
if FCloth<>1 then
WriteCxGrid('<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD>б<EFBFBD>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')
else
WriteCxGrid('<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD>б<EFBFBD>ѡ<EFBFBD><D1A1>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmProductOrderList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('select A.*,B.*,A.OrderNo OrderNoM from JYOrder_Main A left join JYOrder_Sub B on A.MainId=B.MainId ');
SQL.Add('where OrdDate>=:begdate and OrdDate<:enddate');
if Trim(DParameters1)<>'<27><><EFBFBD><EFBFBD>' then
begin
sql.Add(' and A.Filler='''+Trim(DName)+'''');
end;
Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime);
Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1);
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmProductOrderList.InitGridFH();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('exec Order_QryList :MainId,:WSql');
Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''
+' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+'''';
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmProductOrderList.InitForm();
begin
if SGetServerDate(ADOQueryTemp)>StrToDate('2014-07-11') then
begin
ToolBar1.Visible:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>Ӧ<EFBFBD>̣<EFBFBD>','<27><>ʾ',0);
Exit;
end;
if FCloth<>1 then
ReadCxGrid('<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD>б<EFBFBD>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')
else
ReadCxGrid('<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD>б<EFBFBD>ѡ<EFBFBD><D1A1>',Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7;
EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
InitGrid();
end;
procedure TfrmProductOrderList.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 TfrmProductOrderList.DelData():Boolean;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrder_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+'''');
ExecSQL;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
Open;
if IsEmpty then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
ExecSQL;
end;
end;
end;
if Trim(Order_Main.fieldbyname('SubId').AsString)='' then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
ExecSQL;
end;
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 TfrmProductOrderList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
SelExportData(Tv1,ADOQueryMain,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD>б<EFBFBD>');
end;
procedure TfrmProductOrderList.TBPrintClick(Sender: TObject);
var
fPrintFile:string;
Porderno:string;
i,j:Integer;
begin
if Order_Main.IsEmpty then Exit;
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>.rmf' ;
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.Add('select A.*,B.*,PRTColorEng=(select Note from KH_Zdy CC where ZdyName=B.PRTColor and CC.Type=''OrdColor'' ),ML='' '' ');
SQL.Add(',CPQty=(select isnull(Sum(PRTOrderQty),0) from JYOrder_Sub C where C.MainId=A.MainId)');
sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId ');
sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
Open;
end;
SCreateCDS20(ADOQueryPrint,CDS_Print);
SInitCDSData20(ADOQueryPrint,CDS_Print);
i:=ADOQueryPrint.RecordCount;
ADOQueryPrint.First;
if i<14 then
begin
for j:=1 to 19-i do
begin
with CDS_Print do
begin
Append;
FieldByName('ML').Value:=' ';
Post;
end;
end;
end;
with CDS_Print do
begin
Append;
FieldByName('Note').Value:=Trim(Order_Main.fieldbyname('Note').AsString);
FieldByName('OrdDefStr10').Value:=Trim(Order_Main.fieldbyname('OrdDefStr10').AsString);
FieldByName('OrdDefStr11').Value:=Trim(Order_Main.fieldbyname('OrdDefStr11').AsString);
FieldByName('OrdDefStr12').Value:=Trim(Order_Main.fieldbyname('OrdDefStr12').AsString);
FieldByName('OrdDefStr13').Value:=Trim(Order_Main.fieldbyname('OrdDefStr13').AsString);
FieldByName('OrdDefStr14').Value:=Trim(Order_Main.fieldbyname('OrdDefStr14').AsString);
FieldByName('OrdDefStr15').Value:=Trim(Order_Main.fieldbyname('OrdDefStr15').AsString);
FieldByName('OrdDefStr16').Value:=Trim(Order_Main.fieldbyname('OrdDefStr16').AsString);
FieldByName('OrdDefStr17').Value:=Trim(Order_Main.fieldbyname('OrdDefStr17').AsString);
FieldByName('OrdDefStr18').Value:=Trim(Order_Main.fieldbyname('OrdDefStr18').AsString);
FieldByName('OrdDefStr19').Value:=Trim(Order_Main.fieldbyname('OrdDefStr19').AsString);
FieldByName('OrdDefStr20').Value:=Trim(Order_Main.fieldbyname('OrdDefStr20').AsString);
FieldByName('OrdDefStr21').Value:=Trim(Order_Main.fieldbyname('OrdDefStr21').AsString);
FieldByName('OrdPerson1').Value:=Trim(Order_Main.fieldbyname('OrdPerson1').AsString);
FieldByName('OrdPerson2').Value:=Trim(Order_Main.fieldbyname('OrdPerson2').AsString);
FieldByName('OrdPerson3').Value:=Trim(Order_Main.fieldbyname('OrdPerson3').AsString);
FieldByName('OrdPerson4').Value:=Trim(Order_Main.fieldbyname('OrdPerson4').AsString);
FieldByName('Filler').Value:=Trim(Order_Main.fieldbyname('Filler').AsString);
FieldByName('Chker').Value:=Trim(Order_Main.fieldbyname('Chker').AsString);
FieldByName('ML').Value:=' ';
Post;
end;
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;
end;
procedure TfrmProductOrderList.TBRafreshClick(Sender: TObject);
begin
if FFInt=1 then
begin
InitGridFH();
end else
InitGrid();
end;
procedure TfrmProductOrderList.OrderNoMChange(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 TfrmProductOrderList.FormShow(Sender: TObject);
begin
InitForm();
end;
procedure TfrmProductOrderList.TBTPClick(Sender: TObject);
var
FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String;
begin
end;
procedure TfrmProductOrderList.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmProductOrderList.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmProductOrderList.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 TfrmProductOrderList.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 TfrmProductOrderList.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 TfrmProductOrderList.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 TfrmProductOrderList.ToolButton3Click(Sender: TObject);
begin
ModalResult:=1;
end;
procedure TfrmProductOrderList.ReadINIFile();
var
programIni:Tinifile; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
FileName:string;
begin
FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI';
programIni:=Tinifile.create(FileName);
server:=programIni.ReadString('SERVER','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ','127.0.0.1');
programIni.Free;
end;
end.