D7gmYushang/色卡挂板仓库(SKGBhouse.dll)/U_PieceSampleKcList.pas

472 lines
12 KiB
ObjectPascal
Raw Normal View History

2025-09-24 13:13:14 +08:00
unit U_PieceSampleKcList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxCheckBox,
RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, MMSystem, Menus,
BtnEdit, U_SLT, jpeg, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
cxCalendar, RM_e_Xls;
type
TfrmPieceSampleKcList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Qty: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
CDS_Main: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
TOk: TToolButton;
v1Ssel: TcxGridDBColumn;
Label7: TLabel;
v1Column5: TcxGridDBColumn;
ADOQueryPrint: TADOQuery;
RMDB_Main: TRMDBDataSet;
RM1: TRMGridReport;
v1Column8: TcxGridDBColumn;
ADOQueryMain: TADOQuery;
P_Code: TEdit;
Label18: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
ToolButton2: TToolButton;
Panel2: TPanel;
Label1: TLabel;
Button1: TButton;
edtKuWei: TBtnEditA;
ToolButton1: TToolButton;
adoqueryPicture: TADOQuery;
cv1Column12: TcxGridDBColumn;
lbl1: TLabel;
yptype: TEdit;
Edit1: TEdit;
lbl2: TLabel;
btn2: TButton;
ToolButton4: TToolButton;
RMXLSExport1: TRMXLSExport;
ADOPrint: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure P_CodeNameChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TOkClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure edtKuWeiBtnClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
private
procedure InitGrid();
procedure SetStatus();
{ Private declarations }
public
fType: integer;
fCKName: string;
{ Public declarations }
end;
var
frmPieceSampleKcList: TfrmPieceSampleKcList;
var
Mach: array of TfrmSlt;
implementation
uses
U_DataLink, U_Fun10, U_ZDYHelp, U_Fun;
{$R *.dfm}
procedure TfrmPieceSampleKcList.SetStatus();
begin
if fType = 10 then
begin
TOk.Visible := true;
v1Ssel.Visible := true;
ToolButton1.Visible := True;
end;
end;
procedure TfrmPieceSampleKcList.InitGrid();
begin
try
with adoqueryMain do
begin
close;
sql.Clear;
sql.Add(' select A.* ');
SQL.Add(' from CK_Skgb_CR A ');
sql.Add(' where A.kcQty<>0 and CKName=' + quotedstr(trim(fCKName)));
sql.ADD(' and A.Valid=''Y'' and A.CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' order by A.CRTime desc,A.CRNO desc');
open;
end;
SCreateCDS20(adoqueryMain, CDS_Main);
SInitCDSData20(adoqueryMain, CDS_Main);
finally
end;
end;
procedure TfrmPieceSampleKcList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
writeCxGrid(self.Caption + tv1.Name, Tv1, '<27><><EFBFBD>ϲֿ<CFB2>');
if fType = 10 then
Action := cahide
else
Action := cafree;
end;
procedure TfrmPieceSampleKcList.FormDestroy(Sender: TObject);
begin
frmPieceSampleKcList := nil;
end;
procedure TfrmPieceSampleKcList.P_CodeNameChange(Sender: TObject);
begin
if adoqueryMain.Active = False then
Exit;
SDofilter(adoqueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(adoqueryMain, CDS_Main);
SInitCDSData20(adoqueryMain, CDS_Main);
end;
procedure TfrmPieceSampleKcList.FormShow(Sender: TObject);
begin
readCxGrid(self.Caption + tv1.Name, Tv1, '<27><><EFBFBD>ϲֿ<CFB2>');
SetStatus();
// InitGrid();
end;
procedure TfrmPieceSampleKcList.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmPieceSampleKcList.TBRafreshClick(Sender: TObject);
begin
with adoqueryMain do
begin
close;
sql.Clear;
sql.Add(' select A.P_Code,yptype,A.QtyUnit ');
sql.Add(' ,count(crqtyflag *A.RollNum) KCRollNum,sum(crqtyflag*A.Qty) KCQty ');
SQL.Add(' from CK_Skgb_CR A ');
sql.Add(' where CKName=' + quotedstr(trim(fCKName)));
sql.ADD(' and A.Valid=''Y'' AND Chkstatus=''1'' ');
if Trim(P_Code.Text) <> '' then
begin
SQL.Add('AND P_CODE LIKE ' + quotedstr('%' + trim(P_Code.Text) + '%'));
end;
sql.Add(' group by A.P_Code,yptype,A.QtyUnit ');
// sql.Add(' order by A.CRTime desc,A.CRNO desc');
open;
end;
SCreateCDS20(adoqueryMain, CDS_Main);
SInitCDSData20(adoqueryMain, CDS_Main);
end;
procedure TfrmPieceSampleKcList.TBExportClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmPieceSampleKcList.TOkClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
ModalResult := 1;
end;
procedure TfrmPieceSampleKcList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, true);
end;
procedure TfrmPieceSampleKcList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, false);
end;
procedure TfrmPieceSampleKcList.edtKuWeiBtnClick(Sender: TObject);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'mykuwei';
flagname := '<27><>λ';
if ShowModal = 1 then
begin
edtKuWei.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmPieceSampleKcList.ToolButton2Click(Sender: TObject);
begin
if adoqueryMain.Active = False then
Exit;
SDofilter(adoqueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(adoqueryMain, CDS_Main);
SInitCDSData20(adoqueryMain, CDS_Main);
end;
procedure TfrmPieceSampleKcList.ToolButton1Click(Sender: TObject);
begin
if Panel2.Visible = False then
begin
Panel2.Visible := True;
Edit1.Visible := False;
btn2.Visible := False;
lbl2.Visible := False;
Button1.Visible := True;
end
else
Panel2.Visible := False;
end;
procedure TfrmPieceSampleKcList.Button1Click(Sender: TObject);
begin
if trim(edtKuWei.Text) = '' then
exit;
try
ADOQueryCmd.Connection.BeginTrans;
while CDS_Main.Locate('SSel', true, []) do
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update CK_Skgb_CR set kuwei=' + quotedstr(trim(edtKuWei.Text)));
sql.Add(' where CRNO=' + quotedstr(trim(CDS_Main.FieldByName('CRNO').AsString)));
execsql;
end;
with CDS_Main do
begin
Edit;
FieldByName('SSel').Value := false;
FieldByName('KuWei').Value := trim(edtKuWei.Text);
end;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
end
end;
procedure TfrmPieceSampleKcList.ToolButton3Click(Sender: TObject);
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('exec P_Up_SampleKc_skAll');
execsql;
end;
end;
procedure TfrmPieceSampleKcList.btn2Click(Sender: TObject);
var
maxno, maxno2: string;
F1: string;
begin
if trim(Edit1.Text) = '' then
exit;
if trim(edtKuWei.Text) = '' then
exit;
try
ADOQueryCmd.Connection.BeginTrans;
F1 := CDS_Main.FieldByName('CRNO').AsString;
while CDS_Main.Locate('SSel', true, []) do
begin
if F1 <> trim(CDS_Main.FieldByName('CRNO').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棡', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_Skgb_CR where crno= ' + quotedstr(trim(CDS_Main.FieldByName('CRNO').AsString)));
Open;
end;
if (StrToFloat(Edit1.Text) < (ADOQueryCmd.FieldByName('kcqty').AsFloat)) then
begin
if GetLSNo(ADOQueryTmp, maxno, 'SPR', 'CK_Skgb_CR', 3, 1) = False then //ADOQueryTmp yaoduiyingma
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
if GetLSNo(ADOQueryTmp, maxno2, 'SPC', 'CK_Skgb_CR', 3, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('exec P_Up_BPCP @rkID=' + quotedstr(trim(CDS_Main.fieldbyname('crno').AsString)));
sql.Add(',@maxno=' + quotedstr(trim(maxno)));
SQL.Add(',@fqty=' + quotedstr(trim(Edit1.Text)));
SQL.Add(',@kuwei=' + quotedstr(Trim(edtkuwei.text)));
sql.Add(',@maxno2=' + quotedstr(trim(maxno2)));
sql.Add(',@filler=' + quotedstr(trim(DName)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Up_SampleKc_sk ' + quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString)));
Open;
end;
if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>' then
begin
CDS_Main.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
with CDS_Main do
begin
Edit;
FieldByName('SSel').Value := false;
end;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('<27><>ƥ<EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
except
ADOQueryCmd.Connection.RollbackTrans;
end
end;
procedure TfrmPieceSampleKcList.btn1Click(Sender: TObject);
begin
if Panel2.Visible = False then
begin
Panel2.Visible := True;
lbl2.Visible := True;
Edit1.Visible := True;
btn2.visible := True;
Button1.Visible := False;
end
else
Panel2.Visible := False;
end;
procedure TfrmPieceSampleKcList.ToolButton4Click(Sender: TObject);
var
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
if CDS_Main.IsEmpty then
Exit;
ExportFtErpFile('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ.rmf', ADOQueryTmp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ.rmf';
while CDS_Main.Locate('SSel', True, []) do
begin
with ADOPrint do
begin
Close;
sql.Clear;
// sql.Add('select * from CP_YDang A inner join CK_Skgb_CR B on A.CYNo=B.P_Code and A.CYColor=B.P_COLOR ');
sql.Add('select * from CK_Skgb_CR A ');
sql.Add('where CRNO=''' + Trim(CDS_Main.fieldbyname('CRNO').AsString) + '''');
// showmessage(sql.Text);
Open;
end;
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(ADOPrint.fieldbyname('crno').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;
RMVariables['QRBARCODE'] := fImagePath;
if FileExists(fPrintFile) then
begin
RM1.ShowPrintDialog := False;
Rm1.DefaultCopies := strtointdef(trim(Edit1.Text), 1);
RM1.LoadFromFile(fPrintFile);
// RM1.DefaultCopies := 1;
RM1.PrintReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
Exit;
end;
CDS_Main.edit;
CDS_Main.FieldByName('ssel').Value := False;
end;
end;
end.