D7DJguanghui/检验管理/U_MDdrXx.pas
DESKTOP-E401PHE\Administrator 2d36421a0c ~
2025-04-30 16:42:56 +08:00

373 lines
11 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_MDdrXx;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
ComObj, Dialogs, ComCtrls, ToolWin, cxGraphics, cxControls, cxLookAndFeels,
cxLookAndFeelPainters, cxStyles, 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, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit,
cxNavigator, DB, cxDBData, cxCheckBox, cxTextEdit, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxGridCustomView, cxGrid, DBClient, cxGridCustomPopupMenu, cxGridPopupMenu,
ADODB, StdCtrls, ExtCtrls;
type
Tfrmmddrxx = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
ToolButton3: TToolButton;
TBAdd: TToolButton;
TBClose: TToolButton;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
Order_Main: TClientDataSet;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column4: TcxGridDBColumn;
v1Column23: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column28: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column25: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
v1Column24: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column20: TcxGridDBColumn;
v1Column21: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
ToolButton1: TToolButton;
ADOQueryTmp: TADOQuery;
OpenDialog1: TOpenDialog;
CDS_LM: TClientDataSet;
ADOQueryCmd: TADOQuery;
ADOTmp: TADOQuery;
Panel1: TPanel;
Label3: TLabel;
Label4: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label2: TLabel;
Label5: TLabel;
PBFactory: TEdit;
ConNo: TEdit;
RanFactory: TEdit;
Orddefstr5: TEdit;
PRTCodeName: TEdit;
Label1: TLabel;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Tv1Column8: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
procedure ToolButton3Click(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
private
procedure initGrid();
procedure SaveDate();
{ Private declarations }
public
Fmainid, Fsubid: string;
{ Public declarations }
end;
var
frmmddrxx: Tfrmmddrxx;
implementation
uses
U_RTFun, U_dataLink, U_ClothHCList;
{$R *.dfm}
procedure Tfrmmddrxx.initGrid();
begin
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from WFB_MJJY where 1<>1');
open;
end;
SCreateCDS20(ADOQueryTmp, Order_Main);
SInitCDSData20(ADOQueryTmp, Order_Main);
end;
procedure Tfrmmddrxx.ToolButton3Click(Sender: TObject);
begin
frmClothHCList := TfrmClothHCList.create(self);
with frmClothHCList do
begin
fType := '10';
if showmodal = 1 then
begin
// Self.Order_Main.Edit;
Fmainid := Trim(Order_Main.fieldbyname('mainid').AsString);
Fsubid := trim(Order_Main.fieldbyname('Subid').asstring);
Self.Label3.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:' + Trim(Order_Main.fieldbyname('OrderNoM').AsString);
Self.Label4.Caption := 'Ʒ<><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:' + Trim(Order_Main.fieldbyname('PRTCodeName').AsString);
Self.Label11.Caption := '<27><>ɫ:' + Trim(Order_Main.fieldbyname('PRTColor').AsString);
Self.Label1.Caption := '<27><><EFBFBD><EFBFBD>:' + Trim(Order_Main.fieldbyname('PRTkuanNo').AsString);
end;
free;
end;
end;
procedure Tfrmmddrxx.TBAddClick(Sender: TObject);
var
excelApp, WorkBook: Variant;
i, j, k, LX, ExcelRowCount: integer;
maxId, FCPID, FCPName, t1, t2, t3, FFID: string;
begin
if Fmainid = '' then
begin
application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1>ָʾ<D6B8><CABE>,<2C><>ѡ<EFBFBD><D1A1>ָʾ<D6B8><CABE><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
try
excelApp := CreateOleObject('Excel.Application');
openDialog1.Filter := '*.CSV;*.xls';
if opendialog1.Execute then
begin
WorkBook := excelApp.WorkBooks.Open(OpenDialog1.FileName);
end
else
exit;
excelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>EXCEL<45><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
CDS_LM.EmptyDataSet;
for j := 0 to Tv1.ColumnCount - 1 do
begin
with CDS_LM do
begin
Append;
FieldByName('LCode').Value := trim(Tv1.Columns[j].DataBinding.FieldName);
FieldByName('LName').Value := trim(Tv1.Columns[j].Caption);
Post;
end;
end;
try
for i := 1 to 50 do
begin
if trim(WorkBook.WorkSheets[1].Cells[1, i].value) = '' then
continue;
if CDS_LM.Locate('LName', trim(WorkBook.WorkSheets[1].Cells[1, i].value), []) then
begin
with CDS_LM do
begin
Edit;
FieldByName('LXH').Value := i;
Post;
end;
end;
end;
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ', MB_ICONERROR);
exit;
end;
try
for i := 2 to ExcelRowCount do
begin
with Order_Main do
begin
Append;
CDS_LM.First;
while not CDS_LM.Eof do
begin
if (CDS_LM.FieldByName('LXH').AsInteger > 0) then
Order_Main.fieldbyname(CDS_LM.FieldByName('LCode').AsString).Value := WorkBook.WorkSheets[1].Cells[i, CDS_LM.FieldByName('LXH').AsInteger].Value;
CDS_LM.Next;
end;
// CDS_Import.fieldbyname('OurCoNo').Value := '91330602MA2JTEXX4B';
// CDS_Import.fieldbyname('OurCoName').Value := 'Բ<><D4B2>Բ';
Post;
end;
end;
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
except
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
exit;
end;
end;
procedure Tfrmmddrxx.FormShow(Sender: TObject);
begin
ReadCxGrid(Self.Caption, Tv1, '<27><EFBFBD><EBB5A5><EFBFBD><EFBFBD>');
with CDS_LM do
begin
FieldDefs.Clear;
FieldDefs.Add('LXH', ftInteger, 0);
FieldDefs.Add('lCode', ftString, 40);
FieldDefs.Add('LName', ftString, 40);
close;
CreateDataSet;
end;
initGrid();
end;
procedure Tfrmmddrxx.TBRafreshClick(Sender: TObject);
begin
if Order_Main.Locate('MJXH', null, []) then
begin
application.MessageBox('<27><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>', '<27><>ʾ');
exit;
end;
SaveDate();
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from WFB_MJJY where 1<>1');
open;
end;
SCreateCDS20(ADOQueryTmp, Order_Main);
SInitCDSData20(ADOQueryTmp, Order_Main);
end;
procedure Tfrmmddrxx.SaveDate();
var
MaxNo, FInvoiceID: string;
XH: Integer;
begin
if Order_Main.IsEmpty then
exit;
ADOQueryCmd.Connection.BeginTrans;
try
with Order_Main do
begin
first;
// XH := 1;
// if (Order_Main.FieldByName('MJXH').AsInteger >= 1) then
// begin
while not eof do
begin
if (Order_Main.FieldByName('MJXH').AsInteger < 1) then
begin
Next;
end
else
begin
if GetLSNo(ADOTmp, MaxNo, '', 'WFB_MJJY', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('select * from WFB_MJJY where mainid =''' + fmainid + ''' and subid =''' + fsubid + ''' and DRcolor =''' + trim(Order_Main.fieldbyname('DRcolor').AsString) + ''' and DRkuanno =''' + trim(Order_Main.fieldbyname('DRkuanno').AsString) + ''' and MJStr4=''' + trim(Order_Main.fieldbyname('MJStr4').AsString) + ''' and MJXH=''' + trim(Order_Main.fieldbyname('MJXH').AsString) + ''' ');
open;
if isempty then
begin
append;
ADOQueryCmd.FieldByName('Filler').Value := Trim(DName);
ADOQueryCmd.FieldByName('Filltime').Value := SGetServerDateTime(ADOQueryTmp);
end
else
edit;
SSetSaveDataCDSNew(ADOQueryCmd, Tv1, Order_Main, 'WFB_MJJY', 0);
fieldbyname('mainid').Value := Trim(Fmainid);
fieldbyname('subid').Value := Trim(Fsubid);
FieldByName('MJStr2').Value := <><CEB4><EFBFBD><EFBFBD>';
FieldByName('MJType').Value := '<27><>Ʒ';
FieldByName('JTType').Value := '<27><><EFBFBD><EFBFBD>';
fieldbyname('mjid').AsString := Trim(MaxNo);
post;
end;
// XH := XH + 1;
next;
end;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update WFB_MJJY Set MJlen=round(mjlen,1) ');
sql.Add('where mainid=''' + Trim(Fmainid) + '''');
ExecSQL;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ');
Modalresult := 1;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure Tfrmmddrxx.ToolButton1Click(Sender: TObject);
begin
if Order_Main.IsEmpty then
exit;
Order_Main.delete;
end;
procedure Tfrmmddrxx.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(Self.Caption, Tv1, '<27><EFBFBD><EBB5A5><EFBFBD><EFBFBD>');
Close;
end;
procedure Tfrmmddrxx.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure Tfrmmddrxx.FormDestroy(Sender: TObject);
begin
frmmddrxx := nil;
end;
end.