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

📄 unlbds.pas

📁 DELPHI编写的商场收银POS机源代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
               IF _SYS_CFG_BARPRN = 1 THEN
                  IF _FONT_STYLE = 6 THEN FONT.Size := 16;  // 中文字体
               END;
               END;
            //=======================================================
            // LABEL ================================================
            IF COPY(NAME,1,2) = 'BC' THEN
               BEGIN
               S := FMLBDS.Components[N];

               WITH S AS TBCEDIT DO
               BEGIN
               NAME  := T.ReadString(NAME,'NAME'   ,Name);
               BARSTR:= T.ReadString(NAME,'BARSTR' ,BARSTR);

               LEFT := T.ReadInteger(NAME,'LEFT'   ,LEFT);
               TOP := T.ReadInteger(NAME,'TOP'    ,TOP);


               _TABLE_NAME := T.ReadSTRING (NAME,'TABLE'   ,'');
               _FIELD_NAME := T.ReadSTRING (NAME,'FIELD'   ,'');
               _SYSLST     := T.ReadSTRING (NAME,'SYSLST'  ,'');

               _CODE_HEIGHT := T.ReadInteger(NAME,'BC_HEIGHT' ,36);
               _ROTAT       := T.ReadInteger(NAME,'BC_ROTAT'  ,0);
               _HUMAN       := T.ReadInteger(NAME,'BC_HUMAN'  ,0);
               _CODE_WIDTH  := T.ReadInteger(NAME,'BC_WIDE'   ,4);
               _CODE_STYLE  := T.ReadInteger(NAME,'BC_BARKIND',0);

               END;
               END;
            //=======================================================
            END;

       END;



FINALLY
   T.Free;
END;


//设置CLEVER
URCLEVER.CLEVER_HEIGHT := FLOATTOSTR(FMLBDS.QRLB.Height / 80);
URCLEVER.CLEVER_WIDTH  := FLOATTOSTR(FMLBDS.QRLB.WIDTH  / 80);

//设置ARGOX
FRARGOX.ED_LB_H.Text := FLOATTOSTR(FMLBDS.QRLB.Height );
FRARGOX.ED_LB_W.Text := FLOATTOSTR(FMLBDS.QRLB.WIDTH  );
//FRARGOX.ED_LB_H.Value := FMLBDS.QRLB.Height ;
//FRARGOX.ED_LB_W.Value := FMLBDS.QRLB.WIDTH  ;

QR_CHANGED := FALSE; //更改过
END;

PROCEDURE TFMLBDS.FREE_ALL_LB;
VAR N : INTEGER;
    FREE_OK : BOOLEAN;
BEGIN
QR_CHANGED := TRUE; //更改过

FREE_OK := FALSE;
WHILE FREE_OK = FALSE DO
   BEGIN

   FOR N := 0 TO FMLBDS.ComponentCount-1 DO
       WITH FMLBDS.Components[N] DO
            IF ((COPY(NAME,1,2) = 'LB') OR (COPY(NAME,1,2) = 'BC') )AND
            (FMLBDS.FindComponent(NAME) <> NIL ) THEN
            BEGIN
            FREE;          //FREE 后, ComponentCount 会改变, 所以要重新来
            BREAK;
            END;

   //重新找, 是否还有LABEL对象
   FOR N := 0 TO FMLBDS.ComponentCount-1 DO
      BEGIN
       WITH FMLBDS.Components[N] DO
            IF ((COPY(NAME,1,2) = 'LB') OR (COPY(NAME,1,2) = 'BC') )AND
            (FMLBDS.FindComponent(NAME) <> NIL ) THEN
            BEGIN
            FREE_OK := FALSE;
            BREAK;
            END ELSE
            BEGIN
            FREE_OK := TRUE;
            END;
      END;

   END;

END;

FUNCTION  TFMLBDS.PRINT_ALL_LB(LB_CNT:INTEGER):BOOLEAN;
VAR S : TOBJECT;  //暂存对象
    N : INTEGER;
    T_TEXT : STRING;
    P_CODE, P_HUMAN : STRING;
BEGIN

TRY
   IF FMLBDS.FindComponent('S') = NIL THEN S := TOBJECT.Create;

