Biblioteka c# dla drukarek fiskalnych z protokołem POSNET

0

Minimalne wymagania:

  • druk paragonu w trybie ciągłym (kilka pozycji)
  • nip na paragonie
  • komunikacja via com (TCP/IP jako opcja, ale nie upieram się)
  • sposób płatności

-wydruk niefiskalny (kilka linijek tekstu) z kodem kreskowym (1d,2d) lub bez.

Łatwa implementacja i wykorzystanie w C#.

Zainteresowanych proszę o kontakt PW z szacunkowym terminem i ceną.

Pozdrawiam

1

na stronie Elzaba masz bibliotekę z przykładami w c#

0

Na Novitusie też.

@oct:
na pewno choć trochę rozejrzałeś się w dziedzinie ?

0
ZrobieDobrze napisał(a):

Na Novitusie też.

@oct:
na pewno choć trochę rozejrzałeś się w dziedzinie ?

Wydaje mi się, że tak, choć mogę być w błędzie. Oczywiście jest dll, jest ocx, ale one służą do komunikacji z drukarką, nie do tworzenia ramek. Ja szukam rozwiązania, które by tworzyło te ramki. Mnie interesuje konkretny protokół POSNET szczególnie dla superformatki z kodem. Nie znam sposobu tworzenia ramek, wole komuś zapłacić kto zna ten protokół, niż uczyć się go od podstaw. Ale jak wspomniałem mogę być w błędzie, gdyż tylko mi się wydaje ;)

0

@oct o jakie ramki Ci chodzi??

0
abrakadaber napisał(a):

@oct o jakie ramki Ci chodzi??

Zrzut ekranu 2022-10-28 o 20.00.34.png

To jest ramka :)
Tak ją wysyłamy (ocx): Send( STX + ”sdev\t@1\t#8FE8” + ETX );
Mogę też tak:
SendFrame( ”dailyrep”, ”da2013-08-19”);
Ale ciągle muszę przebrnąć przez całą dokumentacje ;)

0

Ja [CIACH!] - ściągnąłeś, zobaczyłeś przykład?? Pewnie, że nie bo po c****...

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;

namespace ElzabDrTest
{
    
    class Program
    {
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int CommunicationInit(int PortNo, int Speed, int Timeout);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int CommunicationEnd();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int ReceiptConditions();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int ReceiptBegin();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int pReceiptItemEx (int Sprzed, string Nazwa, int Stawka, int Komunikat,int Ilosc, int MP, string Jedn, int Cena);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pReceiptItem(int Sprzed, string Nazwa, int Stawka, int Komunikat, int Ilosc, int MP, string Jedn, int Cena, int* Wartosc); //zmienna Wartosc jest zwracana przez funkcjÄ™
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int ReceiptEnd(int Disc);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int PrintSubtotal();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int OpenDrawer(int Number);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int ReceiptCancel();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int PrintControl(int BeforePrinting);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int PrintResume();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int DailyReport(int Unconditionally);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int PeriodReport(int Fiscal, int yy1, int mm1, int dd1, int yy2, int mm2, int dd2);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int LockedArticlesReport();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int MonthlyReport(int Fiscal, int Year, int Month);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int NumberReport(int Fiscal, int FirstNumber, int LastNumber);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int ReceiptNumber(int* Number);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int DailyReportNumber(int* Number);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int WriteLineFeed(int Number);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int PrinterStatusReport();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int SetVAT(int* Ile, int A, int B, int C, int D, int E, int F, int G);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int ReadVAT(int* Ile, int* A, int* B, int* C, int* D, int* E, int* F, int* G);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int ErasePayments();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int EraseLines();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pDeviceName(StringBuilder Name);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pFillPayment(int Number, string Name, int Total, int Rest);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pFillLines(int Number, string Line, int* FreeLines);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pDllVersion(StringBuilder Ver);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pDllAuthor(StringBuilder Auth);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pErrMessage(int Number, StringBuilder Message);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pCharsInArticleName(string Name);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pReadClock(StringBuilder Time);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pReadUniqueNumber(StringBuilder Number);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pReadTotal(StringBuilder Total);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pReadSelTotal(string Rate, StringBuilder Total);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pDisplayFP600(int Number, char * Caption);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int ChangeTime(int Hour, int Minute);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int PackageItem(int Param, int Number, int Quantity,  int Price);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        unsafe public static extern int pControlPrintout(int Oper, string Name, int TaxRate);
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int SetDebugMode();
        [DllImport("elzabdr.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern int ClearDebugMode();
       
            
        static int Main(string[] args)
        {

            int wynik;
            int W;
            int Port;
            int Szybkosc;
            int Timeout;
            StringBuilder OpisBledu;

            OpisBledu = new StringBuilder(255);
            Port = 1;
            Szybkosc = 9600;
            Timeout = 5;

            if ((wynik = CommunicationInit(Port, Szybkosc, Timeout)) == 0)
            {
                unsafe
                {
                    wynik = pFillLines(2, "gotĂłwka", &W);
                }
                if (wynik == 0)
                    if ((wynik = pFillPayment(1, "gotĂłwka", 150000, 1763)) == 0)
                        if ((wynik = ReceiptBegin()) == 0)
                            if ((wynik = PackageItem(0, 100, 2, 20)) == 0)
                                if ((wynik = PackageItem(1, 200, 1, 50)) == 0)
                                    if ((wynik = pReceiptItemEx(1, "TowarTestowy_A", 1, 0, 100, 0, "szt.", 1500)) == 0)
                                        if ((wynik = pReceiptItemEx(1, "TowarTestowy_B", 2, 0, 200, 2, "", 2500)) == 0)
                                            if ((wynik = pReceiptItemEx(1, "TowarTestowy_G", 7, 0, 300, 3, "kg  ", 3500)) == 0)
                                                if ((wynik = OpenDrawer(1)) == 0)
                                                    if ((wynik = ReceiptEnd(5)) == 0)
                                                        if ((wynik = CommunicationEnd()) == 0)
                                                        {
                                                            Console.WriteLine("Program zakończony bezbłędnie");
                                                            return 0;
                                                        }
            }
            //był błąd
            pErrMessage(wynik, OpisBledu);
            Console.WriteLine(OpisBledu);
            return wynik;   

            //	wynik=PeriodReport(0,5,2,1,5,2,10);
            //	wynik=DailyReport(1);
            //	wynik=MonthlyReport(0,5,2);
            //	wynik=NumberReport(0,1,3);
            //  wynik = pReadClock(Tmp);
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1