D10myYicheng/染整计划(DyeingFinishingPlan.dll)/U_DJBCKOutListSEL.pas
2025-05-27 14:08:09 +08:00

533 lines
14 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_DJBCKOutListSEL;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls,
ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient,
cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset,
RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit,
RM_BarCode, cxMaskEdit, cxContainer, cxCurrencyEdit, cxPC, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore,
dxSkinsDefaultPainters, dxDateRanges, U_BaseHelp, U_BaseList;
type
TfrmDJBCKOutListsel = class(TfrmBasehelp)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
Label1: TLabel;
Label2: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
CDS_Main: TClientDataSet;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
RMDBHZ: TRMDBDataSet;
CDS_HZ: TClientDataSet;
CDS_PRT: TClientDataSet;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column6: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label12: TLabel;
Label6: TLabel;
Label7: TLabel;
SPName: TEdit;
FactoryName: TEdit;
SPID: TEdit;
SPSpec: TEdit;
CRType: TComboBox;
SPCF: TEdit;
QCOrderNo: TEdit;
Label10: TLabel;
CKConNo: TEdit;
Label11: TLabel;
FromFactoryName: TEdit;
Label13: TLabel;
ToFactoryName: TEdit;
Label9: TLabel;
Label14: TLabel;
RCGangNo: TEdit;
GangNo: TEdit;
v1Column15: TcxGridDBColumn;
v1Column20: TcxGridDBColumn;
ADOQueryPrint: TADOQuery;
v1Column21: TcxGridDBColumn;
Label15: TLabel;
SPColor: TEdit;
Label16: TLabel;
SPColorNo: TEdit;
Label17: TLabel;
SPHX: TEdit;
RM1: TRMGridReport;
RMBarCodeObject1: TRMBarCodeObject;
v1Column22: TcxGridDBColumn;
v1Column23: TcxGridDBColumn;
v1Column24: TcxGridDBColumn;
Label18: TLabel;
CustomerNoName: TEdit;
N3: TMenuItem;
v1Column18: TcxGridDBColumn;
Label19: TLabel;
LBNO: TEdit;
v1Column27: TcxGridDBColumn;
Label22: TLabel;
JYZT: TComboBox;
cxTabControl1: TcxTabControl;
v1Column28: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Tv1Column11: TcxGridDBColumn;
Tv1Column12: TcxGridDBColumn;
ToolButton1: TToolButton;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoMChange(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure SPIDKeyPress(Sender: TObject; var Key: Char);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure N3Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
procedure CKorderNoKeyPress(Sender: TObject; var Key: Char);
procedure Panel4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
canshu1, canshu2: string;
procedure InitGrid();
{ Private declarations }
public
{ Public declarations }
end;
var
frmDJBCKOutListsel: TfrmDJBCKOutListsel;
implementation
uses
U_DataLink, U_RTFun, U_ZdyAttachGYS;
{$R *.dfm}
procedure TfrmDJBCKOutListsel.FormDestroy(Sender: TObject);
begin
inherited;
frmDJBCKOutListsel := nil;
end;
procedure TfrmDJBCKOutListsel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmDJBCKOutListsel.FormCreate(Sender: TObject);
begin
inherited;
//cxGrid1.Align:=alClient;
canshu1 := Trim(DParameters1);
canshu2 := Trim(DParameters2);
EndDate.DateTime := SGetServerDate(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime - 7;
end;
procedure TfrmDJBCKOutListsel.InitGrid();
var
fwhere, Pwhere: string;
begin
Pwhere := SGetFilters(Panel1, 1, 2);
begin
if trim(Pwhere) <> '' then
fwhere := fwhere + ' and ' + trim(Pwhere);
end;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.*, ');
SQL.Add(' JYZT=(case when A.piqty<=DJJS THEN ''<27>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>'' when isnull(DJJS,0)=0 then ''<27>ȴ<EFBFBD><C8B4>ɼ<EFBFBD>'' else ''<27>ɼ<EFBFBD><C9BC><EFBFBD>'' end) ');
sql.Add(' from CK_SXPB_CR A ');
sql.add(' where A.CRTime>=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime))));
sql.add(' and A.CRTime<' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))));
SQL.Add(' and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
SQL.Add(' and isnull(CKName,'''')=''<27><><EFBFBD>첼'' ');
if JYZT.Text = '<27>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>' then
begin
sql.Add('and A.piqty<=DJJS ');
end;
if JYZT.Text = '<27>ȴ<EFBFBD><C8B4>ɼ<EFBFBD>' then
begin
sql.Add('and isnull(A.DJJS,0)=0 ');
end;
if JYZT.Text = '<27>ɼ<EFBFBD><C9BC><EFBFBD>' then
begin
sql.Add('and A.piqty>A.DJJS and isnull(A.DJJS,0)<>0 ');
end;
if fwhere <> '' then
SQL.Add(fwhere);
if cxTabControl1.TabIndex = 0 then
begin
SQL.Add('AND PrintCount=0');
end
else if cxTabControl1.TabIndex = 1 then
begin
SQL.Add('AND PrintCount>0');
end;
SQL.Add('order by filltime desc,CKorderNo,SPColor,[dbo].[getNum](GangNo) ');
// ShowMessage(SQL.Text);
Open;
end;
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmDJBCKOutListsel.TBRafreshClick(Sender: TObject);
begin
BegDate.SetFocus;
InitGrid();
end;
procedure TfrmDJBCKOutListsel.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmDJBCKOutListsel.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><><EFBFBD><EFBFBD><ECB2BC><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', Tv1, '<27><><EFBFBD>ӹ<EFBFBD><D3B9>ֿ<EFBFBD>');
Close;
end;
procedure TfrmDJBCKOutListsel.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid('<27><><EFBFBD><EFBFBD><ECB2BC><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', Tv1, '<27><><EFBFBD>ӹ<EFBFBD><D3B9>ֿ<EFBFBD>');
InitGrid();
end;
procedure TfrmDJBCKOutListsel.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel('<27><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmDJBCKOutListsel.SPIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmDJBCKOutListsel.N1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
CDS_Main.DisableControls;
with CDS_Main do
begin
First;
while not eof do
begin
if Trim(CDS_Main.fieldbyname('CRType').AsString) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
Edit;
FieldByName('SSel').Value := True;
Post;
end;
Next;
end;
end;
CDS_Main.EnableControls;
end;
procedure TfrmDJBCKOutListsel.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmDJBCKOutListsel.ToolButton3Click(Sender: TObject);
var
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
if CDS_Main.IsEmpty then
Exit;
//if Trim(CDS_Main.fieldbyname('CRType').AsString)<>'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
ExportFtErpFile('<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD>ǩ.rmf', ADOQueryTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD>ǩ.rmf';
CDS_Main.DisableControls;
with CDS_Main do
begin
First;
while CDS_Main.Locate('SSel', True, []) do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' update CK_SXPB_CR set PrintCount=isnull(PrintCount,0)+1 ');
sql.Add(' where SPId=''' + Trim(CDS_Main.fieldbyname('SPId').AsString) + ''' ');
ExecSQL;
end;
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.Add(' select A.* ,B.SOrddefstr1,B.PRTColor,B.PRTHX,C.OrderNo,C.MPRTCodeName');
sql.Add(',C.CustomerNoName,C.ConNo,C.LYnoet');
sql.Add(',khCode=(select zdyNameZ from KH_Zdy_Attachment X where X.zdyname=C.CustomerNoName and X.Type=''KHName'') ');
sql.Add(',khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=C.conNO) ');
sql.Add(' from CK_SXPB_CR A');
sql.Add(' left join JYOrder_Sub B on A.ORDSubIdCK=B.SubId');
sql.Add(' left join JYOrder_Main C on A.ORDMainIdCK=C.MainId');
sql.Add(' where A.SPId=''' + Trim(CDS_Main.fieldbyname('SPId').AsString) + '''');
if cxTabControl1.TabIndex = 0 then
begin
SQL.Add('AND PrintCount=0');
end
else if cxTabControl1.TabIndex = 1 then
begin
SQL.Add('AND PrintCount<>0');
end;
Open;
end;
SCreateCDS(ADOQueryPrint, CDS_PRT);
SInitCDSData(ADOQueryPrint, CDS_PRT);
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(CDS_PRT.fieldbyname('SPID').AsString);
fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp';
if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then
CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil);
if FileExists(fImagePath) then
DeleteFile(fImagePath);
Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
except
CDS_Main.EnableControls;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
if FileExists(fPrintFile) then
begin
RMVariables['QRBARCODE'] := fImagePath;
RM1.LoadFromFile(fPrintFile);
//RM1.ShowReport;
RM1.PrintReport;
end
else
begin
CDS_Main.EnableControls;
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD>ǩ.rmf'), '<27><>ʾ', 0);
Exit;
end;
Edit;
FieldByName('SSel').Value := False;
Post;
end;
end;
CDS_Main.EnableControls;
end;
procedure TfrmDJBCKOutListsel.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
// if CDS_Main.IsEmpty then Exit;
// if Trim(CDS_Main.fieldbyname('CRType').AsString)<>'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
// begin
// Tv1.OptionsSelection.CellSelect:=False;
// end else
// begin
// Tv1.OptionsSelection.CellSelect:=True;
// end;
end;
procedure TfrmDJBCKOutListsel.N3Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
CDS_Main.DisableControls;
with CDS_Main do
begin
First;
while not eof do
begin
Edit;
FieldByName('SSel').Value := True;
Post;
Next;
end;
end;
CDS_Main.EnableControls;
end;
procedure TfrmDJBCKOutListsel.Panel4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
end;
procedure TfrmDJBCKOutListsel.ToolButton1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
ModalResult := 1;
end;
procedure TfrmDJBCKOutListsel.ToolButton7Click(Sender: TObject);
begin
try
ADOQueryCmd.Connection.BeginTrans;
while CDS_Main.Locate('SSel', True, []) do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' update CK_SXPB_CR set PrintCount=0 ');
sql.Add(' where SPId=''' + Trim(CDS_Main.fieldbyname('SPId').AsString) + ''' ');
ExecSQL;
end;
CDS_Main.Delete;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>쳣!', '<27><>ʾ', 0);
end;
end;
procedure TfrmDJBCKOutListsel.cxTabControl1Change(Sender: TObject);
begin
TBRafresh.Click();
end;
procedure TfrmDJBCKOutListsel.Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
var
FValue: string;
FBounds: TRect;
begin
FBounds := AViewInfo.Bounds;
if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
begin
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1);
FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1);
InflateRect(FBounds, -1, -1); //Platform specific. May not work on Linux.
ACanvas.Font.Color := clBlack;
ACanvas.Brush.Style := bsClear;
ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
ADone := True;
end;
end;
procedure TfrmDJBCKOutListsel.CKorderNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
end.