Αποκλειστικά για γραφικές φόρμες.
Εκτύπωση Ολογράφως
Μπορείτε χρησιμοποιώντας κώδικα c# να εμφανίσετε αξίες ή ποσότητες ολογράφως. Στο υπόδειγμα που ακολουθεί και θα πρέπει να αντιγράψετε στο Tab Code υλοποιούνται τρείς διαφορετικές functions.
- _ToWordsGreekCurr(amount,currencySymbol)
currencySymbols που υλοποιούνται:
EUR,USD,AUD,CAD,NZD,SGD,GBP,EGP,ARS,CLP,MXN,CNY,JPY,CZK,DKK,ILS,RON,CHF,TRY,AED,RUB
Παράδειγμα: [_ToWordsGreekCurr([LabelData.RETAILPRICE],"EUR")] - _ToWordsGreekMU(number,MuName,numDecimals)
Επιστρέφει τιμή ολογράφως για ποσότητες ανάλογα με την μονάδα μέτρησης και τα δεκαδικά.
Παράδειγμα:
[_ToWordsGreekMU([Lines.Ποσότητα 1ης MM (Γραμμές Εμπορικής Εγγραφής)],[Lines.Όνομα (1η Μ.Μ.)],[Lines.Δεκαδικά Ποσότητας (1η Μ.Μ.)])] - _ToWordsGreekOther(amount)
Επιστρέφει τιμή ολογράφως χωρίς να χαρακτηρίζει γιατί πρόκειται.
Παράδειγμα: [_ToWordsGreekOther([Lines.Οριζόμενος Αριθμητικό Πεδίο 01])]
Σημείωση:
Ο κώδικας που δίνεται στα υποδείγματα θα πρέπει να προσαρμόζεται κατάλληλα ανάλογα με τις ανάγκες.
Απαιτεί γνώσεις προγραμματισμού σε c#. Θα πρέπει πάντα να γίνονται δοκιμές σε ελεγχόμενο περιβάλλον.
Υπόδειγμα κώδικα:
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;
using Poseidon.Libs.Base;
using Poseidon.Libs.Base.Helpers;
namespace FastReport
{
public class ReportScript
{
public String _ToWordsGreekCurr(System.Decimal amount,System.String currencySymbol) {
return poDecimal_Extensions.ToGreekText(amount,currencySymbol);
}
public String _ToWordsGreekMU(System.Decimal number,string MuName,int numDecimals) {
string convM = String.Concat("N",numDecimals.ToString());
number = Convert.ToDecimal(number.ToString(convM));
long Num1 = Convert.ToInt64(Math.Truncate(number));
long Num2;
switch ( numDecimals ) {
case 1:
Num2 = Convert.ToInt64( (number - Math.Truncate(number))*10M ); break;
case 2:
Num2 = Convert.ToInt64( (number - Math.Truncate(number))*100M ); break;
case 3:
Num2 = Convert.ToInt64( (number - Math.Truncate(number))*1000M ); break;
default: Num2 = Convert.ToInt64(0); break;
}
string part1 = "";
if ( Num1 != 0 ) {
part1 = poDecimal_Extensions.ToGreekText(Num1) ;
}
string part2 = "";
if ( Num2 != 0 ) {
part2 = poDecimal_Extensions.ToGreekText(Num2) ;
}
string mu1 = "";
string mu2 = "";
string upperMUuname = MuName.ToUpper();
mu1 = upperMUuname; mu2 ="";
bool isFem = false;
bool isPlural = false;
switch (upperMUuname) {
case "ΚΙΛΆ": mu1 = "ΚΙΛΑ"; mu2 = "ΓΡΑΜΜΑΡΙΑ"; isFem = false; isPlural=false; break;
case "ΚΙΛΟ": mu1 = "ΚΙΛΑ"; mu2 = "ΓΡΑΜΜΑΡΙΑ"; isFem = false; isPlural=false; break;
case "ΚΙΛΌ": mu1 = "ΚΙΛΑ"; mu2 = "ΓΡΑΜΜΑΡΙΑ"; isFem = false; isPlural=false; break;
case "ΤΕΜΆΧΙΑ": mu1 = "ΤΕΜΑΧΙΑ"; mu2 = ""; isFem = false; isPlural=false; break;
case "ΤΕΜΆΧΙΟ": mu1 = "ΤΕΜΑΧΙΑ"; mu2 = ""; isFem = false; isPlural=false; break;
case "ΤΕΜΑΧΙΟ": mu1 = "ΤΕΜΑΧΙΑ"; mu2 = ""; isFem = false; isPlural=false; break;
case "ΛΊΤΡΑ": mu1 = "ΛΙΤΡΑ"; mu2 = "ΧΙΛΙΟΣΤΟΛΙΤΡΑ"; isFem = false; isPlural=false; break;
case "ΛΊΤΡΟ": mu1 = "ΛΙΤΡΑ"; mu2 = "ΧΙΛΙΟΣΤΟΛΙΤΡΑ"; isFem = false; isPlural=false; break;
case "ΚΙΒΏΤΙΑ": mu1 = "ΚΙΒΩΤΙΑ"; mu2 = ""; isFem = false; isPlural=false; break;
case "ΚΙΒΏΤΙΟ": mu1 = "ΚΙΒΩΤΙΑ"; mu2 = ""; isFem = false; isPlural=false; break;
case "ΠΑΛΈΤΕΣ": mu1 = "ΠΑΛΕΤΕΣ"; mu2 = ""; isFem = true; isPlural=false;break;
case "ΠΑΛΈΤΑ": mu1 = "ΠΑΛΕΤΕΣ"; mu2 = ""; isFem = true; isPlural=false;break;
case "ΠΑΛΕΤΑ": mu1 = "ΠΑΛΕΤΕΣ"; mu2 = ""; isFem = true; isPlural=false;break;
case "ΤΌΝΟΙ": mu1 = "ΤΟΝΟΙ"; mu2 = "ΚΙΛΑ"; isPlural = true; isFem = false;break;
case "ΤΌΝΟΣ": mu1 = "ΤΟΝΟΙ" ; mu2 = "ΚΙΛΑ"; isPlural = true; isFem = false;break;
case "ΤΟΝΟΣ": mu1 = "ΤΟΝΟΙ" ; mu2 = "ΚΙΛΑ"; isPlural = true; isFem = false;break;
case "ΣΑΚΙΆ": mu1 = "ΣΑΚΙΑ" ; mu2 = ""; isFem = false; isPlural = false; break;
default: mu1=upperMUuname ; mu2 = ""; isFem = false; isPlural = false; break;
}
if ( numDecimals == 1 ) {
mu2 = mu2.Replace("ΧΙΛΙΟΣΤΟΛΙΤΡΑ","ΔΕΚΑΤΟΛΙΤΡΑ");
} else {
if ( numDecimals == 2) {
mu2 = mu2.Replace("ΧΙΛΙΟΣΤΟΛΙΤΡΑ","ΕΚΑΤΟΣΤΟΛΙΤΡΑ");
}
}
string greekName = "";
if ( Num1 != 0 ) { greekName = String.Concat(part1," ",mu1) ; }
if ( Num1 == Convert.ToInt64(1) ) {
greekName = greekName.Replace("ΕΝΑ ΚΙΛΑ","ΕΝΑ ΚΙΛΟ");
greekName = greekName.Replace("ΕΝΑ ΤΕΜΑΧΙΑ","ΕΝΑ ΤΕΜΑΧΙΟ");
greekName = greekName.Replace("ΕΝΑ ΠΑΛΕΤΕΣ","MIA ΠΑΛΕΤΑ");
greekName = greekName.Replace("ΕΝΑ ΤΟΝΟΙ","ΕΝΑΣ ΤΟΝΟΣ");
greekName = greekName.Replace("ΕΝΑ ΣΑΚΙΑ","ΕΝΑ ΣΑΚΙ");
greekName = greekName.Replace("ΕΝΑ ΛΙΤΡΑ","ΕΝΑ ΛΙΤΡΟ");
}
if ( isPlural == true ) {
greekName = greekName.Replace("ΔΙΑΚΟΣΙΑ","ΔΙΑΚΟΣΙΟΙ");
greekName = greekName.Replace("ΤΡΙΑΚΟΣΙΑ","ΤΡΙΑΚΟΣΙΟΙ");
greekName = greekName.Replace("ΤΕΤΡΑΚΟΣΙΑ","ΤΕΤΡΑΚΟΣΙΟΙ");
greekName = greekName.Replace("ΠΕΝΤΑΚΟΣΙΑ","ΠΕΝΤΑΚΟΣΙΟΙ");
greekName = greekName.Replace("ΕΞΑΚΟΣΙΑ","ΕΞΑΚΟΣΙΟΙ");
greekName = greekName.Replace("ΕΠΤΑΚΟΣΙΑ","ΕΠΤΑΚΟΣΙΟΙ");
greekName = greekName.Replace("ΟΚΤΑΚΟΣΙΑ","ΟΚΤΑΚΟΣΙΟΙ");
greekName = greekName.Replace("ΕΝΝΙΑΚΟΣΙΑ","ΕΝΝΙΑΚΟΣΙΟΙ");
}
if ( isFem == true ) {
greekName = greekName.Replace("ΔΙΑΚΟΣΙΑ","ΔΙΑΚΟΣΙΕΣ");
greekName = greekName.Replace("ΤΡΙΑΚΟΣΙΑ","ΤΡΙΑΚΟΣΙΕΣ");
greekName = greekName.Replace("ΤΕΤΡΑΚΟΣΙΑ","ΤΕΤΡΑΚΟΣΙΕΣ");
greekName = greekName.Replace("ΠΕΝΤΑΚΟΣΙΑ","ΠΕΝΤΑΚΟΣΙΕΣ");
greekName = greekName.Replace("ΕΞΑΚΟΣΙΑ","ΕΞΑΚΟΣΙΕΣ");
greekName = greekName.Replace("ΕΠΤΑΚΟΣΙΑ","ΕΠΤΑΚΟΣΙΕΣ");
greekName = greekName.Replace("ΟΚΤΑΚΟΣΙΑ","ΟΚΤΑΚΟΣΙΕΣ");
greekName = greekName.Replace("ΕΝΝΙΑΚΟΣΙΑ","ΕΝΝΙΑΚΟΣΙΕΣ");
}
if ( part1.Length > 0 && part2.Length > 0 && mu2.Length > 0 ) {
greekName = String.Concat(greekName," KAI ",part2," " ,mu2);
}
if ( part1.Length == 0 && part2.Length > 0 && mu2.Length > 0 ) {
greekName = String.Concat(greekName,part2," " ,mu2);
}
return greekName;
}
public string _ToWordsGreekOther(System.Decimal amount) {
return poDecimal_Extensions.ToGreekText(amount);
}
}
}
Hyperlink σε αναφορές
Στις σχεδιαζόμενες αναφορές όταν σε κάποια στήλη της αναφοράς έχει επιλεχθεί Hyperlink και θέλετε να ανοίγει η εκάστοτε σχετιζόμενη Master φόρμα, θα πρέπει να γραφεί κώδικας προκειμένου να ενεργοποιηθεί η λειτουργία. (Ο κώδικας παράγεται αυτόματα από το PYLON)

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;
using Poseidon.Libs.Base.Interfaces;
using Poseidon.Libs.Base.Helpers;
namespace FastReport{
public class ReportScript {
private void textcolumn_MouseDown(object sender, MouseEventArgs e) {
object hyperlinkValue = (sender as ReportComponentBase).Hyperlink.Value;
var args = hyperlinkValue.ToString().Split(';');
IpoAppContext appContext = Report.Parameters.FindByName("AppContext").Value as IpoAppContext;
var fa = appContext.GetService<IpoActionsFactory>();
var fargs = new poFormArgs();
fargs.OpenMode= poFormOpenMode.LocateRecord;
fargs.EditValue = args[2];
fa.FormShow(args[0].ToString(), args[1].ToString(), fargs);
}
}
}