Показать сообщение отдельно
Старый 10.09.2009, 12:57   #7  
Alexx7 is offline
Alexx7
Сам.AX
Аватар для Alexx7
Самостоятельные клиенты AX
1C
 
305 / 28 (1) +++
Регистрация: 22.07.2009
Получилось немного в обход. Может что посоветуете по оптимизации:
X++:
    #WinAPI
    str                                 fileParams, scriptZebra, printerName, paramStr;
    int                                 z = 1, posCh = 0, numCh, i;
    boolean                             err;
    container                           cnt;
 
    if (!_printStr)
    {
        info('@AKM288');
        return;
    }
    // Это разложение строчки на поля. 
    while (1 > 0)
    {
        numCh = strFind(_printStr, '|', posCh, strlen(_printStr));
        cnt += substr(_printStr, posCh + 1, numCh - 1);
        _printStr = strDel(_printStr,posCh + 1, numCh);
        if (strlen(_printStr) < 1)
        {
            break;
        }
    }
    
    scriptZebra = '\^\^XA\^\^A@N,0,0,E:Cyri_ub.FNT'
    +'\^\^FO010,010\^\^A@N,40,35\^\^FD'+conPeek(cnt, 1)
    +'\^\^FS\^\^FO250,010\^\^A@N,40,35\^\^FD'+conPeek(cnt, 2)
    +'\^\^FS\^\^FO010,050\^\^A@N,40,35\^\^FD'+conPeek(cnt, 3)
    +'\^\^FS\^\^FO010,090\^\^A@N,40,35\^\^FD'+conPeek(cnt, 4)
    +'\^\^fS\^\^FO010,130\^\^A@N,50,40\^\^FD'+conPeek(cnt, 5)
    +'\^\^FS\^\^FO260,135\^\^A@N,40,35\^\^FD'+conPeek(cnt, 6)
    +'\^\^FS\^\^FO010,190\^\^A@N,40,35\^\^FD'+conPeek(cnt, 7)
    +'\^\^FS\^\^PQ1\^\^XZ';

    paramStr = scriptZebra+" > c:\\tmp.txt";

    WinApi::shellExecute("cmd","/c ECHO "+paramStr);


    fileParams  = 'c:\\tmp.txt';
    printerName = '\\\\Comp_name\\Zebra';
    err = WinAPI::copyFile(fileParams,printerName,false);

    if (err)
    {
        return;
    }

    WinApi::shellExecute("cmd","/c del c:\\tmp.txt");
Но зато печатается. Только смущают досовские окна выпрыгивающие и исчезающие. Пользователь испугается... звонить начнет