9. August 2016 12:55
OBJECT Page 50000 Display Test
{
OBJECT-PROPERTIES
{
Date=04.02.13;
Time=09:49:12;
Modified=Yes;
Version List=;
}
PROPERTIES
{
Width=8910;
Height=3520;
SourceTable=Table18;
DelayedInsert=Yes;
SourceTableTemporary=Yes;
OnOpenForm=BEGIN
Zeile1 := 'Hallo Welt !!';
Zeile2 := 'Zweite Zeile....';
TmpPfad := 'C:\Windows\Temp\POSDispOut.dat';
END;
}
CONTROLS
{
{ 1000000000;CommandButton;3520;2750;2200;550;
CaptionML=DEU=Ausgabe;
OnPush=BEGIN
Zeilenumbruch := 10; // Umbruch fr Display
AllesL”schen := 26; // alles auf dem Display l”schen
Zeilenanfang := 13; // Cursor am Anfang der Zeile positionieren
Datei.CREATE(TmpPfad);
Datei.OPEN(TmpPfad);
Datei.TEXTMODE(FALSE);
Datei.WRITE(AllesL”schen);
Datei.WRITE(FORMAT(Zeile1)); // erste Zeile ausgeben
Datei.WRITE(Zeilenumbruch);
Datei.WRITE(Zeilenanfang);
Datei.WRITE(FORMAT(Zeile2)); // zweite Zeile ausgeben
Datei.CLOSE;
CREATE(WSH);
WSH.Exec('cmd.exe /Q /C type ' + TmpPfad + ' > ' + FORMAT(ComPort));
CLEAR(WSH);
END;
}
{ 1000000001;TextBox;3630 ;220 ;2750 ;440 ;SourceExpr=Zeile1 }
{ 1000000002;TextBox;3630 ;770 ;2750 ;440 ;SourceExpr=Zeile2 }
{ 1000000003;TextBox;3630 ;1540 ;1700 ;440 ;SourceExpr=ComPort }
{ 1000000004;TextBox;3630 ;2090 ;5060 ;440 ;SourceExpr=TmpPfad }
{ 1000000005;Label ;220 ;2090 ;3300 ;440 ;CaptionML=DEU=Temp. Pfad }
{ 1000000006;Label ;220 ;1540 ;3300 ;440 ;CaptionML=DEU=COM Port }
{ 1000000007;Label ;220 ;220 ;3300 ;440 ;CaptionML=DEU=Zeile 1 }
{ 1000000008;Label ;220 ;770 ;3300 ;440 ;CaptionML=DEU=Zeile 2 }
}
CODE
{
VAR
Zeile1@1000000000 : Text[20];
Zeile2@1000000001 : Text[20];
Datei@1000000002 : File;
WSH@1000000003 : Automation "{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B} 1.0:{72C24DD5-D70A-438B-8A42-98424B88AFB8}:'Windows Script Host Object Model'.WshShell";
Zeilenumbruch@1000000004 : Char;
AllesL”schen@1000000005 : Char;
Zeilenanfang@1000000006 : Char;
ComPort@1000000007 : 'COM1,COM2,COM3,COM4';
TmpPfad@1000000008 : Text[250];
BEGIN
END.
}
}
private voide brn_SendTest_Click(object sender, EventARgs e)
{
COM3.WriteLine("Test\r\n"); oder COM3.WriteLine(textBox1.Text + "\n\);
}
9. August 2016 13:11
marcussulic hat geschrieben:Geht es eigentlich sowas in NAV 2016 zu bauen?
marcussulic hat geschrieben:Ich weiß aber nicht wirklich, wie ich die Steuerzeichen verwende in NAV
Datei.WRITE(AllesL”schen); <<<<<<<<<<<<<<eines deiner Steuerzeichen
Datei.WRITE(FORMAT(Zeile1)); // erste Zeile ausgeben
Datei.WRITE(Zeilenumbruch);<<<<<<<<<<<<<<noch eines deiner Steuerzeichen
Zeilenumbruch := 10; // Umbruch fr Display
AllesL”schen := 26; // alles auf dem Display l”schen
Zeilenanfang := 13; // Cursor am Anfang der Zeile positionieren
9. August 2016 14:20
Alles loeschen := 1B 40 ; //Alles auf dem Display löschen
{ 1000000001;TextBox;3630 ;220 ;2750 ;440 ;SourceExpr=Zeile1 }
9. August 2016 15:45
Alles loeschen := '1B 40' ; //Alles auf dem Display löschen
marcussulic hat geschrieben:Kann man im Object:Page TextBoxes, Buttons etc hinzufügen?
9. August 2016 16:25
marcussulic hat geschrieben:Außerdem es gibt Properties Width, Height die beim Importieren fehlerschlagen.
<?xml version="1.0"?>
<Objects xmlns="urn:schemas-microsoft-com:dynamics:NAV:ApplicationObjects"><Form xmlns="urn:schemas-microsoft-com:dynamics:NAV:ApplicationObjects" ID="50000" Name="Display Test" Date="2013-02-04" Time="07:49:12Z" VersionList=""><Properties><Width>8910</Width><Height>3520</Height><SourceTable>Table18</SourceTable><DelayedInsert>Yes</DelayedInsert><SourceTableTemporary>Yes</SourceTableTemporary></Properties><Triggers><OnOpenForm><![CDATA[BEGIN
Zeile1 := 'Hallo Welt !!';
Zeile2 := 'Zweite Zeile....';
TmpPfad := 'C:\Windows\Temp\POSDispOut.dat';
END;
]]></OnOpenForm></Triggers><Controls><Control><Properties><ID>1000000000</ID><Controltype>CommandButton</Controltype><XPos>3520</XPos><YPos>2750</YPos><Width>2200</Width><Height>550</Height><CaptionML>DEU=Ausgabe</CaptionML></Properties><Triggers><OnPush><![CDATA[BEGIN
Zeilenumbruch := 10; // Umbruch für Display
AllesLöschen := 26; // alles auf dem Display löschen
Zeilenanfang := 13; // Cursor am Anfang der Zeile positionieren
Datei.CREATE(TmpPfad);
Datei.OPEN(TmpPfad);
Datei.TEXTMODE(FALSE);
Datei.WRITE(AllesLöschen);
Datei.WRITE(FORMAT(Zeile1)); // erste Zeile ausgeben
Datei.WRITE(Zeilenumbruch);
Datei.WRITE(Zeilenanfang);
Datei.WRITE(FORMAT(Zeile2)); // zweite Zeile ausgeben
Datei.CLOSE;
CREATE(WSH);
WSH.Exec('cmd.exe /Q /C type ' + TmpPfad + ' > ' + FORMAT(ComPort));
CLEAR(WSH);
END;
]]></OnPush></Triggers></Control><Control><Properties><ID>1000000001</ID><Controltype>TextBox</Controltype><XPos>3630</XPos><YPos>220</YPos><Width>2750</Width><Height>440</Height><SourceExpr>Zeile1</SourceExpr></Properties></Control><Control><Properties><ID>1000000002</ID><Controltype>TextBox</Controltype><XPos>3630</XPos><YPos>770</YPos><Width>2750</Width><Height>440</Height><SourceExpr>Zeile2</SourceExpr></Properties></Control><Control><Properties><ID>1000000003</ID><Controltype>TextBox</Controltype><XPos>3630</XPos><YPos>1540</YPos><Width>1700</Width><Height>440</Height><SourceExpr>ComPort</SourceExpr></Properties></Control><Control><Properties><ID>1000000004</ID><Controltype>TextBox</Controltype><XPos>3630</XPos><YPos>2090</YPos><Width>5060</Width><Height>440</Height><SourceExpr>TmpPfad</SourceExpr></Properties></Control><Control><Properties><ID>1000000005</ID><Controltype>Label</Controltype><XPos>220</XPos><YPos>2090</YPos><Width>3300</Width><Height>440</Height><CaptionML>DEU=Temp. Pfad</CaptionML></Properties></Control><Control><Properties><ID>1000000006</ID><Controltype>Label</Controltype><XPos>220</XPos><YPos>1540</YPos><Width>3300</Width><Height>440</Height><CaptionML>DEU=COM Port</CaptionML></Properties></Control><Control><Properties><ID>1000000007</ID><Controltype>Label</Controltype><XPos>220</XPos><YPos>220</YPos><Width>3300</Width><Height>440</Height><CaptionML>DEU=Zeile 1</CaptionML></Properties></Control><Control><Properties><ID>1000000008</ID><Controltype>Label</Controltype><XPos>220</XPos><YPos>770</YPos><Width>3300</Width><Height>440</Height><CaptionML>DEU=Zeile 2</CaptionML></Properties></Control></Controls><Code><![CDATA[VAR
Zeile1@1000000000 : Text[20];
Zeile2@1000000001 : Text[20];
Datei@1000000002 : File;
WSH@1000000003 : Automation "{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B} 1.0:{72C24DD5-D70A-438B-8A42-98424B88AFB8}:'Windows Script Host Object Model'.WshShell";
Zeilenumbruch@1000000004 : Char;
AllesLöschen@1000000005 : Char;
Zeilenanfang@1000000006 : Char;
ComPort@1000000007 : 'COM1,COM2,COM3,COM4';
TmpPfad@1000000008 : Text[250];
BEGIN
END.
]]></Code></Form></Objects>
9. August 2016 18:11
Kowa hat geschrieben:Bei der Miniform geht es sicherlich auch ohne, aber zur Info wie es ggf. zu konvertieren wäre, habe ich die Beispielform in das XML-Format umgewandelt (das gibt es bei NAV 2009 als Exportoption, ausschliesslich zu Konvertierungszwecken), damit kann man Forms (soweit machbar ) in Pages konvertieren.
...
sweikelt hat geschrieben:ahh - ok jetzt verstehe ich :)
am besten du legst dir eine eigene Page an - nicht einfach die *.txt der Form so modifizieren, dass anstatt <<Form>> <<Page>> steht :)
Steuerzeichen ggf, so (also mit den einfachen Anführungszeichen):
- Code:
Alles loeschen := '1B 40' ; //Alles auf dem Display löschen
marcussulic hat geschrieben:Kann man im Object:Page TextBoxes, Buttons etc hinzufügen?
Du kannst natürlich in Pages soetwas wie Textboxen und Buttons hinzufügen....es gibt genug Hilfestellungnen bei google, sodass ich hier garnicht näher darauf eingehen will ----> nur ein Hinweis, lass dich nicht vom Type "Field" verwirren -> es muss nicht zwingend ein Feld einer Tabelle sein.
BEGIN
Zeile1 := 'Hallo Welt !!';
Zeile2 := 'Zweite Zeile....';
TmpPfad := 'C:\Windows\Temp\POSDispOut.dat';
ComPort := 3
END;
BEGIN
Zeilenumbruch := '1B 44' // Umbruch f?r Display
AllesLoeschen := '1B 40' // alles auf dem Display loeschen
// AllesLoeschen := ESC @; // alles auf dem Display loeschen
Zeilenanfang := '0D'; // Cursor am Anfang der Zeile positionieren
Datei.CREATE(TmpPfad);
Datei.OPEN(TmpPfad);
Datei.TEXTMODE(FALSE);
// Datei.WRITE(AllesLoeschen);
Datei.WRITE(FORMAT(Zeile1)); // erste Zeile ausgeben
// Datei.WRITE(Zeilenumbruch);
// Datei.WRITE(Zeilenanfang);
Datei.WRITE(FORMAT(Zeile2)); // zweite Zeile ausgeben
Datei.CLOSE;
CREATE(WSH);
WSH.Exec('cmd.exe /Q /C type ' + TmpPfad + ' > ' + FORMAT(ComPort));
CLEAR(WSH);
PAGE.RUN(Number [, Record] [, Field])
END;
9. August 2016 18:29
AllesLoeschen:= ' '; // Anzahl Leerzeichen in der Länge der ESC- Sequenz. (kann auf einigen NAV-Systemenweggelassen werden)
AllesLoeschen[1] := 27; // 0x1B
AllesLoeschen[2] := 64; // 0x40