D10xhGemei/T02贸易汇总仓库/U_PlanScanInEdit.pas

502 lines
14 KiB
ObjectPascal
Raw Normal View History

2025-11-21 09:31:25 +08:00
unit U_PlanScanInEdit;
interface
uses
Windows, Messages, strUtils, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, MMSystem,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, MovePanel, cxCheckBox, Menus, ComCtrls,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, U_BaseList, dxSkinsCore,
dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, RM_Common, RM_Class,
RM_GridReport, RM_Dataset, Vcl.ToolWin, dxSkinBasic, dxSkinBlack, dxSkinBlue,
dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkroom, dxSkinDarkSide,
dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray,
dxSkinOffice2013White, dxSkinOffice2016Colorful, dxSkinOffice2016Dark,
dxSkinOffice2019Black, dxSkinOffice2019Colorful, dxSkinOffice2019DarkGray,
dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringtime, dxSkinStardust,
dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinTheBezier, dxSkinValentine,
dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark,
dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint, dxSkinWXI,
dxSkinXmas2008Blue, dxScrollbarAnnotations, cxContainer, cxProgressBar,
BtnEdit;
type
TfrmPlanScanInEdit = class(TfrmBaseList)
GPM_1: TcxGridPopupMenu;
CDS_1: TClientDataSet;
DS_1: TDataSource;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
Panel1: TPanel;
CDS_2: TClientDataSet;
DS_2: TDataSource;
GPM_2: TcxGridPopupMenu;
DS_3: TDataSource;
CDS_3: TClientDataSet;
GPM_3: TcxGridPopupMenu;
Panel2: TPanel;
cxGrid3: TcxGrid;
Tv3: TcxGridDBTableView;
cxGridDBColumn4: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Panel3: TPanel;
ToolBar3: TToolBar;
ToolButton3: TToolButton;
btnGetOutNo: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
edtScan: TEdit;
Label6: TLabel;
Label1: TLabel;
Label2: TLabel;
2025-11-24 13:22:51 +08:00
wlCompany: TBtnEditA;
2025-11-21 09:31:25 +08:00
Label5: TLabel;
InNo: TEdit;
Label4: TLabel;
CRTime: TDateTimePicker;
Label11: TLabel;
CRType: TComboBox;
carPlate: TBtnEditA;
2025-11-24 13:22:51 +08:00
Tv3Column1: TcxGridDBColumn;
Tqueren: TButton;
2026-02-05 17:10:07 +08:00
Label3: TLabel;
Driver: TBtnEditA;
Driverid: TEdit;
2025-11-21 09:31:25 +08:00
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure btnGetOutNoClick(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure edtScanKeyPress(Sender: TObject; var Key: Char);
2025-11-24 13:22:51 +08:00
procedure wlCompanyBtnClick(Sender: TObject);
2025-11-21 09:31:25 +08:00
procedure carPlateBtnClick(Sender: TObject);
2025-11-24 13:22:51 +08:00
procedure TquerenClick(Sender: TObject);
2026-02-05 17:10:07 +08:00
procedure DriverBtnClick(Sender: TObject);
2025-11-21 09:31:25 +08:00
private
{ Private declarations }
2025-12-02 13:38:06 +08:00
FScan, FSubIds, FZCID: string;
2025-11-21 09:31:25 +08:00
procedure PlayWav(MWav: string);
procedure InitKC();
2026-02-05 17:10:07 +08:00
procedure InitStatus();
2025-11-21 09:31:25 +08:00
procedure ScanKW();
procedure ScanCIID();
2025-12-02 13:38:06 +08:00
function SaveData(): Boolean;
2025-11-21 09:31:25 +08:00
public
{ Public declarations }
end;
var
frmPlanScanInEdit: TfrmPlanScanInEdit;
implementation
uses
2026-02-05 17:10:07 +08:00
U_DataLink, U_RTFun, U_LabelPrint, U_ZDYHelp, U_MachineManageSel, U_UserSel; //U_TradeClothWaitStorage, U_PositionSel
2025-11-21 09:31:25 +08:00
{$R *.dfm}
procedure TfrmPlanScanInEdit.PlayWav(MWav: string);
begin
if FileExists(PChar(ExtractFilePath(Application.ExeName) + 'wav\' + MWav + '.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName) + 'wav\' + MWav + '.wav'), 0, SND_ASYNC);
end;
procedure TfrmPlanScanInEdit.InitKC();
begin
2025-11-24 13:22:51 +08:00
if carPlate.Text = '' then
2025-11-21 09:31:25 +08:00
exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
2025-12-02 13:38:06 +08:00
sql.Add('select * from Trade_Market_Main A ');
sql.add(' left join Trade_Market_CarTransportSub B on A.TmMid=B.TmMid ');
sql.Add('where isnull(A.Status,''0'')=''2'' ');
sql.add('and A.TMMId =' + QuotedStr(TRIm(FScan)));
2025-11-21 09:31:25 +08:00
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_3);
SInitCDSData(ADOQueryTemp, CDS_3);
end;
procedure TfrmPlanScanInEdit.ScanKW();
var
MStkIds: string;
begin
try
with ADOQueryTemp do
begin
close;
SQL.Clear;
sql.Add('select * from Bs_Position where POSID =''' + trim(FScan) + ''' ');
open;
end;
2025-11-24 13:22:51 +08:00
wlCompany.Text := ADOQueryTemp.FieldByName('posno').AsString;
2025-11-21 09:31:25 +08:00
btnGetOutNo.Click;
except
end;
end;
procedure TfrmPlanScanInEdit.ScanCIID();
var
MStkIds: string;
begin
try
2025-11-24 13:22:51 +08:00
if Trim(wlCompany.Text) = '' then
2025-11-21 09:31:25 +08:00
raise Exception.Create('<27><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!');
if Trim(InNo.Text) = '' then
raise Exception.Create('<27><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!');
MStkIds := FScan;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('exec P_Market_Position_In ');
Sql.Add('@StkIds=' + quotedstr(trim(MStkIds)));
Sql.Add(',@IOTime=' + Quotedstr(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)));
Sql.Add(',@IOType=' + Quotedstr(crtype.Text));
Sql.Add(',@IONO=' + Quotedstr(InNo.Text));
2025-11-24 13:22:51 +08:00
Sql.Add(',@StkPosition=' + Quotedstr(wlCompany.Text));
2025-11-21 09:31:25 +08:00
Sql.Add(',@FillId=' + Quotedstr(DCode));
Sql.Add(',@Filler=' + Quotedstr(DName));
// ShowMessage(sql.Text);
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
ADOQueryCmd.Connection.CommitTrans;
PlayWav('<27><>ȷ');
except
ADOQueryCmd.Connection.RollbackTrans;
raise Exception.Create(PChar(Exception(ExceptObject).Message));
end;
except
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// PlayWav('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
end;
procedure TfrmPlanScanInEdit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmPlanScanInEdit.FormDestroy(Sender: TObject);
begin
inherited;
frmPlanScanInEdit := nil;
end;
procedure TfrmPlanScanInEdit.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(self.caption + 'Tv3', Tv3, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
InitKC();
CRTime.DateTime := SGetServerDate(ADOQueryTemp);
end;
procedure TfrmPlanScanInEdit.edtScanKeyPress(Sender: TObject; var Key: Char);
var
maxno, SMFlag, KYCKFlag, FMainId, ff: string;
FFQty: Integer;
begin
if Key = #13 then
begin
FScan := TRIM(edtScan.Text);
edtScan.Text := '';
2025-12-02 13:38:06 +08:00
// if Copy(FScan, 1, 2) = 'KW' then
// begin
// ScanKW();
// end
// else
// begin
// ScanCIID();
// end;
2025-11-21 09:31:25 +08:00
InitKC();
end;
end;
procedure TfrmPlanScanInEdit.ToolButton3Click(Sender: TObject);
begin
if Trim(InNo.Text) = '' then
Exit;
try
frmLabelPrint := TfrmLabelPrint.Create(Application);
with frmLabelPrint do
begin
FLMType := 'TradeClothIn1';
FFiltration1 := Trim(Self.InNo.Text);
if ShowModal = 1 then
begin
end;
end;
finally
frmLabelPrint.Free;
end;
end;
2025-11-24 13:22:51 +08:00
procedure TfrmPlanScanInEdit.wlCompanyBtnClick(Sender: TObject);
2025-11-21 09:31:25 +08:00
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
MainType := 'Cust';
flag := 'AREA';
flagname := '<27><><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
2025-12-02 13:38:06 +08:00
wlCompany.text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
2025-11-21 09:31:25 +08:00
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmPlanScanInEdit.carPlateBtnClick(Sender: TObject);
begin
inherited;
try
frmMachineManageSel := TfrmMachineManageSel.Create(Application);
with frmMachineManageSel do
begin
if ShowModal = 1 then
begin
2025-11-24 13:22:51 +08:00
carPlate.text := Trim(CDS_1.fieldbyname('VNO').AsString);
2025-11-21 09:31:25 +08:00
end;
end;
finally
frmMachineManageSel.Free;
end;
end;
2026-02-05 17:10:07 +08:00
procedure TfrmPlanScanInEdit.DriverBtnClick(Sender: TObject);
begin
try
frmUserSel := TfrmUserSel.Create(Application);
with frmUserSel do
begin
Fdept := '<27>ͻ<EFBFBD><CDBB><EFBFBD>';
if ShowModal = 1 then
begin
self.Driverid.Text := Trim(CDS_1.fieldbyname('EECode').AsString);
self.Driver.Text := Trim(CDS_1.fieldbyname('EEName').AsString);
end;
end;
finally
frmUserSel.Free;
end;
end;
2025-11-21 09:31:25 +08:00
procedure TfrmPlanScanInEdit.btnGetOutNoClick(Sender: TObject);
var
maxNo: string;
begin
if GetLSNo(ADOQueryCmd, maxNo, 'RK', 'Trade_Cloth_IO', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><E2B5A5>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
InNo.Text := Trim(maxNo);
CRTime.DateTime := SGetServerDate(ADOQueryTemp);
InitKC();
end;
procedure TfrmPlanScanInEdit.ToolButton7Click(Sender: TObject);
begin
tv3.Controller.EditingController.ShowEdit();
Close;
end;
procedure TfrmPlanScanInEdit.ToolButton8Click(Sender: TObject);
begin
WriteCxGrid(self.caption + 'Tv3', Tv3, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
end;
2025-11-24 13:22:51 +08:00
procedure TfrmPlanScanInEdit.TquerenClick(Sender: TObject);
2025-12-02 13:38:06 +08:00
begin
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
2026-02-05 17:10:07 +08:00
2025-12-02 13:38:06 +08:00
Exit;
end;
end;
//procedure TfrmPlanScanInEdit.TquerenClick(Sender: TObject);
function TfrmPlanScanInEdit.SaveData(): Boolean;
2025-11-24 13:22:51 +08:00
var
MaxMid, MaxSid: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
///////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /////////////////
if Trim(FZCID) = '' then
begin
if GetLSNo(ADOQueryCmd, MaxMid, 'ZC', 'Trade_Market_CarTransport', 4, 1) = False then
raise Exception.Create(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
end
else
begin
MaxMid := Trim(FZCID);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from Trade_Market_CarTransport where ZCID=''' + Trim(MaxMid) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(FZCID) = '' then
begin
Append;
2025-12-02 13:38:06 +08:00
// FieldByName('FillID').Value := Trim(DCode);
2025-11-24 13:22:51 +08:00
FieldByName('Filler').Value := Trim(DName);
end
else
begin
Edit;
2025-12-02 13:38:06 +08:00
// FieldByName('EditID').Value := Trim(DCode);
2025-11-24 13:22:51 +08:00
FieldByName('Editer').Value := Trim(DName);
FieldByName('EditTime').Value := SGetServerDateTime(ADOQuerytemp);
end;
RTSetsavedata(ADOQueryCmd, 'Trade_Market_CarTransport', panel3, 1);
2025-12-02 13:38:06 +08:00
FieldByName('ZCID').Value := Trim(MaxMid);
FieldByName('wlCompany').Value := Trim(wlCompany.text);
FieldByName('carPlate').Value := Trim(carPlate.text);
2025-11-24 13:22:51 +08:00
Post;
end;
///////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /////////////////
///
///////////////// <20><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD> /////////////////
CDS_3.DisableControls;
with CDS_3 do
begin
First;
while not Eof do
begin
if Trim(CDS_3.fieldbyname('ZCMXID').AsString) = '' then
begin
if GetLSNo(ADOQueryCmd, MaxSid, 'DS', 'Trade_Market_CarTransportSub', 4, 1) = False then
raise Exception.Create(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>');
end
else
begin
2025-12-02 13:38:06 +08:00
MaxSid := Trim(CDS_3.fieldbyname('ZCMXID').AsString);
2025-11-24 13:22:51 +08:00
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from Trade_Market_CarTransportSub ');
2025-12-02 13:38:06 +08:00
sql.Add(' where ZCID=''' + Trim(MaxMid) + '''');
sql.Add(' and ZCMXID=''' + Trim(MaxSid) + '''');
2025-11-24 13:22:51 +08:00
Open;
if ADOQueryCmd.IsEmpty then
begin
Append;
end
else
begin
Edit;
end;
2025-12-02 13:38:06 +08:00
// RTSetSaveDataCDS(ADOQueryCmd, Tv3, CDS_3, 'Trade_Market_CarTransportSub', 0);
FieldByName('ZCID').Value := Trim(MaxMid);
FieldByName('ZCMXID').Value := Trim(MaxSid);
FieldByName('TmMno').Value := CDS_3.fieldbyname('TMMNo').Value;
FieldByName('TmMid').Value := CDS_3.fieldbyname('TMMId').Value;
2025-11-24 13:22:51 +08:00
Post;
end;
2026-02-05 17:10:07 +08:00
InitStatus();
2025-11-24 13:22:51 +08:00
CDS_3.Edit;
2025-12-02 13:38:06 +08:00
CDS_3.FieldByName('ZCMXID').Value := Trim(MaxSid);
2025-11-24 13:22:51 +08:00
Next;
end;
end;
CDS_3.EnableControls;
///////////////// <20><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD> /////////////////
FZCID := Trim(MaxMid);
ADOQueryCmd.Connection.CommitTrans;
// Result := True;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// Result := False;
end;
end;
2026-02-05 17:10:07 +08:00
procedure TfrmPlanScanInEdit.InitStatus();
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update Trade_Market_Main SET status=''9'' ');
sql.Add('where TMMId=' + quotedstr(trim(CDS_3.fieldbyname('TMMId').AsString)));
sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
sql.Add('values('<>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.Add(',' + quotedstr(trim(CDS_3.fieldbyname('TMMId').AsString)));
sql.Add(',''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(',' + quotedstr(DName));
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(trim(CDS_3.fieldbyname('TMMId').AsString)));
sql.Add(') ');
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><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')));
sql.Add(',' + quotedstr(trim('<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD>ţ<EFBFBD>' + trim(CDS_3.FieldByName('TMMNO').AsString))));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
execsql;
end;
end;
2025-11-21 09:31:25 +08:00
end.