+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Re: Dezimalzeichen und Formatierung


(Guest) #1

Gibst Du die Zahl über einen Formatter aus?

Eigentlich reicht es, die LCID-Option zu setzen, dadurch werden die
‘lokalisierten’ Infos entsprechend gesetzt. Hast Du mal geschau, ob
wirklich die korrekte LCID übergeben wird?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:44962422200913246@combi…

Hallo,

ich möchte die Sprache und damit auch die Formatierung des
Dezimaltrennzeichen bzw. des Tausenderpunkt eines Berichts ändern.
(also aus 1.000,00 soll 1000.00 werden)

Als Test Projekt hab ich mir das “Microsoft
.NET\c#LocalizationSample”
-Projekt genommen und folgendes hinzugefügt:

try
{
LL.Core.LlSetOptionString(LlOptionString.Decimal,"." );
LL.Core.LlSetOption(LlOption.LCID,
CultureInfo.GetCultureInfo(“en-US”).LCID);
//D: Drucken
//US: print
LL.Print();
}
catch (ListLabelException LlException)
{
//D: Exception abfangen
//US: Catch Exceptions
MessageBox.Show("Information: " + LlException.Message + “\n\nThis
information was generated by a List & Label custom exception.”,
“Information”, MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Leider ändert sich weder durch das setzen von LlOptionString.Decimal
noch von LlOption.LCID irrgent etwas.

Hat eine eine Idee was ich falsch mache?(LL14)

Danke & Grüße
Thomas Rokohl


(Guest) #2

Guten Morgen,

ich habe wie gesagt einfach das Beispiel-Projekt c#LocalizationSample
genommen und nur die zwei Zeilen hinzugefügt.

Als LCID kommt da 1033 zurück!?

Danke

Paul Schmidt schrieb:

Gibst Du die Zahl über einen Formatter aus?

Eigentlich reicht es, die LCID-Option zu setzen, dadurch werden die
‘lokalisierten’ Infos entsprechend gesetzt. Hast Du mal geschau, ob
wirklich die korrekte LCID übergeben wird?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:44962422200913246@combi…

Hallo,

ich möchte die Sprache und damit auch die Formatierung des
Dezimaltrennzeichen bzw. des Tausenderpunkt eines Berichts ändern.
(also aus 1.000,00 soll 1000.00 werden)

Als Test Projekt hab ich mir das “Microsoft
.NET\c#LocalizationSample”
-Projekt genommen und folgendes hinzugefügt:

try
{
LL.Core.LlSetOptionString(LlOptionString.Decimal,"." );
LL.Core.LlSetOption(LlOption.LCID,
CultureInfo.GetCultureInfo(“en-US”).LCID);
//D: Drucken
//US: print
LL.Print();
}
catch (ListLabelException LlException)
{
//D: Exception abfangen
//US: Catch Exceptions
MessageBox.Show("Information: " + LlException.Message + “\n\nThis
information was generated by a List & Label custom exception.”,
“Information”, MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Leider ändert sich weder durch das setzen von LlOptionString.Decimal
noch von LlOption.LCID irrgent etwas.

Hat eine eine Idee was ich falsch mache?(LL14)

Danke & Grüße
Thomas Rokohl


(Guest) #3

Hallo,

sorry aber das mit der Formatierung war schon die richtige Spur, man
muss sie rausnehmen und sowas wie LocNumber$ verwenden.
Soweit so gut, doch leider scheitert es jetzt an den Nachkommastellen.
Bei LocNumber hat man keine Möglichkeit eine Formatierung anzugeben.

Ich habe bisher keine Möglichkeit gefunden 3 Nachkommastellen auszugeben?

Hat jemand eine Idee?

Danke & Grüße
Thomas Rokohl

Thomas Rokohl schrieb:

Guten Morgen,

ich habe wie gesagt einfach das Beispiel-Projekt c#LocalizationSample
genommen und nur die zwei Zeilen hinzugefügt.

Als LCID kommt da 1033 zurück!?

Danke

Paul Schmidt schrieb:

Gibst Du die Zahl über einen Formatter aus?

Eigentlich reicht es, die LCID-Option zu setzen, dadurch werden die
‘lokalisierten’ Infos entsprechend gesetzt. Hast Du mal geschau, ob
wirklich die korrekte LCID übergeben wird?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:44962422200913246@combi…

Hallo,

ich möchte die Sprache und damit auch die Formatierung des
Dezimaltrennzeichen bzw. des Tausenderpunkt eines Berichts ändern.
(also aus 1.000,00 soll 1000.00 werden)

Als Test Projekt hab ich mir das “Microsoft .NET\c#LocalizationSample”
-Projekt genommen und folgendes hinzugefügt:

try
{
LL.Core.LlSetOptionString(LlOptionString.Decimal,"." );
LL.Core.LlSetOption(LlOption.LCID,
CultureInfo.GetCultureInfo(“en-US”).LCID);
//D: Drucken
//US: print
LL.Print();
}
catch (ListLabelException LlException)
{
//D: Exception abfangen
//US: Catch Exceptions
MessageBox.Show("Information: " + LlException.Message + “\n\nThis
information was generated by a List & Label custom exception.”,
“Information”, MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Leider ändert sich weder durch das setzen von LlOptionString.Decimal
noch von LlOption.LCID irrgent etwas.

Hat eine eine Idee was ich falsch mache?(LL14)

Danke & Grüße
Thomas Rokohl


(Guest) #4

Die Formatierungs-Property?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:26644424200910628@combit.net

Hallo,

sorry aber das mit der Formatierung war schon die richtige Spur, man
muss sie rausnehmen und sowas wie LocNumber$ verwenden.
Soweit so gut, doch leider scheitert es jetzt an den
Nachkommastellen.
Bei LocNumber hat man keine Möglichkeit eine Formatierung anzugeben.

Ich habe bisher keine Möglichkeit gefunden 3 Nachkommastellen
auszugeben?

Hat jemand eine Idee?

Danke & Grüße
Thomas Rokohl

Thomas Rokohl schrieb:

Guten Morgen,

ich habe wie gesagt einfach das Beispiel-Projekt
c#LocalizationSample
genommen und nur die zwei Zeilen hinzugefügt.

Als LCID kommt da 1033 zurück!?

Danke

Paul Schmidt schrieb:

Gibst Du die Zahl über einen Formatter aus?

Eigentlich reicht es, die LCID-Option zu setzen, dadurch werden
die
‘lokalisierten’ Infos entsprechend gesetzt. Hast Du mal geschau,
ob
wirklich die korrekte LCID übergeben wird?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:44962422200913246@combi…

Hallo,

ich möchte die Sprache und damit auch die Formatierung des
Dezimaltrennzeichen bzw. des Tausenderpunkt eines Berichts
ändern.
(also aus 1.000,00 soll 1000.00 werden)

Als Test Projekt hab ich mir das “Microsoft
.NET\c#LocalizationSample”
-Projekt genommen und folgendes hinzugefügt:

try
{
LL.Core.LlSetOptionString(LlOptionString.Decimal,"." );
LL.Core.LlSetOption(LlOption.LCID,
CultureInfo.GetCultureInfo(“en-US”).LCID);
//D: Drucken
//US: print
LL.Print();
}
catch (ListLabelException LlException)
{
//D: Exception abfangen
//US: Catch Exceptions
MessageBox.Show("Information: " + LlException.Message + “\n\nThis
information was generated by a List & Label custom exception.”,
“Information”, MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Leider ändert sich weder durch das setzen von
LlOptionString.Decimal
noch von LlOption.LCID irrgent etwas.

Hat eine eine Idee was ich falsch mache?(LL14)

Danke & Grüße
Thomas Rokohl


(Guest) #5

Hallo Paulchen,

wenn man die Formatierungs-Property nimmt kann man locnumber und co
nicht verwenden, da diese einen string zurückgeben.
Ohne die loc* Funktionen kann man die Zahlen nicht für andere Sprachen
formatieren. (die Formatierungs-Properties reagieren nicht auf die Sprache)

Paul Schmidt schrieb:

Die Formatierungs-Property?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:26644424200910628@combit.net

Hallo,

sorry aber das mit der Formatierung war schon die richtige Spur, man
muss sie rausnehmen und sowas wie LocNumber$ verwenden.
Soweit so gut, doch leider scheitert es jetzt an den
Nachkommastellen.
Bei LocNumber hat man keine Möglichkeit eine Formatierung anzugeben.

Ich habe bisher keine Möglichkeit gefunden 3 Nachkommastellen
auszugeben?

Hat jemand eine Idee?

Danke & Grüße
Thomas Rokohl

Thomas Rokohl schrieb:

Guten Morgen,

ich habe wie gesagt einfach das Beispiel-Projekt
c#LocalizationSample
genommen und nur die zwei Zeilen hinzugefügt.

Als LCID kommt da 1033 zurück!?

Danke

Paul Schmidt schrieb:

Gibst Du die Zahl über einen Formatter aus?

Eigentlich reicht es, die LCID-Option zu setzen, dadurch werden
die
‘lokalisierten’ Infos entsprechend gesetzt. Hast Du mal geschau,
ob
wirklich die korrekte LCID übergeben wird?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:44962422200913246@combi…

Hallo,

ich möchte die Sprache und damit auch die Formatierung des
Dezimaltrennzeichen bzw. des Tausenderpunkt eines Berichts
ändern.
(also aus 1.000,00 soll 1000.00 werden)

Als Test Projekt hab ich mir das “Microsoft
.NET\c#LocalizationSample”
-Projekt genommen und folgendes hinzugefügt:

try
{
LL.Core.LlSetOptionString(LlOptionString.Decimal,"." );
LL.Core.LlSetOption(LlOption.LCID,
CultureInfo.GetCultureInfo(“en-US”).LCID);
//D: Drucken
//US: print
LL.Print();
}
catch (ListLabelException LlException)
{
//D: Exception abfangen
//US: Catch Exceptions
MessageBox.Show("Information: " + LlException.Message + “\n\nThis
information was generated by a List & Label custom exception.”,
“Information”, MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Leider ändert sich weder durch das setzen von
LlOptionString.Decimal
noch von LlOption.LCID irrgent etwas.

Hat eine eine Idee was ich falsch mache?(LL14)

Danke & Grüße
Thomas Rokohl


(Guest) #6

Dann bist Du in einer Zwickmühle - Du willst es lokalisiert ausgeben,
aber nicht “wirklich” …

Trick 17:

ChrSubst$ (
ChrSubst$ (
ChrSubst$ (
ChrSubst$ (
FStr$(314159.26535,"###,##&.###"),
Locale$(14),
‘K’),
Locale$(15),
“P”),
“K”,Locale$(15,“USA”)),
“P”,Locale$(14,“USA”))

-> danach wird die Zahl mit 3 Nachkommastellen, amerikanisch
formatiert, ausgegeben.

Locale$(14) ist das Dezimaltrennzeichen (LOCALE_SDECIMAL),
Locale$(15) ist das Tausendertrennzeichen (LOCALE_STHOUSAND).

Prinzip: ersetze erst dien “lokalen” Trenner durch Spezialzeichen
(hier ‘P’ und ‘K’), dann ersetze die durch die “Ziel”-Trenner.

Das funktioniert aber nur, solange das “Grouping” (Anzahl der
gruppierten Stellen vor dem Komma) gleich ist bei beiden Ländern.

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:394604282009152220@combit.net

Hallo Paulchen,

wenn man die Formatierungs-Property nimmt kann man locnumber und co
nicht verwenden, da diese einen string zurückgeben.
Ohne die loc* Funktionen kann man die Zahlen nicht für andere
Sprachen
formatieren. (die Formatierungs-Properties reagieren nicht auf die
Sprache)

Paul Schmidt schrieb:

Die Formatierungs-Property?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:26644424200910628@combit.net

Hallo,

sorry aber das mit der Formatierung war schon die richtige Spur,
man
muss sie rausnehmen und sowas wie LocNumber$ verwenden.
Soweit so gut, doch leider scheitert es jetzt an den
Nachkommastellen.
Bei LocNumber hat man keine Möglichkeit eine Formatierung
anzugeben.

Ich habe bisher keine Möglichkeit gefunden 3 Nachkommastellen
auszugeben?

Hat jemand eine Idee?

Danke & Grüße
Thomas Rokohl

Thomas Rokohl schrieb:

Guten Morgen,

ich habe wie gesagt einfach das Beispiel-Projekt
c#LocalizationSample
genommen und nur die zwei Zeilen hinzugefügt.

Als LCID kommt da 1033 zurück!?

Danke

Paul Schmidt schrieb:

Gibst Du die Zahl über einen Formatter aus?

Eigentlich reicht es, die LCID-Option zu setzen, dadurch werden
die
‘lokalisierten’ Infos entsprechend gesetzt. Hast Du mal geschau,
ob
wirklich die korrekte LCID übergeben wird?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:44962422200913246@combi…

Hallo,

ich möchte die Sprache und damit auch die Formatierung des
Dezimaltrennzeichen bzw. des Tausenderpunkt eines Berichts
ändern.
(also aus 1.000,00 soll 1000.00 werden)

Als Test Projekt hab ich mir das “Microsoft
.NET\c#LocalizationSample”
-Projekt genommen und folgendes hinzugefügt:

try
{
LL.Core.LlSetOptionString(LlOptionString.Decimal,"." );
LL.Core.LlSetOption(LlOption.LCID,
CultureInfo.GetCultureInfo(“en-US”).LCID);
//D: Drucken
//US: print
LL.Print();
}
catch (ListLabelException LlException)
{
//D: Exception abfangen
//US: Catch Exceptions
MessageBox.Show("Information: " + LlException.Message +
“\n\nThis
information was generated by a List & Label custom exception.”,
“Information”, MessageBoxButtons.OK,
MessageBoxIcon.Information);
}

Leider ändert sich weder durch das setzen von
LlOptionString.Decimal
noch von LlOption.LCID irrgent etwas.

Hat eine eine Idee was ich falsch mache?(LL14)

Danke & Grüße
Thomas Rokohl


(Guest) #7

Hallo Paulchen,

wieso “nicht wirklich”?

Deine Lösung ist mir zu aufwendig, ich hab mir jetzt damit beholfen das
ich mir eine eigene DesignerFunction gemacht habe. Diese macht vom
Prinzip nix anderes als:

double d = (double)e.Parameter1;
string format = e.Parameter2 as String;
e.ResultValue = d.ToString(format,locformat);

wobei locformat ein NumberFormatInfo der entsprechenden Sprache ist und
der Parameter 2 ist der entsprechende .NET Formatierungsstring also z.b.
N3 für 3 Nachkommastellen.

Ich versteh echt nicht wieso das in LL nicht geht. :frowning:

Grüße

Paul Schmidt schrieb:

Dann bist Du in einer Zwickmühle - Du willst es lokalisiert ausgeben,
aber nicht “wirklich” …

Trick 17:

ChrSubst$ (
ChrSubst$ (
ChrSubst$ (
ChrSubst$ (
FStr$(314159.26535,"###,##&.###"),
Locale$(14),
‘K’),
Locale$(15),
“P”),
“K”,Locale$(15,“USA”)),
“P”,Locale$(14,“USA”))

-> danach wird die Zahl mit 3 Nachkommastellen, amerikanisch
formatiert, ausgegeben.

Locale$(14) ist das Dezimaltrennzeichen (LOCALE_SDECIMAL),
Locale$(15) ist das Tausendertrennzeichen (LOCALE_STHOUSAND).

Prinzip: ersetze erst dien “lokalen” Trenner durch Spezialzeichen
(hier ‘P’ und ‘K’), dann ersetze die durch die “Ziel”-Trenner.

Das funktioniert aber nur, solange das “Grouping” (Anzahl der
gruppierten Stellen vor dem Komma) gleich ist bei beiden Ländern.

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:394604282009152220@combit.net

Hallo Paulchen,

wenn man die Formatierungs-Property nimmt kann man locnumber und co
nicht verwenden, da diese einen string zurückgeben.
Ohne die loc* Funktionen kann man die Zahlen nicht für andere
Sprachen
formatieren. (die Formatierungs-Properties reagieren nicht auf die
Sprache)

Paul Schmidt schrieb:

Die Formatierungs-Property?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:26644424200910628@combit.net

Hallo,

sorry aber das mit der Formatierung war schon die richtige Spur,
man
muss sie rausnehmen und sowas wie LocNumber$ verwenden.
Soweit so gut, doch leider scheitert es jetzt an den
Nachkommastellen.
Bei LocNumber hat man keine Möglichkeit eine Formatierung
anzugeben.

Ich habe bisher keine Möglichkeit gefunden 3 Nachkommastellen
auszugeben?

Hat jemand eine Idee?

Danke & Grüße
Thomas Rokohl

Thomas Rokohl schrieb:

Guten Morgen,

ich habe wie gesagt einfach das Beispiel-Projekt
c#LocalizationSample
genommen und nur die zwei Zeilen hinzugefügt.

Als LCID kommt da 1033 zurück!?

Danke

Paul Schmidt schrieb:

Gibst Du die Zahl über einen Formatter aus?

Eigentlich reicht es, die LCID-Option zu setzen, dadurch werden
die
‘lokalisierten’ Infos entsprechend gesetzt. Hast Du mal geschau,
ob
wirklich die korrekte LCID übergeben wird?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:44962422200913246@combi…

Hallo,

ich möchte die Sprache und damit auch die Formatierung des
Dezimaltrennzeichen bzw. des Tausenderpunkt eines Berichts
ändern.
(also aus 1.000,00 soll 1000.00 werden)

Als Test Projekt hab ich mir das “Microsoft
.NET\c#LocalizationSample”
-Projekt genommen und folgendes hinzugefügt:

try
{
LL.Core.LlSetOptionString(LlOptionString.Decimal,"." );
LL.Core.LlSetOption(LlOption.LCID,
CultureInfo.GetCultureInfo(“en-US”).LCID);
//D: Drucken
//US: print
LL.Print();
}
catch (ListLabelException LlException)
{
//D: Exception abfangen
//US: Catch Exceptions
MessageBox.Show("Information: " + LlException.Message +
“\n\nThis
information was generated by a List & Label custom exception.”,
“Information”, MessageBoxButtons.OK,
MessageBoxIcon.Information);
}

Leider ändert sich weder durch das setzen von
LlOptionString.Decimal
noch von LlOption.LCID irrgent etwas.

Hat eine eine Idee was ich falsch mache?(LL14)

Danke & Grüße
Thomas Rokohl


(Guest) #8

Ich versteh echt nicht wieso das in LL nicht geht. :frowning:

Veilleicht

a) Weil das schon ein etwas “spezieller” Wunsch ist, eine formatierte
Zahl in einer Lokalisierung auszugeben, die nicht der eigenen Locale
entspricht

b) Weil man’s ebebnselbst einfach machen kann ;-))))

Ich vermute, daß die Nachfrage danach nicht groß war bisher…
Ansonsten habe ich die Erfahrung gemacht, daß combit Wünschen durchaus
nachgeht, wenn sie geäußert werden und sinnvoll klingen.

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:304554292009135918@combit.net

Hallo Paulchen,

wieso “nicht wirklich”?

Deine Lösung ist mir zu aufwendig, ich hab mir jetzt damit beholfen
das
ich mir eine eigene DesignerFunction gemacht habe. Diese macht vom
Prinzip nix anderes als:

double d = (double)e.Parameter1;
string format = e.Parameter2 as String;
e.ResultValue = d.ToString(format,locformat);

wobei locformat ein NumberFormatInfo der entsprechenden Sprache ist
und
der Parameter 2 ist der entsprechende .NET Formatierungsstring also
z.b.
N3 für 3 Nachkommastellen.

Ich versteh echt nicht wieso das in LL nicht geht. :frowning:

Grüße

Paul Schmidt schrieb:

Dann bist Du in einer Zwickmühle - Du willst es lokalisiert
ausgeben,
aber nicht “wirklich” …

Trick 17:

ChrSubst$ (
ChrSubst$ (
ChrSubst$ (
ChrSubst$ (
FStr$(314159.26535,"###,##&.###"),
Locale$(14),
‘K’),
Locale$(15),
“P”),
“K”,Locale$(15,“USA”)),
“P”,Locale$(14,“USA”))

-> danach wird die Zahl mit 3 Nachkommastellen, amerikanisch
formatiert, ausgegeben.

Locale$(14) ist das Dezimaltrennzeichen (LOCALE_SDECIMAL),
Locale$(15) ist das Tausendertrennzeichen (LOCALE_STHOUSAND).

Prinzip: ersetze erst dien “lokalen” Trenner durch Spezialzeichen
(hier ‘P’ und ‘K’), dann ersetze die durch die “Ziel”-Trenner.

Das funktioniert aber nur, solange das “Grouping” (Anzahl der
gruppierten Stellen vor dem Komma) gleich ist bei beiden Ländern.

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:394604282009152220@combit.net

Hallo Paulchen,

wenn man die Formatierungs-Property nimmt kann man locnumber und
co
nicht verwenden, da diese einen string zurückgeben.
Ohne die loc* Funktionen kann man die Zahlen nicht für andere
Sprachen
formatieren. (die Formatierungs-Properties reagieren nicht auf die
Sprache)

Paul Schmidt schrieb:

Die Formatierungs-Property?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:26644424200910628@combit.net

Hallo,

sorry aber das mit der Formatierung war schon die richtige Spur,
man
muss sie rausnehmen und sowas wie LocNumber$ verwenden.
Soweit so gut, doch leider scheitert es jetzt an den
Nachkommastellen.
Bei LocNumber hat man keine Möglichkeit eine Formatierung
anzugeben.

Ich habe bisher keine Möglichkeit gefunden 3 Nachkommastellen
auszugeben?

Hat jemand eine Idee?

Danke & Grüße
Thomas Rokohl

Thomas Rokohl schrieb:

Guten Morgen,

ich habe wie gesagt einfach das Beispiel-Projekt
c#LocalizationSample
genommen und nur die zwei Zeilen hinzugefügt.

Als LCID kommt da 1033 zurück!?

Danke

Paul Schmidt schrieb:

Gibst Du die Zahl über einen Formatter aus?

Eigentlich reicht es, die LCID-Option zu setzen, dadurch
werden
die
‘lokalisierten’ Infos entsprechend gesetzt. Hast Du mal
geschau,
ob
wirklich die korrekte LCID übergeben wird?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:44962422200913246@combi…

Hallo,

ich möchte die Sprache und damit auch die Formatierung des
Dezimaltrennzeichen bzw. des Tausenderpunkt eines Berichts
ändern.
(also aus 1.000,00 soll 1000.00 werden)

Als Test Projekt hab ich mir das “Microsoft
.NET\c#LocalizationSample”
-Projekt genommen und folgendes hinzugefügt:

try
{
LL.Core.LlSetOptionString(LlOptionString.Decimal,"." );
LL.Core.LlSetOption(LlOption.LCID,
CultureInfo.GetCultureInfo(“en-US”).LCID);
//D: Drucken
//US: print
LL.Print();
}
catch (ListLabelException LlException)
{
//D: Exception abfangen
//US: Catch Exceptions
MessageBox.Show("Information: " + LlException.Message +
“\n\nThis
information was generated by a List & Label custom
exception.”,
“Information”, MessageBoxButtons.OK,
MessageBoxIcon.Information);
}

Leider ändert sich weder durch das setzen von
LlOptionString.Decimal
noch von LlOption.LCID irrgent etwas.

Hat eine eine Idee was ich falsch mache?(LL14)

Danke & Grüße
Thomas Rokohl


(Guest) #9

Hallo,

natürlich hast du recht das es einfach ist, aber erst dann
wenn man raus gefunden hat das es mit Bordmitteln von LL nicht geht.
Ich finde mein Problem eigentlich nicht “speziell”. Wenn ich eine
Rechnung auf Englisch erzeugen will, dann sollte wohl doch das
Datum und Zahlenformat auch richtig sein und Mengenangaben haben in der
Regel 3 Stellen nach dem Komma.

Nunja jetzt gehts ja.

Grüße

Paul Schmidt schrieb:

Ich versteh echt nicht wieso das in LL nicht geht. :frowning:

Veilleicht

a) Weil das schon ein etwas “spezieller” Wunsch ist, eine formatierte
Zahl in einer Lokalisierung auszugeben, die nicht der eigenen Locale
entspricht

b) Weil man’s ebebnselbst einfach machen kann ;-))))

