D7myYunxiang/发货申请(DeliveryApplication.dll)/U_ProductOrderSel.pas

459 lines
13 KiB
ObjectPascal
Raw Permalink Normal View History

2025-01-20 13:04:03 +08:00
unit U_ProductOrderSel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxButtonEdit,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, Menus,
RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport,
DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxContainer,
cxImage, cxDBEdit, StdCtrls, cxPC, cxSplitter, ExtCtrls, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin ,ShellAPI,StrUtils,
cxDropDownEdit, cxTextEdit;
type
TfrmProductOrderSel = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: 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;
OrderNo: TEdit;
v1OrderNo: TcxGridDBColumn;
v1OrdDate: TcxGridDBColumn;
v1DeliveryDate: TcxGridDBColumn;
v1ConNo: TcxGridDBColumn;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
v1CustomerNoName: TcxGridDBColumn;
Label4: TLabel;
CustomerNoName: TEdit;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
Label8: TLabel;
HJName: TEdit;
Label9: TLabel;
ConNo: TEdit;
Label11: TLabel;
HJCode: TEdit;
Label12: TLabel;
MPRTKZ: TEdit;
ADOQueryPrint: TADOQuery;
v1Column1: TcxGridDBColumn;
cxSplitter1: TcxSplitter;
ADOQuerySub: TADOQuery;
DataSource2: TDataSource;
cxTabControl1: TcxTabControl;
Panel2: TPanel;
GroupBox1: TGroupBox;
Picture4: TcxDBImage;
ADOQueryImage: TADOQuery;
DSImage: TDataSource;
IdFTP1: TIdFTP;
v1Column11: TcxGridDBColumn;
Order_Sub: TClientDataSet;
Label5: TLabel;
YWY: TEdit;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
v1Column4: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1PRTColor: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1PRTOrderQty: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1OrderUnit: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
cxGridPopupMenu2: TcxGridPopupMenu;
v1Column6: 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 TBRafreshClick(Sender: TObject);
procedure OrderNoChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
procedure N1Click(Sender: TObject);
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView;
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
procedure cxTabControl1Change(Sender: TObject);
procedure TV2FocusedRecordChanged(Sender: TcxCustomGridTableView;
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
procedure Picture4DblClick(Sender: TObject);
procedure TV3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Tv1DblClick(Sender: TObject);
private
DQdate:TDateTime;
procedure InitGrid();
procedure InitForm();
function DelData():Boolean;
procedure InitSub();
procedure InitImage(fwbid:string);
{ Private declarations }
public
FFInt,FCloth:Integer;
canshu1:string;
fFlileFlag:string;
{ Public declarations }
end;
var
frmProductOrderSel: TfrmProductOrderSel;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmProductOrderSel.InitImage(fwbid:string);
begin
ADOQueryImage.close;
IF fwbid='' then exit;
with ADOQueryImage do
begin
close;
sql.Clear;
sql.Add('select * from TP_File A');
sql.Add('where WBID='+quotedstr(trim(fwbid)));
open;
end;
end;
procedure TfrmProductOrderSel.InitSub();
begin
ADOQuerySub.Close;
IF Order_Main.IsEmpty then exit;
try
ADOQuerySub.DisableControls;
with ADOQuerySub do
begin
close;
sql.Clear;
sql.Add(' select A.* from JYOrder_Sub A where');
sql.Add(' MainId='+quotedstr((Order_Main.fieldbyname('mainID').AsString)));
open;
end;
SCreateCDS20(ADOQuerySub,Order_Sub);
SInitCDSData20(ADOQuerySub,Order_Sub);
if Trim(canshu1)='<27><>ѯ' then
begin
with Order_Sub do
begin
First;
while not Eof do
begin
Edit;
FieldByName('prtprice').Value:=0;
Post;
Next;
end;
end;
end;
finally
ADOQuerySub.EnableControls;
end;
end;
procedure TfrmProductOrderSel.FormDestroy(Sender: TObject);
begin
frmProductOrderSel:=nil;
end;
procedure TfrmProductOrderSel.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmProductOrderSel.FormCreate(Sender: TObject);
begin
cxgrid1.Align:=alClient;
DQdate:=SGetServerDate(ADOQueryTemp);
canshu1:=trim(DParameters1);
end;
procedure TfrmProductOrderSel.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid(trim(self.Caption),Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmProductOrderSel.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.add('select *') ;
sql.Add(',HJCode=cast((select distinct '','' + X.MPRTCode from JYOrder_Sub X where X.MainId=A.MainId for xml path('''')) as varchar(200))');
sql.Add(',HJName=cast((select distinct '','' + X.MPRTCodeName from JYOrder_Sub X where X.MainId=A.MainId for xml path('''')) as varchar(200))');
sql.add(' from JYOrder_Main A') ;
sql.add(' where Filltime>='+quotedstr(trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)))) ;
sql.add(' and Filltime<'+quotedstr(trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)))) ;
if cxTabControl1.TabIndex<3 then
sql.add(' and isnull(status,''0'')='+quotedstr(trim(inttostr(cxTabControl1.TabIndex)))) ;
if Trim(self.Caption)=<><C8BE>ָʾ<D6B8><CABE>¼<EFBFBD><C2BC>' then
sql.add(' and Filler='+quotedstr(trim(DName))) ;
// showmessage(sql.Text);
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmProductOrderSel.InitForm();
begin
ReadCxGrid(trim(self.Caption),Tv1,'<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-30;
EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
InitGrid();
end;
procedure TfrmProductOrderSel.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 TfrmProductOrderSel.DelData():Boolean;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
sql.Add('delete JYOrder_Sub 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(ʾ<D6B8><CABE>ɾ<EFBFBD><C9BE>')));
sql.Add(','+quotedstr(trim(ʾ<D6B8><CABE><EFBFBD>ţ<EFBFBD>'+trim(Order_Main.FieldByName('OrderNO').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 TfrmProductOrderSel.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmProductOrderSel.OrderNoChange(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 TfrmProductOrderSel.FormShow(Sender: TObject);
begin
fFlileFlag:=UserDataFlag+'HX';
InitForm();
end;
procedure TfrmProductOrderSel.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmProductOrderSel.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmProductOrderSel.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 TfrmProductOrderSel.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 TfrmProductOrderSel.Tv1FocusedRecordChanged(
Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
begin
InitSub();
end;
procedure TfrmProductOrderSel.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmProductOrderSel.TV2FocusedRecordChanged(
Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
begin
initImage(ADOQuerySub.fieldbyname('HXFile').AsString);
end;
procedure TfrmProductOrderSel.Picture4DblClick(Sender: TObject);
var
sFieldName:string;
fileName:string;
// ff: TADOBlobStream;
// FJStream : TMemoryStream;
begin
IF Picture4.Picture.Height=0 then exit;
sFieldName:=leftbstr(ExtractFilePath(Application.ExeName),1)+':\ͼƬ<CDBC>鿴';
if not DirectoryExists(pchar(sFieldName)) then
CreateDirectory(pchar(sFieldName),nil);
fileName:=ADOQuerySub.fieldbyname('hxFile').AsString;
sFieldName:=sFieldName+'\'+trim(fileName);
try
IdFTP1.Host := ReadINIFileStr('SYSTEMSET.INI','SERVER','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ','127.0.0.1');
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
except
end;
if IdFTP1.Connected then
begin
application.ProcessMessages;
try
IdFTP1.Get(fFlileFlag+'\'+ Trim(fileName), sFieldName,true, false);
except
Application.MessageBox('<27>ͻ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
end
else
begin
Application.MessageBox('<27>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
if IdFTP1.Connected then IdFTP1.Quit;
ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL);
end;
procedure TfrmProductOrderSel.TV3MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
InitSub();
end;
procedure TfrmProductOrderSel.Tv1DblClick(Sender: TObject);
begin
ModalResult:=1;
end;
end.