//条形码机打印-------------------------------------------
IF _SYS_CFG_BARPRN = 0 THEN   CLEVER_PRINT_TITLE;
IF _SYS_CFG_BARPRN = 1 THEN   FRARGOX.PRINT_TITLE;
//-------------------------------------------

   FOR N := 0 TO FMLBDS.ComponentCount-1 DO
       BEGIN
       WITH FMLBDS.Components[N] DO
            BEGIN
            T_TEXT := '';

            // LABEL ================================================
            IF UPPERCASE(COPY(NAME,1,2)) = 'LB' THEN
               BEGIN
               S := FMLBDS.Components[N];

               WITH S AS TLBEDIT DO
                    BEGIN
// ED_RIUNP.Caption := UNSETREAD('BGDSBGUNP' ,FieldByName('RIUNP').AsString);
                    IF (TRIM(QR_KEY_FIELD)<>'')AND(TRIM(QR_KEY_VALUE)<>'') THEN
                        IF _TABLE_NAME <> '' THEN T_TEXT := DB_QUERY_FIND_VALUE(_TABLE_NAME,QR_KEY_FIELD,QR_KEY_VALUE,_FIELD_NAME);
                    IF _TABLE_NAME =  '' THEN T_TEXT := CAPTION;

                    //条形码机打印-------------------------------------------
                    IF _SYS_CFG_BARPRN = 0 THEN CLEVER_PRINT_TEXT2(LEFT,(TOP)*1,FMLBDSL.ED_LB_FONT_STYLE.Items.Strings[_FONT_STYLE],_ROTAT,_FONT_ZOOM_H,_FONT_ZOOM_W,T_TEXT ,_SUBTEXT);
                    IF _SYS_CFG_BARPRN = 1 THEN FRARGOX.PRINT_TEXT2(LEFT,(TOP)*1,FMLBDSL.ED_LB_FONT_STYLE.Items.Strings[_FONT_STYLE],_FONT_ZOOM_H,_FONT_ZOOM_W,'N',T_TEXT ,_SUBTEXT);
                    //-------------------------------------------
                    END;
               END;
            //=======================================================

            // BARCODE ================================================
            IF UPPERCASE(COPY(NAME,1,2)) = 'BC' THEN
               BEGIN
               S := FMLBDS.Components[N];

               WITH S AS TBCEDIT DO
                    BEGIN
                    IF (TRIM(QR_KEY_FIELD)<>'')AND(TRIM(QR_KEY_VALUE)<>'') THEN
                       IF _TABLE_NAME <> '' THEN T_TEXT := DB_QUERY_FIND_VALUE(_TABLE_NAME,QR_KEY_FIELD,QR_KEY_VALUE,_FIELD_NAME);
                    IF _TABLE_NAME =  '' THEN T_TEXT := BARSTR;

                    //条形码机打印-------------------------------------------
                    IF _SYS_CFG_BARPRN=0 THEN
                       BEGIN
                       CLEVER_CODE := _CODE_STYLE;
                       CLEVER_PRINT_BARCODE(LEFT,(TOP)*1,_CODE_HEIGHT,_HUMAN,_ROTAT,_CODE_WIDTH,T_TEXT);
                       END;
                    IF _SYS_CFG_BARPRN=1 THEN
                       BEGIN
                       IF _HUMAN = 0 THEN P_HUMAN := 'N';
                       IF _HUMAN = 1 THEN P_HUMAN := 'B';
                       FRARGOX.PRINT_BARCODE(LEFT,(TOP)*1,_CODE_STYLE,_CODE_HEIGHT,P_HUMAN,T_TEXT);
                       END;
                    //-------------------------------------------
//                    IF _TABLE_NAME <> '' THEN FMCLEVER.PRINT_BARCODE(LEFT,(TOP)*1,_HEIGHT,0,_ROTAT,_WIDE,_FIELD_NAME);
//                    IF _TABLE_NAME =  '' THEN FMCLEVER.PRINT_BARCODE(LEFT,(TOP)*1,_HEIGHT,0,_ROTAT,_WIDE,BARSTR);
                    END;
               END;
            //=======================================================
            END;

       END;

