D10szXingjie/A02基础产品管理/U_ClothInfoInput.pas
DESKTOP-E401PHE\Administrator d4fd8d4862 123
2025-06-06 10:26:48 +08:00

506 lines
12 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_ClothInfoInput;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, ADODB, DBClient, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, ComCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, cxTextEdit,
cxButtonEdit, StdCtrls, ExtCtrls, cxCurrencyEdit, BtnEdit, U_BaseList,
cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters,
cxNavigator, dxDateRanges, dxBarBuiltInMenu, cxCheckBox, cxDropDownEdit;
type
TfrmClothInfoInput = class(TForm)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
TBClose: TToolButton;
ADOQueryCmd: TADOQuery;
ADOQueryTemp: TADOQuery;
ScrollBox1: TScrollBox;
Label1: TLabel;
Label5: TLabel;
Label15: TLabel;
Label22: TLabel;
Label2: TLabel;
Label4: TLabel;
Label3: TLabel;
C_Code: TEdit;
C_Name: TEdit;
C_Color: TEdit;
C_Pattern: TEdit;
Label7: TLabel;
C_Width: TBtnEditC;
C_GramWeight: TBtnEditC;
C_Composition: TBtnEditC;
Label12: TLabel;
C_EName: TEdit;
ToolButton6: TToolButton;
BCIID: TEdit;
Label6: TLabel;
C_Spec: TBtnEditC;
Label8: TLabel;
C_FromName: TBtnEditC;
ToolBar2: TToolBar;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1XHNo: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
CDS_1: TClientDataSet;
DS_1: TDataSource;
GPM_1: TcxGridPopupMenu;
procedure FormShow(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure CYColorKeyPress(Sender: TObject; var Key: Char);
procedure CYJGGYBtnDnClick(Sender: TObject);
procedure C_WidthBtnDnClick(Sender: TObject);
procedure C_WidthBtnUpClick(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure C_FromNameBtnUpClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure SetXH();
procedure ToolButton3Click(Sender: TObject);
procedure Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
private
canshu1: string;
Fint: Integer;
procedure InitGrid();
function SaveData(): Boolean;
{ Private declarations }
public
FBCIID, FCTID: string;
CopyInt: Integer;
{ Public declarations }
end;
var
frmClothInfoInput: TfrmClothInfoInput;
implementation
uses
U_DataLink, U_RTFun, U_iniParam, U_ZDYHelp, U_AttachmentUpload, U_ClothInfoSel;
{$R *.dfm}
procedure TfrmClothInfoInput.SetXH();
var
i: Integer;
begin
with CDS_1 do
begin
First;
i := 1;
while not Eof do
begin
with CDS_1 do
begin
Edit;
FieldByName('XHNoTemp').Value := i;
Post;
end;
i := i + 1;
Next;
end;
end;
with CDS_1 do
begin
CDS_1.IndexFieldNames := '';
First;
i := 1;
while not Eof do
begin
with CDS_1 do
begin
Edit;
FieldByName('SerialNo').Value := FieldByName('XHNoTemp').AsInteger;
Post;
end;
i := i + 1;
Next;
end;
CDS_1.IndexFieldNames := 'SerialNo';
end;
end;
procedure TfrmClothInfoInput.InitGrid();
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from V_BS_Cloth_Info where BCIID=''' + Trim(FBCIID) + '''');
Open;
end;
SCSHData(ADOQueryTemp, ScrollBox1, 2);
SCSHData(ADOQueryTemp, ScrollBox1, 0);
C_FromName.TxtCode := Trim(ADOQueryTemp.fieldbyname('FromBCIID').AsString);
C_FromName.Text := Trim(ADOQueryTemp.fieldbyname('C_FromName').AsString);
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select * from Bs_Cloth_Process ');
sql.Add(' where BCIID=''' + Trim(FBCIID) + '''');
sql.Add(' order by SerialNo ');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_1);
SInitCDSData(ADOQueryTemp, CDS_1);
end;
procedure TfrmClothInfoInput.FormShow(Sender: TObject);
begin
InitGrid();
if CopyInt = 1 then
begin
FBCIID := '';
BCIID.text := '';
C_Code.text := '';
end;
end;
procedure TfrmClothInfoInput.TBCloseClick(Sender: TObject);
begin
Close;
end;
function TfrmClothInfoInput.SaveData(): Boolean;
var
MaxBCIID, MaxBCPID: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
//////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //////////////////////
if Trim(FBCIID) = '' then
begin
if GetLSNo(ADOQueryCmd, MaxBCIID, 'Y', 'BS_Cloth_Info', 4, 1) = False then
begin
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
BCIID.Text := trim(MaxBCIID);
end
else
begin
MaxBCIID := Trim(FBCIID);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from BS_Cloth_Info where BCIID=''' + Trim(FBCIID) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(FBCIID) = '' then
begin
Append;
FieldByName('CTID').Value := Trim(FCTID);
FieldByName('FILLID').Value := Trim(DCode);
FieldByName('FILLER').Value := Trim(DName);
FieldByName('FILLTIME').Value := SGetServerDateTime(ADOQueryTemp);
end
else
begin
Edit;
FieldByName('EDITER').Value := Trim(DName);
FieldByName('EDITTIME').Value := SGetServerDateTime(ADOQueryTemp);
end;
FieldByName('BCIID').Value := Trim(MaxBCIID);
if trim(C_Code.Text) = '' then
C_Code.Text := Trim(MaxBCIID);
RTSetsavedata(ADOQueryCmd, 'BS_Cloth_Info', ScrollBox1, 2);
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete BS_Cloth_Info_Link where ToID=''' + Trim(MaxBCIID) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from BS_Cloth_Info_Link where 1=2');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('ToID').Value := Trim(MaxBCIID);
FieldByName('FromID').Value := Trim(C_FromName.TxtCode);
Post;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select count(*) as AA from BS_Cloth_Info where C_Code=''' + Trim(C_Code.Text) + '''');
Open;
if FieldByName('AA').AsInteger > 1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
Result := False;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end;
//////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //////////////////////
///
//////////////// <20><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD> //////////////////////
with CDS_1 do
begin
First;
while not Eof do
begin
if Trim(CDS_1.fieldbyname('BCPID').AsString) = '' then
begin
if GetLSNo(ADOQueryCmd, MaxBCPID, 'P', 'Bs_Cloth_Process', 4, 1) = False then
begin
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
MaxBCPID := Trim(CDS_1.fieldbyname('BCPID').AsString);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from Bs_Cloth_Process where BCPID=''' + Trim(MaxBCPID) + '''');
Open;
end;
with ADOQueryCmd do
begin
if ADOQueryCmd.IsEmpty then
Append
else
Edit;
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'Bs_Cloth_Process', 0);
FieldByName('BCPID').Value := Trim(MaxBCPID);
FieldByName('BCIID').Value := Trim(MaxBCIID);
Post;
end;
with CDS_1 do
begin
Edit;
FieldByName('BCPID').Value := Trim(MaxBCPID);
Post;
end;
Next;
end;
end;
//////////////// <20><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD> //////////////////////
///
///
///
ADOQueryCmd.Connection.CommitTrans;
FBCIID := MaxBCIID;
Result := True;
except
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
end;
end;
procedure TfrmClothInfoInput.CYJGGYBtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
end;
procedure TfrmClothInfoInput.ToolButton1Click(Sender: TObject);
var
MC_Code: string;
begin
if C_Name.Text = '' then
begin
Application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if trim(C_Code.Text) = '' then
begin
if GetLSNo(ADOQueryCmd, MC_Code, 'C', 'BS_Cloth_Info', 4, 0) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
C_Code.Text := MC_Code;
end;
SetXH();
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ', 0);
ModalResult := 1;
end;
end;
procedure TfrmClothInfoInput.ToolButton2Click(Sender: TObject);
var
i: Integer;
begin
i := CDS_1.RecordCount; //<2F><>ǰ<EFBFBD><C7B0>dataset<65>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>м<EFBFBD>¼
i := i + 1;
CopyAddRow(Tv1, CDS_1);
with CDS_1 do
begin
Edit;
FieldByName('SerialNo').Value := i;
FieldByName('FtyWastage').Value := 0;
Post;
end;
SetXH();
end;
procedure TfrmClothInfoInput.ToolButton3Click(Sender: TObject);
begin
if CDS_1.IsEmpty then
Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
if Trim(CDS_1.fieldbyname('BCPID').AsString) <> '' then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete Bs_Cloth_Process where BCPID=''' + Trim(CDS_1.fieldbyname('BCPID').AsString) + '''');
ExecSQL;
end;
end;
CDS_1.Delete;
SetXH();
end;
procedure TfrmClothInfoInput.C_FromNameBtnUpClick(Sender: TObject);
begin
try
frmClothInfoSel := TfrmClothInfoSel.Create(Application);
with frmClothInfoSel do
begin
FCTType := '<27><><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
C_FromName.TxtCode := Trim(CDS_1.fieldbyname('BCIID').AsString);
C_FromName.Text := Trim(CDS_1.fieldbyname('C_Name').AsString);
end;
end;
finally
frmClothInfoSel.Free;
end;
end;
procedure TfrmClothInfoInput.CYColorKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
SelectNext(ActiveControl as TWinControl, True, True);
end;
end;
procedure TfrmClothInfoInput.C_WidthBtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
TBtnEditC(Sender).TxtCode := '';
end;
procedure TfrmClothInfoInput.C_WidthBtnUpClick(Sender: TObject);
var
fsj: string;
FWZ: Integer;
begin
fsj := Trim(TEdit(Sender).Hint);
FWZ := Pos('/', fsj);
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := Copy(fsj, 1, FWZ - 1);
flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ);
if ShowModal = 1 then
begin
TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmClothInfoInput.ToolButton6Click(Sender: TObject);
begin
if trim(C_Code.Text) = '' then
Exit;
try
frmAttachmentUpload := TfrmAttachmentUpload.Create(Application);
with frmAttachmentUpload do
begin
FEditAuthority := True;
fkeyNO := trim(C_Code.Text);
fType := '<27><>ƷƷ<C6B7><C6B7><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
end;
end;
finally
frmAttachmentUpload.Free;
end;
end;
procedure TfrmClothInfoInput.Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'FtyType';
flagname := '<27><><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
CDS_1.Edit;
CDS_1.fieldbyname('FtyType').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
CDS_1.Post;
end;
end;
finally
frmZDYHelp.Free;
end;
tv1.Controller.EditingController.ShowEdit();
end;
end.