D7szChenfeng/布匹检验(FabricInspection.dll)/U_CiPinChaiJian.pas

341 lines
8.9 KiB
ObjectPascal
Raw Permalink Normal View History

2025-07-22 15:51:47 +08:00
unit U_CiPinChaiJian;
interface
uses
Windows, Messages, strutils, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, StdCtrls, cxContainer, cxTextEdit, cxCurrencyEdit, BtnEdit, ExtCtrls,
ComCtrls, ToolWin, DBClient, ADODB, MovePanel, RM_Dataset, RM_System,
RM_Common, RM_Class, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator;
function CommOpen(fhandle: hwnd; sCommName: PAnsiChar; IntTime: integer; IsMessage: integer): integer; stdcall; external 'JCYData.DLL';
function CommClose(sCommName: PAnsiChar): integer; stdcall; external 'JCYData.DLL';
type
TfrmCiPinChaiJian = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
ADOQueryMain: TADOQuery;
ADOQueryCmd: TADOQuery;
CDS_FromJYID: TClientDataSet;
CDS_ToJYID: TClientDataSet;
DS_FromJYID: TDataSource;
DS_ToJYID: TDataSource;
SmNO: TEdit;
ADOQueryTmp: TADOQuery;
ADOQueryPrint: TADOQuery;
RM2: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Panel4: TPanel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
VC_JYID: TcxGridDBColumn;
v1P_Code: TcxGridDBColumn;
v1P_Color: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
V2Column1: TcxGridDBColumn;
cxGridDBColumn7: TcxGridDBColumn;
V2Column2: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Panel2: TPanel;
btnChaiPi: TButton;
Button4: TButton;
Label5: TLabel;
Label9: TLabel;
KJLen: TEdit;
Tv1Column1: TcxGridDBColumn;
Button1: TButton;
Label2: TLabel;
note: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure SmNOKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure btnChaiPiClick(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure InitGrid();
procedure InitJYID();
procedure InitCFGrid();
procedure Printdata(fCRID: string);
{ Private declarations }
public
iscom: boolean;
{ Public declarations }
end;
var
frmCiPinChaiJian: TfrmCiPinChaiJian;
implementation
uses
U_DataLink, U_Fun, U_UserHelp, U_ZDYHelp;
{$R *.dfm}
procedure TfrmCiPinChaiJian.Printdata(fCRID: string);
var
fPrintFile: string;
mvalue: Double;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
with ADOQueryPrint do
begin
Close;
SQL.Clear;
sql.Add(' EXEC P_JY_Print_Lab ');
SQL.Add(' @JYID=''' + Trim(fCRID) + '''');
Open;
end;
if ADOQueryPrint.IsEmpty then
begin
application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>δ<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(ADOQueryPrint.fieldbyname('JYID').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
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
ExportFtErpFile(Trim(ADOQueryPrint.fieldbyname('LabName').AsString), ADOQueryTmp);
if Trim(ADOQueryPrint.fieldbyname('LabName').AsString) <> '' then
begin
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LabName').AsString) + '.rmf';
end
else
begin
ExportFtErpFile(<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ.rmf', ADOQueryTmp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ.rmf';
end;
if FileExists(fPrintFile) then
begin
RMVariables['QRBARCODE'] := fImagePath;
RM2.LoadFromFile(fPrintFile);
Rm2.DefaultCopies := 1;
RM2.PrintReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
end;
procedure TfrmCiPinChaiJian.InitGrid();
begin
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select * from JY_Cloth A');
SQL.Add('where 1=2 ');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_FromJYID);
SCreateCDS20(ADOQueryMain, CDS_ToJYID);
end;
procedure TfrmCiPinChaiJian.InitCFGrid();
begin
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.* from JY_Cloth A');
SQL.Add('where A.JYID=' + quotedstr(trim(CDS_FromJYID.Fieldbyname('JYID').AsString)));
Open;
SCreateCDS20(ADOQueryMain, CDS_FromJYID);
SInitCDSData20(ADOQueryMain, CDS_FromJYID);
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add('select A.* from JY_Cloth A');
SQL.Add('where A.OrgJYID=' + quotedstr(trim(CDS_FromJYID.Fieldbyname('JYID').AsString)));
SQL.Add('order by JYID');
Open;
end;
SCreateCDS20(ADOQueryTmp, CDS_ToJYID);
SInitCDSData20(ADOQueryTmp, CDS_ToJYID);
end;
procedure TfrmCiPinChaiJian.InitJYID();
var
fP_No: string;
begin
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.* from JY_Cloth A');
SQL.Add('where A.JYID=' + quotedstr(trim(SmNO.text)));
Open;
if not IsEmpty then
begin
if Fieldbyname('JYCRType').AsString = '<27>ѳ<EFBFBD><D1B3><EFBFBD>' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3>⣡', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
end
else
begin
SCreateCDS20(ADOQueryMain, CDS_FromJYID);
SInitCDSData20(ADOQueryMain, CDS_FromJYID);
end;
end
else
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><EFBFBD>ڣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
end;
end;
end;
procedure TfrmCiPinChaiJian.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmCiPinChaiJian.TBCloseClick(Sender: TObject);
begin
wRITECxGrid(self.Caption + tV1.Name, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
wRITECxGrid(self.Caption + TV2.Name, Tv2, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
close;
end;
procedure TfrmCiPinChaiJian.SmNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if not CDS_FromJYID.Locate('JYID', trim(smNo.Text), []) then
initJYID();
smno.Text := '';
smno.SetFocus;
end;
end;
procedure TfrmCiPinChaiJian.FormShow(Sender: TObject);
begin
ReadCxGrid(self.Caption + tV1.Name, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
ReadCxGrid(self.Caption + TV2.Name, Tv2, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
InitGrid();
SmNO.SetFocus;
end;
procedure TfrmCiPinChaiJian.Tv1DblClick(Sender: TObject);
begin
if CDS_FromJYID.IsEmpty then
exit;
CDS_FromJYID.Delete;
end;
procedure TfrmCiPinChaiJian.Button5Click(Sender: TObject);
begin
if CDS_ToJYID.IsEmpty then
exit;
printdata(CDS_ToJYID.fieldbyname('JYID').AsString);
SmNO.SetFocus;
end;
procedure TfrmCiPinChaiJian.btnChaiPiClick(Sender: TObject);
begin
if CDS_FromJYID.RecordCount > 1 then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>һƥ<D2BB><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><E8B5BD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
if strtofloatdef(trim(KJLen.Text), 0) > CDS_FromJYID.FieldByName('jylen').AsFloat then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('exec P_JY_ChaiPi ');
sql.Add(' @OrgJYID=' + quotedstr(trim(CDS_FromJYID.FieldByName('JYID').AsString)));
sql.Add(',@KJLen=' + KJLen.text);
sql.Add(' ,@note=' + quotedstr(trim(note.Text)));
open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
application.MessageBox(PChar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
ADOQueryCmd.Connection.RollbackTrans;
end;
ADOQueryCmd.Connection.CommitTrans;
InitCFGrid();
// CDS_ToJYID.Last;
// Printdata(CDS_ToJYID.Fieldbyname('JYID').AsString);
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
SmNO.SetFocus;
end;
procedure TfrmCiPinChaiJian.Button4Click(Sender: TObject);
begin
if CDS_FromJYID.IsEmpty then
exit;
printdata(CDS_FromJYID.fieldbyname('JYID').AsString);
SmNO.SetFocus;
end;
procedure TfrmCiPinChaiJian.FormDestroy(Sender: TObject);
begin
frmCiPinChaiJian := nil;
end;
end.