⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitdm.pas

📁 此代码为企业原料管理代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UnitDM;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables;

type
  TDM = class(TDataModule)
    qryExe: TQuery;
    dsExe: TDataSource;
    tabStaff: TTable;
    dsStaff: TDataSource;
    tabManufacturer: TTable;
    dsManufacturer: TDataSource;
    tabWorkShop: TTable;
    dsWorkShop: TDataSource;
   // tabEmployee: TTable;
   // dsEmployee: TDataSource;
    tabProdDictionary: TTable;
    dsProdDictionary: TDataSource;
    tabProdInCard: TTable;
    dsProdInCard: TDataSource;
    tabProdOutCard: TTable;
    dsProdOutCard: TDataSource;
    tabProdInCardProdName: TStringField;
    tabProdInCardCardID: TStringField;
    tabProdInCardProdID: TStringField;
    tabProdInCardNote: TStringField;
    dsProdWasteBook: TDataSource;
    tabProdWasteBook: TTable;
    tabProdStock: TTable;
    dsProdStock: TDataSource;
    tabProdIDHistory: TTable;
    tabProdMonthCheck: TTable;
    tabProdCheckDiary: TTable;
    tabProdStockProdID: TStringField;
    tabProdStockProdName: TStringField;
    tabProdSetAcc: TTable;
    dsProdSetAcc: TDataSource;
    tabProdSetAccProdID: TStringField;
    tabProdSetAccPrice: TFloatField;
    tabProdSetAccThisOutTotal: TFloatField;
    tabProdSetAccThisNumTotal: TFloatField;
   // tabEmployeeEmployeeID: TStringField;
   // tabEmployeeEmplyee: TStringField;
    tabProdStockNumber: TIntegerField;
    tabManufacturerManufacturerID: TStringField;
    tabManufacturerManufacturer: TStringField;
    tabProdWasteBookCardID: TStringField;
    tabProdWasteBookMonth: TStringField;
    tabProdWasteBookDay: TStringField;
    tabProdWasteBookProdID: TStringField;
    tabProdWasteBookInNum: TIntegerField;
    tabProdWasteBookOutNum: TIntegerField;
    tabProdWasteBookWasteBookNum: TIntegerField;
    tabProdWasteBookNote: TStringField;
    tabProdSetAccProdName: TStringField;
    tabProdInCardCheckerID: TStringField;
    tabProdInCardChecker: TStringField;
    tabProdInCardFigID: TStringField;
    tabProdOutCardCardID: TStringField;
    tabProdOutCardProdID: TStringField;
    tabProdOutCardOuterID: TStringField;
    tabProdOutCardManufacturerID: TStringField;
    tabProdOutCardNote: TStringField;
    tabProdOutCardProdName: TStringField;
    tabProdOutCardFigID: TStringField;
    tabProdInCardInDate: TDateField;
    tabProdOutCardOuter: TStringField;
    tabProdOutCardOutDate: TDateField;
    tabProdOutCardManufacturer: TStringField;
    tabProdDictionaryProdID: TStringField;
    tabProdDictionaryFigID: TStringField;
    tabProdDictionaryProdName: TStringField;
    tabProdDictionaryMakePrice: TFloatField;
    tabProdDictionarySellPrice: TFloatField;
    dsProdIDHistory: TDataSource;
    tabProdIDHistoryProdID: TStringField;
    tabProdIDHistoryProdName: TStringField;
    tabProdIDHistoryFigID: TStringField;
    tabProdIDHistoryContain: TIntegerField;
    tabProdWasteBookYear: TStringField;
    tabProdWasteBookProcBatID: TStringField;
    tabProdWasteBookOutBox: TFloatField;
    tabProdWasteBookWasteBookBox: TIntegerField;
    tabProdWasteBookInOutFlag: TBooleanField;
    tabProdInCardProcBatID: TStringField;
    tabProdOutCardProcBatID: TStringField;
    tabProdWasteBookBoxLeft: TIntegerField;
    tabProdWasteBookBoxBat: TStringField;
    tabProdOutCardBox: TFloatField;
    tabProdWasteBookSerialNum: TSmallintField;
    tabProdSetAccAccDate: TDateField;
    tabMaterDictionary: TTable;
    dsMaterDictionary: TDataSource;
    tabProdDictionaryWeight: TFloatField;
    tabMaterDictionaryBDEDesigner: TIntegerField;
    tabMaterDictionaryBDEDesigner2: TStringField;
    tabMaterDictionaryBDEDesigner3: TStringField;
    tabMaterDictionaryBDEDesigner4: TFloatField;
    tabProdStockFigID: TStringField;
    tabProdSetAccFigID: TStringField;
    tabProdDictionaryRubbName: TStringField;
    DataSource1: TDataSource;
    Table1: TTable;
    Table1BDEDesigner: TStringField;
    Table1BDEDesigner2: TFloatField;
    Table1BDEDesigner3: TFloatField;
    Table1BDEDesigner4: TFloatField;
    Table1BDEDesigner5: TFloatField;
    Table1BDEDesigner6: TFloatField;
    Table1BDEDesigner7: TFloatField;
    tabProdInCardNumber: TIntegerField;
    tabProdSetAccLastNum: TIntegerField;
    tabProdSetAccThisIn: TIntegerField;
    tabProdSetAccThisOut: TIntegerField;
    tabProdSetAccThisNum: TIntegerField;
    tabProdDictionaryContain: TIntegerField;
    Table2: TTable;
    Table1BDEDesigner8: TFloatField;
    Table3: TTable;
    tabProdOutCardNumber: TIntegerField;
    tabManufacturerToxudizi: TStringField;
    tabManufacturerYobi: TIntegerField;
    tabManufacturerLixire: TStringField;
    tabManufacturerDihuhama: TStringField;
    tabProdDictionaryTanhuang: TIntegerField;
    tabProdDictionaryGujia: TIntegerField;
    tabProdDictionaryGjxh: TStringField;
    tabProdDictionaryThxh: TStringField;
    tabProdDictionaryXioujia: TFloatField;
    procedure tabProdSetAccCalcFields(DataSet: TDataSet);
    procedure tabRubbMethodCalcFields(DataSet: TDataSet);
    procedure tabRubbWasteBookCalcFields(DataSet: TDataSet);
    procedure tabProdIDHistoryAfterScroll(DataSet: TDataSet);
    procedure tabMaterDictionaryFilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    procedure tabProdDictionaryFilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    procedure tabStaffFilterRecord(DataSet: TDataSet; var Accept: Boolean);
   
  private
    { Private declarations }
  public
    { Public declarations }

    function zdyCalLast3Bit(sCardID:string;dDate:Tdate):string; //  决定单号
