510 lines
14 KiB
ObjectPascal
510 lines
14 KiB
ObjectPascal
|
|
unit U_frameFPList;
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
TframeFPList = class(TFrame)
|
|||
|
|
ADOQueryMain: TADOQuery;
|
|||
|
|
ADOQueryCmd: TADOQuery;
|
|||
|
|
ADOQueryTemp: TADOQuery;
|
|||
|
|
CDS_HZ: TClientDataSet;
|
|||
|
|
DS_HZ: TDataSource;
|
|||
|
|
cxGridPopupMenu2: TcxGridPopupMenu;
|
|||
|
|
PopupMenu1: TPopupMenu;
|
|||
|
|
N1: TMenuItem;
|
|||
|
|
N2: TMenuItem;
|
|||
|
|
Panel_FP: TPanel;
|
|||
|
|
LabelFP: TLabel;
|
|||
|
|
cxLabel290: TcxLabel;
|
|||
|
|
fp_speed: TcxTextEdit;
|
|||
|
|
fp_gjNumber: TcxTextEdit;
|
|||
|
|
cxLabel279: TcxLabel;
|
|||
|
|
TbFPReplace2: TcxButton;
|
|||
|
|
TbFPClear2: TcxButton;
|
|||
|
|
cxLabel284: TcxLabel;
|
|||
|
|
cxLabel286: TcxLabel;
|
|||
|
|
cxLabel287: TcxLabel;
|
|||
|
|
cxLabel288: TcxLabel;
|
|||
|
|
cxLabel297: TcxLabel;
|
|||
|
|
cxLabel299: TcxLabel;
|
|||
|
|
cxLabel300: TcxLabel;
|
|||
|
|
cxLabel301: TcxLabel;
|
|||
|
|
cxLabel302: TcxLabel;
|
|||
|
|
cxLabel303: TcxLabel;
|
|||
|
|
cxLabel323: TcxLabel;
|
|||
|
|
fp_temperature1: TcxTextEdit;
|
|||
|
|
fp_temperature10: TcxTextEdit;
|
|||
|
|
fp_temperature11: TcxTextEdit;
|
|||
|
|
fp_temperature2: TcxTextEdit;
|
|||
|
|
fp_temperature3: TcxTextEdit;
|
|||
|
|
fp_temperature4: TcxTextEdit;
|
|||
|
|
fp_temperature5: TcxTextEdit;
|
|||
|
|
fp_temperature6: TcxTextEdit;
|
|||
|
|
fp_temperature7: TcxTextEdit;
|
|||
|
|
fp_temperature8: TcxTextEdit;
|
|||
|
|
fp_temperature9: TcxTextEdit;
|
|||
|
|
cxGrid6: TcxGrid;
|
|||
|
|
TvFP: TcxGridDBTableView;
|
|||
|
|
cxGridDBColumn14: TcxGridDBColumn;
|
|||
|
|
cxGridDBColumn17: TcxGridDBColumn;
|
|||
|
|
TvFPserialno: TcxGridDBColumn;
|
|||
|
|
cxGridLevel5: TcxGridLevel;
|
|||
|
|
cxLabel8: TcxLabel;
|
|||
|
|
TbFPAdd: TcxButton;
|
|||
|
|
TbFPDel: TcxButton;
|
|||
|
|
fp_Precautions: TcxMemo;
|
|||
|
|
cxLabel12: TcxLabel;
|
|||
|
|
fp_leftGap: TcxTextEdit;
|
|||
|
|
cxLabel13: TcxLabel;
|
|||
|
|
fp_rightGap: TcxTextEdit;
|
|||
|
|
CDS_FP: TClientDataSet;
|
|||
|
|
DS_FP: TDataSource;
|
|||
|
|
TvFPfp_spel: TcxGridDBColumn;
|
|||
|
|
TvFPfp_unit: TcxGridDBColumn;
|
|||
|
|
TvFPBPIID: TcxGridDBColumn;
|
|||
|
|
procedure TBRafreshClick(Sender: TObject);
|
|||
|
|
|
|||
|
|
procedure ToolButton5Click(Sender: TObject);
|
|||
|
|
procedure ToolButton3Click(Sender: TObject);
|
|||
|
|
procedure TbFPReplace2Click(Sender: TObject);
|
|||
|
|
procedure TbFPClear2Click(Sender: TObject);
|
|||
|
|
procedure TbFPAddClick(Sender: TObject);
|
|||
|
|
procedure TbFPDelClick(Sender: TObject);
|
|||
|
|
procedure cxGridDBColumn14PropertiesButtonClick(Sender: TObject;
|
|||
|
|
AButtonIndex: Integer);
|
|||
|
|
procedure cxGridDBColumn17PropertiesEditValueChanged(Sender: TObject);
|
|||
|
|
|
|||
|
|
private
|
|||
|
|
procedure FillAllTextEditsWithValue(AParent: TWinControl; const AHint, AValue: string; AExclude: TcxTextEdit = nil);
|
|||
|
|
procedure ClearAllTextEditsByHint(AParent: TWinControl; const AHint: string; AExclude: TcxTextEdit = nil);
|
|||
|
|
function FindLastEditedTextEdit(AParent: TWinControl; const AHint: string): string;
|
|||
|
|
|
|||
|
|
{ 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 TframeFPList.InitGrid();
|
|||
|
|
begin
|
|||
|
|
//
|
|||
|
|
// with ADOQueryMain do
|
|||
|
|
// begin
|
|||
|
|
// Close;
|
|||
|
|
// SQL.Clear;
|
|||
|
|
// sql.Add(' select A.* from BS_Position A order by POSNO ');
|
|||
|
|
// Open;
|
|||
|
|
// end;
|
|||
|
|
// with ADOQueryTemp do
|
|||
|
|
// begin
|
|||
|
|
// Close;
|
|||
|
|
// SQL.Clear;
|
|||
|
|
// sql.Add(' select A.* FROM V_Dye_Technics_Details A');
|
|||
|
|
// sql.Add(' Where A.PSID=''' + trim(fpsid) + '''');
|
|||
|
|
//// SQL.Add(' and A.PSID = ''' + trim(CDS_2.fieldbyname('PSID').AsString) + '''');
|
|||
|
|
// Open;
|
|||
|
|
// end;
|
|||
|
|
// with ADOQueryCmd do
|
|||
|
|
// begin
|
|||
|
|
// Close;
|
|||
|
|
// SQL.Clear;
|
|||
|
|
// sql.Add(' select A.* FROM BS_Cloth_GY_Sub A');
|
|||
|
|
// sql.Add(' Where A.PSID=''' + trim(CDS_GX.fieldbyname('PSID').AsString) + '''');
|
|||
|
|
//// SQL.Add(' and A.PSID = ''' + trim(CDS_2.fieldbyname('PSID').AsString) + '''');
|
|||
|
|
// Open;
|
|||
|
|
// end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TframeFPList.TbFPAddClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
with CDS_FP do
|
|||
|
|
begin
|
|||
|
|
Append;
|
|||
|
|
CDS_FP.FieldByName('serialno').Value := CDS_FP.RecordCount + 1;
|
|||
|
|
Post;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TframeFPList.TbFPClear2Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
ClearAllTextEditsByHint(panel_Fp, '<27><><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD>');
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TframeFPList.TbFPDelClick(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
i: Integer;
|
|||
|
|
begin
|
|||
|
|
if not CDS_FP.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_FP.fieldbyname('BCPID').AsString) <> '' then
|
|||
|
|
begin
|
|||
|
|
with ADOQueryCmd do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
sql.Clear;
|
|||
|
|
sql.Add('delete BS_Cloth_GY_Sub where BCPID=' + quotedStr(Trim(CDS_FP.fieldbyname('BCPID').AsString)));
|
|||
|
|
ExecSQL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
CDS_FP.Delete;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
i := 0;
|
|||
|
|
CDS_FP.First;
|
|||
|
|
while not CDS_FP.Eof do
|
|||
|
|
begin
|
|||
|
|
i := i + 1;
|
|||
|
|
CDS_FP.Edit;
|
|||
|
|
CDS_FP.fieldByName('serialno').value := i;
|
|||
|
|
CDS_FP.Post;
|
|||
|
|
CDS_FP.Next;
|
|||
|
|
end;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
begin
|
|||
|
|
Application.MessageBox('<27><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TframeFPList.TbFPReplace2Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
FillAllTextEditsWithValue(panel_fp, '<27><><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD>', FindLastEditedTextEdit(panel_fp, '<27><><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD>'));
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TframeFPList.TBRafreshClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
InitGrid();
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TframeFPList.ToolButton3Click(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
RTValues: TArray<string>;
|
|||
|
|
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;
|
|||
|
|
RTValues := SelCDSKey(CDS_HZ, ['POSID']);
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
frmLabelPrint := TfrmLabelPrint.Create(Application);
|
|||
|
|
with frmLabelPrint do
|
|||
|
|
begin
|
|||
|
|
FLMType := 'Position';
|
|||
|
|
FFiltration1 := RTValues[0];
|
|||
|
|
if ShowModal = 1 then
|
|||
|
|
begin
|
|||
|
|
// Self.InitGrid();
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
frmLabelPrint.Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TframeFPList.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 TframeFPList.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_fp, 2);
|
|||
|
|
ADOQueryCmd.Post;
|
|||
|
|
|
|||
|
|
/// ////////////////// <20><><EFBFBD>淢<EFBFBD><E6B7A2><EFBFBD>ӱ<EFBFBD> //////////////////////
|
|||
|
|
with CDS_FP do
|
|||
|
|
begin
|
|||
|
|
First;
|
|||
|
|
while not Eof do
|
|||
|
|
begin
|
|||
|
|
if Trim(CDS_FP.Fieldbyname('BCPID').AsString) = '' then
|
|||
|
|
begin
|
|||
|
|
if GetLSNo(ADOQueryTemp, maxsubid6, 'FP', '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
|
|||
|
|
maxsubid6 := Trim(CDS_FP.fieldbyname('BCPID').AsString);
|
|||
|
|
end;
|
|||
|
|
with ADOQueryCmd do
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
SQL.Clear;
|
|||
|
|
sql.Add('select * from Bs_Cloth_GY_Sub where ');
|
|||
|
|
sql.Add('BCPID=''' + Trim(maxsubid6) + '''');
|
|||
|
|
Open;
|
|||
|
|
end;
|
|||
|
|
with ADOQueryCmd do
|
|||
|
|
begin
|
|||
|
|
if Trim(CDS_FP.fieldbyname('BCPID').AsString) = '' then
|
|||
|
|
begin
|
|||
|
|
Append;
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
begin
|
|||
|
|
Edit;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
FieldByName('GYType').Value := '<27><><EFBFBD><EFBFBD>';
|
|||
|
|
FieldByName('PSID').Value := Trim(mPSID);
|
|||
|
|
FieldByName('BCPID').Value := Trim(maxsubid6);
|
|||
|
|
RTSetSaveDataCDS(ADOQueryCmd, TvFP, CDS_FP, 'Bs_Cloth_GY_Sub', 0);
|
|||
|
|
Post;
|
|||
|
|
end;
|
|||
|
|
Next;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
//////////////// <20><><EFBFBD>淢<EFBFBD><E6B7A2><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD><EFBFBD> //////////////////////
|
|||
|
|
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;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
procedure TframeFPList.cxGridDBColumn14PropertiesButtonClick(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_FP do
|
|||
|
|
begin
|
|||
|
|
Edit;
|
|||
|
|
FieldByName('fp_Name').Value := frmProductInfoSel.CDS_1.fieldbyname('P_Name').value;
|
|||
|
|
FieldByName('fp_spel').Value := frmProductInfoSel.CDS_1.fieldbyname('P_Type').value;
|
|||
|
|
FieldByName('fp_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 TframeFPList.cxGridDBColumn17PropertiesEditValueChanged(
|
|||
|
|
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>
|
|||
|
|
TvFP.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>
|
|||
|
|
TvFP.Controller.FocusedColumn.EditValue := s + '%';
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TframeFPList.FillAllTextEditsWithValue(AParent: TWinControl; const AHint, AValue: string; AExclude: TcxTextEdit = nil); // <20><>ѡ<EFBFBD><D1A1><EFBFBD>ų<EFBFBD><C5B3>ض<EFBFBD><D8B6>ؼ<EFBFBD>
|
|||
|
|
var
|
|||
|
|
i: Integer;
|
|||
|
|
AControl: TControl;
|
|||
|
|
ATextEdit: TcxTextEdit;
|
|||
|
|
begin
|
|||
|
|
for i := 0 to AParent.ControlCount - 1 do
|
|||
|
|
begin
|
|||
|
|
AControl := AParent.Controls[i];
|
|||
|
|
if (AControl is TcxTextEdit) and ((AControl as TcxTextEdit).Text = '') then
|
|||
|
|
begin
|
|||
|
|
ATextEdit := AControl as TcxTextEdit;
|
|||
|
|
if (ATextEdit.Hint = AHint) and (ATextEdit <> AExclude) then
|
|||
|
|
ATextEdit.Text := AValue;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TframeFPList.ClearAllTextEditsByHint(AParent: TWinControl; const AHint: string; AExclude: TcxTextEdit = nil);
|
|||
|
|
var
|
|||
|
|
i: Integer;
|
|||
|
|
AControl: TControl;
|
|||
|
|
begin
|
|||
|
|
for i := 0 to AParent.ControlCount - 1 do
|
|||
|
|
begin
|
|||
|
|
AControl := AParent.Controls[i];
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> TcxTextEdit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Hint ƥ<>䣬<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>ų<EFBFBD><C5B3>Ŀؼ<C4BF>
|
|||
|
|
if (AControl is TcxTextEdit) and (TcxTextEdit(AControl).Hint = AHint) and (TcxTextEdit(AControl) <> AExclude) then
|
|||
|
|
begin
|
|||
|
|
TcxTextEdit(AControl).Text := ''; // ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TframeFPList.FindLastEditedTextEdit(AParent: TWinControl; const AHint: string): string;
|
|||
|
|
var
|
|||
|
|
i, j: Integer;
|
|||
|
|
AControl: TControl;
|
|||
|
|
SortedControls: TList;
|
|||
|
|
TempControl: TControl;
|
|||
|
|
begin
|
|||
|
|
Result := '';
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ӿؼ<D3BF><D8BC><EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7>ؿ<EFBFBD>
|
|||
|
|
if AParent.ControlCount = 0 then
|
|||
|
|
Exit;
|
|||
|
|
|
|||
|
|
// ʹ<><CAB9> TList <20>洢<EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݾɰ<DDBE> Delphi<68><69>
|
|||
|
|
SortedControls := TList.Create;
|
|||
|
|
try
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿؼ<D3BF><D8BC><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>б<EFBFBD>
|
|||
|
|
for i := 0 to AParent.ControlCount - 1 do
|
|||
|
|
SortedControls.Add(AParent.Controls[i]);
|
|||
|
|
|
|||
|
|
// <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD> Top<6F><70>Y<EFBFBD><59><EFBFBD>꣩<EFBFBD><EAA3A9> Left<66><74>X<EFBFBD><58><EFBFBD>꣩<EFBFBD><EAA3A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
for i := 0 to SortedControls.Count - 1 do
|
|||
|
|
begin
|
|||
|
|
for j := i + 1 to SortedControls.Count - 1 do
|
|||
|
|
begin
|
|||
|
|
// <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> Top <20><> Left
|
|||
|
|
if (TControl(SortedControls[i]).Top > TControl(SortedControls[j]).Top) or ((TControl(SortedControls[i]).Top = TControl(SortedControls[j]).Top) and (TControl(SortedControls[i]).Left > TControl(SortedControls[j]).Left)) then
|
|||
|
|
begin
|
|||
|
|
// <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
TempControl := TControl(SortedControls[i]);
|
|||
|
|
SortedControls[i] := SortedControls[j];
|
|||
|
|
SortedControls[j] := TempControl;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀؼ<C4BF>
|
|||
|
|
for i := 0 to SortedControls.Count - 1 do
|
|||
|
|
begin
|
|||
|
|
AControl := TControl(SortedControls[i]);
|
|||
|
|
if (AControl is TcxTextEdit) and (TcxTextEdit(AControl).Hint = AHint) and (TcxTextEdit(AControl).Text <> '') then
|
|||
|
|
begin
|
|||
|
|
Result := TcxTextEdit(AControl).Text; // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļᱻ<C4BB><E1B1BB><EFBFBD><EFBFBD>
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
SortedControls.Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
end.
|
|||
|
|
|