D7gmYushang/色卡挂板仓库(SKGBhouse.dll)/U_PieceSampleCK.pas
DESKTOP-E401PHE\Administrator 1d94a89439 0
2025-09-24 13:13:14 +08:00

545 lines
16 KiB
ObjectPascal
Raw Permalink 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_PieceSampleCK;
interface
uses
Windows, Messages, SysUtils, StrUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, MMSystem,
cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxButtonEdit, cxDropDownEdit,
DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, BtnEdit, cxContainer,
cxTextEdit, cxCurrencyEdit, cxCheckBox, Menus, RM_Common, RM_Class, RM_e_Xls,
RM_Dataset, RM_System, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator;
type
TfrmPieceSampleCK = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
CRTime: TDateTimePicker;
Label2: TLabel;
CRType: TComboBox;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
CDS_Main: TClientDataSet;
ToolBar2: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
Label8: TLabel;
InoutNo: TEdit;
Label9: TLabel;
ToFactoryName: TBtnEditA;
Panel3: TPanel;
ADOQueryMain: TADOQuery;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1P_Code: TcxGridDBColumn;
v1Price: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
v1Money: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
ADOQueryPrint: TADOQuery;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
cv1Column6: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure ToFactoryNameBtnClick(Sender: TObject);
procedure v1QtyPropertiesEditValueChanged(Sender: TObject);
procedure FHAddressBtnDnClick(Sender: TObject);
procedure v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure ToolButton2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
procedure InitGrid();
function savedate(): Boolean;
{ Private declarations }
public
fkeyNO: string;
FType: integer;
fCKName: string;
{ Public declarations }
end;
var
frmPieceSampleCK: TfrmPieceSampleCK;
implementation
uses
U_DataLink, U_Fun10, U_ZDYHelp, U_ZdyAttachment, U_ZDYHelpSel, U_ZdyAttachGYS,
U_PieceSampleKcList;
{$R *.dfm}
function TfrmPieceSampleCK.savedate(): Boolean;
var
MaxNo: string;
begin
result := false;
try
ADOQueryCmd.Connection.BeginTrans;
CDS_Main.DisableControls;
CDS_Main.First;
with CDS_Main do
begin
while not eof do
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_Skgb_CR');
sql.Add('where CRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString)));
open;
end;
if ADOQueryCmd.IsEmpty then
begin
if GetLSNo(ADOQueryTmp, MaxNo, 'SKC', 'CK_Skgb_CR', 3, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('Filler').Value := trim(DName);
ADOQueryCmd.FieldByName('FillTime').Value := dateTimetostr(SGetServerDateTime(adoqueryTmp));
end
else
begin
MaxNo := Trim(CDS_Main.FieldByName('CRNO').AsString);
ADOQueryCmd.Edit;
ADOQueryCmd.FieldByName('editer').Value := trim(dName);
ADOQueryCmd.FieldByName('editTime').Value := SGetServerDateTime(adoqueryTmp);
end;
ADOQueryCmd.FieldByName('inoutNo').Value := trim(inoutNo.Text);
ADOQueryCmd.FieldByName('CRNO').Value := trim(MaxNo);
ADOQueryCmd.FieldByName('CKName').Value := trim(fCKName);
ADOQueryCmd.FieldByName('ToFactoryName').Value := trim(ToFactoryName.Text);
ADOQueryCmd.FieldByName('CRTime').Value := formatdateTime('yyyy-MM-dd', CRTIme.Date);
ADOQueryCmd.FieldByName('CRType').Value := trim(CRType.Text);
ADOQueryCmd.FieldByName('Chkstatus').Value := '1';
ADOQueryCmd.FieldByName('CRFlag').Value := '<27><><EFBFBD><EFBFBD>';
ADOQueryCmd.FieldByName('CRQtyFlag').Value := -1;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_Main, 'CK_Skgb_CR', 0);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
ADOQueryCmd.FieldByName('mainID').Value := trim(fieldbyname('mainID').AsString);
ADOQueryCmd.FieldByName('subID').Value := trim(fieldbyname('subID').AsString);
ADOQueryCmd.FieldByName('MJID').Value := trim(fieldbyname('MJID').AsString);
ADOQueryCmd.FieldByName('Rollnum').Value := fieldbyname('Rollnum').AsInteger;
ADOQueryCmd.Post;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// with ADOQueryCmd do
// begin
// Close;
// SQL.Clear;
//
// SQL.Add('select k1=ISNULL(SUM(X.CRQtyFlag*X.Qty),0),k2=ISNULL(SUM(X.CRQtyFlag*X.RollNum),0) from CK_Skgb_CR X where mjid= ' + quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString)));
// SQL.Add('and Valid=''Y''');
//// ShowMessage(SQL.Text);
// Open;
// end;
// if ADOQueryCmd.FieldByName('k1').asfloat < 0 then
// begin
// CDS_Main.EnableControls;
// ADOQueryCmd.Connection.RollbackTrans;
// Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
// Exit;
// end;
with ADOQueryTmp do
begin
close;
sql.Clear;
SQL.Add('SELECT * FROM (');
SQL.Add('SELECT SUM(crqtyFlag*Qty)qty FROM CK_Skgb_CR A WHERE Chkstatus=''1'' AND VALID=''Y'' ');
SQL.Add('AND P_CODE =' + quotedstr(trim(CDS_Main.fieldbyname('P_CODE').AsString)));
SQL.Add('AND yptype =' + quotedstr(trim(CDS_Main.fieldbyname('yptype').AsString)));
SQL.Add('AND QTYUNIT =' + quotedstr(trim(CDS_Main.fieldbyname('QTYUNIT').AsString)));
SQL.Add('GROUP BY P_CODE,YPTYPE,QTYUNIT ');
SQL.Add(')AA WHERE qty<0');
// ShowMessage(SQL.Text);
Open;
end;
if ADOQueryTmp.IsEmpty = False then
begin
CDS_Main.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
// with ADOQueryCmd do
// begin
// Close;
// SQL.Clear;
// SQL.Add('exec P_Up_SampleKc_sk ' + quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString)));
//// ShowMessage(SQL.Text);
// Open;
// end;
//
// if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>' then
// begin
// CDS_Main.EnableControls;
// ADOQueryCmd.Connection.RollbackTrans;
// Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
// Exit;
// end;
Edit;
FieldByName('CRNO').Value := trim(MaxNo);
post;
next;
end;
end;
CDS_Main.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
result := true;
except
CDS_Main.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
end;
end;
procedure TfrmPieceSampleCK.InitGrid();
begin
try
with adoqueryMain do
begin
close;
sql.Clear;
sql.Add('select A.* from CK_Skgb_CR A');
sql.Add('where A.CRNO=' + quotedstr(trim(fkeyNO)));
open;
end;
SCreateCDS20(adoqueryMain, CDS_Main);
SInitCDSData20(adoqueryMain, CDS_Main);
if not CDS_Main.IsEmpty then
begin
CRTime.Date := CDS_Main.fieldbyname('CRTime').AsDateTime;
CRType.ItemIndex := CRType.Items.IndexOf(trim(CDS_Main.fieldbyname('CRType').AsString));
InoutNO.Text := trim(CDS_Main.fieldbyname('InoutNO').AsString);
ToFactoryName.Text := trim(CDS_Main.fieldbyname('ToFactoryName').AsString);
end;
finally
end;
end;
procedure TfrmPieceSampleCK.FormDestroy(Sender: TObject);
begin
frmPieceSampleCK := nil;
end;
procedure TfrmPieceSampleCK.FormCreate(Sender: TObject);
begin
CRTime.Date := SGetServerDate10(ADOQueryTmp);
end;
procedure TfrmPieceSampleCK.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cahide;
end;
procedure TfrmPieceSampleCK.FormShow(Sender: TObject);
var
fbhType, fInoutNo: string;
begin
readCxGrid(trim(self.Caption), Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
InitGrid();
if fType = 0 then
begin
if GetLSNo(ADOQueryCmd, fkeyNo, 'SC', 'CK_Skgb_CR', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
inoutNo.Text := trim(fkeyNo);
end;
end;
procedure TfrmPieceSampleCK.TBSaveClick(Sender: TObject);
begin
if cds_main.IsEmpty then
exit;
CRTime.SetFocus;
if trim(CRType.Text) = '' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
exit;
end;
if trim(CRType.Text) <> '<27><><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>' then
begin
if trim(ToFactoryName.Text) = '' then
begin
application.MessageBox('<27><><EFBFBD>ⵥλ<E2B5A5><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
exit;
end;
end;
if cds_main.Locate('QtyUnit', '', []) then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
exit;
end;
if cds_main.Locate('QtyUnit', NULL, []) then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
exit;
end;
if savedate() then
begin
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
end
else
begin
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
end;
end;
procedure TfrmPieceSampleCK.v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'Cloth';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
Self.CDS_Main.Edit;
Self.CDS_Main.FieldByName('P_CodeName').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
Self.CDS_Main.FieldByName('P_Code').Value := Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmPieceSampleCK.ToolButton1Click(Sender: TObject);
var
FMJID: string;
begin
frmPieceSampleKcList := TfrmPieceSampleKcList.create(self);
with frmPieceSampleKcList do
begin
fType := 10;
fCKName := trim(self.fCKName);
if showmodal = 1 then
begin
cds_main.DisableControls;
cds_main.First;
while not cds_main.Eof do
begin
if (cds_main.fieldbyname('ssel').AsBoolean) then
begin
self.cds_main.Append;
self.cds_main.FieldByName('P_Code').Value := trim(cds_main.fieldbyname('P_Code').AsString);
self.cds_main.FieldByName('Qty').Value := cds_main.fieldbyname('kcQty').AsFloat;
self.cds_main.FieldByName('yptype').Value := trim(cds_main.fieldbyname('yptype').AsString);
self.cds_main.FieldByName('QtyUnit').Value := trim(cds_main.fieldbyname('QtyUnit').AsString);
self.cds_main.FieldByName('Price').Value := 0;
self.cds_main.FieldByName('Money').Value := 0;
self.cds_main.Post;
end;
cds_main.Next;
end;
cds_main.EnableControls;
end;
free;
end;
end;
procedure TfrmPieceSampleCK.TBCloseClick(Sender: TObject);
begin
writeCxGrid(trim(self.Caption), Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
close;
end;
procedure TfrmPieceSampleCK.ToFactoryNameBtnClick(Sender: TObject);
begin
// if (trim(CRType.Text) = '<27>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>') or (trim(CRType.Text) = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>') or (trim(CRType.Text) = '<27>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>') or (trim(CRType.Text) = '<27><><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>') then
// begin
if (trim(CRType.Text) = '<27><><EFBFBD>۳<EFBFBD><DBB3><EFBFBD>') then
begin
try
frmZdyAttachment := TfrmZdyAttachment.Create(Application);
with frmZdyAttachment do
begin
if ShowModal = 1 then
begin
ToFactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString);
end;
end;
finally
frmZdyAttachment.Free;
end;
end
else
begin
try
frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application);
with frmZdyAttachGYS do
begin
if ShowModal = 1 then
begin
ToFactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString);
end;
end;
finally
frmZdyAttachGYS.Free;
end;
end;
// end
// else
// begin
// try
// frmZdyAttachment := TfrmZdyAttachment.Create(Application);
// with frmZdyAttachment do
// begin
// if ShowModal = 1 then
// begin
// ToFactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString);
// end;
// end;
// finally
// frmZdyAttachment.Free;
// end;
// end;
end;
procedure TfrmPieceSampleCK.v1QtyPropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_Main do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
FieldbyName('Money').Value := format('%.2f', [FieldByName('Qty').AsFloat * FieldByName('Price').AsFloat]);
Post;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmPieceSampleCK.FHAddressBtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
TBtnEditC(Sender).TxtCode := '';
end;
procedure TfrmPieceSampleCK.v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
// try
// frmOrderListSel:=TfrmOrderListSel.Create(Application);
// with frmOrderListSel do
// begin
// if ShowModal=1 then
// begin
// Self.CDS_Main.Edit;
// Self.CDS_Main.FieldByName('OrderNo').Value:=Trim(Order_Main.fieldbyname('OrderNo').AsString);
// Self.CDS_Main.FieldByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString);
// end;
// end;
// finally
// frmOrderListSel.Free;
// end;
// self.tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmPieceSampleCK.v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'MLType';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
CDS_Main.Edit;
CDS_Main.FieldByName('P_Type').Value := Trim(ClientDataSet1.fieldbyname('zdyName').AsString);
CDS_Main.Post;
end;
end;
finally
frmZDYHelp.Free;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmPieceSampleCK.ToolButton2Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
exit;
if Trim(CDS_Main.FieldByName('CRNO').AsString) = '' then
begin
CDS_Main.Delete;
end
else
begin
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CK_Skgb_CR set Valid=''N'' where CRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString)));
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.Delete;
end;
end;
procedure TfrmPieceSampleCK.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmPieceSampleCK.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
end.