D7gmYushang/进度统计查询(Statistics.dll)/U_PDOrderProgress.pas
DESKTOP-E401PHE\Administrator 1d94a89439 0
2025-09-24 13:13:14 +08:00

502 lines
15 KiB
ObjectPascal
Raw 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_PDOrderProgress;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
cxTextEdit, cxDBLookupComboBox, cxGridBandedTableView, cxGridDBBandedTableView,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, Menus, Clipbrd, OleServer,
AccessXP, cxContainer, cxImage, cxDBEdit, StrUtils, RM_e_Graphic, RM_e_Jpeg,
U_SLT1, IdHTTP, jpeg;
type
TfrmPDOrderProgress = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ToolButton2: TToolButton;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDBHZ: TRMDBDataSet;
cxGridPopupMenu2: TcxGridPopupMenu;
cxGrid1: TcxGrid;
TV1: TcxGridDBBandedTableView;
cxGridDBBandedColumn35: TcxGridDBBandedColumn;
cxGridDBBandedColumn42: TcxGridDBBandedColumn;
cxGridDBBandedColumn51: TcxGridDBBandedColumn;
cxGridDBBandedColumn52: TcxGridDBBandedColumn;
cxGridDBBandedColumn56: TcxGridDBBandedColumn;
cxGridDBBandedColumn57: TcxGridDBBandedColumn;
cxGridDBBandedColumn59: TcxGridDBBandedColumn;
cxGridDBBandedColumn60: TcxGridDBBandedColumn;
cxGridDBBandedColumn61: TcxGridDBBandedColumn;
cxGridDBBandedColumn62: TcxGridDBBandedColumn;
cxGridDBBandedColumn63: TcxGridDBBandedColumn;
cxGridDBBandedColumn64: TcxGridDBBandedColumn;
cxGridDBBandedColumn77: TcxGridDBBandedColumn;
cxGridDBBandedColumn79: TcxGridDBBandedColumn;
cxGridDBBandedColumn81: TcxGridDBBandedColumn;
cxGridDBBandedColumn87: TcxGridDBBandedColumn;
cxGridDBBandedColumn91: TcxGridDBBandedColumn;
V1Column1: TcxGridDBBandedColumn;
V1Column2: TcxGridDBBandedColumn;
V1Column6: TcxGridDBBandedColumn;
cxGridLevel2: TcxGridLevel;
V1Column25: TcxGridDBBandedColumn;
V1Column28: TcxGridDBBandedColumn;
V1Column4: TcxGridDBBandedColumn;
V1Column5: TcxGridDBBandedColumn;
V1Column7: TcxGridDBBandedColumn;
CDSPRTHZ: TClientDataSet;
CDSPRTMX: TClientDataSet;
RMDBMX: TRMDBDataSet;
ADOQueryMain: TADOQuery;
DataSource1: TDataSource;
CDS_HZ: TClientDataSet;
TV1Column1: TcxGridDBBandedColumn;
TV1Column3: TcxGridDBBandedColumn;
TV1Column8: TcxGridDBBandedColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
TV1Column9: TcxGridDBBandedColumn;
TV1Column2: TcxGridDBBandedColumn;
TV1Column4: TcxGridDBBandedColumn;
TV1Column5: TcxGridDBBandedColumn;
ToolButton3: TToolButton;
AccessApplication1: TAccessApplication;
cxSplitter1: TcxSplitter;
DataSource2: TDataSource;
Panel1: TPanel;
cxGrid2: TcxGrid;
TV2: TcxGridDBBandedTableView;
TV1Column6: TcxGridDBBandedColumn;
TV1Column7: TcxGridDBBandedColumn;
TV1Column10: TcxGridDBBandedColumn;
TV1Column11: TcxGridDBBandedColumn;
TV1Column12: TcxGridDBBandedColumn;
TV1Column16: TcxGridDBBandedColumn;
cxGridLevel1: TcxGridLevel;
ADOQueryImage: TADOQuery;
DataSource3: TDataSource;
IdFTP1: TIdFTP;
RMJPEGExport1: TRMJPEGExport;
ScrollBox1: TScrollBox;
TV2Column1: TcxGridDBBandedColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure MPRTCodeNameChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure cxGridDBBandedColumn35CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
procedure TV1Column6PropertiesEditValueChanged(Sender: TObject);
procedure MPRTCodeKeyPress(Sender: TObject; var Key: Char);
procedure DDTYPEChange(Sender: TObject);
procedure TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure N1Click(Sender: TObject);
procedure TV1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure TV2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure Picture4DblClick(Sender: TObject);
procedure TV1Column16PropertiesEditValueChanged(Sender: TObject);
private
{ Private declarations }
procedure InitImage();
procedure InitGrid();
procedure LookImage(FileName: string);
public
fkhType: string;
Fmanage, fmainid: string;
canshu1: string;
fFlileFlag: string;
end;
var
frmPDOrderProgress: TfrmPDOrderProgress;
Mach: array of TfrmSlt1;
implementation
uses
U_DataLink, U_Fun, U_ZDYHelp, U_JDOrderProgress;
{$R *.dfm}
procedure TfrmPDOrderProgress.LookImage(FileName: string);
var
sFieldName: string;
// ff: TADOBlobStream;
// FJStream : TMemoryStream;
begin
sFieldName := leftbstr(ExtractFilePath(Application.ExeName), 1) + ':\ͼƬ<CDBC>鿴';
if not DirectoryExists(pchar(sFieldName)) then
CreateDirectory(pchar(sFieldName), nil);
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
// Panel2.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>Ե<EFBFBD>...';
// Panel2.Visible:=true;
// application.ProcessMessages;
try
IdFTP1.Get(fFlileFlag + '\' + Trim(FileName), sFieldName, true, false);
except
// Panel2.Visible:=false;
Application.MessageBox('<27>ͻ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
end
else
begin
// Panel2.Visible:=false;
Application.MessageBox('<27>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
// Panel2.Visible:=false;
if IdFTP1.Connected then
IdFTP1.Quit;
ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL);
end;
procedure TfrmPDOrderProgress.InitImage();
var
i, j: integer;
jpg: TJpegImage;
myStream: TADOBlobStream;
begin
j := length(Mach);
if j > 0 then
begin
for i := 0 to j - 1 do
begin
Mach[i].free;
end;
end;
SetLength(Mach, 0);
if CDSPRTMX.IsEmpty then
exit;
try
with ADOQueryImage do
begin
close;
sql.Clear;
sql.Add(' select A.TFID,A.WBID,A.FilesOther,FileName,url from TP_File A ');
sql.add('where A. WBID= ' + quotedstr(trim(CDSPRTMX.fieldbyname('Jdid').AsString)));
open;
end;
j := ADOQueryImage.RecordCount;
if j < 1 then
exit;
ADOQueryImage.DisableControls;
ADOQueryImage.First;
SetLength(Mach, j);
jpg := TJpegImage.Create();
for i := 0 to j - 1 do
begin
if triM(ADOQueryImage.fieldbyname('FilesOther').AsString) <> '' then
begin
myStream := tadoblobstream.Create(tblobfield(ADOQueryImage.fieldbyname('FilesOther')), bmread);
jpg.LoadFromStream(myStream);
Mach[i] := TfrmSlt1.Create(Self);
Mach[i].Name := trim(ADOQueryImage.fieldbyname('TFID').AsString);
Mach[i].Parent := ScrollBox1;
Mach[i].Left := 0 + i * 165;
Mach[i].Init(ADOQueryImage.fieldbyname('TFID').AsString, ADOQueryImage.fieldbyname('FileName').AsString, jpg, ADOQueryImage.fieldbyname('url').AsString);
end;
ADOQueryImage.Next;
end;
ADOQueryImage.EnableControls;
finally
jpg.free;
application.ProcessMessages;
end;
end;
procedure TfrmPDOrderProgress.InitGrid();
var
fwhere, Pwhere: string;
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
SQL.Add(' select A.*,pdid,pddate,QTY2=B.QTY,B.FILLER AS FILLER2,B.COLORS,B.RollNum,B.QTYUNIT,B.pddate,B.NOTE AS NOTE2 from JYOrder_Main a inner join JYOrder_Main_Pd b on a.mainid=B.mainid');
sql.Add('where a.mainid=' + QuotedStr(Trim(fmainid)));
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
// CDS_HZ.Last;
finally
ADOQueryMain.EnableControls;
end
end;
procedure TfrmPDOrderProgress.FormDestroy(Sender: TObject);
begin
frmpdOrderProgress := nil;
end;
procedure TfrmPDOrderProgress.FormClose(Sender: TObject; var Action: TCloseAction);
var
i, j: integer;
begin
j := length(Mach);
if j > 0 then
begin
for i := 0 to j - 1 do
begin
Mach[i].free;
end;
end;
SetLength(Mach, 0);
Action := caFree;
end;
procedure TfrmPDOrderProgress.TBCloseClick(Sender: TObject);
begin
WriteCxBandedGrid(trim(self.caption) + '1', Tv1, '<27><><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD>');
WriteCxBandedGrid(trim(self.caption) + '3', Tv2, '<27><><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD>');
Close;
end;
procedure TfrmPDOrderProgress.FormShow(Sender: TObject);
begin
ReadCxBandedGrid(trim(self.caption) + '1', Tv1, '<27><><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD>');
ReadCxBandedGrid(trim(self.caption) + '3', Tv2, '<27><><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD>');
InitGrid();
end;
procedure TfrmPDOrderProgress.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmPDOrderProgress.MPRTCodeNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmPDOrderProgress.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmPDOrderProgress.FormCreate(Sender: TObject);
begin
canshu1 := Trim(DParameters1);
end;
procedure TfrmPDOrderProgress.ToolButton3Click(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
exit;
try
frmJDOrderProgress := TfrmJDOrderProgress.Create(Application);
with frmJDOrderProgress do
begin
FMainId := Trim(Self.CDS_HZ.fieldbyname('MainId').AsString);
if ShowModal = 1 then
begin
end;
end;
finally
frmJDOrderProgress.Free;
end;
end;
procedure TfrmPDOrderProgress.cxGridDBBandedColumn35CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
begin
if (ARow1.Values[TV1Column3.Index] = ARow2.Values[TV1Column3.Index]) then
AAreEqual := True
else
AAreEqual := False;
end;
procedure TfrmPDOrderProgress.TV1Column6PropertiesEditValueChanged(Sender: TObject);
var
mvalues, FFieldName: string;
begin
mvalues := TCXTextEdit(Sender).Text;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_HZ do
begin
edit;
fieldbyname(FFieldName).Value := mvalues;
post;
end;
tv1.Controller.EditingController.ShowEdit();
// if trim(mvalues) <> '' then
// begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update JYORDER_SUB ');
SQL.Add(' Set ' + FFieldName + '=' + QuotedStr(mvalues));
sql.Add(' where SUBID=''' + Trim(CDS_HZ.fieldbyname('SUBID').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>޸Ľ<DEB8><C4BD>ȱ<EFBFBD>ע')));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD><EFBFBD>:' + trim(CDS_HZ.FieldByName('subid').AsString) + ';<3B>ֱ<EFBFBD>ע:' + trim(CDS_HZ.FieldByName('JDNOTE').AsString))));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
ExecSQL;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmPDOrderProgress.MPRTCodeKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmPDOrderProgress.DDTYPEChange(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmPDOrderProgress.TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('chk').Index]) = 0 then
begin
ACanvas.FONT.Color := CLRED;
end;
end;
procedure TfrmPDOrderProgress.N1Click(Sender: TObject);
var
myclipbrd: TClipboard;
begin
myclipbrd := TClipboard.Create();
myclipbrd.AsText := CDS_HZ.FieldByName('MPRTCode').ASSTRING;
end;
procedure TfrmPDOrderProgress.TV1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
try
ADOQueryCmd.DisableControls;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('SELECT C.* FROM JyOrder_Main_Jd C ');
sql.Add('where C.PDID=' + QuotedStr(Trim(CDS_HZ.FieldByName('PDID').AsString)));
sql.Add('order by idx');
// ShowMessage(SQL.Text);
Open;
end;
SCreateCDS20(ADOQueryCmd, CDSPRTMX);
SInitCDSData20(ADOQueryCmd, CDSPRTMX);
// CDS_HZ.Last;
finally
ADOQueryCmd.EnableControls;
end
end;
procedure TfrmPDOrderProgress.TV2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
if CDSPRTMX.IsEmpty then
Exit;
InitImage();
end;
procedure TfrmPDOrderProgress.Picture4DblClick(Sender: TObject);
begin
if TcxDBImage(Sender).Picture.Height = 0 then
exit;
LookImage(ADOQueryImage.fieldbyname(TcxDBImage(Sender).Hint).asstring);
end;
procedure TfrmPDOrderProgress.TV1Column16PropertiesEditValueChanged(Sender: TObject);
var
mvalues, FFieldName: string;
begin
mvalues := TCXTextEdit(Sender).Text;
FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDSPRTMX do
begin
edit;
fieldbyname(FFieldName).Value := mvalues;
post;
end;
Tv2.Controller.EditingController.ShowEdit();
// if trim(mvalues) <> '' then
// begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update JyOrder_Main_Jd ');
SQL.Add(' Set ' + FFieldName + '=' + QuotedStr(mvalues));
sql.Add(' where JDID=''' + Trim(CDSPRTMX.fieldbyname('JDID').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>޸Ĵ<DEB8><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD><EFBFBD>:' + trim(CDSPRTMX.FieldByName('JDID').AsString) + ';<3B>ֱ<EFBFBD>ע:' + trim(CDSPRTMX.FieldByName('CLNOTE').AsString))));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
ExecSQL;
end;
Tv2.Controller.EditingController.ShowEdit();
end;
end.