Clipper und Sybex NT250 LIB

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

Guten Morgen,

Es geht um ein Clipper Programm das die SYBEX LIB NT250 verwendet !

diese ist nicht mehr vorhanden ...

Mir geht es um die verwendeten 3 Befehle aus der LIB

Netappend(5) wobei ich annehme, dass 5 die Anzahl der Versuche darstellt bevor abgebrochen wird !)
Netflock(5)
Netrlock(5)

sie wurde in Clipper folgendermaßen eingebunden:
RTLINK FI L , NT2GR50 LIB NT250

Kennt jemand die LIB NT250 ?

Es sollte doch möglich sein diese 3 Befehle aus der LIB als UDF nachzubilden damit ich den CODE dort nicht ersetzen muß ?

mfg Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Sybex NT250 LIB

Beitrag von brandelh »

Wenn du weißt, wie sich die Funktionen verhalten sollen, ist es einfach das nachzubauen ;-)
Etwa so ...

Code: Alles auswählen

function NetAppend(nTries) // .t. wenn NetAppend() erfolgreich war ... oder soll es Fehler anzeigen ?
   local nWaitTime := 0.2
   local lOK 
   do while nTries > 0
      dbAppend()
      if neterr()
         lOK := .f.
         nTries := nTries -1 
         inkey(nWaitTime)
      else
         lOK := .t.
         exit
      endif
   enddo
return lOK

Im Quellcode außen herum solltest du erkennen, ob ein .t. eventuell einen Fehler anzeigt, das wäre auch möglich.
PS: ich habe das nicht kompiliert, Tippfehler sind möglich, Optimierungen auch ;-)
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

Danke für deine schnelle Antwort :-)

Also im Betrieb verhält sich die Funktion so , daß ein Auswahlmenü angezeigt wird WEITER VERSUCHEN oder ABBRECHEN !

Was aber eigentlich nur Auftritt , wenn es provoziert wird bzw der Anwender die Vorgabe nicht beachtet.

Das Programm läuft auf einem PC ( Windows 95) der auch Gleichzeitig SERVER ist ... der 2. PC ist eine Notebook (KASSE ) die Kasse läuft bis Geschäftsschluss muß dann beendet werden mit Kassensturz. Danach wird auf dem PC der als Server dient der Tag aus den DBF Dateien der Kasse verwendet und als Kassenrechnung / Umsatz abgeschlossen.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Sybex NT250 LIB

Beitrag von brandelh »

Aber doch nicht in der Funktion, sondern nach einem Scheitern im Quellcode oder ?

Code: Alles auswählen

if NetAppend(5)
   // speichern
else
   // Nachfrage ob es nochmal versucht werden soll etc.
endif
wie geschrieben, du musst im Quellcode suchen was du brauchst, und einbauen.
Man könnte natürlich auch oben in der Funktion eine Meldung einbauen, aber jeder will eine andere und dann auch noch die Sprache ... ;-)
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

Hi, kannst du mir noch für die Funktionen netflock und netrlock ein Beispiel geben !

Dann werde ich das erstmal probieren .

Wäre sehr nett, anpassen muß ich dann selber .

Eigentlich sollten die Funktionen keine Meldung brauchen, da das Programm nur von einer Person benutzt wird und sie Entweder an der Kasse arbeitet, deren DBF exclusive geöffnet sind und nur Artikel aus anderen DBF geholt werden ( nicht aber geändert ). Oder am Server PC Rechnungen schreibt . Die Vorgabe ist nur das bei der Benutzung der Kasse das Programm am Server PC auf dem Startbildschirm (Hauptauswahl) steht ... es gibt auch keine Eingabe für Benutzer, so daß das Programm nur bedingt netzwerkfähig ist , was aber den Anwender nicht stört und so bleiben soll.

mfg Klaus
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

Also das Programm soll natürlich dann unter Xbase laufen, wobei es eine reine Portierung von Clipper auf Xbase wird mit so wenig Änderungen wie möglich !

