D10DJkaimengwenshang/项目代码/wenshangkm/G03贸易布匹检验/U_TradePack.pas

1138 lines
30 KiB
ObjectPascal
Raw Normal View History

2025-09-27 14:24:10 +08:00
unit U_TradePack;
interface
uses
IniFiles, 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, Buttons, Menus,
cxLookAndFeelPainters, cxButtons, RM_Common, RM_Class, RM_GridReport,
RM_System, RM_Dataset, cxCheckBox, MMSystem, Math, WinSpool, Printers,
cxGridCustomPopupMenu, cxGridPopupMenu, cxLookAndFeels, cxNavigator,
dxDateRanges, dxBarBuiltInMenu, Clipbrd, U_BaseList, dxScrollbarAnnotations,
cxMaskEdit, cxDropDownEdit, cxButtonEdit, dxLayoutcxEditAdapters,
dxLayoutControlAdapters, dxLayoutContainer, dxLayoutControl, cxGroupBox,
RM_BarCode, RM_RichEdit, cxProgressBar, cxSplitter;
type
TfrmTradePack = class(TfrmBaseList)
Panel2: TPanel;
ADOQueryMain: TADOQuery;
ADOQueryCmd: TADOQuery;
CDS_DDB: TClientDataSet;
DS_DDB: TDataSource;
SmNO: TcxTextEdit;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
cxGrid3: TcxGrid;
Tv3: TcxGridDBTableView;
cxGridLevel2: TcxGridLevel;
Tv3Column1: TcxGridDBColumn;
DS_KDB: TDataSource;
RMDB_1: TRMDBDataSet;
RM2: TRMGridReport;
Panel4: TPanel;
ADOQueryPrint: TADOQuery;
Label6: TLabel;
v3C_Name: TcxGridDBColumn;
v3C_Color: TcxGridDBColumn;
v3Column3: TcxGridDBColumn;
CDS_KDB: TClientDataSet;
Panel5: TPanel;
CDS_YDB: TClientDataSet;
DS_YDB: TDataSource;
v3Column5: TcxGridDBColumn;
v3Column6: TcxGridDBColumn;
v3Column7: TcxGridDBColumn;
PM_KDB: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
PM_YDB: TPopupMenu;
btnClose: TcxButton;
N5: TMenuItem;
chkBBQ: TCheckBox;
PM_DDB: TPopupMenu;
N6: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N7: TMenuItem;
Label2: TLabel;
CDS_DDY: TClientDataSet;
cxGridPopupMenu2: TcxGridPopupMenu;
cxGridPopupMenu1: TcxGridPopupMenu;
cxGridPopupMenu3: TcxGridPopupMenu;
v3Column4: TcxGridDBColumn;
v3Column11: TcxGridDBColumn;
btnOK: TcxButton;
cxButton2: TcxButton;
edtPacketNo: TcxCurrencyEdit;
cxButton3: TcxButton;
Edit1: TcxTextEdit;
N13: TMenuItem;
CDS_PacketId: TClientDataSet;
N8: TMenuItem;
ComboBox1: TcxComboBox;
ComboBox3: TcxComboBox;
edtOrder: TcxButtonEdit;
dxLayoutControl_tradepackGroup_Root: TdxLayoutGroup;
dxLayoutControl_tradepack: TdxLayoutControl;
dxLayoutGroup1: TdxLayoutGroup;
dxLayoutItem1: TdxLayoutItem;
dxLayoutItem2: TdxLayoutItem;
dxLayoutItem3: TdxLayoutItem;
dxLayoutItem4: TdxLayoutItem;
dxLayoutItem5: TdxLayoutItem;
dxLayoutItem6: TdxLayoutItem;
dxLayoutEmptySpaceItem1: TdxLayoutEmptySpaceItem;
dxLayoutEmptySpaceItem2: TdxLayoutEmptySpaceItem;
cxButton_bcgs: TcxButton;
dxLayoutItem7: TdxLayoutItem;
cxGroupBox1: TcxGroupBox;
cxGrid1: TcxGrid;
TV1: TcxGridDBTableView;
cxGridDBColumn8: TcxGridDBColumn;
V1Column1: TcxGridDBColumn;
cxGridDBColumn9: TcxGridDBColumn;
V4Column3: TcxGridDBColumn;
cxGridDBColumn10: TcxGridDBColumn;
cxGridDBColumn11: TcxGridDBColumn;
cxGridDBColumn12: TcxGridDBColumn;
V4Column2: TcxGridDBColumn;
cxGridDBColumn14: TcxGridDBColumn;
cxGridDBColumn15: TcxGridDBColumn;
cxGridDBColumn17: TcxGridDBColumn;
cxGridDBColumn18: TcxGridDBColumn;
cxGridDBColumn19: TcxGridDBColumn;
cxGridLevel3: TcxGridLevel;
cxGroupBox2: TcxGroupBox;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn2: TcxGridDBColumn;
V2Column6: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
V2Column4: TcxGridDBColumn;
V2Column1: TcxGridDBColumn;
V2BaooID: TcxGridDBColumn;
V2BaooNO: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
V2Column2: TcxGridDBColumn;
V2Column3: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Tv3C_pattern: TcxGridDBColumn;
Tv3C_ColorNo: TcxGridDBColumn;
TV2C_pattern: TcxGridDBColumn;
TV2C_ColorNo: TcxGridDBColumn;
TV1C_pattern: TcxGridDBColumn;
TV1C_colorNo: TcxGridDBColumn;
RMRichObject1: TRMRichObject;
RMBarCodeObject1: TRMBarCodeObject;
CheckBox_hs: TCheckBox;
dxLayoutItem8: TdxLayoutItem;
dxLayoutEmptySpaceItem3: TdxLayoutEmptySpaceItem;
TV1Column1: TcxGridDBColumn;
TV1Column2: TcxGridDBColumn;
TV1Column3: TcxGridDBColumn;
cxSplitter1: TcxSplitter;
cxSplitter2: TcxSplitter;
cxSplitter3: TcxSplitter;
cxSplitter4: TcxSplitter;
N9: TMenuItem;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure edtOrderBtnClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure PRTColorKeyPress(Sender: TObject; var Key: Char);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure SmNOKeyPress(Sender: TObject; var Key: Char);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure cxButton2Click(Sender: TObject);
procedure edtPacketNoClick(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure edtOrderPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure cxButton_bcgsClick(Sender: TObject);
procedure edtOrderKeyPress(Sender: TObject; var Key: Char);
procedure CheckBox_hsClick(Sender: TObject);
procedure edtPacketNoPropertiesChange(Sender: TObject);
procedure TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure N9Click(Sender: TObject);
private
FDDBSql, FPacketId: string;
FLocatedPacketId: string;
FPacketNo: Integer;
NLBName: string;
FScanIndex: Integer;
procedure InitGridKDB(); //<2F>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
procedure InitGridDDB(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
procedure InitGridYDB(); //<2F>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
procedure GetPacketNo();
procedure DaBao();
procedure HSDB();
procedure OKDDB();
procedure MoveCDS(CDS_Left: TclientDataSet; CDS_Right: TclientDataSet);
procedure PrintBao(PPacketId: string);
procedure doHsPack();
{ Private declarations }
public
{ Public declarations }
end;
var
frmTradePack: TfrmTradePack;
newh: hwnd;
implementation
uses
U_DataLink, U_RTFun, U_globalVar, U_ZDYHelp, U_TradeClothWaitPack;
{$R *.dfm}
procedure TfrmTradePack.OKDDB();
begin
if CDS_KDB.IsEmpty then
Exit;
with CDS_KDB do
begin
CDS_KDB.DisableControls;
while CDS_KDB.Locate('SSel', True, []) do
begin
MoveCDS(CDS_KDB, CDS_DDB);
with CDS_DDB do
begin
Edit;
FieldByName('PacketId').Value := FPacketId;
FieldByName('PacketNo').Value := FPacketNo;
end;
CDS_KDB.Delete;
end;
CDS_KDB.EnableControls;
end;
end;
procedure TfrmTradePack.DaBao();
begin
if CDS_DDB.IsEmpty then
Exit;
FDDBSql := '';
with CDS_DDB do
begin
CDS_DDB.DisableControls;
First;
while not Eof do
begin
FDDBSql := FDDBSql + ' ' + 'Update Trade_Cloth_Inspect Set PacketTime=GETDATE() , PacketNo=' + IntToStr(FPacketNo) + ',PacketId=' + QuotedStr(trim(FPacketId)) + ',PacketCode=' + QuotedStr(trim(DCode)) + ',PacketName=' + QuotedStr(trim(DName)) + 'where CIID=' + QuotedStr(trim(CDS_DDB.FieldByName('CIID').AsString));
FDDBSql := FDDBSql + ' ' + 'Update Trade_Cloth_Stock Set PacketTime=GETDATE() , PacketNo=' + IntToStr(FPacketNo) + ',PacketId=' + QuotedStr(trim(FPacketId)) + ',PacketCode=' + QuotedStr(trim(DCode)) + ',PacketName=' + QuotedStr(trim(DName)) + 'where CIID=' + QuotedStr(trim(CDS_DDB.FieldByName('CIID').AsString));
Next;
end;
CDS_DDB.EnableControls;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(FDDBSql);
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmTradePack.GetPacketNo();
begin
with ADOQueryTmp do
begin
close;
sql.clear;
sql.add('select max(PacketNo)+1 as MaxPacketNo from Trade_Cloth_Inspect ');
sql.Add('where OrderNo=' + quotedstr(trim(edtOrder.Text)));
// ShowMessage(SQL.Text);
open;
end;
FPacketNo := ADOQueryTmp.fieldbyname('MaxPacketNo').AsInteger;
if FPacketNo = 0 then
FPacketNo := 1;
edtPacketNo.Value := FPacketNo;
FLocatedPacketId := FPacketId;
if GetLSNo(ADOQueryTmp, FPacketId, 'BI', 'Trade_Cloth_Inspect', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end;
procedure TfrmTradePack.MoveCDS(CDS_Left: TclientDataSet; CDS_Right: TclientDataSet);
var
i: Integer;
begin
with CDS_Right do
begin
Append;
for i := 0 to CDS_Left.FieldCount - 1 do
begin
CDS_Right.FieldByName(CDS_Left.Fields[i].FieldName).Value := CDS_Left.fieldbyname(CDS_Left.Fields[i].FieldName).Value;
end;
Post;
end;
end;
procedure TfrmTradePack.PrintBao(PPacketId: string);
var
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
with ADOQueryPrint do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Trade_Insp_Prt_PackLab ' + quotedstr(PPacketId));
Open;
end;
if trim(ADOQueryPrint.fieldbyName('SLabPackage').AsString) <> '' then
NLBName := trim(ADOQueryPrint.fieldbyName('SLabPackage').AsString)
else
NLBName := ADOQueryPrint.fieldbyName('LabPackage').AsString;
ExportFtErpFile(Trim(NLBName) + '.rmf', ADOQueryTmp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(NLBName) + '.rmf';
if not FileExists(fPrintFile) then
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
Exit;
end;
if FileExists(fPrintFile) then
begin
RM2.LoadFromFile(fPrintFile);
RM2.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1);
RM2.printReport;
end;
if FileExists(fImagePath) then
DeleteFile(fImagePath);
end;
procedure TfrmTradePack.InitGridYDB();
begin
if Trim(edtOrder.Text) = '' then
Exit;
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select *,TotalM=Sum(A.Meter) over(PARTITION BY A.PacketId),TotalGross=Sum(A.GrossWeight) over(PARTITION BY A.PacketId),TotalNet=Sum(A.NetWeight) over(PARTITION BY A.PacketId) from Trade_Cloth_Inspect A where isnull(PacketId,'''')<>'''' and OrderNo=' + QUOTEDSTR(Trim(edtOrder.Text)));
open;
end;
SCreateCDS(ADOQueryTmp, CDS_YDB);
SInitCDSData(ADOQueryTmp, CDS_YDB);
if CDS_YDB.Locate('PacketId', FLocatedPacketId, []) then
begin
TV1.Controller.FocusedRecordIndex := TV1.DataController.FocusedRecordIndex;
end;
end;
procedure TfrmTradePack.InitGridKDB();
begin
if Trim(edtOrder.Text) = '' then
Exit;
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from Trade_Cloth_Inspect A where isnull(PacketId,'''')='''' and OrderNo=' + QUOTEDSTR(Trim(edtOrder.Text)));
sql.add('order by A.C_ColorNo,A.BatchNO,A.PieceNo');
// ShowMessage(sql.Text);
open;
end;
SCreateCDS(ADOQueryTmp, CDS_KDB);
SInitCDSData(ADOQueryTmp, CDS_KDB);
FScanIndex := Integer.MinValue;
end;
procedure TfrmTradePack.InitGridDDB();
begin
//////////////////////<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/////////////////////
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select AA.* from Trade_Cloth_Inspect AA where 1=2');
open;
end;
SCreateCDS(ADOQueryTmp, CDS_DDB);
//////////////////////<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/////////////////////
end;
procedure TfrmTradePack.FormDestroy(Sender: TObject);
begin
inherited;
frmTradePack := nil;
end;
procedure TfrmTradePack.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := cafree;
end;
procedure TfrmTradePack.FormCreate(Sender: TObject);
var
programIni: Tinifile;
Filename: string;
begin
inherited;
Panel2.Align := alClient;
cxGroupBox1.align := alClient;
Filename := ExtractFilePath(Paramstr(0)) + 'TradePackForm.INI';
try
programIni := Tinifile.create(Filename);
dxLayoutControl_tradepack.Height := programIni.ReadInteger('<27><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><E6B2BC>', '<27><><EFBFBD><EFBFBD>1', dxLayoutControl_tradepack.Height);
Panel5.Height := programIni.ReadInteger('<27><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><E6B2BC>', '<27><><EFBFBD><EFBFBD>2', Panel5.Height);
Panel4.Width := programIni.ReadInteger('<27><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><E6B2BC>', '<27><><EFBFBD><EFBFBD>3', Panel4.Width);
cxGroupBox2.Height := programIni.ReadInteger('<27><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><E6B2BC>', '<27><><EFBFBD><EFBFBD>4', cxGroupBox2.Height);
finally
programIni.Free;
end;
end;
procedure TfrmTradePack.edtOrderBtnClick(Sender: TObject);
var
FPacketId: string;
FMainID: string;
begin
try
frmTradeClothWaitPack := TfrmTradeClothWaitPack.Create(self);
with frmTradeClothWaitPack do
begin
if ShowModal = 1 then
begin
edtOrder.Text := Trim(CDS_OrderSel.fieldbyname('OrderNo').AsString);
end;
end;
finally
frmTradeClothWaitPack.Free;
end;
SMNO.SetFocus;
InitGridKDB();
InitGridYDB();
GetPacketNo();
end;
procedure TfrmTradePack.edtOrderKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if Key = #13 then
begin
InitGridKDB();
InitGridYDB();
GetPacketNo();
tv3.ApplyBestFit();
end;
end;
procedure TfrmTradePack.edtOrderPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
var
FPacketId: string;
FMainID: string;
begin
try
frmTradeClothWaitPack := TfrmTradeClothWaitPack.Create(self);
with frmTradeClothWaitPack do
begin
if ShowModal = 1 then
begin
edtOrder.Text := Trim(CDS_OrderSel.fieldbyname('OrderNo').AsString);
end;
end;
finally
frmTradeClothWaitPack.Free;
end;
SMNO.SetFocus;
InitGridKDB();
InitGridYDB();
GetPacketNo();
tv3.ApplyBestFit();
end;
procedure TfrmTradePack.btnCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmTradePack.PRTColorKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel5, 1, 2));
SCreateCDS(ADOQueryMain, CDS_KDB);
SInitCDSData(ADOQueryMain, CDS_KDB);
end;
end;
procedure TfrmTradePack.N1Click(Sender: TObject);
begin
SelOKNo(CDS_KDB, True);
end;
procedure TfrmTradePack.N2Click(Sender: TObject);
begin
SelOKNo(CDS_KDB, False);
end;
procedure TfrmTradePack.FormShow(Sender: TObject);
begin
inherited;
dxLayoutItem7.Visible := gIsCanDesign;
readCxGrid('<27><>Ʒɨ<C6B7><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv1', Tv1, gDllFileCaption);
readCxGrid('<27><>Ʒɨ<C6B7><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv2', Tv2, gDllFileCaption);
readCxGrid('<27><>Ʒɨ<C6B7><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv3', Tv3, gDllFileCaption);
InitGridDDB();
btnOk.Caption := '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
end;
procedure TfrmTradePack.N6Click(Sender: TObject);
begin
if CDS_DDB.IsEmpty then
Exit;
with CDS_DDB do
begin
MoveCDS(CDS_DDB, CDS_KDB);
CDS_DDB.Delete;
end;
end;
procedure TfrmTradePack.SmNOKeyPress(Sender: TObject; var Key: Char);
var
FPackM, FPackGross, FPackNet: Double;
TmpPacketId: string;
begin
if Key = #13 then
begin
smno.Enabled := False;
try
if trim(smno.Text) = '' then
raise Exception.Create(<><C9A8>ֵΪ<D6B5><CEAA>');
if trim(edtOrder.Text) = '' then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>');
if CDS_KDB.IsEmpty then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD>δ<EFBFBD>о<EFBFBD><D0BE><EFBFBD>Ϣ');
if CDS_DDB.Locate('ciid', Trim(SmNO.Text), []) then
raise Exception.Create('<27><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
if CDS_YDB.Locate('ciid', Trim(SmNO.Text), []) then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
if not CDS_KDB.Locate('ciid', Trim(SmNO.Text), []) then
raise Exception.Create(<>ҵ<EFBFBD><D2B5><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
except
if fileexists(ExtractFilePath(Application.ExeName) + '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.wav') then
playSound(pwidechar('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.wav'), 0, SND_FILENAME or SND_ASYNC)
else
PlaySound('SystemHand', 0, SND_ALIAS or SND_ASYNC);
Application.MessageBox(pchar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
smno.Text := '';
smno.Enabled := True;
smno.SetFocus;
exit;
end;
if Trim(CDS_KDB.FieldByName('ciid').AsString) = Trim(SmNO.Text) then
begin
with CDS_KDB do
begin
Edit;
FieldByName('SSel').Value := True;
FieldByName('Sindex').Value := FScanIndex;
Inc(FScanIndex);
Post;
end;
end;
if CheckBox_hs.Checked then
begin
smno.Text := '';
smno.Enabled := True;
smno.SetFocus;
end
else
begin
OKDDB();
if StrToInt(ComboBox3.Text) = CDS_DDB.RecordCount then
begin
try
FPackM := 0;
FPackGross := 0;
FPackNet := 0;
DaBao();
with CDS_DDB do
begin
CDS_DDB.DisableControls;
First;
while not Eof do
begin
FPackM := FPackM + FieldByName('Meter').AsFloat;
FPackGross := FPackGross + FieldByName('GrossWeight').AsFloat;
FPackNet := FPackNet + FieldByName('NetWeight').AsFloat;
Next;
end;
First;
while not Eof do
begin
MoveCDS(CDS_DDB, CDS_YDB);
CDS_YDB.Edit;
CDS_YDB.FieldByName('TotalM').Value := FPackM;
CDS_YDB.FieldByName('TotalGross').Value := FPackGross;
CDS_YDB.FieldByName('TotalNet').Value := FPackNet;
CDS_YDB.Post;
Next;
end;
CDS_DDB.EnableControls;
CDS_DDB.EmptyDataSet;
end;
finally
TmpPacketId := FPacketId;
GetPacketNo();
if fileexists(ExtractFilePath(Application.ExeName) + '<27><>ȷ.wav') then
playSound(pwidechar('<27><>ȷ.wav'), 0, SND_FILENAME or SND_ASYNC)
else
PlaySound('SystemAsterisk', 0, SND_ALIAS or SND_ASYNC);
smno.Text := '';
smno.Enabled := True;
smno.SetFocus;
if chkBBQ.Checked then
begin
PrintBao(TmpPacketId);
end;
end;
end
else
begin
if fileexists(ExtractFilePath(Application.ExeName) + '<27><>ȷ.wav') then
playSound(pwidechar('<27><>ȷ.wav'), 0, SND_FILENAME or SND_ASYNC)
else
PlaySound('SystemAsterisk', 0, SND_ALIAS or SND_ASYNC);
smno.Text := '';
smno.Enabled := True;
smno.SetFocus;
end;
end;
end;
end;
procedure TfrmTradePack.TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
vSsel: TcxGridDBColumn;
begin
inherited;
// vSsel:=TV1.GetColumnByFieldName('Ssel');
// if (vSsel <> nil) and AViewInfo.GridRecord.Values[vSsel.Index] then
// begin
// ACanvas.Brush.Color := clWebSkyBlue;
// end;
if TV1.Controller.FocusedRecordIndex = AViewInfo.GridRecord.Index then
begin
ACanvas.Brush.Color := clWebSkyBlue;
end;
end;
procedure TfrmTradePack.N3Click(Sender: TObject);
var
MPacketId: string;
begin
if CDS_YDB.Locate('SSel', True, []) = False then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD>ݣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
while CDS_YDB.Locate('SSel', True, []) do
begin
MPacketId := Trim(CDS_YDB.FieldByName('PacketId').AsString);
PrintBao(MPacketId);
while CDS_YDB.Locate('SSel;PacketId', VarArrayOf([True, MPacketId]), []) do
begin
with CDS_YDB do
begin
Edit;
CDS_YDB.FieldByName('SSel').Value := False;
Post;
end;
end;
end;
end;
procedure TfrmTradePack.N4Click(Sender: TObject);
var
NPacketId: string;
begin
if CDS_YDB.Locate('SSel', True, []) = False then
begin
application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD>ݣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
while CDS_YDB.Locate('SSel', True, []) do
begin
NPacketId := Trim(CDS_YDB.FieldByName('PacketId').AsString);
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update Trade_Cloth_Inspect Set PacketLog=cast(PacketNo as varchar(40))+''&''+PacketId+''&''+cast(PacketTime as varchar(100))+'';'' where isnull(PacketId,'''')<>'''' and PacketId=' + QuotedStr(NPacketId));
sql.Add(' Update Trade_Cloth_Inspect Set PacketNo=null,PacketId=null where isnull(PacketId,'''')<>'''' and PacketId=' + QuotedStr(NPacketId));
sql.Add(' Update Trade_Cloth_Stock Set PacketNo=null,PacketId=null where isnull(PacketId,'''')<>'''' and PacketId=' + QuotedStr(NPacketId));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
sql.Add(' ' + quotedstr(trim(DName)));
sql.Add(',getdate() ');
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')));
sql.Add(',' + quotedstr(NPacketId));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
ExecSQL;
end;
while CDS_YDB.Locate('SSel;PacketId', VarArrayOf([True, NPacketId]), []) do
begin
with CDS_YDB do
begin
Edit;
CDS_YDB.FieldByName('SSel').Value := False;
Post;
end;
end;
end;
InitGridKDB();
InitGridYDB();
InitGridDDB();
GetPacketNo();
end;
procedure TfrmTradePack.N7Click(Sender: TObject);
begin
DaBao();
with CDS_DDB do
begin
CDS_DDB.DisableControls;
First;
while not Eof do
begin
MoveCDS(CDS_DDB, CDS_YDB);
Next;
end;
CDS_DDB.EnableControls;
CDS_DDB.EmptyDataSet;
end;
if chkBBQ.Checked then
begin
PrintBao(FPacketId);
end;
GetPacketNo();
InitGridYDB();
end;
procedure TfrmTradePack.N8Click(Sender: TObject);
begin
SelOKNo(CDS_YDB, false);
end;
procedure TfrmTradePack.N9Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_KDB.fieldbyname(TV3.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmTradePack.N5Click(Sender: TObject);
begin
OKDDB();
end;
procedure TfrmTradePack.btnOKClick(Sender: TObject);
var
i, j, K: Integer;
MCurBatchNO, MoldBatchNO, MCurSubID, MoldSubID: string;
begin
if not CDS_DDB.IsEmpty then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if CDS_KDB.IsEmpty then
Exit;
//<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
if CheckBox_hs.Checked then
begin
doHsPack();
exit;
end;
MCurBatchNO := '';
MoldBatchNO := '';
i := 0;
j := StrToInt(ComboBox3.Text);
K := 0;
with CDS_KDB do
begin
CDS_KDB.DisableControls;
CDS_DDB.DisableControls;
First;
while not Eof do
begin
if CDS_KDB.FieldByName('SSel').AsBoolean then
begin
if K = 0 then
begin
MoldBatchNO := Trim(CDS_KDB.FieldByName('BatchNO').AsString);
MoldSubID := Trim(CDS_KDB.FieldByName('SubID').AsString);
end;
MCurBatchNO := Trim(CDS_KDB.FieldByName('BatchNO').AsString);
MCurSubID := Trim(CDS_KDB.FieldByName('SubID').AsString);
if j = 1 then
begin
MoveCDS(CDS_KDB, CDS_DDB);
with CDS_DDB do
begin
Edit;
FieldByName('PacketId').Value := FPacketId;
FieldByName('PacketNo').Value := FPacketNo;
Post
end;
DaBao();
CDS_DDB.EmptyDataSet;
if chkBBQ.Checked then
begin
PrintBao(FPacketId);
end;
GetPacketNo();
Sleep(200);
i := 0;
end
else
begin
if (MoldBatchNO <> MCurBatchNO) or (MoldSubID <> MCurSubID) then
begin
DaBao();
CDS_DDB.EmptyDataSet;
Sleep(100);
if chkBBQ.Checked then
begin
PrintBao(FPacketId);
end;
GetPacketNo();
MoveCDS(CDS_KDB, CDS_DDB);
with CDS_DDB do
begin
Edit;
FieldByName('PacketId').Value := FPacketId;
FieldByName('PacketNo').Value := FPacketNo;
Post
end;
i := 1;
end
else
begin
i := i + 1;
if i <= j then
begin
MoveCDS(CDS_KDB, CDS_DDB);
with CDS_DDB do
begin
Edit;
FieldByName('PacketId').Value := FPacketId;
FieldByName('PacketNo').Value := FPacketNo;
Post
end;
end;
if i = j then
begin
DaBao();
CDS_DDB.EmptyDataSet;
if chkBBQ.Checked then
begin
PrintBao(FPacketId);
end;
GetPacketNo();
Sleep(100);
i := 0;
end;
end;
end;
K := K + 1;
end;
MoldBatchNO := MCurBatchNO;
MoldSubID := MCurSubID;
with CDS_KDB do
begin
Edit;
FieldByName('SSel').Value := false;
Post
end;
Next;
end;
if not CDS_DDB.IsEmpty then
begin
DaBao();
CDS_DDB.EmptyDataSet;
if chkBBQ.Checked then
begin
PrintBao(FPacketId);
end;
GetPacketNo();
Sleep(100);
i := 0;
end;
CDS_DDB.EnableControls;
CDS_KDB.EnableControls;
end;
InitGridKDB();
InitGridYDB();
end;
procedure TfrmTradePack.CheckBox_hsClick(Sender: TObject);
begin
if CheckBox_hs.Checked then
begin
btnOK.Caption := '<27><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>';
Label2.Caption := 'ÿɫ<C3BF><C9AB><EFBFBD><EFBFBD>';
end
else
begin
btnOK.Caption := '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
Label2.Caption := 'ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
end;
end;
procedure TfrmTradePack.cxButton2Click(Sender: TObject);
begin
InitGridKDB();
InitGridYDB();
CDS_DDB.EmptyDataSet;
end;
procedure TfrmTradePack.edtPacketNoClick(Sender: TObject);
begin
if not CDS_DDB.IsEmpty then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end;
procedure TfrmTradePack.edtPacketNoPropertiesChange(Sender: TObject);
begin
inherited;
FPacketNo := Trunc(edtPacketNo.Value);
end;
procedure TfrmTradePack.cxButton_bcgsClick(Sender: TObject);
var
programIni: Tinifile;
Filename: string;
begin
inherited;
writeCxGrid('<27><>Ʒɨ<C6B7><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv1', Tv1, gDllFileCaption);
writeCxGrid('<27><>Ʒɨ<C6B7><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv2', Tv2, gDllFileCaption);
writeCxGrid('<27><>Ʒɨ<C6B7><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv3', Tv3, gDllFileCaption);
Filename := ExtractFilePath(Paramstr(0)) + 'TradePackForm.INI';
try
programIni := Tinifile.create(Filename);
programIni.WriteInteger('<27><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><E6B2BC>', '<27><><EFBFBD><EFBFBD>1', dxLayoutControl_tradepack.Height);
programIni.WriteInteger('<27><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><E6B2BC>', '<27><><EFBFBD><EFBFBD>2', Panel5.Height);
programIni.WriteInteger('<27><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><E6B2BC>', '<27><><EFBFBD><EFBFBD>3', Panel4.Width);
programIni.WriteInteger('<27><><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><E6B2BC>', '<27><><EFBFBD><EFBFBD>4', cxGroupBox2.Height);
finally
programIni.Free;
end;
end;
procedure TfrmTradePack.N13Click(Sender: TObject);
begin
SelOKNo(CDS_YDB, True);
end;
//<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
procedure TfrmTradePack.doHsPack();
var
rtvalues: TArray<string>;
FOrderNO, msg: string;
FJS, FJH: Integer;
begin
CDS_KDB.IndexFieldNames := 'Sindex';
rtvalues := SelCDSKey(CDS_KDB, ['CIID']);
FOrderNO := edtOrder.text;
FJS := StrToIntdef(trim(ComboBox3.Text), 0);
FJH := StrToInt(edtPacketNo.text);
with ADOQueryTmp do
begin
Close;
Sql.Clear;
Sql.Add('exec P_Get_HS_DaBao ');
Sql.Add(' @CIIDs=' + quotedstr(rtvalues[0]));
Sql.Add(',@OrderNO=' + quotedstr(Trim(FOrderNO)));
Sql.Add(',@JS=' + inttostr(FJS));
SQL.Add(',@JH=' + inttostr(FJH));
// showmessage(SQL.text);
Open;
end;
SCreateCDS(ADOQueryTmp, CDS_YDB);
SInitCDSData(ADOQueryTmp, CDS_YDB);
with ADOQueryTmp do
begin
Close;
Sql.Clear;
Sql.Add('exec P_Get_HSDaBao_TS ');
Sql.Add(' @CIIDs=' + quotedstr(rtvalues[0]));
Sql.Add(',@OrderNO=' + quotedstr(Trim(FOrderNO)));
Sql.Add(',@JS=' + inttostr(FJS));
Open;
end;
msg := ADOQueryTmp.FieldByName('msg').AsString;
if Application.MessageBox(PChar(msg), <>ϴ<EFBFBD><CFB4><EFBFBD>', 32 + 4) = IDYES then
begin
HSDB();
end;
GetPacketNo();
// InitGridKDB();
InitGridYDB();
end;
///////////////////////////////
procedure TfrmTradePack.HSDB();
var
StringSet: TStringList;
I: Integer;
begin
if CDS_YDB.IsEmpty then
Exit;
FDDBSql := '';
StringSet := TStringList.Create;
// StringSet.Sorted := True;
// StringSet.Duplicates := dupIgnore;
with CDS_YDB do
begin
CDS_YDB.DisableControls;
First;
while not Eof do
begin
FDDBSql := FDDBSql + ' ' + 'Update Trade_Cloth_Inspect Set PacketTime=GETDATE() , PacketNo=' + trim(CDS_YDB.FieldByName('PacketNo').AsString) + ',PacketId=' + QuotedStr(trim(CDS_YDB.FieldByName('PacketId').AsString)) + ',PacketCode=' + QuotedStr(trim(DCode)) + ',PacketName=' + QuotedStr(trim(DName)) + 'where CIID=' + QuotedStr(trim(CDS_YDB.FieldByName('CIID').AsString));
FDDBSql := FDDBSql + ' ' + 'Update Trade_Cloth_Stock Set PacketTime=GETDATE() , PacketNo=' + trim(CDS_YDB.FieldByName('PacketNo').AsString) + ',PacketId=' + QuotedStr(trim(CDS_YDB.FieldByName('PacketId').AsString)) + ',PacketCode=' + QuotedStr(trim(DCode)) + ',PacketName=' + QuotedStr(trim(DName)) + 'where CIID=' + QuotedStr(trim(CDS_YDB.FieldByName('CIID').AsString));
if StringSet.IndexOf(trim(CDS_YDB.FieldByName('PacketId').AsString)) = -1 then
begin
StringSet.Add(trim(CDS_YDB.FieldByName('PacketId').AsString));
end;
if CDS_KDB.Locate('CIID', trim(CDS_YDB.FieldByName('CIID').AsString), []) then
begin
with CDS_KDB do
begin
Edit;
FieldByName('SFlag').Value := 'D';
Post;
end;
end;
Next;
end;
CDS_YDB.EnableControls;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(FDDBSql);
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
with CDS_KDB do
begin
DisableControls;
First;
while not Eof do
begin
if FieldByName('SFlag').AsString = 'D' then
begin
Delete;
end
else
begin
Next;
end;
end;
First;
EnableControls;
end;
if chkBBQ.Checked then
begin
for I := 0 to StringSet.Count - 1 do
begin
PrintBao(StringSet.Strings[I]);
end;
end;
StringSet.Free;
end;
end.