D10myBiaoqi/A09财务通用管理/U_ZDPrice.pas
DESKTOP-E401PHE\Administrator a500748e12 1234
2026-05-13 09:12:14 +08:00

986 lines
31 KiB
ObjectPascal

unit U_ZDPrice;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
dxBarBuiltInMenu, cxPC, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
U_BaseList, Vcl.Menus, Vcl.Clipbrd, DateUtils, dxSkinWXI,
dxScrollbarAnnotations, cxContainer, cxProgressBar, cxLabel;
type
TfrmZDPrice = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ADOQueryMain: TADOQuery;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
Label2: TLabel;
Label6: TLabel;
begdate: TDateTimePicker;
Enddate: TDateTimePicker;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_1: TDataSource;
CDS_1: TClientDataSet;
Label1: TLabel;
ComTaiTou: TEdit;
ADOQueryPrint: TADOQuery;
cxTabControl1: TcxTabControl;
ToolButton1: TToolButton;
Tv2Column2: TcxGridDBColumn;
Tv2Column3: TcxGridDBColumn;
Tv2Column4: TcxGridDBColumn;
Tv2Column9: TcxGridDBColumn;
Tv2Column1: TcxGridDBColumn;
Tv2Column10: TcxGridDBColumn;
Tv2Column5: TcxGridDBColumn;
ToolButton3: TToolButton;
Tv2Column6: TcxGridDBColumn;
Tv2Column7: TcxGridDBColumn;
ToolButton4: TToolButton;
cxGridLevel2: TcxGridLevel;
Tv3: TcxGridDBTableView;
Tv3Column1: TcxGridDBColumn;
Tv3Column2: TcxGridDBColumn;
Tv3Column3: TcxGridDBColumn;
DS_2: TDataSource;
CDS_2: TClientDataSet;
ToolButton2: TToolButton;
Tv3Column4: TcxGridDBColumn;
Tv3Column5: TcxGridDBColumn;
Tv3Column6: TcxGridDBColumn;
Tv3Column7: TcxGridDBColumn;
Tv3Column8: TcxGridDBColumn;
Tv3Column9: TcxGridDBColumn;
Tv3Column10: TcxGridDBColumn;
Tv3Column11: TcxGridDBColumn;
Tv3Column12: TcxGridDBColumn;
Tv3Column13: TcxGridDBColumn;
Tv2Column8: TcxGridDBColumn;
FromOrdNo: TcxTextEdit;
cxLabel1: TcxLabel;
PM_2: TPopupMenu;
N2: TMenuItem;
Tv3Column14: TcxGridDBColumn;
Tv2Column11: TcxGridDBColumn;
Tv2Column12: TcxGridDBColumn;
Tv3Column15: TcxGridDBColumn;
Tv3Column16: TcxGridDBColumn;
Tv2Column13: TcxGridDBColumn;
ToOrdNo: TcxTextEdit;
cxLabel2: TcxLabel;
Tv3Column17: TcxGridDBColumn;
Tv3Column18: TcxGridDBColumn;
Tv2Column14: TcxGridDBColumn;
Tv2Column15: TcxGridDBColumn;
N5: TMenuItem;
N6: TMenuItem;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
Tv4: TcxGridDBTableView;
cxGridLevel3: TcxGridLevel;
Tv4Column1: TcxGridDBColumn;
Tv4Column2: TcxGridDBColumn;
Tv4Column3: TcxGridDBColumn;
Tv4Column4: TcxGridDBColumn;
Tv4Column5: TcxGridDBColumn;
Tv4Column6: TcxGridDBColumn;
Tv4Column7: TcxGridDBColumn;
Tv4Column8: TcxGridDBColumn;
Tv4Column9: TcxGridDBColumn;
Tv4Column10: TcxGridDBColumn;
Tv4Column11: TcxGridDBColumn;
Tv4Column12: TcxGridDBColumn;
Tv4Column13: TcxGridDBColumn;
Tv4Column14: TcxGridDBColumn;
Tv4Column15: TcxGridDBColumn;
Tv4Column16: TcxGridDBColumn;
Tv4Column17: TcxGridDBColumn;
Tv4Column18: TcxGridDBColumn;
CDS_3: TClientDataSet;
DS_3: TDataSource;
Tv2Column16: TcxGridDBColumn;
Tv2Column17: TcxGridDBColumn;
Tv3Column19: TcxGridDBColumn;
Tv3Column20: TcxGridDBColumn;
Tv4Column19: TcxGridDBColumn;
Tv4Column20: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure FromOrdNoKeyPress(Sender: TObject; var Key: Char);
procedure N2Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure Tv3DataControllerFilterChanged(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure Tv2CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure ToolButton6Click(Sender: TObject);
procedure Tv3CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure Tv4CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
private
{ Private declarations }
procedure InitGrid();
public
fmanage, FZKType: string;
{ Public declarations }
RKFlag, FCYID: string;
end;
implementation
uses
U_DataLink, U_RtFun, U_BatchEdit, U_ZDPriceDetails, U_PlanProfitDetails;
{$R *.dfm}
procedure TfrmZDPrice.InitGrid();
begin
try
// Tv2.BeginUpdate;
// Tv3.BeginUpdate;
with ADOQueryMain do
begin
ADOQueryMain.Filtered := false;
Close;
SQL.Clear;
case cxTabControl1.TabIndex of
0:
begin
sql.Add(' select BCIOID,IOTime,FromOrdNo, C_Code, C_Name, C_Color, Price, QtyUnit, qty, Piece, ToOrdNo = (select OrderNo from Trade_Plan_Main where MainID in(select MainID from Pur_ClothPlan_Main X where X.PurNo = A.ToOrdNo)),ZDAmount = (isnull(price, 0) * qty) ');
sql.Add(' ,stkName, QtyUnit, FromMainId, C_ColorNo, C_Pattern, Chker, ChkTime');
sql.Add(' from Bs_Cloth_IO A');
sql.Add(' where IOTime >= ' + quotedStr(FormatDateTime('yyyy-MM-dd', begdate.DateTime)));
sql.Add(' and IOTime <= ' + quotedStr(FormatDateTime('yyyy-MM-dd', enddate.DateTime)));
sql.Add(' and STKName = ''贸易坯布'' and FromOrdNo <> (select OrderNo from Trade_Plan_Main where MainID in(select MainID from Pur_ClothPlan_Main X where X.PurNo = A.ToOrdNo))');
sql.Add(' order by iotime desc');
Open;
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
cxGrid2.ActiveLevel := cxGridLevel1;
end;
1:
begin
sql.Add(' select BCIOID,IOTime,FromOrdNo, C_Code, C_Name, C_Color, Price, QtyUnit, qty, Piece, ToOrdNo = (select OrderNo from Trade_Plan_Main where MainID in(select MainID from Pur_ClothPlan_Main X where X.PurNo = A.ToOrdNo)),ZDAmount = (isnull(price, 0) * qty) ');
sql.Add(' ,stkName, QtyUnit, FromMainId, C_ColorNo, C_Pattern, Chker, ChkTime ');
sql.Add(' from Bs_Cloth_IO A');
sql.Add(' where IOTime >= ' + quotedStr(FormatDateTime('yyyy-MM-dd', begdate.DateTime)));
sql.Add(' and IOTime <= ' + quotedStr(FormatDateTime('yyyy-MM-dd', enddate.DateTime)));
sql.Add(' and STKName = ''贸易待检布'' and FromOrdNo <> (select OrderNo from Trade_Plan_Main where MainID in(select MainID from Pur_ClothPlan_Main X where X.PurNo = A.ToOrdNo)) ');
sql.Add(' order by iotime desc');
Open;
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
cxGrid2.ActiveLevel := cxGridLevel1;
end;
2:
begin
sql.Add(' select *,A.OrderNo as FromOrdNo, B.OrderNo as ToOrdNo, DlyDate = (select DlyDate from Trade_Cloth_DR_Main X where X.DRMID = B.DRMID) ');
sql.Add(' ,ZDAmount = (case when QtyUnit = ''M'' then isnull(ZDPrice, 0) * StkMeter when QtyUnit = ''Y'' then isnull(ZDPrice, 0) * StkYardage when QtyUnit = ''Kg'' then isnull(ZDPrice, 0) * StkNetWeight else 0 end) ');
sql.Add(' from Trade_Cloth_Stock_ZD A join Trade_Cloth_DR_Sub B on A.DRSID=B.DRSID ');
sql.Add(' where (select DlyDate from Trade_Cloth_DR_Main X where X.DRMID = B.DRMID) >= ' + quotedStr(FormatDateTime('yyyy-MM-dd', begdate.DateTime)));
sql.Add(' and (select DlyDate from Trade_Cloth_DR_Main X where X.DRMID = B.DRMID) <= ' + quotedStr(FormatDateTime('yyyy-MM-dd', enddate.DateTime)));
sql.add(' order by ZDTime desc ');
Open;
SCreateCDS(ADOQueryMain, CDS_2);
SInitCDSData(ADOQueryMain, CDS_2);
cxGrid2.ActiveLevel := cxGridLevel2;
end;
3:
begin
sql.Add(' select B.stkid,A.Editer,A.Edittime,B.OrderNo fromordno,A.IOID,A.IOTime,B.C_Code,B.C_Name,B.PieceNo,B.StkMeter,B.StkYardage,B.StkGrossWeight,');
SQL.Add(' B.StkNetWeight,B.C_Color,B.C_Pattern,B.C_ColorNo,B.MainID,');
SQL.Add(' iif(A.price is null, (select top 1 price from Trade_Cloth_DR_Sub X WHERE X.DRMID = A.IONO), A.price) price, ');
sql.Add(' (SELECT TOP 1 QtyUnit FROM Trade_Cloth_DR_Sub X WHERE X.DRMID = A.IONO) AS QtyUnit, ');
sql.Add(' cast (case when (SELECT TOP 1 QtyUnit FROM Trade_Cloth_DR_Sub X WHERE X.DRMID = A.IONO) = ''M'' ');
sql.Add(' then iif(A.price is null, (select top 1 price from Trade_Cloth_DR_Sub X WHERE X.DRMID = A.IONO)* StkMeter, A.Amount)');
SQL.Add(' when (SELECT TOP 1 QtyUnit FROM Trade_Cloth_DR_Sub X WHERE X.DRMID = A.IONO) = ''Kg'' ');
SQL.Add(' then iif(A.price is null, (select top 1 price from Trade_Cloth_DR_Sub X WHERE X.DRMID = A.IONO) * StkNetWeight, A.Amount) ');
SQL.Add(' when (SELECT TOP 1 QtyUnit FROM Trade_Cloth_DR_Sub X WHERE X.DRMID = A.IONO) = ''Y'' ');
sql.add(' then iif(A.price is null, (select top 1 price from Trade_Cloth_DR_Sub X WHERE X.DRMID = A.IONO) * StkYardage, A.Amount) ');
SQL.Add(' end as DECIMAL(18,2)) as zdamount,');
sql.Add(' STUFF(');
sql.Add(' (SELECT DISTINCT '', '' + OrderNo ');
sql.Add(' FROM Trade_Cloth_DR_Sub X ');
sql.Add(' WHERE X.DRMID = A.IONO ');
sql.Add(' FOR XML PATH('''')), ');
sql.Add(' 1, 2, '''') AS ToOrdNo ');
sql.Add('FROM ');
sql.Add(' Trade_Cloth_IO A ');
sql.Add('JOIN ');
sql.Add(' Trade_Cloth_Stock B ');
sql.Add(' ON A.StkID = B.StkID ');
sql.Add('WHERE ');
sql.Add(' B.OrderNo <> STUFF(');
sql.Add(' (SELECT DISTINCT '', '' + OrderNo ');
sql.Add(' FROM Trade_Cloth_DR_Sub X ');
sql.Add(' WHERE X.DRMID = A.IONO ');
sql.Add(' FOR XML PATH('''')), ');
sql.Add(' 1, 2, '''') ');
sql.Add(' AND A.IOType IN (''加工出库'', ''回修出库'')');
sql.Add(' order by iotime desc');
// ShowMessage(sql.Text);
Open;
SCreateCDS(ADOQueryMain, CDS_3);
SInitCDSData(ADOQueryMain, CDS_3);
cxGrid2.ActiveLevel := cxGridLevel3;
end;
end;
end;
finally
// Tv2.EndUpdate;
// Tv3.EndUpdate;
end;
end;
procedure TfrmZDPrice.N2Click(Sender: TObject);
begin
inherited;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV2.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)))
else if cxTabControl1.TabIndex = 2 then
Clipboard.SetTextBuf(PChar(Trim(CDS_2.fieldbyname(TV3.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)))
else if cxTabControl1.TabIndex = 3 then
Clipboard.SetTextBuf(PChar(Trim(CDS_3.fieldbyname(TV4.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)))
end;
procedure TfrmZDPrice.N5Click(Sender: TObject);
begin
inherited;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
SelOKNo(CDS_1, true)
else if cxTabControl1.TabIndex = 2 then
SelOKNo(CDS_2, true)
else if cxTabControl1.TabIndex = 3 then
SelOKNo(CDS_3, true);
end;
procedure TfrmZDPrice.N6Click(Sender: TObject);
begin
inherited;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
SelOKNo(CDS_1, false)
else if cxTabControl1.TabIndex = 2 then
SelOKNo(CDS_2, false)
else if cxTabControl1.TabIndex = 3 then
SelOKNo(CDS_3, false);
end;
procedure TfrmZDPrice.FromOrdNoKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if Key = #13 then
begin
ToolButton2.Click;
end;
end;
procedure TfrmZDPrice.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmZDPrice.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmZDPrice.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(trim(self.Caption), Tv2, '转单价格管理');
ReadCxGrid(trim(self.Caption), Tv3, '转单价格管理');
Enddate.DateTime := SGetServerDate(ADOQueryTemp);
// begdate.DateTime := StartOfTheMonth(Enddate.DateTime);
begdate.DateTime := EndDate.DateTime - 365;
cxTabControl1.TabIndex := 0;
InitGrid();
end;
procedure TfrmZDPrice.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZDPrice.ToolButton1Click(Sender: TObject);
begin
WriteCxGrid(trim(self.Caption), Tv2, '转单价格管理');
WriteCxGrid(trim(self.Caption), Tv3, '转单价格管理');
end;
procedure TfrmZDPrice.ToolButton2Click(Sender: TObject);
begin
inherited;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
end;
end
else if cxTabControl1.TabIndex = 2 then
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_2);
SInitCDSData(ADOQueryMain, CDS_2);
end;
end
else if cxTabControl1.TabIndex = 3 then
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_3);
SInitCDSData(ADOQueryMain, CDS_3);
end;
end;
end;
procedure TfrmZDPrice.ToolButton3Click(Sender: TObject);
var
PBCIOID, PStkId, PIOID, POrderNo: string;
Bookmark: TBookmark;
begin
inherited;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
Bookmark := CDS_1.GetBookmark
else if cxTabControl1.TabIndex = 2 then
Bookmark := CDS_2.GetBookmark
else if cxTabControl1.TabIndex = 3 then
Bookmark := CDS_3.GetBookmark;
PBCIOID := '';
PStkId := '';
if cxGrid2.ActiveLevel = cxGridLevel1 then
begin
if CDS_1.locate('ssel', true, []) = false then
begin
Application.MessageBox('请选择数据', '提示信息', 0);
exit;
end;
CDS_1.DisableConstraints;
Tv2.BeginUpdate;
with CDS_1 do
begin
first;
while not eof do
begin
if FieldByName('ssel').AsBoolean = true then
begin
if PBCIOID = '' then
begin
PBCIOID := PBCIOID + '''' + FieldByName('BCIOID').AsString + '''';
POrderNo := POrderNo + '''' + FieldByName('fromOrdNo').AsString + '''' + ',''' + FieldByName('ToOrdNo').AsString + '''';
end
else
begin
PBCIOID := PBCIOID + ',''' + FieldByName('BCIOID').AsString + '''';
POrderNo := POrderNo + ',''' + FieldByName('fromOrdNo').AsString + '''' + ',''' + FieldByName('ToOrdNo').AsString + '''';
end;
end;
Next;
end;
end;
CDS_1.EnableConstraints;
Tv2.EndUpdate;
end
else if cxGrid2.ActiveLevel = cxGridLevel2 then
begin
if CDS_2.locate('ssel', true, []) = false then
begin
Application.MessageBox('请选择数据', '提示信息', 0);
exit;
end;
CDS_2.DisableConstraints;
Tv3.BeginUpdate;
with CDS_2 do
begin
first;
while not eof do
begin
if FieldByName('ssel').AsBoolean = true then
begin
if PStkId = '' then
begin
PStkId := PStkId + '''' + FieldByName('StkId').AsString + '''';
POrderNo := POrderNo + '''' + FieldByName('fromOrdNo').AsString + '''' + ',''' + FieldByName('ToOrdNo').AsString + '''';
end
else
begin
PStkId := PStkId + ',''' + FieldByName('StkId').AsString + '''';
POrderNo := POrderNo + '''' + FieldByName('fromOrdNo').AsString + '''' + ',''' + FieldByName('ToOrdNo').AsString + '''';
end;
end;
Next;
end;
end;
CDS_2.EnableControls;
Tv3.endUpdate;
end
else if cxGrid2.ActiveLevel = cxGridLevel3 then
begin
if CDS_3.locate('ssel', true, []) = false then
begin
Application.MessageBox('请选择数据', '提示信息', 0);
exit;
end;
CDS_3.DisableConstraints;
Tv4.BeginUpdate;
with CDS_3 do
begin
first;
while not eof do
begin
if FieldByName('ssel').AsBoolean = true then
begin
if PIOID = '' then
begin
PIOID := PIOID + '''' + FieldByName('IOID').AsString + '''';
POrderNo := POrderNo + '''' + FieldByName('fromOrdNo').AsString + '''' + ',''' + FieldByName('ToOrdNo').AsString + '''';
end
else
begin
PIOID := PIOID + ',''' + FieldByName('IOID').AsString + '''';
POrderNo := POrderNo + '''' + FieldByName('fromOrdNo').AsString + '''' + ',''' + FieldByName('ToOrdNo').AsString + '''';
end;
end;
Next;
end;
end;
CDS_3.EnableControls;
Tv4.endUpdate;
end;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
sql.Add(' select * from Trade_Plan_Main where OrderNo in (' + POrderNo + ') and status in(''10'',''12'') ')
else if cxTabControl1.TabIndex = 2 then
sql.Add(' select * from Trade_Plan_Main where OrderNo in (' + POrderNo + ') and status in(''10'',''12'') ')
else if cxTabControl1.TabIndex = 3 then
sql.Add(' select * from Trade_Plan_Main where OrderNo in (' + POrderNo + ') and status in(''10'',''12'') ');
// ShowMessage(SQL.Text);
open;
end;
if not ADOQueryTemp.IsEmpty then
begin
application.MessageBox('计划单已完成或已清算,无法删除', '提示');
Exit;
end;
try
frmBatchEdit := TfrmBatchEdit.Create(Application);
with frmBatchEdit do
begin
FBCIOID := PBCIOID;
FStkId := PStkId;
FIOID := PIOID;
Fflag := cxTabControl1.TabIndex;
if ShowModal = mrOk then
begin
self.InitGrid();
end;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
begin
if CDS_1.BookmarkValid(Bookmark) then
begin
CDS_1.GotoBookmark(Bookmark);
end;
end
else if cxTabControl1.TabIndex = 2 then
begin
if CDS_2.BookmarkValid(Bookmark) then
begin
CDS_2.GotoBookmark(Bookmark);
end;
end
else if cxTabControl1.TabIndex = 3 then
begin
if CDS_3.BookmarkValid(Bookmark) then
begin
CDS_3.GotoBookmark(Bookmark);
end;
end;
end;
finally
frmBatchEdit.Free;
end;
end;
procedure TfrmZDPrice.ToolButton4Click(Sender: TObject);
begin
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add('select Top 1 OrdUnit from Trade_Plan_Sub A left join Trade_Plan_Main B on A.MainID=B.MainID ');
// SQL.Add('where OrderNO=''' + Trim(CDS_1.fieldbyname('FromOrdNo').AsString) + '''');
// open;
// end;
try
frmPlanProfitDetails := TfrmPlanProfitDetails.Create(Application);
with frmPlanProfitDetails do
begin
// begdate.DateTime := self.begdate.DateTime;
// enddate.DateTime := self.Enddate.DateTime;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
begin
FMainID := self.CDS_1.fieldbyname('FromMainID').AsString;
OrderNo.Text := self.CDS_1.fieldbyname('FromOrdNo').AsString;
FOrderNo := self.CDS_1.fieldbyname('FromOrdNo').AsString;
FUnit := Self.CDS_1.FieldByName('QtyUnit').ASString;
FOrderNo2 := self.CDS_1.fieldbyname('ToOrdNo').AsString;
end
else if cxTabControl1.TabIndex = 2 then
begin
FMainID := self.CDS_2.fieldbyname('MainID').AsString;
OrderNo.Text := self.CDS_2.fieldbyname('fromOrdNo').AsString;
FOrderNo := self.CDS_2.fieldbyname('fromOrdNo').AsString;
FUnit := Self.CDS_2.FieldByName('QtyUnit').ASString;
end
else if cxTabControl1.TabIndex = 3 then
begin
FMainID := self.CDS_3.fieldbyname('MainID').AsString;
OrderNo.Text := self.CDS_3.fieldbyname('fromOrdNo').AsString;
FOrderNo := self.CDS_3.fieldbyname('fromOrdNo').AsString;
FUnit := Self.CDS_3.FieldByName('QtyUnit').ASString;
end;
if ShowModal = 1 then
begin
end;
end;
finally
frmPlanProfitDetails.Free;
end;
end;
procedure TfrmZDPrice.ToolButton5Click(Sender: TObject);
var
PBCIOID, PStkId: string;
Bookmark: TBookmark;
begin
inherited;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
Bookmark := CDS_1.GetBookmark
else if cxTabControl1.TabIndex = 2 then
Bookmark := CDS_2.GetBookmark
else if cxTabControl1.TabIndex = 3 then
Bookmark := CDS_3.GetBookmark;
PBCIOID := '';
PStkId := '';
if cxGrid2.ActiveLevel = cxGridLevel1 then
begin
if CDS_1.locate('ssel', true, []) = false then
begin
Application.MessageBox('请选择数据', '提示信息', 0);
exit;
end;
Tv2.BeginUpdate;
with CDS_1 do
begin
first;
while not eof do
begin
if FieldByName('ssel').AsBoolean = true then
begin
if PBCIOID = '' then
begin
PBCIOID := PBCIOID + '''' + FieldByName('BCIOID').AsString + '''';
end
else
begin
PBCIOID := PBCIOID + ',''' + FieldByName('BCIOID').AsString + '''';
end;
end;
Next;
end;
end;
with ADOQueryCmd do
begin
close;
SQL.Clear;
sql.add('update bs_cloth_io set chker = ' + QuotedStr(DName) + 'where bcioid in (' + PBCIOID + ')');
sql.add('update bs_cloth_io set Chktime = getdate() where bcioid in (' + PBCIOID + ')');
ExecSQL;
// ShowMessage(sql.text);
end;
Tv2.EndUpdate;
end
else if cxGrid2.ActiveLevel = cxGridLevel2 then
begin
if CDS_2.locate('ssel', true, []) = false then
begin
Application.MessageBox('请选择数据', '提示信息', 0);
exit;
end;
Tv3.BeginUpdate;
with CDS_2 do
begin
first;
while not eof do
begin
if FieldByName('ssel').AsBoolean = true then
begin
if PStkId = '' then
begin
PStkId := PStkId + '''' + FieldByName('StkId').AsString + '''';
end
else
begin
PStkId := PStkId + ',''' + FieldByName('StkId').AsString + '''';
end;
end;
Next;
end;
end;
with ADOQueryCmd do
begin
close;
SQL.Clear;
sql.add('update Trade_Cloth_Stock_ZD set ConMID = ' + QuotedStr(DName) + 'where stkid in (' + PStkId + ')');
sql.add('update Trade_Cloth_Stock_ZD set ConSID = CONVERT(VARCHAR(10), GETDATE(), 23) where stkid in (' + PStkId + ')');
// ShowMessage(sql.text);
ExecSQL;
end;
Tv3.endUpdate;
end
else if cxGrid2.ActiveLevel = cxGridLevel3 then
begin
if CDS_3.locate('ssel', true, []) = false then
begin
Application.MessageBox('请选择数据', '提示信息', 0);
exit;
end;
Tv4.BeginUpdate;
with CDS_3 do
begin
first;
while not eof do
begin
if FieldByName('ssel').AsBoolean = true then
begin
if PBCIOID = '' then
begin
PBCIOID := PBCIOID + '''' + FieldByName('ioid').AsString + '''';
end
else
begin
PBCIOID := PBCIOID + ',''' + FieldByName('ioid').AsString + '''';
end;
end;
Next;
end;
end;
with ADOQueryCmd do
begin
close;
SQL.Clear;
sql.add('update Trade_Cloth_io set Editer = ' + QuotedStr(DName) + 'where ioid in (' + PBCIOID + ')');
sql.add('update Trade_Cloth_io set Edittime = CONVERT(VARCHAR(10), GETDATE(), 23) where ioid in (' + PBCIOID + ')');
// ShowMessage(sql.text);
ExecSQL;
end;
Tv4.endUpdate;
end;
InitGrid();
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
begin
if CDS_1.BookmarkValid(Bookmark) then
begin
CDS_1.GotoBookmark(Bookmark);
end
end
else if cxTabControl1.TabIndex = 2 then
begin
if CDS_2.BookmarkValid(Bookmark) then
begin
CDS_2.GotoBookmark(Bookmark);
end
end
else if cxTabControl1.TabIndex = 3 then
begin
if CDS_3.BookmarkValid(Bookmark) then
begin
CDS_3.GotoBookmark(Bookmark);
end
end;
end;
procedure TfrmZDPrice.ToolButton6Click(Sender: TObject);
var
PBCIOID, PStkId: string;
Bookmark: TBookmark;
begin
inherited;
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
Bookmark := CDS_1.GetBookmark
else if cxTabControl1.TabIndex = 2 then
Bookmark := CDS_2.GetBookmark
else if cxTabControl1.TabIndex = 3 then
Bookmark := CDS_2.GetBookmark;
PBCIOID := '';
PStkId := '';
if cxGrid2.ActiveLevel = cxGridLevel1 then
begin
if CDS_1.locate('ssel', true, []) = false then
begin
Application.MessageBox('请选择数据', '提示信息', 0);
exit;
end;
Tv2.BeginUpdate;
with CDS_1 do
begin
first;
while not eof do
begin
if FieldByName('ssel').AsBoolean = true then
begin
if PBCIOID = '' then
begin
PBCIOID := PBCIOID + '''' + FieldByName('BCIOID').AsString + '''';
end
else
begin
PBCIOID := PBCIOID + ',''' + FieldByName('BCIOID').AsString + '''';
end;
end;
Next;
end;
end;
with ADOQueryCmd do
begin
close;
SQL.Clear;
sql.add('update bs_cloth_io set chker = null where bcioid in (' + PBCIOID + ')');
sql.add('update bs_cloth_io set Chktime = null where bcioid in (' + PBCIOID + ')');
ExecSQL;
// ShowMessage(sql.text);
end;
Tv2.EndUpdate;
end
else if cxGrid2.ActiveLevel = cxGridLevel2 then
begin
if CDS_2.locate('ssel', true, []) = false then
begin
Application.MessageBox('请选择数据', '提示信息', 0);
exit;
end;
Tv3.BeginUpdate;
with CDS_2 do
begin
first;
while not eof do
begin
if FieldByName('ssel').AsBoolean = true then
begin
if PStkId = '' then
begin
PStkId := PStkId + '''' + FieldByName('StkId').AsString + '''';
end
else
begin
PStkId := PStkId + ',''' + FieldByName('StkId').AsString + '''';
end;
end;
Next;
end;
end;
with ADOQueryCmd do
begin
close;
SQL.Clear;
sql.add('update Trade_Cloth_Stock_ZD set ConMID = null where stkid in (' + PStkId + ')');
sql.add('update Trade_Cloth_Stock_ZD set ConSID = null where stkid in (' + PStkId + ')');
ExecSQL;
end;
Tv3.endUpdate;
end
else if cxGrid2.ActiveLevel = cxGridLevel3 then
begin
if CDS_3.locate('ssel', true, []) = false then
begin
Application.MessageBox('请选择数据', '提示信息', 0);
exit;
end;
Tv4.BeginUpdate;
with CDS_3 do
begin
first;
while not eof do
begin
if FieldByName('ssel').AsBoolean = true then
begin
if PBCIOID = '' then
begin
PBCIOID := PBCIOID + '''' + FieldByName('ioid').AsString + '''';
end
else
begin
PBCIOID := PBCIOID + ',''' + FieldByName('ioid').AsString + '''';
end;
end;
Next;
end;
end;
with ADOQueryCmd do
begin
close;
SQL.Clear;
sql.add('update Trade_Cloth_IO set Editer = null where ioid in (' + PBCIOID + ')');
sql.add('update Trade_Cloth_IO set Edittime = null where ioid in (' + PBCIOID + ')');
ExecSQL;
end;
Tv4.endUpdate;
end;
InitGrid();
if (cxTabControl1.TabIndex = 0) or (cxTabControl1.TabIndex = 1) then
begin
if CDS_1.BookmarkValid(Bookmark) then
begin
CDS_1.GotoBookmark(Bookmark);
end
end
else if cxTabControl1.TabIndex = 2 then
begin
if CDS_2.BookmarkValid(Bookmark) then
begin
CDS_2.GotoBookmark(Bookmark);
end
end
else if cxTabControl1.TabIndex = 3 then
begin
if CDS_3.BookmarkValid(Bookmark) then
begin
CDS_3.GotoBookmark(Bookmark);
end
end;
end;
procedure TfrmZDPrice.Tv2CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
mColumn: TcxGridDBColumn;
mvalue: Variant;
begin
inherited;
mColumn := Tv2.GetColumnByFieldName('chker');
if mColumn = nil then
exit;
mvalue := AViewInfo.GridRecord.Values[mColumn.index];
if (mvalue <> null) and (mvalue <> '') then
begin
ACanvas.Font.Color := clBlue;
Exit;
end;
end;
procedure TfrmZDPrice.Tv3CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
mColumn: TcxGridDBColumn;
mvalue: Variant;
begin
inherited;
mColumn := Tv3.GetColumnByFieldName('ConMID');
if mColumn = nil then
exit;
mvalue := AViewInfo.GridRecord.Values[mColumn.index];
if (mvalue <> null) and (mvalue <> '') then
begin
ACanvas.Font.Color := clBlue;
Exit;
end;
end;
procedure TfrmZDPrice.Tv3DataControllerFilterChanged(Sender: TObject);
begin
inherited;
CDS_2.Filtered := false;
CDS_2.Filter := TV3.DataController.Filter.FilterText;
CDS_2.Filtered := true;
end;
procedure TfrmZDPrice.Tv4CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
mColumn: TcxGridDBColumn;
mvalue: Variant;
begin
inherited;
mColumn := Tv4.GetColumnByFieldName('Editer');
if mColumn = nil then
exit;
mvalue := AViewInfo.GridRecord.Values[mColumn.index];
if (mvalue <> null) and (mvalue <> '') then
begin
ACanvas.Font.Color := clBlue;
Exit;
end;
end;
procedure TfrmZDPrice.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
end.