Einzige Anpassung: Anzahl Zeilen- / Spalten - Anzeige im Textmodus wählbar, Schriftgröße wählbar , Ausdruck auf USB Geräte , neues Betriebssystem: Windows 7 auf Hauptrechner als auch auf Kassen-Notebook

mfg Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Sybex NT250 LIB

Beitrag von brandelh »

wenn die Dateien exclusiv geöffnet sind, braucht man die Funktionen eigentlich gar nicht :wink:
Im Prinzip sind alle Funktionen gleich, man bracht nur den äußeren Namen und die interne funktion austauschen.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Clipper und Sybex NT250 LIB

Beitrag von AUGE_OHR »

xbaseklaus hat geschrieben:Netappend(5) wobei ich annehme, dass 5 die Anzahl der Versuche darstellt bevor abgebrochen wird !)
Netflock(5)
Netrlock(5)
das sind doch die normalen Netzwerk Funktionen die es in Clipper v.5x dann gab, oder ?

Code: Alles auswählen

Netappend() -> DbAppend()
Netflock() -> FLock()
Netrlock() -> RLock() / DbRLock()
nicht zuvergessen

Code: Alles auswählen

NetErr()
was man nach jeder Netzwerk Aktion prüfen sollte.
gruss by OHR
Jimmy
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

@OHR

kann ich nicht bestätigen !

Clipper Code ist auf jeden Fall Stand: Clipper 97

mfg Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Sybex NT250 LIB

Beitrag von brandelh »

Was Jimmy und ich meinten ist, dass die Funktion mit NET davor nur eine Funktion mit Schleife um die eigentliche Funktion darstellen.
Ein Beispiel wie sowas aussieht habe ich oben mit dbAppend() gegeben, bei den anderen einfach die Namen ändern und das sollte funktionieren.

Wie geschrieben mußt du dann nur im Quellcode der Anwendung nachsehen, welches Verhalten du genau brauchst.
Ich kann mir nicht vorstellen, dass noch irgendjemand die Dokumentation der alten Sachen rumliegen hat um das nachzulesen ;-)
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

Guten Morgen,

da ich jetzt das Programm so geändert habe , dass xbase keine Fehler mehr anzeigt bekomme ich beim Start folgenden Fehler:

PRTWIN32.DLL fehlt!

wobei ich folgende LIB's mit einbinden mußte:
#pragma library( "XBTBASE1.LIB" )
#pragma library( "XBTBASE2.LIB" )
#pragma library( "XBTNETW.LIB" )

wobei ich davon ausgehe, dass XBTNETW diese DLL braucht , die anscheinend unter Windows 7 nicht verwendet wird !

Code: Alles auswählen

  
...
set printer to &(anzahl2->dr123)
if ln123 = "L"
NNETCAPEND(anzahl2->lontz)
else
? NNETCAPBEG(anzahl2->lontz)
endif 
....
mfg Klaus
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

Wobei ich anscheinend die Xbase Tools unter Windows 7 gar nicht mehr verwenden sollte,

da er bei WOPEN auch aussteigt !

Hat damit jemand Erfahrung?

weitere Befehle die verwendet werden sind auch: PRINTSEND, PRINTSTAT

mfg Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Sybex NT250 LIB

Beitrag von brandelh »

die DLL sagt mir nichts, kann aber auch nicht von Clipper 87 kommen, dort gab es keine DLLs. Bei mir ist sie auch nicht da.

Die erwähnten Funktionen fragen die LPT Ports ab, heute sollte man eher auf die installierten Drucker drucken als auf LPT Ports.
Schau mal in der Hilfe zu SET PRINTER ... nach der neuen Syntax, der Druck auf den Standarddrucker sollte immer leicht möglich sein.

Falls deine Druckausgaben aber Steuerzeichen enthalten oder auf einen bestimmten LPT drucken müssen geht es nicht so einfach.
Am Besten stellt man die Druckausgabe komplett auf die neue XbpPrinter() um, solange es nicht einfache Listen sind.

Hier bräuchte man mehr Infos.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Clipper und Sybex NT250 LIB

Beitrag von AUGE_OHR »

