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

📄 ubasic.pas

📁 制衣管理系统程序+源码,编译通过还不错啊,可以
💻 PAS
字号:
unit uBasic;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, jpeg, ExtCtrls, StdCtrls, cxStyles,
  cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
  cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
  DBClient, FR_Class;

type
  TfrmBasic = class(TForm)
    Shape1: TShape;
    Image1: TImage;
    ToolBar1: TToolBar;
    lbLittle: TLabel;
    lbLittle1: TLabel;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    ToolButton16: TToolButton;
    Panel3: TPanel;
    Panel4: TPanel;
    GridItem: TcxGridDBTableView;
    cxGrid4Level1: TcxGridLevel;
    cxGrid4: TcxGrid;
    cdItem: TClientDataSet;
    cdMaster: TClientDataSet;
    dsItem: TDataSource;
    dsMaster: TDataSource;
    procedure FormCreate(Sender: TObject);
    procedure ToolButton13Click(Sender: TObject);
    procedure ToolButton12Click(Sender: TObject);
    procedure ToolButton11Click(Sender: TObject);
    procedure ToolButton9Click(Sender: TObject);
    procedure ToolButton10Click(Sender: TObject);
    procedure dsMasterStateChange(Sender: TObject);
    procedure cxGrid4Enter(Sender: TObject);
    procedure GridItemFocusedItemChanged(Sender: TcxCustomGridTableView;
      APrevFocusedItem, AFocusedItem: TcxCustomGridTableItem);
    procedure cdItemBeforePost(DataSet: TDataSet);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private

  protected
    procedure init();virtual;
    //数据操作
    procedure CloseDestory();virtual;
    procedure CloseCm();virtual;
    procedure InsertData();virtual;
    function ApplyData():boolean;virtual;abstract;
    procedure cancelData();virtual;
    procedure deleteData();virtual;
    //界面控制
    procedure ToolButtonEnable(b: boolean);virtual;
    procedure GridEnterColNilToDo(col: TcxCustomGridTableItem);virtual;abstract;
    function CheckOperation(sender :Tobject):integer;virtual;abstract;
    //客户获取
    function GetClientData(SField,sFieldT: String):integer;virtual;//在父类实现而在子类调用
    procedure ClientToMaster;virtual;
    //产品获取
    function GridItemChange(col1,col2: TcxCustomGridTableItem):boolean;virtual;abstract;
    function GetCpData():boolean;virtual;abstract; //在子类实现而 在父类调用
    function SetGritItemFocused(B:Boolean):boolean;virtual;abstract;
    procedure CpToItem;virtual;abstract;
    //打印准备
    function fcGetJeTotal(cdTem: TclientDataSet):real;virtual;
    procedure UpperCasePrint(fje:real);virtual;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmBasic: TfrmBasic;

implementation

uses
   uGlobal, uPublic, uMain;

{$R *.dfm}

{ TfrmBasic }

procedure TfrmBasic.CloseCm;
begin
   close;
end;

procedure TfrmBasic.CloseDestory;
begin

end;

procedure TfrmBasic.init;
begin
   Top := frmMain.Top + iTop;
   Left := frmMain.Left + iLeft;
   width := frmMain.Width - iWidth;
   height := frmMain.Height - iHeight;
   toolBar1.Images := frmMain.Images16;
   ToolButtonEnable(false);
   with frmMain.cdPub do begin
      close;
      commandText := 'select * from T_masterZBTem';
      open;
      cdMaster.Data := data;
      close;
      commandText := 'select * from T_itemZBTem';
      open;
      cdItem.Data := data;
      close;
   end;
   cdMaster.Append;
end;

procedure TfrmBasic.FormCreate(Sender: TObject);
begin
   init;
end;

procedure TfrmBasic.ToolButton13Click(Sender: TObject);
begin
   CloseDestory;
   CloseCm;
end;

procedure TfrmBasic.cancelData;
begin
   cdMaster.EmptyDataSet;
   cdMaster.MergeChangeLog;
   cdItem.EmptyDataSet;
   cdItem.MergeChangeLog;
end;

procedure TfrmBasic.deleteData;
begin
   deleteRecordData(cdItem);
end;

procedure TfrmBasic.InsertData;
begin
   cancelData;
end;

procedure TfrmBasic.ToolButton12Click(Sender: TObject);
begin
   cancelData;
end;

procedure TfrmBasic.ToolButton11Click(Sender: TObject);
begin
   deleteData;
end;

procedure TfrmBasic.ToolButton9Click(Sender: TObject);
begin
   cancelData;
end;

procedure TfrmBasic.ToolButton10Click(Sender: TObject);
begin
   IF ApplyData THEN
      CancelData;
end;

procedure TfrmBasic.ToolButtonEnable(b: boolean);
begin
   toolButton10.Enabled := b;
   toolButton11.Enabled := b;
   toolButton12.Enabled := b;
end;

procedure TfrmBasic.dsMasterStateChange(Sender: TObject);
begin
   If (cdMaster.ChangeCount > 0) or (cdItem.ChangeCount > 0) Then
      ToolButtonEnable(true)
   else
      ToolButtonEnable(false);
   If cdItem.State in [dsInsert] then
   If cdItem.RecordCount >= 6 then //由于打单时最大6行
      cdItem.Cancel;
