D7fhyuhan/应收应付/U_MLJGCKlistSel.pas

522 lines
15 KiB
ObjectPascal
Raw Permalink Normal View History

2025-09-21 08:59:38 +08:00
unit U_MLJGCKlistSel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Common,
RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset, cxTextEdit, cxPC,
cxCheckBox, Menus, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
dxBarBuiltInMenu;
type
TfrmMLJGCKlistSel = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
Label2: TLabel;
Label3: TLabel;
OrderNo: TEdit;
CRType: TComboBox;
Label5: TLabel;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
CDS_Main: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOPrint: TADOQuery;
RMXLSExport1: TRMXLSExport;
inoutNo: TEdit;
Label7: TLabel;
RMDB_Main: TRMDBDataSet;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle_gridRow: TcxStyle;
cxStyle_gridFoot: TcxStyle;
cxStyle_gridHead: TcxStyle;
cxStyle_gridGroupBox: TcxStyle;
cxStyle_yellow: TcxStyle;
cxStyle_Red: TcxStyle;
cxStyle_fontBlack: TcxStyle;
cxStyle_fontclFuchsia: TcxStyle;
cxStyle_fontclPurple: TcxStyle;
cxStyle_fontclGreen: TcxStyle;
cxStyle_fontclBlue: TcxStyle;
cxStyle_fontclTeal: TcxStyle;
cxStyle_fontclOlive: TcxStyle;
Label8: TLabel;
custName: TEdit;
ADOQueryMain: TADOQuery;
RM1: TRMGridReport;
P_CodeName: TEdit;
P_Color: TEdit;
Label10: TLabel;
Label11: TLabel;
P_Code: TEdit;
Label14: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
ToolButton1: TToolButton;
cxTabControl1: TcxTabControl;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column4: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1INoutNo: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1CRTime: TcxGridDBColumn;
v1CRType: TcxGridDBColumn;
v1P_Code: TcxGridDBColumn;
v1P_CodeName: TcxGridDBColumn;
v1P_SPEC: TcxGridDBColumn;
v1P_Color: TcxGridDBColumn;
v1P_MF: TcxGridDBColumn;
v1P_KZ: TcxGridDBColumn;
v1MJID: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
v1Filler: TcxGridDBColumn;
v1FillTime: TcxGridDBColumn;
v1Price: TcxGridDBColumn;
v1money: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure OrderNoChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
private
procedure InitGrid();
function YSData(ADO: TADOQuery): Boolean;
function YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean;
procedure SetStatus();
{ Private declarations }
public
fCKName: string;
canshu1, canshu2: string;
{ Public declarations }
end;
var
frmMLJGCKlistSel: TfrmMLJGCKlistSel;
implementation
uses
U_DataLink, U_Fun10, U_ZDYHelp;
{$R *.dfm}
procedure TfrmMLJGCKlistSel.SetStatus();
begin
{ TFH.Visible:=false;
TBZF.Visible:=false;
TBedit.Visible:=false;
TBPrint.Visible:=false;
case cxTabControl1.TabIndex of
0:
begin
TBZF.Visible:=true;
TBedit.Visible:=true;
TBPrint.Visible:=true;
end;
1:
begin
TFH.Visible:=true;
TBZF.Visible:=true;
TBEdit.Visible:=true;
end;
2:
begin
// tbdel.Visible:=true;
end;
end;
IF (canshu2<>'<27><>Ȩ<EFBFBD><C8A8>') and (cxTabControl1.TabIndex=0) then
begin
tbedit.Visible:=false;
tbdel.Visible:=false;
TBZF.Visible:=false;
end;}
end;
function TfrmMLJGCKlistSel.YSData(ADO: TADOQuery): Boolean;
var
CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string;
begin
Result := False;
with ADOQueryTmp do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 ');
Open;
end;
if not ADOQueryTmp.IsEmpty then
begin
CRID := ADOQueryTmp.fieldbyname('CRID').AsString;
end
else
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_CRID set CRID=CRID+1');
sql.Add('select * from YF_Money_CRID ');
Open;
end;
CRID := ADOQueryCmd.fieldbyname('CRID').AsString;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring);
FieldByName('ZdyStr1').Value := <><D3A6><EFBFBD><EFBFBD>';
Post;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete from YF_Money_CR ');
sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + '''');
sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + '''');
sql.Add(' and YFName=''<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>'' ');
execsql;
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR ');
sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + '''');
sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + '''');
sql.Add(' and YFName=''<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>'' ');
Open;
end;
if ADOQueryTmp.IsEmpty then
begin
if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then
begin
Application.MessageBox('ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('YFID').Value := Trim(YFID);
FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString);
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('Filler').Value := Trim(DName);
FieldByName('CRType').Value := <>տ<EFBFBD><D5BF>Ǽ<EFBFBD>';
FieldByName('CRFlag').Value := <><D3A6><EFBFBD><EFBFBD>';
FieldByName('QtyFlag').Value := 1;
FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring);
FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTime').AsDateTime));
FieldByName('YFType').Value := '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('ps').Value := ADO.fieldbyname('RollNum').AsFloat;
FieldByName('Qty').Value := ADO.fieldbyname('Qty').AsFloat;
FieldByName('Price').Value := ADO.fieldbyname('Price').AsFloat;
FieldByName('Money').Value := ADO.fieldbyname('Money').AsFloat;
FieldByName('BBMoney').Value := ADO.fieldbyname('Money').AsFloat;
FieldByName('HuiLv').Value := 1;
FieldByName('BZType').Value := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('QtyUnit').Value := Trim(ADO.fieldbyname('QtyUnit').AsString);
FieldByName('ComTaiTou').Value := Trim(cust);
FieldByName('YFName').Value := '<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>';
FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString);
FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString);
FieldByName('status').Value := '0';
Post;
end;
end
else
begin
YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
sql.Add(' where CRID=' + CRID);
ExecSQL;
end;
Result := True;
end;
function TfrmMLJGCKlistSel.YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean;
var
CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string;
begin
Result := False;
with ADOQueryTmp do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 ');
Open;
end;
if not ADOQueryTmp.IsEmpty then
begin
CRID := ADOQueryTmp.fieldbyname('CRID').AsString;
end
else
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_CRID set CRID=CRID+1');
sql.Add('select * from YF_Money_CRID ');
Open;
end;
CRID := ADOQueryCmd.fieldbyname('CRID').AsString;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring);
FieldByName('ZdyStr1').Value := <><D3A6><EFBFBD><EFBFBD>';
Post;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete from YF_Money_CR ');
sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + '''');
sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + '''');
sql.Add(' and YFName=''' + trim(fYFName) + ''' ');
execsql;
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR ');
sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + '''');
sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + '''');
sql.Add(' and YFName=''' + trim(fYFName) + ''' ');
Open;
end;
if ADOQueryTmp.IsEmpty then
begin
if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then
begin
Application.MessageBox('ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('YFID').Value := Trim(YFID);
FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString);
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('Filler').Value := Trim(DName);
FieldByName('CRType').Value := <>տ<EFBFBD><D5BF>Ǽ<EFBFBD>';
FieldByName('CRFlag').Value := <><D3A6><EFBFBD><EFBFBD>';
FieldByName('QtyFlag').Value := 1;
FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring);
FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTIme').AsDateTime));
FieldByName('YFType').Value := '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('Qty').Value := 1;
FieldByName('Price').Value := fmoney;
FieldByName('Money').Value := fmoney;
FieldByName('BBMoney').Value := fmoney;
FieldByName('HuiLv').Value := 1;
FieldByName('BZType').Value := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('QtyUnit').Value := '<27><>';
FieldByName('ComTaiTou').Value := Trim(cust);
FieldByName('YFName').Value := fYFName;
FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString);
FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString);
FieldByName('status').Value := '0';
Post;
end;
end
else
begin
YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
sql.Add(' where CRID=' + CRID);
ExecSQL;
end;
Result := True;
end;
procedure TfrmMLJGCKlistSel.InitGrid();
begin
try
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add('select A.* ');
SQL.Add(' from CK_ML_CR A ');
sql.Add('where CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' ');
sql.Add('and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' ');
sql.Add('and CRFlag=''<27><><EFBFBD><EFBFBD>'' and CRType=''<27>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>'' and A.valid=''Y'' ');
if cxTabControl1.TabIndex = 0 then
SQL.Add(' and not exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.CRNO ) ')
else
SQL.Add(' and exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.CRNO )');
Open;
open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
end;
end;
procedure TfrmMLJGCKlistSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cafree;
end;
procedure TfrmMLJGCKlistSel.FormDestroy(Sender: TObject);
begin
frmMLJGCKlistSel := nil;
end;
procedure TfrmMLJGCKlistSel.OrderNoChange(Sender: TObject);
begin
if ADOQuerymain.Active = False then
Exit;
SDofilter(ADOQuerymain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQuerymain, CDS_Main);
SInitCDSData20(ADOQuerymain, CDS_Main);
end;
procedure TfrmMLJGCKlistSel.FormShow(Sender: TObject);
begin
readCxGrid(self.Caption, Tv1, <><D3A6><EFBFBD>ѡ<E2B7A2><D1A1>');
SetStatus();
InitGrid();
end;
procedure TfrmMLJGCKlistSel.FormCreate(Sender: TObject);
begin
EndDate.Date := SGetServerDate10(ADOQueryTmp);
BegDate.Date := EndDate.Date - 7;
cxGrid1.Align := alclient;
end;
procedure TfrmMLJGCKlistSel.TBCloseClick(Sender: TObject);
begin
writeCxGrid(self.Caption, Tv1, <><D3A6><EFBFBD>ѡ<E2B7A2><D1A1>');
close;
end;
procedure TfrmMLJGCKlistSel.TBRafreshClick(Sender: TObject);
begin
initGrid();
end;
procedure TfrmMLJGCKlistSel.v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
var
colIdx0, colIdx1: integer;
begin
colIdx0 := tv1.GetColumnByFieldName('CRNO').Index;
if (ARow1.Values[colIdx0] = ARow2.Values[colIdx0]) then
AAreEqual := True
else
AAreEqual := False;
end;
procedure TfrmMLJGCKlistSel.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmMLJGCKlistSel.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmMLJGCKlistSel.ToolButton1Click(Sender: TObject);
begin
ModalResult := 1;
end;
end.