xbaseklaus hat geschrieben:PRTWIN32.DLL fehlt!
weil du nicht :
4. If you use Novell NetWare functions:

Install XBTNETW.DLL in a directory which is part of PATH.
Note: XBTNETW.DLL uses the Novell Netware 32Bit Client API which is not a part of the MS Windows IPX/SPX support. To work properly you have to install the Novell IntranetWare Client 32.
beachtet hast.

Frage : was für eine Windows OS() verwendest du und was für ein Novell Server ?
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Sybex NT250 LIB

Beitrag von brandelh »

oder schmeiß den ... veralteten Kram raus ;-)
Ein Windowsrechner HAT ein Druckerobjekt das auch auf Netzwerkdrucker druckt.
Wenn der Rechner also dort drucken kann (hast du überhaupt einen Server ... ich meine oben Stand 2 Rechner im PEER !), dann kann Xbase++ auch darauf drucken.
Egal welcher BILLIG Drucker im Einsatz ist ...
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

Frage : was für eine Windows OS() verwendest du und was für ein Novell Server ?
Das Programm läuft im Moment noch unter ... ich glaube sogar es ist noch Windows 3.1 (als SERVER ) und soll auf xbase unter Windows 7 ( als Server ) laufen

So wie ich das jetzt sehe werde ich erst mal die ganzen Druckausgaben ändern ... Wobei ich dazu DCPrint verwende ... und es dann nochmal versuchen !

Dazu werde ich auch alle WOPEN Befehle + die dazugehörigen aus dem QuellCode entfernen.

mfg Klaus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Clipper und Sybex NT250 LIB

Beitrag von AUGE_OHR »

xbaseklaus hat geschrieben:Das Programm läuft im Moment noch unter ... ich glaube sogar es ist noch Windows 3.1 (als SERVER ) und soll auf xbase unter Windows 7 ( als Server ) laufen
bist du dir sicher wegen des Server ?
die NNETCAPEND() ist IMHO für Netware gedacht !
Dazu werde ich auch alle WOPEN Befehle + die dazugehörigen aus dem QuellCode entfernen.
"was" funktioniert den nicht ?
NOTE
Before WOpen() may be called the function WInit() must be called in order to initialize the text mode window system. Otherwise a runtime error is created.
gruss by OHR
Jimmy
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Clipper und Sybex NT250 LIB

Beitrag von Koverhage »

na ja, wenn Dir noch nicht mal bekannt ist welches OS auf dem Server läuft. -
Gruß
Klaus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Clipper und Sybex NT250 LIB

Beitrag von AUGE_OHR »

xbaseklaus hat geschrieben:weitere Befehle die verwendet werden sind auch: PRINTSEND, PRINTSTAT
die beiden Function gibt es zwar unter XbTools aber er liefert nur lokal vom LPT Port Werte.
gruss by OHR
Jimmy
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

@ OHR

OK , der Fehler bei WOPEN ist mit Sicherheit das fehlende WINIT ... schmeiß ich alles raus !
PRINTSEND wird ja auch nur für den am Kassennotebook verwendeten BON-Drucker verwendet also LOKAL

wobei ich das auch rausschmeißen muß , da das neue Notebook das ich als Kasse verwenden soll keinen LPT Anschluß mehr hat nur noch USB.
Somit brauche ich auch einen neuen BON drucker !

mfg Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Sybex NT250 LIB

Beitrag von brandelh »

Zu meinem obigen Beispiel. In meiner privaten Buchhaltung habe ich noch den Clipper Drucker Code drin.
Steuerzeichen je nach Druckertyp in einer DBF (Fett ein aus, Ränder etc.) und drucke bisher auf LPT Ports, die ich per Netzwerk zuordne.
Ich habe den aktuellen Code um einige Zeilen erweitert und kann nun im GUI Druckerauswahlfenster den Drucker wählen:

Code: Alles auswählen

