D7zzHanglin/坯布汇总仓库(ClothWarehouse.dll)/U_PBCKMXLR.pas

307 lines
8.0 KiB
ObjectPascal
Raw Permalink Normal View History

2025-08-06 16:42:07 +08:00
unit U_PBCKMXLR;
interface
uses
Windows, Messages, SysUtils, StrUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, MMSystem,
cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxButtonEdit, cxDropDownEdit,
DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, BtnEdit, cxContainer,
cxTextEdit, cxCurrencyEdit, cxCheckBox, Menus, RM_Common, RM_Class, RM_e_Xls,
RM_Dataset, RM_System, RM_GridReport;
type
TfrmPBCKMXLR = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
CDS_Main: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
Panel3: TPanel;
ADOQueryMain: TADOQuery;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
ADOQueryPrint: TADOQuery;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
cxGrid2: TcxGrid;
TvMX: TcxGridDBTableView;
cxGridDBColumn8: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure TBCloseClick(Sender: TObject);
procedure FHAddressBtnDnClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
private
procedure InitGrid();
function savedate(): Boolean;
{ Private declarations }
public
fkeyNO, FMXGangHao: string;
FType: integer;
fCKName: string;
{ Public declarations }
end;
var
frmPBCKMXLR: TfrmPBCKMXLR;
implementation
uses
U_DataLink, U_Fun10, U_ZDYHelp;
{$R *.dfm}
function TfrmPBCKMXLR.savedate(): Boolean;
var
MaxNo: string;
begin
result := false;
try
ADOQueryCmd.Connection.BeginTrans;
CDS_Main.DisableControls;
CDS_Main.First;
with CDS_Main do
begin
while not eof do
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_PB_CRMX');
sql.Add('where MXID=' + quotedstr(Trim(CDS_Main.FieldByName('MXID').AsString)));
open;
end;
if ADOQueryCmd.IsEmpty then
begin
if GetLSNo(ADOQueryTmp, MaxNo, 'MCM', 'CK_PB_CRMX', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
ADOQueryCmd.Append;
end
else
begin
MaxNo := Trim(CDS_Main.FieldByName('MXID').AsString);
ADOQueryCmd.Edit;
end;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ
RTSetSaveDataCDS(ADOQueryCmd, TvMX, CDS_Main, 'CK_PB_CRMX', 0);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
ADOQueryCmd.FieldByName('CRID').Value := trim(fkeyNo);
ADOQueryCmd.FieldByName('MXID').Value := trim(MaxNo);
ADOQueryCmd.Post;
CDS_Main.Edit;
CDS_Main.FieldByName('MXID').Value := trim(MaxNo);
CDS_Main.post;
//<2F><><EFBFBD>¿<EFBFBD><C2BF><EFBFBD>
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('update CK_PB_CR set ');
SQL.Add('PS=(select COUNT(MXID) from CK_PB_CRMX X where X.CRID=CK_PB_CR.CRID and ISNULL(MXQty,0)>0),');
SQL.Add('Qty=(select SUM(MXQty) from CK_PB_CRMX X where X.CRID=CK_PB_CR.CRID and ISNULL(MXQty,0)>0)');
SQL.Add('where CRID= ' + quotedstr(trim(fkeyNo)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Up_PBKc ' + quotedstr(trim(fkeyNo)));
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><DAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
CDS_Main.next;
end;
end;
CDS_Main.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
result := true;
except
CDS_Main.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
end;
end;
procedure TfrmPBCKMXLR.InitGrid();
begin
try
with adoqueryMain do
begin
close;
sql.Clear;
sql.Add('select * from CK_PB_CRMX where CRID=' + quotedstr(trim(fkeyNO)));
sql.Add(' order by MXID');
open;
end;
SCreateCDS20(adoqueryMain, CDS_Main);
SInitCDSData20(adoqueryMain, CDS_Main);
finally
end;
end;
procedure TfrmPBCKMXLR.FormDestroy(Sender: TObject);
begin
frmPBCKMXLR := nil;
end;
procedure TfrmPBCKMXLR.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cahide;
end;
procedure TfrmPBCKMXLR.FormShow(Sender: TObject);
var
fbhType, fInoutNo: string;
begin
readCxGrid(self.Caption, TvMX, '<27><><EFBFBD>ϲֿ<CFB2>');
InitGrid();
end;
procedure TfrmPBCKMXLR.TBSaveClick(Sender: TObject);
begin
if cds_main.IsEmpty then
exit;
ToolBar1.SetFocus;
if savedate() then
begin
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
end
else
begin
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
end;
end;
procedure TfrmPBCKMXLR.v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'Cloth';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
Self.CDS_Main.Edit;
Self.CDS_Main.FieldByName('P_CodeName').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
Self.CDS_Main.FieldByName('P_Code').Value := Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmPBCKMXLR.TBCloseClick(Sender: TObject);
begin
writeCxGrid(self.Caption, TvMX, '<27><><EFBFBD>ϲֿ<CFB2>');
ModalResult := 1;
end;
procedure TfrmPBCKMXLR.FHAddressBtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
TBtnEditC(Sender).TxtCode := '';
end;
procedure TfrmPBCKMXLR.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmPBCKMXLR.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmPBCKMXLR.ToolButton1Click(Sender: TObject);
var
i: Integer;
begin
for i := 1 to 10 do
begin
with CDS_Main do
begin
Append;
// FieldByName('MXGangHao').Value := FMXGangHao;
FieldByName('MXQty').Value := 0;
Post;
end;
end;
end;
procedure TfrmPBCKMXLR.ToolButton2Click(Sender: TObject);
begin
if cds_main.IsEmpty then
exit;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete CK_PB_CRMX where MXID=' + quotedstr(Trim(CDS_Main.FieldByName('MXID').AsString)));
ExecSQL;
end;
CDS_Main.Delete;
end;
procedure TfrmPBCKMXLR.TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
var
FValue: string;
FBounds: TRect;
begin
FBounds := AViewInfo.Bounds;
if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
begin
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1);
FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1);
InflateRect(FBounds, -1, -1); //Platform specific. May not work on Linux.
ACanvas.Font.Color := clBlack;
ACanvas.Brush.Style := bsClear;
ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
ADone := True;
end;
end;
end.