D10myYicheng/成品仓库(FinishedClothWarehouse.dll)/U_CPSMRk.pas
2025-05-27 14:08:09 +08:00

330 lines
9.1 KiB
ObjectPascal
Raw Permalink 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_CPSMRk;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, MovePanel, cxCheckBox, Menus, ComCtrls, BtnEdit, RM_System, RM_Common,
RM_Class, RM_GridReport, RM_Dataset, cxCalendar, MMSystem, U_BaseList,
cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters,
cxNavigator, dxDateRanges, dxBarBuiltInMenu;
type
TfrmCPSMRk = class(TfrmBaseList)
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
Panel1: TPanel;
Button2: TButton;
DS_RKJL: TDataSource;
CDS_RKJL: TClientDataSet;
PM_RKJL: TPopupMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
Button6: TButton;
RKOrdID: TEdit;
Label5: TLabel;
RM1: TRMGridReport;
ADOQueryPrint: TADOQuery;
RMDB_Main: TRMDBDataSet;
Label6: TLabel;
edtScan: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column4: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column21: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
v1Column20: TcxGridDBColumn;
v1Column22: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
Button1: TButton;
ComboBox1: TComboBox;
CDS_Label: TClientDataSet;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
procedure MenuItem2Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure edtScanKeyPress(Sender: TObject; var Key: Char);
procedure RKOrdIDKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FBaoId: string;
procedure InitGrid();
function CheckData(): Boolean;
public
{ Public declarations }
end;
var
frmCPSMRk: TfrmCPSMRk;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp;
{$R *.dfm}
function TfrmCPSMRk.CheckData(): Boolean;
var
mvalue: Double;
begin
try
if Trim(RKOrdID.Text) = '' then
raise Exception.Create('<27><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if Trim(edtScan.Text) = '' then
raise Exception.Create('<27><>ɨ<EFBFBD>裡');
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select count(*) JLS from CK_Cloth_CR where JYID=' + QuotedStr(Trim(edtScan.Text)));
sql.Add('and CRFlag in (''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ,''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'') ');
Open;
end;
if ADOQueryTemp.fieldbyname('JLS').AsInteger = 1 then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
if ADOQueryTemp.fieldbyname('JLS').AsInteger <> 2 then
raise Exception.Create('<27>ѳ<EFBFBD><D1B3><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Result := True;
except
Result := false;
// application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
PlaySound(PChar('wav\' + Exception(ExceptObject).Message + '.wav'), 0, SND_FILENAME or SND_ASYNC);
end;
end;
procedure TfrmCPSMRk.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmCPSMRk.FormDestroy(Sender: TObject);
begin
inherited;
frmCPSMRk := nil;
end;
procedure TfrmCPSMRk.InitGrid();
begin
try
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' ,B.orderNo,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ,B.conNo,B.KHconNo ');
sql.Add(' ,C.PRTColor,C.PRTEColor');
sql.Add(' from CK_Cloth_CR A inner join JYOrder_Main B on A.MainId=B.MainId inner join JYOrder_Sub C on A.SubId=C.SubId ');
sql.Add(' where A.CRFlag=''<27><><EFBFBD><EFBFBD>'' and A.RKOrdID=' + quotedstr(RKOrdID.Text));
Open;
end;
SCreateCDS(ADOQueryMain, CDS_RKJL);
SInitCDSData(ADOQueryMain, CDS_RKJL);
finally
end;
end;
procedure TfrmCPSMRk.FormShow(Sender: TObject);
var
fsj: string;
begin
inherited;
fsj := 'select distinct(LMName) name from Lbael_Map where LMType=''<27><><EFBFBD><EFBFBD>뵥'' ';
SInitComBoxBySql(ADOQueryCmd, ComboBox1, true, fsj);
with ADOQueryTemp do
begin
Filtered := False;
Close;
sql.Clear;
Sql.Add('select * from Lbael_Map where LMType=''<27><><EFBFBD><EFBFBD>뵥''');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_Label);
SInitCDSData(ADOQueryTemp, CDS_Label);
ReadCxGrid('<27><>Ʒɨ<C6B7><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmCPSMRk.Button2Click(Sender: TObject);
begin
WriteCxGrid('<27><>Ʒɨ<C6B7><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
Close;
end;
procedure TfrmCPSMRk.MenuItem1Click(Sender: TObject);
begin
SelOKNo(CDS_RKJL, True);
end;
procedure TfrmCPSMRk.MenuItem2Click(Sender: TObject);
begin
SelOKNo(CDS_RKJL, False);
end;
procedure TfrmCPSMRk.Button6Click(Sender: TObject);
var
maxno: string;
begin
if GetLSNo(ADOQueryCmd, maxno, 'RK', 'CK_Cloth_CR', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><E2B5A5>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
RKOrdID.Text := Trim(maxno);
end;
procedure TfrmCPSMRk.edtScanKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if not CheckData() then
begin
edtScan.Text := '';
exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPDATE CK_Cloth_CR Set ');
sql.add('RKNO=' + Quotedstr(Trim(RKOrdID.Text)));
sql.Add('where CK_Cloth_CR.JYID=' + Quotedstr(Trim(edtScan.Text)));
sql.Add('and CK_Cloth_CR.CRFlag in (''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'',''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'') ');
sql.Add('UPDATE CK_Cloth_CR Set ');
sql.add(' CRTime=getdate(),CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'',CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' where CK_Cloth_CR.JYID=' + Quotedstr(Trim(edtScan.Text)));
sql.Add('and CK_Cloth_CR.CRFlag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.Add('UPDATE JY_Cloth Set ');
sql.add('RKNO=' + Quotedstr(Trim(RKOrdID.Text)));
sql.add(',JYCRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.Add('where JY_Cloth.JYID=' + Quotedstr(Trim(edtScan.Text)));
SQL.Add('and JY_Cloth.JYCRType='<><CEB4><EFBFBD><EFBFBD>'' ');
ExecSQL;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select count(distinct MainId) DDSL from CK_Cloth_CR A ');
sql.Add(' where A.RKNO= ' + quotedstr(trim(RKOrdID.Text)));
Open;
end;
if ADOQueryTemp.FieldByName('DDSL').AsInteger > 1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(һ<CDAC><D2BB><EFBFBD><EFBFBD><E2B5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
end;
edtScan.Text := '';
InitGrid();
end;
end;
procedure TfrmCPSMRk.RKOrdIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
InitGrid();
end;
procedure TfrmCPSMRk.Button1Click(Sender: TObject);
var
fPrintFile10, FMainID, FKHName, FFPNo: string;
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
if Trim(RKOrdID.Text) = '' then
Exit;
ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp);
if CDS_Label.Locate('LMName', trim(ComboBox1.Text), []) then
begin
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.add('exec ' + trim(CDS_Label.fieldbyname('LMSql').AsString) + ' @RKOrdNo=' + quotedstr(Trim(RKOrdID.Text)));
Open;
end;
end;
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(RKOrdID.Text);
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
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox1.Text) + '.rmf';
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
RMVariables['QRBARCODE'] := fImagePath;
RMVariables['ZDR'] := trim(DName);
RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD>ҵ<EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
end;
end.