// DRU_SCHNIT enthält die LPT Schnittstelle des Druckers
// set printer to (DRU_SCHNIT) // ersetzen durch neuen Code 
oDlg := XbpPrintDialog():new():create()
oPrn := oDlg:display()
oDlg:destroy()
IF oPrn = NIL
   meldung(12,"F",{"Kein Drucker gew„hlt.",;
                   "Abbruch, da kein Drucker vorhanden ist"})
   return
endif
set printer to OBJECT (oPrn)
Solange ich nun im Programm einen PCL Drucker als Treiber eingestellt habe und einen passenden dazu im GUI Fenster auswähle,
reicht diese Änderung und das Programm druckt auf dem Drucker (eingestellt SAMSUNG PCL LASER, gedruckt auf HP Deskjet PRO 8600) ...
wenn ich aber statt dessen z.B. einen PDF oder CANON Drucker wähle, geschieht nichts.
Vermutlich können beide mit den Steuerzeichen nichts anfangen.
Auch wenn ich die Steuerzeichen auf Blank setze (also nichts übergebe) druckt nur der PCL Drucker.

Vermutlich wird so nur der Drucker unterstützt, der grundsätzlich zeilenorientiert drucken kann.

Wenn du Express einsetzt, ist es sicher die richtige Entscheidung gleich die DC Druckbefehle zu verwenden.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Clipper und Sybex NT250 LIB

Beitrag von brandelh »

xbaseklaus hat geschrieben:PRINTSEND wird ja auch nur für den am Kassennotebook verwendeten BON-Drucker verwendet also LOKAL
wobei ich das auch rausschmeißen muß , da das neue Notebook das ich als Kasse verwenden soll keinen LPT Anschluß mehr hat nur noch USB.
Somit brauche ich auch einen neuen BON drucker !
mfg Klaus
Die Bon-Drucker (Bluetooth und USB) die ich gesehen habe nutzen alle ESC/POS als Druckersprache.
Egal welcher Anschluß physisch verbaut ist. Du kannst also z.B. ein USB to LPT Kabel anschließen und der Drucker sollte funktionieren.
Ich habe diese aber bisher nur mit Android oder Windows Mobile 6.x verwendet (Windows Mobile über eine COM emu, das andere mit B4A direkt).

Printsend hat Steuerzeichen gesendet, ich baue den Druckdatenstrom immer in einer Variablen zusammen und sende diese an den Drucker:

Code: Alles auswählen

cDruck := cInit+cSchriftFett1+"Hallo Welt"+cSchriftFett0+cCRLF+cCRLF+"zweite Zeile"
set printer to lpt1 // dies könnte auch eine emulierte sein oder am Netzwerk hängen
set printer on
?? cDruck
set printer to
Sollte ein moderner Windowstreiber den Druck mit normalen Xbase++ XbpPrinter() (und damit auch mit DC Print) verwenden, würde das die Arbeit aber erheblich erleichtern.
Denn dann würde der Druck funktionieren sobald der Drucker normal installiert ist.
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

@Hubert

Da ich für den 15Jahre alten BON Drucker eh keine Windows 7 treiber mehr bekomme und er ziemlich am Verfallsdatum ist ( sehr komische Geräusche :-) werde ich in jedem Fall einen USB BON Drucker mit aktuellen Treibern für Windows 7 verwenden , da ich meinen Kopf hinhalten muß wenn das Teil nicht mehr funktioniert .

Hat da jemand gute Erfahrungen mit BON Druckern ... er sollte halt die alte Kassenschublade ansteuern können ( Westernstecker heißen die glaube ich )
So um die 100€ ?

mfg Klaus
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

Den WOPEN Befehl kann ich jetzt auch nicht mehr verwenden, da die WOPEN Einblendungen nicht mehr richtig angezeigt bzw abgeschnitten werden nachdem ich

jetzt die Windows Fenster Anzeige nach meinen Wünschen aufgebohrt habe... Anzahl Zeile / Spalte und Schriftart :(

das schlimme ist der WOPEN Befehl wurde im Source Code ständig verwendet ...

mfg Klaus
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Clipper und Sybex NT250 LIB

Beitrag von xbaseklaus »

Antworten