Ich vermute, daß die Nachfrage danach nicht groß war bisher…
Ansonsten habe ich die Erfahrung gemacht, daß combit Wünschen durchaus
nachgeht, wenn sie geäußert werden und sinnvoll klingen.

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:304554292009135918@combit.net

Hallo Paulchen,

wieso “nicht wirklich”?

Deine Lösung ist mir zu aufwendig, ich hab mir jetzt damit beholfen
das
ich mir eine eigene DesignerFunction gemacht habe. Diese macht vom
Prinzip nix anderes als:

double d = (double)e.Parameter1;
string format = e.Parameter2 as String;
e.ResultValue = d.ToString(format,locformat);

wobei locformat ein NumberFormatInfo der entsprechenden Sprache ist
und
der Parameter 2 ist der entsprechende .NET Formatierungsstring also
z.b.
N3 für 3 Nachkommastellen.

Ich versteh echt nicht wieso das in LL nicht geht. :frowning:

Grüße

Paul Schmidt schrieb:

Dann bist Du in einer Zwickmühle - Du willst es lokalisiert
ausgeben,
aber nicht “wirklich” …

Trick 17:

ChrSubst$ (
ChrSubst$ (
ChrSubst$ (
ChrSubst$ (
FStr$(314159.26535,"###,##&.###"),
Locale$(14),
‘K’),
Locale$(15),
“P”),
“K”,Locale$(15,“USA”)),
“P”,Locale$(14,“USA”))

