unit U_WarpRollerRk; 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, cxTextEdit, BtnEdit, cxCheckBox, 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; type TfrmWarpRollerRk = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; CRTime: TDateTimePicker; Label2: TLabel; CRType: TComboBox; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; ToolBar2: TToolBar; ToolButton2: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; v1P_Code: TcxGridDBColumn; JZRKNo: TEdit; Label8: TLabel; Label6: TLabel; v1Column2: TcxGridDBColumn; Label9: TLabel; FactoryName: TBtnEditA; Label3: TLabel; fromFactoryName: TBtnEditA; btn1: TToolButton; procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure v1P_ColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1P_CodePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1P_ColorPropertiesEditValueChanged(Sender: TObject); procedure v1QtyPropertiesEditValueChanged(Sender: TObject); procedure v1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure FactoryNameBtnClick(Sender: TObject); procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure v1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure fromFactoryNameBtnClick(Sender: TObject); procedure btn1Click(Sender: TObject); private procedure InitGrid(); function savedate(): Boolean; function CheckData(): Boolean; { Private declarations } public fkeyNO: string; FType: integer; { Public declarations } end; var frmWarpRollerRk: TfrmWarpRollerRk; implementation uses U_DataLink, U_Fun10, U_ZDYHelp, U_ZdyAttachment, U_ZdyAttachGYS, U_ClothSCHZListSel, U_WarpBeamManageList; {$R *.dfm} function TfrmWarpRollerRk.CheckData(): Boolean; begin try if Trim(CRType.Text) = '' then raise Exception.Create('入库类型不能为空!'); // if Trim(fromFactoryName.Text) = '' then // raise Exception.Create('来自工厂不能为空!'); if Trim(FactoryName.Text) = '' then raise Exception.Create('存放工厂不能为空!'); if cds_main.IsEmpty then raise Exception.Create('产品信息不能为空!'); if cds_main.Locate('WBCode', NULL, []) then raise Exception.Create('经轴编号不能为空!'); if cds_main.Locate('WBCode', '', []) then raise Exception.Create('经轴编号不能为空!'); Result := True; except Result := false; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; function TfrmWarpRollerRk.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_WarpBeam_CR'); sql.Add('where JZRKID=' + quotedstr(Trim(CDS_Main.FieldByName('JZRKID').AsString))); open; end; if ADOQueryCmd.IsEmpty then begin if GetLSNo(ADOQueryTmp, MaxNo, 'ZJR', 'CK_WarpBeam_CR', 4, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 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('JZRKID').AsString); ADOQueryCmd.Edit; ADOQueryCmd.FieldByName('editer').Value := trim(dName); ADOQueryCmd.FieldByName('editTime').Value := SGetServerDateTime(adoqueryTmp); end; //保存主表 ADOQueryCmd.FieldByName('JZRKNo').Value := trim(JZRKNo.Text); ADOQueryCmd.FieldByName('FactoryName').Value := trim(FactoryName.Text); ADOQueryCmd.FieldByName('fromFactoryName').Value := trim(fromFactoryName.Text); ADOQueryCmd.FieldByName('JZRKID').Value := trim(MaxNo); ADOQueryCmd.FieldByName('CRTime').Value := formatdateTime('yyyy-MM-dd', CRTIme.Date); ADOQueryCmd.FieldByName('CRType').Value := trim(CRType.Text); ADOQueryCmd.FieldByName('KCID').Value := trim(MaxNo); ADOQueryCmd.FieldByName('CRFlag').Value := '入库'; ADOQueryCmd.FieldByName('CRQtyFlag').Value := 1; //保存明细 RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_Main, 'CK_WarpBeam_CR', 0); ADOQueryCmd.Post; // 判断库存 // with ADOQueryCmd do // with ADOQueryCmd do // begin // Close; // SQL.Clear; // SQL.Add('exec P_Up_WarpRoller ' + quotedstr(trim(CDS_Main.fieldbyname('KCID').AsString))); // Open; // end; // if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '操作失败' then // begin // CDS_Main.EnableControls; // ADOQueryCmd.Connection.RollbackTrans; // Application.MessageBox('入库数量少于出库数量!', '提示', 0); // Exit; // end; CDS_Main.Edit; CDS_Main.FieldByName('JZRKID').Value := Trim(MaxNo); CDS_Main.Post; Next; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; result := true; except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; end; end; procedure TfrmWarpRollerRk.InitGrid(); var i: Integer; begin try with adoqueryTmp do begin close; sql.Clear; sql.Add('select A.* '); SQL.Add(' from CK_WarpBeam_CR A'); if fType = 1 then begin sql.Add('where A.JZRKID ' + trim(fkeyNO)); end else sql.Add('where A.JZRKID =' + QuotedStr(Trim(fkeyNO))); open; end; SCreateCDS20(adoqueryTmp, CDS_Main); SInitCDSData20(adoqueryTmp, 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)); JZRKNo.Text := CDS_Main.fieldbyname('JZRKNo').asstring; FactoryName.Text := trim(CDS_Main.fieldbyname('FactoryName').AsString); fromFactoryName.Text := trim(CDS_Main.fieldbyname('fromFactoryName').AsString); end; finally end; end; procedure TfrmWarpRollerRk.FormDestroy(Sender: TObject); begin frmWarpRollerRk := nil; end; procedure TfrmWarpRollerRk.FormCreate(Sender: TObject); begin CRTime.Date := SGetServerDate10(ADOQueryTmp); end; procedure TfrmWarpRollerRk.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := cahide; end; procedure TfrmWarpRollerRk.FormShow(Sender: TObject); begin readCxGrid(trim(self.Caption), Tv1, '仓储管理'); InitGrid(); if fType = 0 then begin if GetLSNo(ADOQueryCmd, fkeyNo, 'RK', 'CK_WarpBeam_CR', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; JZRKNo.Text := Trim(fkeyNo); end; end; procedure TfrmWarpRollerRk.TBSaveClick(Sender: TObject); begin if CheckData() = false then exit; CRTime.SetFocus; if savedate() then begin application.MessageBox('数据保存成功!', '提示信息'); ModalResult := 1; end else begin application.MessageBox('数据保存失败!', '提示信息', MB_ICONERROR); end; end; procedure TfrmWarpRollerRk.ToolButton2Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if Trim(CDS_Main.FieldByName('JZRKID').AsString) = '' then begin CDS_Main.Delete; end else begin ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_WarpBeam_CR set Valid=''N'' where JZRKID=' + quotedstr(Trim(CDS_Main.FieldByName('JZRKID').AsString))); ExecSQL; end; // with ADOQueryCmd do // begin // Close; // SQL.Clear; // SQL.Add('exec P_Up_WarpRoller ' + quotedstr(Trim(CDS_Main.FieldByName('KCID').AsString))); // Open; // end; // if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '操作失败' then // begin // CDS_Main.EnableControls; // ADOQueryCmd.Connection.RollbackTrans; // Application.MessageBox('出库数量超出库存数量!', '提示', 0); // Exit; // end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; end; end; procedure TfrmWarpRollerRk.TBCloseClick(Sender: TObject); begin writeCxGrid(trim(self.Caption), Tv1, '仓储管理'); close; end; procedure TfrmWarpRollerRk.v1P_ColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'OrdColor'; flagname := '颜色'; V1Name.Caption := '中文名称'; V1Note.Caption := '英文名称'; MainType := Trim(DName); fnote := True; if ShowModal = 1 then begin Self.CDS_Main.Edit; Self.CDS_Main.FieldByName('P_Color').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); Self.CDS_Main.Post; end; end; finally frmZDYHelp.Free; end; self.tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmWarpRollerRk.v1P_CodePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); var FKuWei: string; begin // try // frmZdyAttachCP20:=TfrmZdyAttachCP20.Create(Application); // with frmZdyAttachCP20 do // begin // CKType.Text:='面料'; // if ShowModal=1 then // begin // Self.CDS_Main.Edit; //// Self.CDS_Main.FieldByName('WLType').Value:=Trim(CDS_HZ.fieldbyname('WLType').AsString); // Self.CDS_Main.FieldByName('P_Code').Value:=Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); // Self.CDS_Main.FieldByName('P_CodeName').Value:=Trim(CDS_HZ.fieldbyname('ZdyName').AsString); // Self.CDS_Main.FieldByName('P_SPEC').Value:=Trim(CDS_HZ.fieldbyname('DEFstr1').AsString); //// Self.CDS_Main.FieldByName('P_Color').Value:=Trim(CDS_HZ.fieldbyname('DEFstr1').AsString); // Self.CDS_Main.FieldByName('P_MF').Value:=Trim(CDS_HZ.fieldbyname('DEFstr7').AsString); // Self.CDS_Main.FieldByName('P_KZ').Value:=Trim(CDS_HZ.fieldbyname('DEFstr8').AsString); // Self.CDS_Main.FieldByName('qtyUnit').Value:=Trim(CDS_HZ.fieldbyname('DEFstr4').AsString); // end; // end; // finally // frmZdyAttachCP20.Free; // end; // self.tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmWarpRollerRk.v1P_ColorPropertiesEditValueChanged(Sender: TObject); var mvalue: string; begin { mvalue:=TcxTextEdit(Sender).EditingText; IF trim(mvalue)='' then exit; IF rightBstr(trim(mvalue),1)<>'#'THEN BEGIn mvalue:=trim(mvalue)+'#'; END; with CDS_Main do begin Edit; FieldByName('P_Color').Value:=Trim(mvalue); Post; end; self.tv1.Controller.EditingController.ShowEdit(); } end; procedure TfrmWarpRollerRk.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 TfrmWarpRollerRk.v1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin frmWarpBeamManageList := TfrmWarpBeamManageList.Create(Application); with frmWarpBeamManageList do begin if showmodal = 1 then begin CDS_Main.Edit; CDS_Main.fieldbyname('WBId').Value := trim(CDS_HZ.fieldbyname('WBId').AsString); CDS_Main.fieldbyname('WBCode').Value := trim(CDS_HZ.fieldbyname('WBCode').AsString); CDS_Main.fieldbyname('WBName').Value := trim(CDS_HZ.fieldbyname('WBName').AsString); CDS_Main.Post; end; free; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmWarpRollerRk.v1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'CPProperty'; flagname := '面料属性'; if ShowModal = 1 then begin Self.CDS_Main.Edit; Self.CDS_Main.FieldByName('CPProperty').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmWarpRollerRk.FactoryNameBtnClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin FactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmWarpRollerRk.Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); var FValue: string; FBounds: TRect; begin if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then begin FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1); FBounds := AViewInfo.Bounds; ACanvas.FillRect(FBounds); ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); InflateRect(FBounds, -1, -1); ACanvas.Font.Color := clBlack; ACanvas.Brush.Style := bsClear; ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); ADone := True; end; end; procedure TfrmWarpRollerRk.v1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'kuwei'; flagname := '库位'; if ShowModal = 1 then begin Self.CDS_Main.Edit; Self.CDS_Main.FieldByName('kuwei').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); Self.CDS_Main.Post; end; end; finally frmZDYHelp.Free; end; self.tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmWarpRollerRk.fromFactoryNameBtnClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin fromFactoryName.Text := Trim(CDS_HZ.fieldbyname('Name').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmWarpRollerRk.btn1Click(Sender: TObject); var MaxNo: string; begin frmWarpBeamManageList := TfrmWarpBeamManageList.Create(Application); with frmWarpBeamManageList do begin if showmodal = 1 then begin while frmWarpBeamManageList.CDS_HZ.Locate('SSel', True, []) do begin with Self.CDS_Main do begin append; fieldbyname('WBId').Value := trim(CDS_HZ.fieldbyname('WBId').AsString); fieldbyname('WBCode').Value := trim(CDS_HZ.fieldbyname('WBCode').AsString); fieldbyname('WBName').Value := trim(CDS_HZ.fieldbyname('WBName').AsString); fieldbyname('Note').Value := ''; Post; end; frmWarpBeamManageList.CDS_HZ.Delete; end; end; free; end; tv1.Controller.EditingController.ShowEdit(); end; end.