end;

procedure TfrmBasic.cxGrid4Enter(Sender: TObject);
begin
   insertRecordData(cdItem);
end;

procedure TfrmBasic.GridItemFocusedItemChanged(
  Sender: TcxCustomGridTableView; APrevFocusedItem,
  AFocusedItem: TcxCustomGridTableItem);
begin
     {is facous go to last then append}
   GridEnterColNilToDo(AFocusedItem);
   if not (cdItem.State in [dsedit,dsinsert]) then exit;
   if GridItemChange(APrevFocusedItem,AFocusedItem) then
      SetGritItemFocused(GetCpData); {移焦点}
   {if (APrevFocusedItem=cxGrid1DBTableView1.Columns[5])and
      (AFocusedItem = cxGrid1DBTableView1.Columns[6])then
      if getStoc_bm(false) then
         {移焦点}
    {     GetStoc_mb_thenDo
      else
         unGetStoc_mb_thenDo;
   fcSet_color(APrevFocusedItem);
   fcSet_danwei(APrevFocusedItem); }
end;

function TfrmBasic.GetClientData(SField, sFieldT: String): integer;
begin
   with frmMain.cdPub do begin
      close;
      commandText := 'select IKey,CCode 客户编号,CName 客户名称,cPost_Dz,cTel From T_pubClient'+#13+
      'where ' + sfield +' like ''%'+sfieldT+'%''';
      open;
      fieldbyname('IKEY').Visible := False;
      fieldbyname('cPost_Dz').Visible := False;
      fieldbyname('cTel').Visible := False;
      Result := recordCount;
   end;
end;

procedure TfrmBasic.ClientToMaster;
begin
   with frmMain.cdPub do Begin
      cdMaster.Edit;
      cdMaster.FieldByName('IkeyClient').Value := fieldbyname('IKey').Value;
      cdMaster.FieldByName('CCodeClient').Value := fieldbyname('客户编号').Value;
      cdMaster.FieldByName('CNameClient').Value := fieldbyname('客户名称').Value;
      cdMaster.FieldByName('cPostDz').Value := fieldbyname('cPost_Dz').Value;
      cdMaster.FieldByName('cTel').Value := fieldbyname('cTel').Value;
   end;
end;

procedure TfrmBasic.cdItemBeforePost(DataSet: TDataSet);
begin
   cdItem.FieldByName('fje').Value := cdItem.fieldbyname('fsl').Value *
                                      cdItem.fieldbyname('fdj').Value;
   IF cdItem.FieldByName('IKeyCp').AsInteger <= 0 Then Begin
      infoWnd('提示:没有该编码的材料,请检查!');
      Abort;
   end;
end;

procedure TfrmBasic.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   IF (ssCtrl in Shift) and (key = vk_return) then
      ToolButton10Click(nil);
   CASE KEY OF
      VK_F2: ToolButton9Click(nil);
      VK_F3: ToolButton10Click(nil);
      VK_F4: ToolButton11Click(nil);
      VK_F5: ToolButton12Click(nil);
   END;
end;

function TfrmBasic.fcGetJeTotal(cdTem: TclientDataSet):real;
var curren_re: TbookMark;
    fje: real;
begin
   fje := 0;
   with cdTem do begin
      curren_re :=getBookMark;
      disablecontrols;
      first;
      try
         while not eof do begin
            fje := fje + fieldbyname('fsl').AsFloat *
               fieldbyname('fdj').AsFloat;
            next;
         end;
      finally
         gotobookmark(curren_re);
         freebookmark(curren_re);
         enablecontrols;
      end;
   end;
   result := fje;
end;

procedure TfrmBasic.UpperCasePrint(fje:real);
var i,n,j: integer;
    s_je: string;
    dx_je: array[1..8] of string;
begin
   j := 0;
   for i := 1 to 8 do
      dx_je[i] := '';
   s_je :=intTostr(round(fje * 100));
   if length(s_je) > 8 then
      exit;
   for i := length(s_je) downTo 1 do
   begin
      j := j+1;
      n := strToint(s_je[i]);
      case n of
         0: dx_je[j] := '零';
         1: dx_je[j] := '壹';
         2: dx_je[j] := '贰';
         3: dx_je[j] := '叁';
         4: dx_je[j] := '肆';
         5: dx_je[j] := '伍';
         6: dx_je[j] := '陆';
         7: dx_je[j] := '柒';
         8: dx_je[j] := '捌';
         9: dx_je[j] := '玖';
      end;
   end;
   frVariables['vdx8'] := dx_je[8];
   frVariables['vdx7'] := dx_je[7];
   frVariables['vdx6'] := dx_je[6];
   frVariables['vdx5'] := dx_je[5];
   frVariables['vdx4'] := dx_je[4];
   frVariables['vdx3'] := dx_je[3];
   frVariables['vdx2'] := dx_je[2];
   frVariables['vdx1'] := dx_je[1];
end;

end.

⌨️ 快捷键说明

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