-> danach wird die Zahl mit 3 Nachkommastellen, amerikanisch
formatiert, ausgegeben.

Locale$(14) ist das Dezimaltrennzeichen (LOCALE_SDECIMAL),
Locale$(15) ist das Tausendertrennzeichen (LOCALE_STHOUSAND).

Prinzip: ersetze erst dien “lokalen” Trenner durch Spezialzeichen
(hier ‘P’ und ‘K’), dann ersetze die durch die “Ziel”-Trenner.

Das funktioniert aber nur, solange das “Grouping” (Anzahl der
gruppierten Stellen vor dem Komma) gleich ist bei beiden Ländern.

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:394604282009152220@combit.net

Hallo Paulchen,

wenn man die Formatierungs-Property nimmt kann man locnumber und
co
nicht verwenden, da diese einen string zurückgeben.
Ohne die loc* Funktionen kann man die Zahlen nicht für andere
Sprachen
formatieren. (die Formatierungs-Properties reagieren nicht auf die
Sprache)

Paul Schmidt schrieb:

Die Formatierungs-Property?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:26644424200910628@combit.net

Hallo,

sorry aber das mit der Formatierung war schon die richtige Spur,
man
muss sie rausnehmen und sowas wie LocNumber$ verwenden.
Soweit so gut, doch leider scheitert es jetzt an den
Nachkommastellen.
Bei LocNumber hat man keine Möglichkeit eine Formatierung
anzugeben.

