Jump to content



Μετατροπή ποσό σε ολογράφως στην ACCESS


Recommended Posts

Καλησπέρα σε όλους.

Μήπως ξέρει κάποιος πώς θα μπορούσα σε ένα report στην access να προσθέσω ένα πλαίσιο κειμένου και να παίρνει ένα ποσό από άλλο πεδίο και να το μετατρέπει σε ολογράφως?

Π.χ έστω έχω ένα αριθμητικό πεδίο "ποσό τιμολογίου" και θέλω σε άλλο πλαίσιο κειμένου να γράφει αυτό το ποσό ολογράφως.

Παρακαλώ με αναλυτικά βήματα γιατί από vb ή κώδικα δεν το έχω με την access.

Ευχαριστώ πολύ.

 

Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...

Πάρε σε php και μετέτρεψέ τον.

Από το project μου «Στρατιωτικές Δαπάνες».

 

// Επιστρέφει το string του φυσικού αριθμού $n
// για αριθμούς από 0 ως 999.999.999.999.999.999.999.999.999.999.999
// Δυστηχώς το php δεν υποστηρίζει integers μεγαλύτερους από 2^31-1 (για 32 bit μηχανήματα)
// Το $genos αναφέρεται στο γένος (αρσενικό = 0, θυληκό = 1, ουδέτερο = 2)
function int2str($n, $genos) {
	if (!is_int($n) || $n < 0) return;
	if (!$n) return 'μηδέν';
	static $xilia = array('χίλιοι', 'χίλιες', 'χίλια');
	static $polla = array('', 'δισ', 'τρισ', 'τετράκις ', 'πεντάκις ', 'εξάκις ', 'επτάκις ', 'οκτάκις ', 'εννιάκις ');

	$out = null;
	$b = $n % 1000;
	$n = floor($n / 1000);
	if ($b) $out = int2str_1_999($b, $genos);
	if (!$n) return $out;

	$b = $n % 1000;
	$n = floor($n / 1000);
	if ($b) {
		if ($out) $out = ' ' . $out;
		if ($b == 1) $out = $xilia[$genos] . $out;
		else $out = int2str_1_999($b, 1) . ' χιλιάδες' . $out;
	}

	$c = 0;
	while($n) {
		$b = $n % 1000;
		$a = floor($n / 1000);
		if ($b) {
			if ($out) $out = ' ' . $out;
			if ($b == 1) $out = 'ένα εκατομμύριο' . $out;
			else $out = int2str_1_999($b, 2) . ' ' . $polla[$c] . 'εκατομμύρια' . $out;
		}
		if (!$n) return $out;
		$c++;
	}
	return $out;
}

// Επιστρέφει το string του φυσικού αριθμού $n για αριθμούς από 1 ως 999.
// Το $genos αναφέρεται στο γένος (αρσενικό = 0, θυληκό = 1, ουδέτερο = 2)
function int2str_1_999($n, $genos) {
	if (!is_int($n) || $n < 1 || $n > 999) return;

	static $ekatodades = array(
		array('εκατό', 'εκατόν', 'διακόσιοι', 'τριακόσιοι', 'τετρακόσιοι', 'πεντακόσιοι', 'εξακόσιοι', 'εφτακόσιοι', 'οκτακόσιοι', 'εννιακόσιοι'),
		array('εκατό', 'εκατόν', 'διακόσιες', 'τριακόσιες', 'τετρακόσιες', 'πεντακόσιες', 'εξακόσιες', 'εφτακόσιες', 'οκτακόσιες', 'εννιακόσιες'),
		array('εκατό', 'εκατόν', 'διακόσια', 'τριακόσια', 'τετρακόσια', 'πεντακόσια', 'εξακόσια', 'εφτακόσια', 'οκτακόσια', 'εννιακόσια')
	);
  static $dekades = array('είκοσι', 'τριάντα', 'σαράντα', 'πενήντα', 'εξήντα', 'εβδομήντα', 'ογδόντα', 'ενενήντα');
	static $monades = array(
		array('ένας', 'δύο', 'τρείς', 'τέσσερεις', 'πέντε', 'έξι', 'επτά', 'οκτώ', 'εννέα', 'δέκα', 'έντεκα', 'δώδεκα', 'δεκατρείς', 'δεκατέσσερεις', 'δεκαπέντε', 'δεκαέξι', 'δεκαεπτά', 'δεκαοκτώ', 'δεκαεννιά'),
		array('ένα', 'δύο', 'τρία', 'τέσσερα', 'πέντε', 'έξι', 'επτά', 'οκτώ', 'εννέα', 'δέκα', 'έντεκα', 'δώδεκα', 'δεκατρία', 'δεκατέσσερα', 'δεκαπέντε', 'δεκαέξι', 'δεκαεπτά', 'δεκαοκτώ', 'δεκαεννιά')
	);

  $out = null;
	$a = floor($n / 100);
	$b = $n % 100;
	if ($a) {
		if (!$b && $a == 1) $a = 0;
		$out = $ekatodades[$genos][$a];
	}
	if (!$b) return $out;
	if ($out) $out .= ' ';
	if ($b < 20) {
		if ($genos == 1 && $b == 1) return $out . 'μία';
		return $out . $monades[$genos == 2 ? 1 : 0][$b - 1];
	}
	$out .= $dekades[floor($b / 10) - 2];
	$b = $n % 10;
	if (!$b) return $out;
	if ($genos == 1 && $b == 1) return $out . ' μία';
	return $out . ' ' . $monades[$genos == 2 ? 1 : 0][$b - 1];
}

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.