D10sxYilanbuyi/F02染色计划单/U_frameRGQXList.pas
2025-11-12 17:32:20 +08:00

343 lines
8.5 KiB
ObjectPascal
Raw 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_frameRGQXList;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics,
cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxContainer, cxEdit,
cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxNavigator,
dxDateRanges, dxScrollbarAnnotations, Data.DB, cxDBData, cxCheckBox,
cxTextEdit, dxBarBuiltInMenu, Vcl.Menus, cxGridCustomPopupMenu,
cxGridPopupMenu, Datasnap.DBClient, Data.Win.ADODB, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxGridCustomView, cxGrid, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ToolWin,
Vcl.ExtCtrls, dxSkinsCore, dxSkinsDefaultPainters, cxMemo, cxLabel, cxMaskEdit,
cxDropDownEdit, cxButtonEdit, cxButtons;
type
TframeRGQXList = class(TFrame)
ADOQueryMain: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryTemp: TADOQuery;
CDS_HZ: TClientDataSet;
DS_HZ: TDataSource;
cxGridPopupMenu2: TcxGridPopupMenu;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Panel_rgqx: TPanel;
LabelRGQX: TLabel;
cxLabel114: TcxLabel;
cxLabel150: TcxLabel;
cxLabel165: TcxLabel;
rgqx_daoSet: TcxTextEdit;
rgqx_speed: TcxTextEdit;
rgqx_waterTemper: TcxTextEdit;
cxGrid3: TcxGrid;
TvRGQX: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn7: TcxGridDBColumn;
TvRGQXserialno: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
cxLabel2: TcxLabel;
TbRGQXAdd: TcxButton;
TbRGQXDel: TcxButton;
rgqx_note: TcxMemo;
CDS_RGQX: TClientDataSet;
DS_rgqx: TDataSource;
TvRGQXrgqx_spel: TcxGridDBColumn;
TvRGQXrgqx_unit: TcxGridDBColumn;
TvRGQXBPIID: TcxGridDBColumn;
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure TbRGQXAddClick(Sender: TObject);
procedure TbRGQXDelClick(Sender: TObject);
procedure cxGridDBColumn1PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure cxGridDBColumn7PropertiesEditValueChanged(Sender: TObject);
private
{ Private declarations }
public
procedure InitGrid();
function SaveData(mPSID: string): Boolean;
{ Public declarations }
end;
implementation
uses
U_DataLink, U_RTFun, U_LabelPrint,U_ProductInfoSel;
{$R *.dfm}
procedure TframeRGQXList.cxGridDBColumn1PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmProductInfoSel := TfrmProductInfoSel.Create(Application);
with frmProductInfoSel do
begin
FSTKName := '<27><><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
with Self.CDS_RGQX do
begin
Edit;
FieldByName('rgqx_Name').Value := frmProductInfoSel.CDS_1.fieldbyname('P_Name').value;
FieldByName('rgqx_spel').Value := frmProductInfoSel.CDS_1.fieldbyname('P_Type').value;
FieldByName('rgqx_unit').Value := frmProductInfoSel.CDS_1.fieldbyname('QtyUnit').value;
FieldByName('BPIID').Value := frmProductInfoSel.CDS_1.fieldbyname('BPIID').value;
end;
end;
end;
finally
frmProductInfoSel.Free;
end;
end;
procedure TframeRGQXList.cxGridDBColumn7PropertiesEditValueChanged(
Sender: TObject);
var
s: string;
fValue: Double;
begin
s := TcxTextEdit(Sender).EditingText;
if (s <> '') and (s[Length(s)] <> '%') then
begin
try
// <20><><EFBFBD>Խ<EFBFBD><D4BD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
fValue := StrToFloat(s);
// <20><>ʽ<EFBFBD><CABD>Ϊ<EFBFBD><CEAA>λС<CEBB><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱٷֺ<D9B7>
Tvrgqx.Controller.FocusedColumn.EditValue := FormatFloat('0.00', fValue) + '%';
except
on E: EConvertError do
begin
// <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱٷֺ<D9B7>
Tvrgqx.Controller.FocusedColumn.EditValue := s + '%';
end;
end;
end;
end;
procedure TframeRGQXList.InitGrid();
begin
// POSNO.SetFocus;
// try
// ADOQueryMain.DisableControls;
// with ADOQueryMain do
// begin
// Close;
// SQL.Clear;
// sql.Add(' select A.* from BS_Position A order by POSNO ');
// Open;
// end;
// SCreateCDS(ADOQueryMain, CDS_HZ);
// SInitCDSData(ADOQueryMain, CDS_HZ);
// finally
// ADOQueryMain.EnableControls;
// ToolButton2.Click;
// end;
end;
procedure TframeRGQXList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TframeRGQXList.TbRGQXAddClick(Sender: TObject);
begin
with CDS_RGQX do
begin
Append;
CDS_RGQX.FieldByName('serialno').Value := CDS_RGQX.RecordCount + 1;
Post;
end;
end;
procedure TframeRGQXList.TbRGQXDelClick(Sender: TObject);
var
i: Integer;
begin
if not CDS_RGQX.IsEmpty then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) = IDYES then
begin
if Trim(CDS_RGQX.fieldbyname('BCPID').AsString) <> '' then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete BS_Cloth_GY_Sub where BCPID=' + quotedStr(Trim(CDS_RGQX.fieldbyname('BCPID').AsString)));
ExecSQL;
end;
end;
CDS_RGQX.Delete;
end
else
exit;
i := 0;
CDS_RGQX.First;
while not CDS_RGQX.Eof do
begin
i := i + 1;
CDS_RGQX.Edit;
CDS_RGQX.fieldByName('serialno').value := i;
CDS_RGQX.Post;
CDS_RGQX.Next;
end;
end
else
begin
Application.MessageBox('<27>޿<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
end;
procedure TframeRGQXList.ToolButton5Click(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
Exit;
if CDS_HZ.Locate('SSel', True, []) = False then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
with CDS_HZ do
begin
while not Eof do
begin
if CDS_HZ.Locate('SSel', True, []) = True then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete BS_Position where POSID=' + QuotedStr(CDS_HZ.FieldByName('POSID').AsString));
ExecSQL;
end;
end;
CDS_HZ.Edit;
CDS_HZ.FieldByName('SSel').Value := False;
CDS_HZ.Post;
Next;
end;
end;
InitGrid();
end;
function TframeRGQXList.SaveData(mPSID: string): Boolean;
var
MaxProcessID, MaxBCPID, MaxPSID, MaxDTMID, mDTMID, DTMPSlist: string;
maxsubid1, maxsubid2, maxsubid3, maxsubid4, maxsubid5, maxsubid6, mmaxgx: string;
begin
try
//////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //////////////////////
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from Bs_Cloth_GY_Main where PSID=''' + Trim(mPSID) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(mPSID) = '' then
begin
Append;
end
else
begin
Edit;
end;
FieldByName('PSID').Value := Trim(mPSID);
RTSetsavedata(ADOQueryCmd, 'Bs_Cloth_GY_Main', Panel_rgqx, 2);
ADOQueryCmd.Post;
////////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD>ϴ<EFBFBD>ӱ<EFBFBD> //////////////////////
with CDS_RGQX do
begin
First;
while not Eof do
begin
if Trim(CDS_RGQX.fieldbyname('BCPID').AsString) = '' then
begin
if GetLSNo(ADOQueryTemp, maxsubid2, 'RGQX', 'Bs_Cloth_GY_Sub', 5, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
maxsubid2 := Trim(CDS_RGQX.fieldbyname('BCPID').AsString);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from Bs_Cloth_GY_Sub where ');
sql.Add(' BCPID=''' + Trim(maxsubid2) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(CDS_RGQX.fieldbyname('BCPID').AsString) = '' then
begin
Append;
end
else
begin
Edit;
end;
FieldByName('GYType').Value := '<27><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD>ϴ';
FieldByName('PSID').Value := Trim(mPSID);
FieldByName('BCPID').Value := Trim(maxsubid2);
RTSetSaveDataCDS(ADOQueryCmd, TvRGQX, CDS_RGQX, 'Bs_Cloth_GY_Sub', 0);
Post;
end;
Next;
end;
//////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD>ϴ<EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD> //////////////////////
end;
end;
//////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //////////////////////
// FPSID := maxId;
Result := True;
except
Result := False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
end;
end;
end.