D7wmbeiqi/贝其贸易管理/U_frmFabSQ.pas
DESKTOP-E401PHE\Administrator 0843d5fa7d ~
2025-04-30 16:20:38 +08:00

693 lines
18 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_frmFabSQ;
interface
uses
Windows, Messages, SysUtils, strutils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGrid, ADODB, cxGridCustomPopupMenu,
cxGridPopupMenu, DBClient, BtnEdit, cxBlobEdit, cxShellComboBox,
cxDropDownEdit, cxFontNameComboBox, cxButtonEdit, cxCurrencyEdit,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack,
dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom,
dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray,
dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters,
dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue,
dxSkinscxPCPainter, cxContainer, cxTextEdit, cxMaskEdit;
type
TfrmFabSQ = class(TForm)
ToolBar1: TToolBar;
TSave: TToolButton;
TClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
SQNo: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
ToolBar2: TToolBar;
TAdd: TToolButton;
TDel: TToolButton;
TVC_Note: TcxGridDBColumn;
SQDate: TDateTimePicker;
ADOQueryTmp: TADOQuery;
ADOQueryCMD: TADOQuery;
DataSource1: TDataSource;
TVC_Qty: TcxGridDBColumn;
TVC_Unit: TcxGridDBColumn;
Note: TMemo;
Cds_Sub: TClientDataSet;
SQName: TBtnEditA;
cxGridPopupMenu1: TcxGridPopupMenu;
Label5: TLabel;
Label6: TLabel;
PONo: TEdit;
Label7: TLabel;
defstr1: TBtnEditA;
ConNo: TBtnEditA;
V1Column1: TcxGridDBColumn;
V1Column2: TcxGridDBColumn;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label13: TLabel;
Label12: TLabel;
defstr5: TBtnEditA;
defstr6: TBtnEditA;
defstr7: TBtnEditA;
defstr2: TEdit;
defstr3: TEdit;
defstr4: TEdit;
Label14: TLabel;
customerNoName: TEdit;
V1Column6: TcxGridDBColumn;
V1Column4: TcxGridDBColumn;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
factoryName: TBtnEditA;
P_CodeName: TEdit;
P_Spec: TEdit;
P_CF: TEdit;
P_MF: TEdit;
P_KZ: TEdit;
Label21: TLabel;
FYNO: TBtnEditA;
Label22: TLabel;
defstr8: TEdit;
Label23: TLabel;
CompanyName: TcxButtonEdit;
procedure TCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TSaveClick(Sender: TObject);
procedure TAddClick(Sender: TObject);
procedure TDelClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TVC_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure NoteDblClick(Sender: TObject);
procedure SQNameBtnClick(Sender: TObject);
procedure TVC_Unit2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure TVC_UnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure V1JGafterPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure ConNoBtnClick(Sender: TObject);
procedure defstr1BtnClick(Sender: TObject);
procedure defstr5BtnClick(Sender: TObject);
procedure defstr6BtnClick(Sender: TObject);
procedure defstr7BtnClick(Sender: TObject);
procedure factoryNameBtnClick(Sender: TObject);
procedure FYNOBtnClick(Sender: TObject);
procedure CompanyNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
private
function savedata(): Boolean;
procedure initdata();
{ Private declarations }
public
formid: integer;
FMainid: string;
{ Public declarations }
end;
var
frmFabSQ: TfrmFabSQ;
implementation
uses
U_Fun, U_ZDYHelp, U_ZDYHelpSel, U_ContractList_CX, U_DataLink, U_ZdyAttachGYS,
U_FanYangList_sel;
{$R *.dfm}
procedure TfrmFabSQ.initdata();
begin
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from contract_Main_Sh ');
sql.Add('where Mainid=''' + trim(Fmainid) + '''');
open;
if not isempty then
begin
SCSHDataNew(adoqueryTmp, Panel1, 0);
end;
end;
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.add('select * from contract_Sub_Sh ');
sql.Add('where Mainid=''' + trim(Fmainid) + '''');
open;
SCreateCDS20(ADOQueryTmp, Cds_Sub);
SInitCDSData20(ADOQueryTmp, Cds_Sub);
end;
end;
function TfrmFabSQ.savedata(): Boolean;
var
maxNo: string;
fSQNo: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
if trim(Fmainid) = '' then
begin
if getLSNo(ADOQueryTmp, fSQNo, trim(conNO.text), 'contract_Main_Sh', 3, 0) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>', '<27><>ʾ', 0);
exit;
end;
sQNO.text := 'SQ-' + trim(conNO.text) + '-' + rightBstr(fSQNo, 3);
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('select * from contract_main_Sh ');
sql.Add('where SQNo=' + quotedstr(trim(SQNo.Text)));
open;
if not isempty then
begin
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EBB5A5><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>', '<27><>ʾ');
exit;
end;
end;
if getLSNo(ADOQueryTmp, Fmainid, 'SM', 'contract_Main_Sh', 3, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>', '<27><>ʾ', 0);
exit;
end;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('select * from contract_main_Sh ');
sql.Add('where Mainid=''' + trim(Fmainid) + '''');
open;
if ADOQueryCmd.IsEmpty then
begin
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('Filler').Value := DName;
end
else
begin
ADOQueryCmd.Edit;
ADOQueryCmd.FieldByName('editer').Value := DName;
ADOQueryCmd.FieldByName('editTime').Value := now();
end;
SSetsaveSqlNew(ADOQueryCmd, 'contract_main_Sh', Panel1, 0);
fieldbyname('Mainid').Value := Fmainid;
fieldbyname('SQDate').Value := formatdatetime('yyyy-MM-dd', SQDate.DateTime);
fieldbyname('chkstatus').Value := '0';
post;
end;
with cds_sub do
begin
first;
while not Eof do
begin
if trim(cds_Sub.fieldbyname('subID').asstring) = '' then
begin
if GetLSNo(ADOQueryTmp, maxNo, 'Sh', 'contract_sub_Sh', 3, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>', '<27><>ʾ', 0);
exit;
end;
end
else
begin
maxNo := trim(cds_Sub.fieldbyname('subID').asstring);
end;
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from contract_sub_Sh ');
sql.Add('where Mainid=''' + trim(Fmainid) + '''');
sql.Add('and subID=''' + trim(maxNo) + '''');
open;
if isempty then
append
else
edit;
fieldbyname('Mainid').Value := trim(FMainid);
fieldbyname('subid').Value := trim(maxNo);
RTSetSaveDataCDS(ADOQueryTmp, Tv1, Cds_Sub, 'contract_sub_Sh', 0);
fieldbyname('C_Qty').Value := cds_Sub.fieldbyname('C_Qty').asfloat;
post;
end;
cds_Sub.Edit;
cds_Sub.FieldByName('SubId').Value := Trim(maxNo);
Next;
end;
end;
ADOQuerycmd.Connection.CommitTrans;
application.messagebox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>', '<27><>ʾ', 0);
ModalResult := 1;
except
ADOQueryCmd.connection.RollbackTrans;
application.messagebox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>', '<27><>ʾ', 0);
end;
end;
procedure TfrmFabSQ.TCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmFabSQ.FormShow(Sender: TObject);
begin
ReadCxGrid(self.Caption + tv1.Name + '1', Tv1);
if formid = 2 then
begin
TSave.Enabled := False;
ToolBar2.Visible := false;
end;
SQDate.datetime := SGetServerDateTime(ADOQueryTmp);
SQName.Text := trim(DName);
initdata();
if formid = 3 then
begin
SQNo.Text := '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
FMainId := '';
formid := 0;
with Cds_Sub do
begin
First;
while not Eof do
begin
Edit;
FieldByName('MainId').Value := '';
FieldByName('SubId').Value := '';
Post;
Next;
end;
end;
end;
end;
procedure TfrmFabSQ.FormCreate(Sender: TObject);
begin
cxGrid1.Align := alclient;
end;
procedure TfrmFabSQ.TSaveClick(Sender: TObject);
begin
if trim(SQNo.Text) = '' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>', '<27><>ʾ', 0);
exit;
end;
if trim(ConNo.Text) = '' then
begin
application.MessageBox('<27><>ͬ<EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>', '<27><>ʾ', 0);
exit;
end;
if trim(P_CodeName.Text) = '' then
begin
application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>', '<27><>ʾ', 0);
exit;
end;
if Cds_Sub.IsEmpty then
begin
application.MessageBox('<27><>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>', '<27><>ʾ', 0);
exit;
end;
savedata();
end;
procedure TfrmFabSQ.TAddClick(Sender: TObject);
begin
with Cds_Sub do
begin
append;
post;
end;
end;
procedure TfrmFabSQ.TDelClick(Sender: TObject);
begin
if Cds_Sub.IsEmpty then
Exit;
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from contract_Sub ');
sql.add('where Sdefstr7=''' + trim(Cds_Sub.fieldbyname('subid').asstring) + '''');
open;
if not isempty then
begin
application.MessageBox('<27>Ѳɹ<D1B2><C9B9><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>', '<27><>ʾ');
exit;
end;
end;
with ADOQueryTmp do
begin
close;
sql.clear;
sql.Add('delete from contract_sub_Sh where subID=''' + trim(cds_sub.fieldbyname('subID').AsString + ''''));
execsql;
end;
cds_sub.Delete;
end;
procedure TfrmFabSQ.FormDestroy(Sender: TObject);
begin
FrmFabSQ := nil;
end;
procedure TfrmFabSQ.FormClose(Sender: TObject; var Action: TCloseAction);
begin
writeCxGrid(self.Caption + tv1.Name + '1', Tv1);
Action := cafree;
end;
procedure TfrmFabSQ.TVC_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.create(self);
with frmZDYHelp do
begin
flag := 'Cloth';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if showmodal = 1 then
begin
with cds_sub do
begin
edit;
FieldByName('C_CodeName').AsString := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
end;
finally
frmZDYHelp.free;
end;
end;
procedure TfrmFabSQ.NoteDblClick(Sender: TObject);
var
i: integer;
begin
try
frmZDYHelpSel := TfrmZDYHelpSel.Create(Application);
with frmZDYHelpSel do
begin
flag := 'note';
flagname := '<27><>ע';
if ShowModal = 1 then
begin
note.Lines.Clear;
with ClientDataSet1 do
begin
First;
while not Eof do
begin
if FieldByName('SSel').AsBoolean = True then
begin
i := i + 1;
note.Lines.Add(inttostr(i) + '.' + FieldByName('ZDYName').AsString)
end;
Next;
end;
end;
end;
end;
finally
frmZDYHelpSel.Free;
end;
end;
procedure TfrmFabSQ.SQNameBtnClick(Sender: TObject);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag := 'SQName';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if showmodal = 1 then
begin
SQName.Text := trim(ClientDataSet1.fieldbyname('ZDYName').asstring);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmFabSQ.TVC_Unit2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.create(self);
with frmZDYHelp do
begin
flag := 'c_Unit2';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ';
if showmodal = 1 then
begin
with cds_sub do
begin
edit;
FieldByName('C_unit2').AsString := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
end;
finally
frmZDYHelp.free;
end;
end;
procedure TfrmFabSQ.TVC_UnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
{try
frmZDYHelp:=TfrmZDYHelp.create(self);
with frmZDYHelp do
begin
flag:='c_Unit2';
flagname:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ';
if showmodal=1 then
begin
with cds_sub do
begin
edit;
FieldByName('C_unit').AsString:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
end;
finally
frmZDYHelp.free;
end;}
end;
procedure TfrmFabSQ.V1JGafterPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'Factory';
flagname := '<27><><EFBFBD>ӹ<EFBFBD>';
MainType := 'PBFactory';
if ShowModal = 1 then
begin
with Cds_Sub do
begin
Edit;
FieldByName('JGafter').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmFabSQ.ConNoBtnClick(Sender: TObject);
begin
frmContractList_CX := TfrmContractList_CX.create(self);
with frmContractList_CX do
begin
if showModal = 1 then
begin
Self.ConNo.Text := Order_Main.fieldbyname('ConNo').AsString;
// Self.SQNo.Text:=Order_Main.fieldbyname('ConNo').AsString;
Self.PONo.Text := Order_Main.fieldbyname('KHConNO').AsString;
Self.customerNoName.Text := Order_Main.fieldbyname('customerNoName').AsString;
Self.P_CodeName.Text := ADOQuerySub.fieldbyname('PrtCodeName').AsString;
Self.P_Spec.Text := ADOQuerySub.fieldbyname('PRTspec').AsString;
Self.P_CF.Text := ADOQuerySub.fieldbyname('PRTcf').AsString;
Self.P_MF.Text := ADOQuerySub.fieldbyname('PRTMF').AsString;
Self.P_KZ.Text := ADOQuerySub.fieldbyname('PRTKZ').AsString;
Self.CompanyName.Text := Order_Main.fieldbyname('SYRName').AsString;
with ADOQuerySub do
begin
first;
while not eof do
begin
with Cds_Sub do
begin
append;
fieldbyname('C_Color').Value := ADOQuerySub.fieldbyname('PRTColor').AsString;
fieldbyname('C_Qty').Value := ADOQuerySub.fieldbyname('PRTOrderQty').AsString;
fieldbyname('C_Unit').Value := ADOQuerySub.fieldbyname('OrderUnit').AsString;
fieldbyname('Sdefstr2').Value := Order_Main.fieldbyname('DlyDate').AsString;
post;
end;
next;
end;
end;
end;
free;
end;
end;
procedure TfrmFabSQ.defstr1BtnClick(Sender: TObject);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag := 'SQBS';
flagname := '<27><>ɴ';
if showmodal = 1 then
begin
defstr1.Text := trim(ClientDataSet1.fieldbyname('ZDYName').asstring);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmFabSQ.defstr5BtnClick(Sender: TObject);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag := 'SQHJG';
flagname := '<27><><EFBFBD>ӹ<EFBFBD>';
if showmodal = 1 then
begin
defstr5.Text := trim(ClientDataSet1.fieldbyname('ZDYName').asstring);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmFabSQ.defstr6BtnClick(Sender: TObject);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag := 'SQXS';
flagname := '<27><><EFBFBD>۷<EFBFBD>ʽ';
if showmodal = 1 then
begin
defstr6.Text := trim(ClientDataSet1.fieldbyname('ZDYName').asstring);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmFabSQ.defstr7BtnClick(Sender: TObject);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(self);
with frmZDYHelp do
begin
flag := 'SQYS';
flagname := '<27><><EFBFBD>շ<EFBFBD>ʽ';
if showmodal = 1 then
begin
defstr7.Text := trim(ClientDataSet1.fieldbyname('ZDYName').asstring);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmFabSQ.factoryNameBtnClick(Sender: TObject);
begin
try
frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application);
with frmZdyAttachGYS do
begin
if ShowModal = 1 then
begin
factoryName.Text := Trim(CDS_HZ.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZdyAttachGYS.Free;
end;
end;
procedure TfrmFabSQ.FYNOBtnClick(Sender: TObject);
begin
FrmFanYangList_sel := TFrmFanYangList_sel.create(self);
with FrmFanYangList_sel do
begin
if showmodal = 1 then
begin
self.FYNO.text := Order_Main.fieldbyname('orderNo').asstring;
end;
free;
end;
end;
procedure TfrmFabSQ.CompanyNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'OrdDefStr2';
flagname := '<27>跽';
if ShowModal = 1 then
begin
// FXS := 99;
CompanyName.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
end.