D10myBiaoqi/T02贸易汇总仓库/U_TradeSampleClothStkList.pas
2025-11-08 10:16:26 +08:00

433 lines
12 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_TradeSampleClothStkList;
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,
cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters,
cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList, dxSkinWXI,
dxScrollbarAnnotations, jpeg, Math, U_SLT;
type
TfrmTradeSampleClothStkList = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
GPM_1: TcxGridPopupMenu;
CDS_Main: TClientDataSet;
CDS_HZ: TClientDataSet;
PopupMenu1: TPopupMenu;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column14: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
Label3: TLabel;
Label4: TLabel;
Label8: TLabel;
Label2: TLabel;
C_name: TEdit;
FromCoName: TEdit;
C_spec: TEdit;
BatchNo: TEdit;
v1Column6: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
ToolButton2: TToolButton;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
Tv1Column8: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
Tv1Column10: TcxGridDBColumn;
Tv1Column11: TcxGridDBColumn;
BCIID: TEdit;
Label1: TLabel;
ADOQuery1: TADOQuery;
Panel9: TPanel;
Panel10: TPanel;
GroupBox1: TGroupBox;
ScrollBox1: TScrollBox;
Tv1Column12: TcxGridDBColumn;
adoqueryPicture: TADOQuery;
Tv1Column13: TcxGridDBColumn;
ADOQuery2: TADOQuery;
C_Code: TEdit;
Label5: TLabel;
ToolButton1: TToolButton;
ToolButton3: TToolButton;
Tv1Column14: TcxGridDBColumn;
ADOQueryPrint: TADOQuery;
RMDB_1: TRMDBDataSet;
Rm1: TRMGridReport;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoMChange(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure MPRTCodeNameChange(Sender: TObject);
procedure SXBatchNOChange(Sender: TObject);
procedure FromCoNameChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure FormCreate(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure BCIIDKeyPress(Sender: TObject; var Key: Char);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure ToolButton3Click(Sender: TObject);
private
procedure InitGrid();
procedure InitImage();
{ Private declarations }
public
FstkName: string;
{ Public declarations }
end;
var
frmTradeSampleClothStkList: TfrmTradeSampleClothStkList;
Mach: array of TfrmSlt;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp;
{$R *.dfm}
procedure TfrmTradeSampleClothStkList.FormDestroy(Sender: TObject);
begin
inherited;
frmTradeSampleClothStkList := nil;
end;
procedure TfrmTradeSampleClothStkList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmTradeSampleClothStkList.FormCreate(Sender: TObject);
begin
inherited;
inherited;
end;
procedure TfrmTradeSampleClothStkList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select CBMoney=ISNULL(A.CBPrice,0)*ISNULL(A.stkqty,0),A.* ');
sql.Add(',IsImg=cast((case when (select COUNT(T.WBID) from TP_File T where T.FileType = ''YPCK'' and T.WBID=A.BCIOID)=0 then 0 else 1 end) as bit ) ');
sql.Add(' from BS_Cloth_IO A ');
SQL.Add(' where A.IOFlag=''<27><><EFBFBD><EFBFBD>'' and (isnull(StkQty,0)>0 or isnull(StkPiece,0)>0) ');
sql.Add(' and isnull(stkName,'''')=''' + Trim(FstkName) + '''');
// ShowMessage(Sql.text);
Open;
end;
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmTradeSampleClothStkList.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 CDS_Main.IsEmpty then
exit;
try
with adoqueryPicture do
begin
close;
sql.Clear;
sql.Add(' select A.TFID,A.WBID,A.FilesOther,A.FileName from TP_File A ');
sql.add('where A.WBID=' + quotedstr(trim(CDS_Main.fieldbyname('BCIOID').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].Left := 0;
Mach[i].Top := 0 + i * 180;
Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, jpg);
end;
adoqueryPicture.Next;
end;
adoqueryPicture.EnableControls;
finally
jpg.free;
application.ProcessMessages;
end;
end;
procedure TfrmTradeSampleClothStkList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
InitImage();
end;
procedure TfrmTradeSampleClothStkList.BCIIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
with ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('select * from BS_Cloth_Info A where A.BCIID=''' + trim(BCIID.Text) + ''' ');
// showmessage(sql.text);
open;
end;
C_name.text := ADOQuery2.FieldByName('C_Name').ASString;
end;
end;
procedure TfrmTradeSampleClothStkList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmTradeSampleClothStkList.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmTradeSampleClothStkList.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(trim(Self.Caption), Tv1, <>׻<EFBFBD><D7BB>ֿܲ<DCB2>');
InitGrid();
InitImage();
end;
procedure TfrmTradeSampleClothStkList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_Main);
SInitCDSData(ADOQueryMain, CDS_Main);
end;
// TBFind.Click
end;
procedure TfrmTradeSampleClothStkList.MPRTCodeNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmTradeSampleClothStkList.SXBatchNOChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmTradeSampleClothStkList.FromCoNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmTradeSampleClothStkList.ToolButton1Click(Sender: TObject);
var
SavedTopRowIndex: Integer;
PBCIOIDS: string;
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('ssel', true, []) = False then
begin
Application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
exit;
end;
try
SavedTopRowIndex := Self.Tv1.Controller.TopRowIndex;
Self.CDS_Main.First;
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'StkPosition';
flagname := '<27><>λ';
MainType := FSTKName;
if ShowModal = 1 then
begin
Self.CDS_Main.DisableControls;
with Self.CDS_Main do
begin
First;
while not eof do
begin
if FieldByName('ssel').value = true then
begin
if PBCIOIDS = '' then
PBCIOIDS := PBCIOIDS + '''' + CDS_Main.FieldByName('BCIOID').AsString + ''''
else
PBCIOIDS := PBCIOIDS + ',''' + CDS_Main.FieldByName('BCIOID').AsString + '''';
end;
Next;
end;
end;
Self.CDS_Main.EnableControls;
with ADOQueryBaseCmd do
begin
close;
sql.Clear;
SQL.Add('update BS_Cloth_IO set stkposition = ' + QuotedStr(Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString)) + ' where BCIOID in (' + PBCIOIDS + ')');
ExecSQL;
end;
Self.InitGrid();
if SavedTopRowIndex < self.Tv1.DataController.RowCount then
self.Tv1.Controller.TopRowIndex := SavedTopRowIndex;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmTradeSampleClothStkList.ToolButton2Click(Sender: TObject);
begin
WriteCxGrid(trim(Self.Caption), Tv1, <>׻<EFBFBD><D7BB>ֿܲ<DCB2>');
end;
procedure TfrmTradeSampleClothStkList.ToolButton3Click(Sender: TObject);
var
fPrintFile, FLabVolume: string;
SavedTopRowIndex: Integer;
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
SavedTopRowIndex := Self.Tv1.Controller.TopRowIndex;
CDS_Main.DisableControls;
with CDS_Main do
begin
First;
while not Eof do
begin
if CDS_Main.FieldByName('SSel').AsBoolean = True then
begin
with ADOQueryPrint do
begin
Close;
SQL.Clear;
sql.Add(' EXEC P_BS_SampleCloth_In_Prt1 ');
SQL.Add(' @Filtration=''' + Trim(CDS_Main.fieldbyname('BCIOID').AsString) + '''');
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;
FLabVolume := '<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ';
ExportFtErpFile(FLabVolume + '.rmf', ADOQueryBaseTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + FLabVolume + '.rmf';
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
// if Trim(ADOQueryPrint.fieldbyname('LabVolume').AsString) <> '<27><>Ʒ<EFBFBD><C6B7>ǩ' then
// Rm1.DefaultCopies := 2
// else
Rm1.DefaultCopies := 1;
RM1.PrintReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
end;
end;
Next;
end;
end;
CDS_Main.EnableControls;
if SavedTopRowIndex < self.Tv1.DataController.RowCount then
self.Tv1.Controller.TopRowIndex := SavedTopRowIndex;
end;
procedure TfrmTradeSampleClothStkList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
ModalResult := 1;
end;
procedure TfrmTradeSampleClothStkList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
inherited;
InitImage();
end;
end.