//条形码机打印-------------------------------------------
IF _SYS_CFG_BARPRN=0 THEN CLEVER_PRINT_END(LB_CNT);
IF _SYS_CFG_BARPRN=1 THEN FRARGOX.PRINT_END(LB_CNT);
//-------------------------------------------

FINALLY
//   S.Free;
END;

END;
















procedure TFMLBDS.LODClick(Sender: TObject);
begin
LOAD_INI;
end;

procedure TFMLBDS.SAVClick(Sender: TObject);
BEGIN
QR_CHANGED := FALSE; //更改过
SAVE_INI;
end;


procedure TFMLBDS.TXTClick(Sender: TObject);
begin
CREATE_LB;
end;

procedure TFMLBDS.BCDClick(Sender: TObject);
begin
CREATE_BC;
//CREATE_BARCODE();
end;


procedure TFMLBDS.CLRClick(Sender: TObject);
begin
FREE_ALL_LB;
end;

procedure TFMLBDS.QUTClick(Sender: TObject);
begin
CLOSE;
end;


procedure TFMLBDS.PRNClick(Sender: TObject);
begin
PRINT_ALL_LB(1);
end;

procedure TFMLBDS.BTNCLVClick(Sender: TObject);
begin
IF _SYS_CFG_BARPRN=0 THEN FRCLEVER.ShowModal;
IF _SYS_CFG_BARPRN=1 THEN FRARGOX.ShowModal;
end;

procedure TFMLBDS.DsnSwitch1Click(Sender: TObject);
begin
QR_CHANGED := TRUE; //更改过
end;

procedure TFMLBDS.VRITUAL_LBMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
begin
QR_CHANGED := TRUE; //更改过
IF Button = mbRight THEN
   BEGIN
   WITH SENDER AS TLBEDIT DO
       BEGIN
       FMLBDSL.ED_CAPTION.Text := CAPTION;
       FMLBDSL.ED_HEIGHT.Value := HEIGHT;
       FMLBDSL.ED_WIDTH .Value := WIDTH;
       FMLBDSL.ED_LEFT  .Value := LEFT;
       FMLBDSL.ED_TOP   .Value := TOP;

       FMLBDSL.ED_NAME.TEXT    := NAME;

//       FMLBDSL.ED_FONT_SIZE .VALUE := _FONT_SIZE   ;
       FMLBDSL.ED_LB_ZOOM_W  .VALUE := _FONT_ZOOM_W ; //横向缩放比例
       FMLBDSL.ED_LB_ZOOM_H  .VALUE := _FONT_ZOOM_H ; //纵向缩放比例
       FMLBDSL.ED_LB_FONT_STYLE.ItemIndex := _FONT_STYLE; //纵向缩放比例
       FMLBDSL.ED_LB_SUBTEXT .VALUE := _SUBTEXT;      //纵向缩放比例
       FMLBDSL.ED_LB_ROTAT   .VALUE := _ROTAT;        //纵向缩放比例
//  _FONT_STYLE : STRING;

 //  _PRINT_STYLE: INTEGER;  //打印方式
       FMLBDSL.ED_TABLE_NAME.Text := _TABLE_NAME;
       FMLBDSL.ED_FIELD_NAME.Text := _FIELD_NAME;
       FMLBDSL.ED_SYSLST    .Text := _SYSLST    ;

       END;

   FMLBDSL.PAGE_C.TabVisible := FALSE;
   FMLBDSL.ShowModal;
   END;

end;

