D7fhtxzhuoyuan/染整计划(DyeingFinishingPlan.dll)/U_SCJDList.pas
DESKTOP-E401PHE\Administrator de7ab88622 0
2025-09-30 15:01:08 +08:00

530 lines
15 KiB
ObjectPascal

unit U_SCJDList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo,
cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit,
StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit, cxCalendar, StrUtils,
cxCurrencyEdit, cxImage, cxDBEdit, Menus, RM_Common, RM_Class, RM_e_Xls,
RM_Dataset, RM_System, RM_GridReport, cxGridCustomPopupMenu, cxGridPopupMenu,
cxPC, cxSplitter, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdFTP, ShellAPI, cxCheckBox, cxDropDownEdit, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue,
dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide,
dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray,
dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters,
dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue,
dxSkinscxPCPainter, jpeg, U_SLT;
type
FdDy = record
inc: integer; //客户端套接字句柄
FDdys: string[32]; //客户端套接字
FdDysName: string[32]; //客户端套接字
end;
TfrmSCJDList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
ADOQueryPrint: TADOQuery;
CDS_Print: TClientDataSet;
ToolButton4: TToolButton;
N1: TMenuItem;
Panel1: TPanel;
Label1: TLabel;
Label4: TLabel;
Label10: TLabel;
Label12: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
CustomerNoName: TEdit;
JYXH: TEdit;
MPRTKZ: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1CustomerNoName: TcxGridDBColumn;
v1MPRTCodeName: TcxGridDBColumn;
v1MPRTSpec: TcxGridDBColumn;
v1MPRTMF: TcxGridDBColumn;
v1MPRTKZ: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column3: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
Label6: TLabel;
v1Column20: TcxGridDBColumn;
Label7: TLabel;
APID: TEdit;
v1Column23: TcxGridDBColumn;
v1Column24: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
MPRTCodeName: TEdit;
Label2: TLabel;
Label3: TLabel;
Tv1Column2: TcxGridDBColumn;
ToolButton1: TToolButton;
Tv1Column3: TcxGridDBColumn;
GroupBox1: TGroupBox;
ScrollBox1: TScrollBox;
adoqueryPicture: TADOQuery;
IdFTP1: TIdFTP;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(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 N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure OrderNoKeyPress(Sender: TObject; var Key: Char);
procedure cxTabControl2Change(Sender: TObject);
procedure MPRTCodeNameKeyPress(Sender: TObject; var Key: Char);
procedure MPRTCodeNameChange(Sender: TObject);
procedure PRTColorChange(Sender: TObject);
procedure CustomerNoNameKeyPress(Sender: TObject; var Key: Char);
procedure v1Column15PropertiesEditValueChanged(Sender: TObject);
procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure Tv1DblClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
private
DQdate: TDateTime;
procedure InitForm();
function DelData(): Boolean;
procedure InitGridFH();
procedure SetStatus();
procedure InitGrid();
procedure InitImage();
{ Private declarations }
public
FFInt, FCloth: Integer;
canshu1, canshu2: string;
fFlileFlag: string;
{ Public declarations }
end;
var
Mach: array of TfrmSlt;
implementation
uses
U_DataLink, U_OrderInPut, U_Fun, U_FjList_RZ, U_FjList10, U_SysLogHelp,
U_JYMXInfo;
{$R *.dfm}
procedure TfrmSCJDList.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 order_Main.IsEmpty then
exit;
try
with adoqueryPicture do
begin
close;
sql.Clear;
sql.Add(' select A.TFID,A.WBID,A.FilesOther from TP_File A ');
sql.add('where A.tfsignid=' + quotedstr(trim(order_main.fieldbyname('APID').asstring)));
open;
end;
j := adoqueryPicture.RecordCount;
if j < 1 then
exit;
adoqueryPicture.DisableControls;
adoqueryPicture.First;
SetLength(Mach, j);
jpg := TJpegImage.Create();
for i := 0 to j - 1 do
begin
if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then
begin
myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread);
jpg.LoadFromStream(myStream);
Mach[i] := TfrmSlt.Create(Self);
Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString);
Mach[i].Parent := ScrollBox1;
Mach[i].top := 0 + i * 165;
Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('WBID').AsString, jpg);
end;
adoqueryPicture.Next;
end;
adoqueryPicture.EnableControls;
finally
jpg.free;
application.ProcessMessages;
end;
end;
procedure TfrmSCJDList.InitGrid();
var
strwhere: string;
begin
strwhere := SGetFilters(Panel1, 1, 2);
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add('SELECT * FROM V_VIEW_JD A ');
sql.Add('where A.FILLTime>=' + Quotedstr(formatdateTime('yyyy-MM-dd', begdate.Date)));
sql.Add('and A.FILLTime<' + Quotedstr(formatdateTime('yyyy-MM-dd', enddate.Date + 1)));
if strwhere <> '' then
SQL.Add(' AND ' + strwhere);
sql.Add(' order by APID DESC ');
Open;
end;
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmSCJDList.SetStatus();
begin
end;
procedure TfrmSCJDList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmSCJDList.FormCreate(Sender: TObject);
begin
cxgrid1.Align := alClient;
DQdate := SGetServerDate(ADOQueryTemp);
end;
procedure TfrmSCJDList.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('指示单进度查询FF1', Tv1, '生产指示单管理');
end;
procedure TfrmSCJDList.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 TfrmSCJDList.InitForm();
begin
ReadCxGrid('指示单进度查询FF1', Tv1, '生产指示单管理');
BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 30;
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
end;
function TfrmSCJDList.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('指示单删除')));
sql.Add(',' + quotedstr(trim('指示单号:' + trim(Order_Main.FieldByName('OrderNO').AsString))));
sql.Add(',' + quotedstr(trim('成功')));
sql.Add(')');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
ADOQueryCmd.Connection.RollbackTrans;
Result := False;
Application.MessageBox('数据删除异常!', '提示', 0);
end;
end;
procedure TfrmSCJDList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
SelExportData(Tv1, ADOQueryMain, '生产指示单列表');
end;
procedure TfrmSCJDList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmSCJDList.FormShow(Sender: TObject);
begin
InitForm();
end;
procedure TfrmSCJDList.TBTPClick(Sender: TObject);
var
FQty, FQty1, FMxQty, FPQty, FMxQtyS, FPQtyS: string;
begin
end;
procedure TfrmSCJDList.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmSCJDList.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmSCJDList.N1Click(Sender: TObject);
begin
SelOKNo(Order_Main, false);
end;
procedure TfrmSCJDList.N2Click(Sender: TObject);
begin
SelOKNo(Order_Main, true);
end;
procedure TfrmSCJDList.ToolButton4Click(Sender: TObject);
begin
if Order_Main.IsEmpty then
Exit;
try
frmFjList10 := TfrmFjList10.Create(Application);
with frmFjList10 do
begin
// PState:=1;
if Trim(canshu1) <> '高权限' then
cxButton1.Visible := false;
fkeyNO := Trim(Self.Order_Main.fieldbyname('MainId').AsString);
fType := '指示单';
if ShowModal = 1 then
begin
end;
end;
finally
frmFjList10.Free;
end;
end;
procedure TfrmSCJDList.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
InitGrid();
end;
procedure TfrmSCJDList.OrderNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmSCJDList.cxTabControl2Change(Sender: TObject);
begin
SetStatus();
InitGrid();
end;
procedure TfrmSCJDList.MPRTCodeNameKeyPress(Sender: TObject; var Key: Char);
var
sql2: string;
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmSCJDList.MPRTCodeNameChange(Sender: TObject);
var
sql2: string;
begin
sql2 := 'select distinct(PRTColor) name from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId where A.FILLTime>=' + Quotedstr(formatdateTime('yyyy-MM-dd', begdate.Date)) + 'and A.FILLTime<' + Quotedstr(formatdateTime('yyyy-MM-dd', enddate.Date + 1));
InitGrid();
end;
procedure TfrmSCJDList.PRTColorChange(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmSCJDList.CustomerNoNameKeyPress(Sender: TObject; var Key: Char);
var
sql1: string;
begin
if Key = #13 then
begin
sql1 := 'select distinct(MPRTCodeName) name from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId where A.FILLTime>=' + Quotedstr(formatdateTime('yyyy-MM-dd', begdate.Date)) + 'and A.FILLTime<' + Quotedstr(formatdateTime('yyyy-MM-dd', enddate.Date + 1));
InitGrid();
end;
end;
procedure TfrmSCJDList.v1Column15PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with Order_Main do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update JYOrder_Sub set ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
sql.Add('where subid=' + quotedstr(Trim(Order_Main.fieldbyname('subid').AsString)));
ExecSQL;
end;
Tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmSCJDList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
if (AViewInfo.GridRecord.Values[v1Column11.Index] >= AViewInfo.GridRecord.Values[v1Column7.Index]) then
begin
ACanvas.Brush.Color := $0080FFFF;
end;
if (AViewInfo.GridRecord.Values[Tv1Column1.Index] = '待出库') then
begin
ACanvas.font.Color := clblue;
end;
if (AViewInfo.GridRecord.Values[Tv1Column1.Index] = '已出库') then
begin
ACanvas.font.Color := clgreen;
end;
end;
procedure TfrmSCJDList.Tv1DblClick(Sender: TObject);
begin
try
frmJYMXInfo := TfrmJYMXInfo.Create(Application);
with frmJYMXInfo do
begin
FFMAINID := SELF.Order_Main.FIELDBYNAME('jyxh').AsString;
FFCARNO := SELF.Order_Main.FIELDBYNAME('apid').AsString;
if ShowModal = 1 then
begin
end;
end;
finally
frmJYMXInfo.Free;
end;
end;
procedure TfrmSCJDList.ToolButton1Click(Sender: TObject);
begin
try
frmJYMXInfo := TfrmJYMXInfo.Create(Application);
with frmJYMXInfo do
begin
FFMAINID := SELF.Order_Main.FIELDBYNAME('jyxh').AsString;
FFCARNO := SELF.Order_Main.FIELDBYNAME('apid').AsString;
if ShowModal = 1 then
begin
end;
end;
finally
frmJYMXInfo.Free;
end;
end;
procedure TfrmSCJDList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
if order_Main.IsEmpty then
Exit;
InitImage();
end;
end.