Ich habe bisher keine Möglichkeit gefunden 3 Nachkommastellen
auszugeben?

Hat jemand eine Idee?

Danke & Grüße
Thomas Rokohl

Thomas Rokohl schrieb:

Guten Morgen,

ich habe wie gesagt einfach das Beispiel-Projekt
c#LocalizationSample
genommen und nur die zwei Zeilen hinzugefügt.

Als LCID kommt da 1033 zurück!?

Danke

Paul Schmidt schrieb:

Gibst Du die Zahl über einen Formatter aus?

Eigentlich reicht es, die LCID-Option zu setzen, dadurch
werden
die
‘lokalisierten’ Infos entsprechend gesetzt. Hast Du mal
geschau,
ob
wirklich die korrekte LCID übergeben wird?

Paulchen

“Thomas Rokohl” <t.rokohl@prodat…> wrote in message
news:44962422200913246@combi…

Hallo,

ich möchte die Sprache und damit auch die Formatierung des
Dezimaltrennzeichen bzw. des Tausenderpunkt eines Berichts
ändern.
(also aus 1.000,00 soll 1000.00 werden)

Als Test Projekt hab ich mir das “Microsoft
.NET\c#LocalizationSample”
-Projekt genommen und folgendes hinzugefügt:

try
{
LL.Core.LlSetOptionString(LlOptionString.Decimal,"." );
LL.Core.LlSetOption(LlOption.LCID,
CultureInfo.GetCultureInfo(“en-US”).LCID);
//D: Drucken
//US: print
LL.Print();
}
catch (ListLabelException LlException)
{
//D: Exception abfangen
//US: Catch Exceptions
MessageBox.Show("Information: " + LlException.Message +
“\n\nThis
information was generated by a List & Label custom
exception.”,
“Information”, MessageBoxButtons.OK,
MessageBoxIcon.Information);
}

Leider ändert sich weder durch das setzen von
LlOptionString.Decimal
noch von LlOption.LCID irrgent etwas.

Hat eine eine Idee was ich falsch mache?(LL14)

Danke & Grüße
Thomas Rokohl