//===================================================
// 原材料部分函数
   function zdyGetmaterCheckDate():TDate;
//===================================================
//===================================================
// 混炼胶部分函数
//===================================================
   function zdyGetjiaoCheckDate():TDate;//查上次胶料结帐日期
//===================================================
// 硫化部分函数
//===================================================
//===================================================
// 成品部分函数
//===================================================
    procedure zdyProdInsertHistory(sProdID:string);
    function zdyProdCardID(dDate:TDate):string; //决定单号
    function zdyProdIFBlank(bInDraw:boolean):boolean; //函数声明  表格是否为空
    function zdyGetProdCheckNum(dCheckDate:TDate;sProdID:string):integer; //函数声明  查询上月盘存
    function zdyGetProdCheckDate():TDate; //函数声明  查询上月结账日期
    function zdyGetProdPrice(sProdID:string):real; //函数声明  查询上月结账日期

  end;

var
  DM: TDM;

implementation

uses UnitProdInCard, UnitProdOutCard, UnitProdWasteBook, UnitDictionary,
  UnitProdStock, UnitAccSet, Unit_Mater_SumCfg, Unit_Rubb_SumCfg;// UnitDM;


{$R *.DFM}

function TDM.zdyCalLast3Bit(sCardID:String;dDate:Tdate):string; //  决定单号
var
  iMan:integer;
begin
//====================================
//  尾数后3位加1  例如: 001 --> 002
//====================================
    iMan:=(strtoint(sCardID[7]+sCardID[8]+sCardID[9]));
    Inc(iMan);
    sCardID:=formatdatetime('ymmdd',dDate);
    if iMan div 10 = 0 then //个位
    begin
      sCardID:=sCardID+'00'+inttostr(iMan);
    end;//if
    if (iMan div 10 <> 0) and (iMan div 100 = 0) then //十位
    begin
      sCardID:=sCardID+'0'+inttostr(iMan);
    end;//if
    if (iMan div 10  <> 0) and
       (iMan div 100 <> 0) and
       (iMan div 1000 = 0) then //百位
    begin
      sCardID:=sCardID+inttostr(iMan);
    end;//if

    result:= sCardID;

end;



procedure TDM.zdyProdInsertHistory(sProdID:string);
begin
  with dm.tabProdIDHistory do
  begin
    open;
    setkey;
    if not findkey([sProdID]) then
    begin
      insert;
      fieldbyname('ProdID').asstring:=sProdID;
      post;
    end;//if
    close;
  end; //with

end;


function TDM.zdyProdCardID(dDate:TDate):string; //决定单号的函数
var
  sInCardID,sOutCardID,sCardID:string;
begin

  sInCardID:='';
  sOutCardID:='';

  with dm.qryExe do
  begin
    close;
    sql.clear;
    sql.add('select max(CardID)as CardID from ProdInCard where CardID like :CardID ');
    parambyname('CardID').asstring:=formatdatetime('yymmdd',dDate)+'%';
    open;
    last;
    //    if recordcount = 0 then
    sInCardID:=fieldbyname('CardID').asstring;
  end; //with

  with dm.qryExe do
  begin
    close;
    sql.clear;
    sql.add('select max(CardID)as CardID from ProdOutCard where CardID like :CardID ');
    parambyname('CardID').asstring:=formatdatetime('yymmdd',dDate)+'%';
    open;
    last;
    //    if recordcount = 0 then
    sOutCardID:=fieldbyname('CardID').asstring;
  end; //with

//============================================================
// 如果当前日期没有录入过数据  默认sCardID 为 当前日期 + 001
//============================================================
  if (sInCardID = '' ) and (sOutCardID = '') then
  begin
    sCardID:=formatdatetime('yymmdd',dDate)+'001';
    result:=sCardID;
    exit;
  end; //if

  if sInCardID = '' then sInCardID := '000000000';
  if sOutCardID = '' then sOutCardID := '000000000';

//==================================================
// 找出入库单 和 出库单 之中号码最大 附值于 sCardID
//==================================================

    if sInCardID > sOutCardID then //把较大的单号负值于 sCardID 变量
      sCardID := sInCardID
    else
      sCardID := sOutCardID;

//====================
// 函数返回
//====================
  result := zdyCalLast3Bit(sCardID,dDate);
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -