D10myBahong/T01贸易生产计划/U_TradePlanFtyInPut.pas
DESKTOP-E401PHE\Administrator 3e0a685b19 1
2025-02-14 17:29:15 +08:00

542 lines
16 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_TradePlanFtyInPut;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
U_FormLayOutDesign, Winapi.ShellAPI, ComObj, Dialogs, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls,
cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient,
ADODB, ExtCtrls, BtnEdit, cxCalendar, StrUtils, cxCurrencyEdit,
cxGridCustomPopupMenu, cxGridPopupMenu, cxDropDownEdit, RM_Common, RM_Preview,
RM_System, RM_Class, RM_GridReport, RM_Dataset, Menus, cxSplitter,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, cxCheckBox,
dxDateRanges, dxBarBuiltInMenu, cxPC, System.ImageList,
Vcl.ImgList, U_BaseInput, dxCore, cxDateUtils,
dxScrollbarAnnotations, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdExplicitTLSClientServerBase, IdFTP, cxImage, cxDBEdit,
cxGroupBox,
cxCheckComboBox, cxImageList, cxButtons,
dxSkinWXI, dxSkinsCore, dxSkinsDefaultPainters;
type
TfrmTradePlanFtyInPut = class(TfrmBaseInput)
ADOTemp: TADOQuery;
ADOCmd: TADOQuery;
DS_1: TDataSource;
CDS_1: TClientDataSet;
GPM_1: TcxGridPopupMenu;
ADOQueryLabel: TADOQuery;
IdFTP1: TIdFTP;
OpenDialog1: TOpenDialog;
PM_1: TPopupMenu;
N5: TMenuItem;
N6: TMenuItem;
GPM_2: TcxGridPopupMenu;
ADO_1: TADOQuery;
ADO_2: TADOQuery;
DS_2: TDataSource;
CDS_2: TClientDataSet;
ToolBar1: TToolBar;
ToolButton3: TToolButton;
TBClose: TToolButton;
cxGrid1: TcxGrid;
TV1: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
TV1Column2: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
TV1Column8: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1PRTColor: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
TV1Column3: TcxGridDBColumn;
VC_PRTPs: TcxGridDBColumn;
v1PRTOrderQty: TcxGridDBColumn;
TV1Column7: TcxGridDBColumn;
TV1Column16: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
TV1Column6: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
TV2Column1: TcxGridDBColumn;
TV2Column2: TcxGridDBColumn;
TV2Column3: TcxGridDBColumn;
TV2Column4: TcxGridDBColumn;
Panel1: TPanel;
Label52: TLabel;
FtyName: TcxButtonEdit;
FtyQty: TcxTextEdit;
Label2: TLabel;
cxButton1: TcxButton;
TV2Column5: TcxGridDBColumn;
SerialFtyNo: TcxComboBox;
Label1: TLabel;
Label3: TLabel;
Follower: TcxButtonEdit;
TV2Column6: TcxGridDBColumn;
TV2Column7: TcxGridDBColumn;
TV2Column8: TcxGridDBColumn;
Panel2: TPanel;
scnote: TMemo;
Label4: TLabel;
scnote1: TMemo;
Panel3: TPanel;
Panel4: TPanel;
scnote2: TMemo;
ToolButton1: TToolButton;
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure FtyNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure cxButton1Click(Sender: TObject);
procedure FtyNameDblClick(Sender: TObject);
procedure cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure TV1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure TV2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure ToolButton1Click(Sender: TObject);
private
FSCXDH: string;
procedure InitData();
procedure InitGrid2();
function SaveData(): Boolean;
{ Private declarations }
public
PState, CopyInt, PriceFlag: Integer;
FMainId, FFMainId, FOrderNo: string;
FXS: Integer;
canshu1: string;
fFlileFlag: string;
{ Public declarations }
end;
var
frmTradePlanFtyInPut: TfrmTradePlanFtyInPut;
newh: hwnd;
implementation
uses
U_DataLink, U_ZDYHelp, U_ZDYHelpSel, U_RTFun, U_CompanySel;
{$R *.dfm}
procedure TfrmTradePlanFtyInPut.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmTradePlanFtyInPut.InitGrid2();
begin
with ADO_2 do
begin
Close;
SQL.Clear;
sql.Add(' select A.* ');
sql.Add(',Technics=(select Technics from Trade_Plan_FtyFlow X where X.MainId=A.MainId and x.SerialNo=' + CDS_1.FieldByName('SerialNo').asstring + ' ) ');
sql.Add(',FtyName1=(select FtyName from Trade_Plan_Fty X where X.subid=A.subid and x.SerialFtyNo=1 and x.SerialNo=' + CDS_1.FieldByName('SerialNo').asstring + ' ) ');
sql.Add(',Follower1=(select Follower from Trade_Plan_Fty X where X.subid=A.subid and x.SerialFtyNo=1 and x.SerialNo=' + CDS_1.FieldByName('SerialNo').asstring + ' ) ');
sql.Add(',FtyQty1=(select FtyQty from Trade_Plan_Fty X where X.subid=A.subid and x.SerialFtyNo=1 and x.SerialNo=' + CDS_1.FieldByName('SerialNo').asstring + ' ) ');
sql.Add(',FtyName2=(select FtyName from Trade_Plan_Fty X where X.subid=A.subid and x.SerialFtyNo=2 and x.SerialNo=' + CDS_1.FieldByName('SerialNo').asstring + ' ) ');
sql.Add(',Follower2=(select Follower from Trade_Plan_Fty X where X.subid=A.subid and x.SerialFtyNo=2 and x.SerialNo=' + CDS_1.FieldByName('SerialNo').asstring + ' ) ');
sql.Add(',FtyQty2=(select FtyQty from Trade_Plan_Fty X where X.subid=A.subid and x.SerialFtyNo=2 and x.SerialNo=' + CDS_1.FieldByName('SerialNo').asstring + ' ) ');
sql.Add(',FtyQtydfp=OrdQty-isnull((select sum(FtyQty) from Trade_Plan_Fty X where X.subid=A.subid and x.SerialNo=' + CDS_1.FieldByName('SerialNo').asstring + ' ) ,0) ');
sql.Add(' from Trade_Plan_Sub A ');
sql.Add(' where MainId=''' + Trim(FMainId) + '''');
// ShowMessage(sql.Text);
Open;
end;
SCreateCDS(ADO_2, CDS_2);
SInitCDSData(ADO_2, CDS_2);
end;
procedure TfrmTradePlanFtyInPut.InitData();
begin
with ADO_1 do
begin
Close;
sql.Clear;
sql.Add('select * from Trade_Plan_FtyFlow where MainId=''' + Trim(FMainId) + '''');
Open;
end;
if ADO_1.IsEmpty then
begin
with ADOCmd do
begin
Close;
SQL.Clear;
sql.Add('insert into Trade_Plan_FtyFlow( MainId,SerialNo) values');
sql.Add(' (' + Quotedstr(Trim(FMainId)) + ',1 ) ');
sql.Add(',(' + Quotedstr(Trim(FMainId)) + ',2 ) ');
sql.Add(',(' + Quotedstr(Trim(FMainId)) + ',3 ) ');
sql.Add(',(' + Quotedstr(Trim(FMainId)) + ',4 ) ');
sql.Add(',(' + Quotedstr(Trim(FMainId)) + ',5 ) ');
sql.Add(',(' + Quotedstr(Trim(FMainId)) + ',6 ) ');
ExecSQL;
end;
with ADO_1 do
begin
Close;
sql.Clear;
sql.Add('select * from Trade_Plan_FtyFlow where MainId=''' + Trim(FMainId) + '''');
Open;
end;
end;
SCreateCDS(ADO_1, CDS_1);
SInitCDSData(ADO_1, CDS_1);
end;
procedure TfrmTradePlanFtyInPut.cxButtonEdit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'Follower';
flagname := '<27><><EFBFBD><EFBFBD>Ա';
if ShowModal = 1 then
begin
Follower.text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmTradePlanFtyInPut.cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
var
mvalue, FFieldName: string;
begin
FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'Technics';
flagname := '<27><><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
Self.CDS_1.Edit;
Self.CDS_1.FieldByName('Technics').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
Self.CDS_1.post;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update Trade_Plan_FtyFlow set Technics=' + quotedstr(Trim(Self.CDS_1.fieldbyname('Technics').AsString)));
sql.Add('where MainId=' + quotedstr(Trim(FMainId)));
sql.Add('AND SerialNo=' + quotedstr(Trim(Self.CDS_1.fieldbyname('SerialNo').AsString)));
ExecSQL;
end;
end;
end;
finally
frmZDYHelp.Free;
end;
Tv2.Controller.EditingController.ShowEdit();
end;
procedure TfrmTradePlanFtyInPut.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := cafree;
end;
procedure TfrmTradePlanFtyInPut.FormDestroy(Sender: TObject);
begin
inherited;
frmTradePlanFtyInPut := nil;
end;
procedure TfrmTradePlanFtyInPut.FormShow(Sender: TObject);
var
i: Integer;
begin
inherited;
readCxGrid(TRIM(SELF.Caption) + 'Tv1', Tv1, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
readCxGrid(TRIM(SELF.Caption) + 'Tv2', Tv2, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
fFlileFlag := UserDataFlag + 'HX';
InitData();
InitGrid2();
end;
procedure TfrmTradePlanFtyInPut.FtyNameDblClick(Sender: TObject);
begin
TcxButtonEdit(Sender).Text := '';
TcxButtonEdit(Sender).Properties.LookupItems.Text := '';
end;
procedure TfrmTradePlanFtyInPut.FtyNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
FCoType := '<27><>Ӧ<EFBFBD><D3A6>';
if ShowModal = 1 then
begin
self.FtyName.Properties.LookupItems.Text := Trim(frmCompanySel.CDS_1.fieldbyname('CoCode').AsString);
self.FtyName.Text := Trim(frmCompanySel.CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
finally
frmCompanySel.Free;
end;
end;
function TfrmTradePlanFtyInPut.SaveData(): Boolean;
var
MaxTPFId: string;
MFtyQty: Double;
begin
try
ADOCmd.Connection.BeginTrans;
///////////////////// <20><><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD> ///////////////////////////
with CDS_2 do
begin
First;
while not Eof do
begin
if CDS_2.fieldbyname('ssel').AsBoolean then
begin
MaxTPFId := Trim(CDS_2.fieldbyname('Subid').AsString) + Trim(CDS_1.FieldByName('SerialNo').AsString) + trim(SerialFtyNo.Text);
if StrToFloatDef(FtyQty.Text, 0) = 0 then
begin
MFtyQty := CDS_2.fieldbyname('FtyQtydfp').AsFloat + CDS_2.fieldbyname('FtyQty' + trim(SerialFtyNo.Text)).AsFloat;
end
else
begin
MFtyQty := StrToFloatDef(FtyQty.Text, 0);
end;
with ADOCmd do
begin
Close;
SQL.Clear;
sql.Add('delete Trade_Plan_Fty where MainId=''' + Trim(FMainId) + '''');
sql.Add(' and TPFId=''' + Trim(MaxTPFId) + '''');
execsql;
end;
with ADOCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from Trade_Plan_Fty where 1=2');
Open;
end;
with ADOCmd do
begin
Append;
FieldByName('MainId').Value := Trim(FMainId);
FieldByName('TPFId').Value := Trim(MaxTPFId);
FieldByName('SerialFtyNo').Value := Trim(SerialFtyNo.Text);
FieldByName('SerialNo').Value := CDS_1.fieldbyname('SerialNo').Value;
FieldByName('Technics').Value := CDS_1.fieldbyname('Technics').Value;
FieldByName('FtyNo').Value := Trim(self.FtyName.Properties.LookupItems.Text);
FieldByName('FtyName').Value := Trim(self.FtyName.Text);
FieldByName('Followid').Value := Trim(self.Follower.Properties.LookupItems.Text);
FieldByName('Follower').Value := Trim(self.Follower.Text);
FieldByName('subid').Value := CDS_2.fieldbyname('subid').Value;
FieldByName('FtyQty').Value := MFtyQty;
FieldByName('SCNOTE').Value := scnote.Text;
Post;
end;
with ADOTemp do
begin
Close;
SQL.Clear;
sql.Add(' select ');
sql.Add(' FtyQtydfp=OrdQty-isnull((select sum(FtyQty) from Trade_Plan_Fty X where X.subid=A.subid and x.SerialNo=' + CDS_1.FieldByName('SerialNo').asstring + ' ) ,0) ');
sql.Add(' from Trade_Plan_Sub A ');
sql.Add(' where SUBID=''' + Trim(CDS_2.fieldbyname('subid').Value) + '''');
// ShowMessage(sql.Text);
Open;
end;
if ADOTemp.FieldByName('FtyQtydfp').AsFloat < 0 then
begin
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!');
end;
end;
Next;
end;
end;
///////////////////// <20><><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD> ///////////////////////////
ADOCmd.Connection.CommitTrans;
Result := True;
except
Result := False;
ADOCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmTradePlanFtyInPut.ToolButton1Click(Sender: TObject);
begin
if CDS_1.FieldByName('Technics').AsString = '' then
begin
Exit;
end;
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := CDS_1.FieldByName('Technics').AsString;
flagname := CDS_1.FieldByName('Technics').AsString;
if ShowModal = 1 then
begin
// TcxButtonEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmTradePlanFtyInPut.ToolButton3Click(Sender: TObject);
begin
WriteCxGrid(TRIM(SELF.Caption) + 'Tv1', Tv1, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid(TRIM(SELF.Caption) + 'Tv2', Tv2, '<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmTradePlanFtyInPut.TV1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
InitGrid2();
end;
procedure TfrmTradePlanFtyInPut.TV2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select scnote ');
sql.Add(' from Trade_Plan_Fty A ');
sql.Add(' where subid=''' + Trim(CDS_2.fieldbyname('SubId').AsString) + '''');
sql.Add('and SerialNo=1');
Open;
end;
scnote1.Text := ADOTemp.FieldByName('scnote').AsString;
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select scnote ');
sql.Add(' from Trade_Plan_Fty A ');
sql.Add(' where subid=''' + Trim(CDS_2.fieldbyname('SubId').AsString) + '''');
sql.Add('and SerialNo=2');
Open;
end;
scnote2.Text := ADOTemp.FieldByName('scnote').AsString;
end;
procedure TfrmTradePlanFtyInPut.cxButton1Click(Sender: TObject);
begin
// with ADOTemp do
// begin
// Close;
// sql.Clear;
// sql.Add('select * from Trade_Plan_Fty_Technical where isnull(SubId,'''')<>'''' and SubId=''' + Trim(CDS_3.fieldbyname('SubId').AsString) + '''');
// Open;
// end;
// if ADOTemp.IsEmpty = False then
// begin
// Application.MessageBox('<27>Ѽ<EFBFBD><D1BC><EFBFBD><E9B2BB>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
// Exit;
// end;
// if Trim(CDS_3.fieldbyname('TPFTID').AsString) <> '' then
// begin
// with ADOCmd do
// begin
// Close;
// sql.Clear;
//
//// sql.Add('insert into Trade_Plan_Sub_Del select * from Trade_Plan_Sub where SubId=''' + Trim(CDS_1.fieldbyname('SubId').AsString) + '''');
//
// sql.Add('delete Trade_Plan_Fty_Technical where TPFTID=''' + Trim(CDS_3.fieldbyname('TPFTID').AsString) + '''');
//
// ExecSQL;
// end;
// end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ', 0);
InitGrid2();
end;
end;
procedure TfrmTradePlanFtyInPut.N5Click(Sender: TObject);
begin
SelOKNo(CDS_2, True);
end;
procedure TfrmTradePlanFtyInPut.N6Click(Sender: TObject);
begin
SelOKNo(CDS_2, False);
end;
end.