procedure TFMLBDS.VRITUAL_BCMouseDown(Sender: TObject;  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin

QR_CHANGED := TRUE; //更改过
IF Button = mbRight THEN
   BEGIN
   WITH SENDER AS TBCEDIT DO
       BEGIN
       FMLBDSL.ED_CAPTION.Text := BARSTR;
       FMLBDSL.ED_HEIGHT.Value := _CODE_HEIGHT;
       FMLBDSL.ED_WIDTH .Value := _CODE_WIDTH;
       FMLBDSL.ED_LEFT  .Value := LEFT;
       FMLBDSL.ED_TOP   .Value := TOP;

       FMLBDSL.ED_NAME.TEXT    := NAME;

       FMLBDSL.ED_TABLE_NAME.Text := _TABLE_NAME;
       FMLBDSL.ED_FIELD_NAME.Text := _FIELD_NAME;

       FMLBDSL.ED_BC_HEIGHT .Value := _CODE_HEIGHT;
       FMLBDSL.ED_BC_WIDTH  .Value := _CODE_WIDTH ;
       FMLBDSL.ED_BC_ROTAT  .Value := _ROTAT      ;
       FMLBDSL.ED_BC_HUMAN    .ItemIndex := _HUMAN      ;
       FMLBDSL.ED_BC_CODE_KIND.ItemIndex := _CODE_STYLE;

       END;
   FMLBDSL.PAGE_B.TabVisible := FALSE;
   FMLBDSL.ShowModal;
   END;
end;























procedure TFMLBDS.Label1Click(Sender: TObject);
begin
JMSGFORM('按按钮说明',
'产生文字-单击文字按钮,可在标签左上角产生一个新的文字对象'+#13+
'产生条形码-单击条形码按钮,可在标签左上角产生一个新的条形码对象'+#13+
'条改位置-当单击此按钮,即可用拖曳将对象移动到适当位置'+#13+
'保  存-将目前设置存盘,以方便以后使用'+#13+
'清  除-将目前设置清除,以方便重新设计'+#13+
'打  印-将目前排版打印,但读取数据库资料不会被打印出来'+#13+
'纸张设置-以公分为主,不含纸张和纸张的间距'+#13+
'条形码机设置-设置目前条形码机联机状态'+#13+
'结  束-离开此程序'+#13+
''+#13
,16);
end;

procedure TFMLBDS.Label2Click(Sender: TObject);
begin
JMSGFORM('标签说明',
'此标签只适用在一般标签打印机上,'+#13+
'在标签的边界尽量不要放置对象,否则会跳纸打印(一有一无)'+#13+
'本程序非"所见即所得",因此画面看到只有位置,并非是结果'+#13+
'在对象上单击鼠标右键,可以出现对象中的明细设置'+#13+
'在标签上所产生的文字及条形码限制各为一百组'+#13+
'标签预设文件名路径为:'+#13+
'  WIN POS 2000 = C:\DELPHI\POS\QRBGDS.INI'+#13+
'  WIN TEMPLE   = C:\DELPHI\TEMPLE\QRBGDS.INI'+#13+
'如果想更改路径,可至系统功能→系统设置→标签路径→设置'+#13+
''+#13+
''+#13
,16);
end;

procedure TFMLBDS.Label3Click(Sender: TObject);
begin
JMSGFORM('常见问题',
'跳纸打印(一有一无)'+#13+
'  -对象放置太靠近边界,或纸张大小设置不正确'+#13+
'无法鼠标单击右键出现设置'+#13+
'  -当"修改位置"按钮被单击时,就不能用右键出现设置'+#13+
'无法微调设置'+#13+
'  -可在对象上按右键出现设置,调整上边界和左边界'+#13+
'每次打印出现红灯'+#13+
'  -当条形码设置为EAN13时,条形码内容必须符合13码运算规则'+#13+
'  -可能有对象超出纸张太多,使条形码机无法接收'+#13+
''+#13+
''+#13+
''+#13
,16);
end;

procedure TFMLBDS.P_EDHChange(Sender: TObject);
begin
QR_CHANGED := TRUE; //更改过

IF (STRTOFLOATDEF(P_EDH.Text,-1) >= 0 ) AND
   (STRTOFLOATDEF(P_EDW.Text,-1) >= 0 ) THEN
   BEGIN
   FRCLEVER.ED_LB_H.Text := P_EDH.TEXT;
   FRCLEVER.ED_LB_W.Text := P_EDW.TEXT;


   QRLB.Height := ROUND(P_EDH.Value * 80);
   QRLB.WIDTH  := ROUND(P_EDW.Value * 80);
//   QRLB.Height := ROUND(STRTOFLOAT(FRCLEVER.ED_LB_H.Text) * 80);
//   QRLB.Width  := ROUND(STRTOFLOAT(FRCLEVER.ED_LB_W.Text) * 80);
   END;

end;













// ruler =======================================================================================
procedure TFMLBDS.imRulerMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
  var
       xx : integer;

  begin
  end;



end.

⌨️ 快捷键说明

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