Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   μπορεί να γίνει κατι τέτοιο με access (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/787-mporei-na-ginei-kati-tetoio-me-access.html)

sakis 18-10-10 23:15

μπορεί να γίνει κατι τέτοιο με access
 
εχω αυτο το προγραματακι που μου κανει την δουλεια μου.το θεμα ειναι οτι εγω τις διαστασεις
τις βγαζω απο προγραμμα της access και μετα πρεπει να τις περασω σε αυτο το προγραμα
για να βγαλω ποσες βεργες πρεπει να εχω και πως πρεπει να τις κοψω.ξερει κανεις πως δουλευει
αυτο το προγραμα,και αν ειναι δυνατον να γινει κατι τετοιο με access και πως.αν μπορει καποιος
να με βοηθησει πολυ θα το εκτιμουσα.ευχαριστο σακης.

Tasos 19-10-10 01:44

Σάκη καλημέρα!

Για να σε βοηθήσουμε, να πραγματοποιήσεις αυτό που επιθυμείς, θα πρέπει να ανεβάσεις ένα Access παράδειγμα.

Περιμένουμε να σε διαβάσουμε.

Φιλικά

Τάσος

ΥΓ.

Το συνημμένο σου διαγράφηκε γιατί το περιεχόμενο του δεν ταιριάζει στο χαραχτήρα του φόρουμ.
Στους
Κανόνες του Forum και στην ενότητα: "Πριν ζητήσετε / ρωτήσετε κάτι ακολουθήστε τους παρακάτω απλούς κανόνες" αναφέρεται το εξής:
....Οποιοδήποτε μήνυμα σχετικά με παράνομο λογισμικό ή μεθόδους εξουδετέρωσης της προστασίας λογισμικού ( ... ) καθώς και συνδέσμους (links) για ιστοσελίδες με τέτοιο περιεχόμενο....

sakis 19-10-10 17:15

εχω εναν πινακα με διαφορες διαστασεις ,που αντιστιχουν σε κοματια που πρεπει να κοπουν απο βεργες 6 μετρων. πως μπορει να κοπουν με την λιγοτερη φυρα.θελω δηλαδη μια ρουτινα πουνα τρεχει τις διαστασεις που θελω να κοψω και οταν βρησκει αυτες που"χωρανε"πιο καλα στην βεργα
να συνεχιζει με αλλα κοματια και την επομενη βεργα. ευχαριστο πολυ για την απαντηση.δεν μπορω να το στειλω σε access γιατι δεν το εχω κανει.εστειλα το προγραματακι αυτο για να καταλαβεται
τι θελω να κανω.

Meteora 19-10-10 19:11

Καλησπέρα
Αγαπητέ Σάκη, από τα γραφόμενά σου προκύπτει οτι θέλεις μια ολάκερη εφαρμογή ! Τα μέλη του Forum μπορούν να βοηθήσουν ώστε να επιλυθεί μια δυσκολία που συναντά κάποιος καθώς αναπτύσει μια εργασία.
Η ερώτησή σου είναι πολύ γενική, δεν νομίζω να πάρεις απάντηση από κάποιο μέλος. Η πρότασή μου είναι να έλθεις σε επικοινωνία με την ομάδα που διαχειρίζεται το ms-office.gr και να κάνεις μια συζήτηση μαζί τους.
Ελπίζω να βοήθησα / Νίκος Δ.

nisgia 20-10-10 02:03

Καλησπέρα Σάκη!

Αν το ερώτημά σου είναι: "Γίνεται βελτιστοποίηση κοπής στην Access;"
Η απάντηση είναι: Ναι, γίνεται!

Επειδή όμως ως θέμα είναι προκλητικά ενδιαφέρον, και επειδή ως μάστορας οφείλω να είμαι αλληλέγγυος σε μάστορα,
σου ετοίμασα μια διαδικασία (έτσι για αρχή) η οποία βασικά δεν ξέρω αν κάνει όσα υπόσχεται
αλλά τουλάχιστο για αρχή θα μας δώσει κάπως το έναυσμα για παραπέρα ανάπτυξη, έρευνα και εξέλιξη.

Σίγουρα εκεί έξω υπάρχουν άπειρες έτοιμες εφαρμογές για να κάνεις τη δουλειά σου όμως
όταν κάτι το κάνεις μόνο σου... έχει διαφορά! :001_smile:

Για να δουλέψει θα πρέπει να της δώσεις τα εξής στοιχεία:
  • Το τυποποιημένο μήκος της ράβδου σε μέτρα (όρισμα sngBarLenght).
  • Έναν πίνακα με τα μήκη των κομματιών που πρόκειται να κοπούν σε φθίνουσα σειρά (όρισμα asngPiecesLength()).
Εκείνη θα σου επιστρέψει:
  • Τον αριθμό των απαιτούμενων ράβδων (επιστρεφόμενη τιμή).
  • Έναν πίνακα με τα μήκη των κομματιών ομαδοποιημένα στις αντίστοιχες ράβδους (όρισμα asngBarPieces())
  • και αν θέλεις και το αναμενόμενο υπόλοιπο (φύρα) της κοπής σε μέτρα (προαιρετικό και ..πλεονάζον όρισμα sngWaste)

Ο κώδικάς της φαίνεται παρακάτω ενώ η διαδικασία TestCutting είναι ένα παράδειγμα κλήσης της.
Η διαδικασία εκτυπώνει τα αποτελέσματα και στο παράθυρο Immediate οπότε μπορείς για την ώρα
να βλέπεις από εκεί τα αποτελέσματα κάνοντας δοκιμές αλλάζοντας τις τιμές και το πλήθος των ζητούμενων τιμών.

Αν βρεις τα αποτελέσματα σωστά και χρήσιμα, μπορούμε στη συνέχεια να την κάνουμε
να δουλεύει και με σύνολα εγγραφών ώστε να είναι χρήσιμη στο περιβάλλον της Access.

Καλές κοπές σου εύχομαι λοιπόν και καλή συνέχεια!

Function BestCuttingBars(ByVal sngBarLenght As Single, _
asngPiecesLength() As Single, asngBarPieces() As Single, _
Optional ByRef sngWaste As Single) As Integer

'***Cutting optimization***
'By nisgia for ms-office.gr
'19-Okt-2010

Dim sngTemp As Single
Dim sngPiece As Single
Dim sngSum As Single
Dim intPos As Integer
Dim intLB As Integer
Dim intUB As Integer
Dim intBars As Integer
Dim intWastePcs As Integer
Dim i As Integer

intUB = UBound(asngPiecesLength())
intLB = LBound(asngPiecesLength())
ReDim asngBarPieces(intLB To intUB, 0 To 2)

Debug.Print "---Best---8<---Cutting----"; Now
Debug.Print
Debug.Print "Table ------------------------------"
Debug.Print vbTab; vbTab; "Item"; " Bar "; "Length(m)"; " Waste(m)"
Debug.Print vbTab; vbTab; "------------------------------"

For intPos = intLB To intUB
sngTemp = Round(asngPiecesLength(intPos), 3)

If sngTemp > 0 And sngTemp <= sngBarLenght Then
sngSum = sngSum + sngTemp
intBars = intBars + 1
asngBarPieces(intPos, 0) = intBars
asngBarPieces(intPos, 1) = sngTemp

For i = intPos + 1 To intUB
sngPiece = Round(asngPiecesLength(i), 3)
If sngPiece > 0 Then
If sngPiece > Round(sngBarLenght - sngTemp, 3) Then
'
Else
asngBarPieces(i, 0) = intBars
asngBarPieces(i, 1) = sngPiece
sngTemp = sngTemp + sngPiece
sngSum = sngSum + sngPiece
asngPiecesLength(i) = 0
End If
End If
Next i
asngBarPieces(intPos, 2) = Round(sngBarLenght - sngTemp, 3)
If asngBarPieces(intPos, 2) > 0 Then intWastePcs = intWastePcs + 1
End If
Debug.Print vbTab; vbTab; intPos + 1; _
" | " & asngBarPieces(intPos, 0); _
" | " & asngBarPieces(intPos, 1); _
Space(5 - Len(CStr(asngBarPieces(intPos, 1)))); _
" | " & asngBarPieces(intPos, 2)
Next intPos

sngWaste = Round((sngBarLenght * intBars) - sngSum, 3)
BestCuttingBars = intBars

Debug.Print vbTab; vbTab; "------------------------------"
Debug.Print "Total: "; intUB + 1; " | " & intBars; _
" | " & sngSum; " | "; sngWaste & "(" & intWastePcs & " pcs)"
End Function

Sub TestCutting()
Dim asngPieces(5) As Single 'Ο πίνακας με τα κομμάτια προς κοπή
Dim asngBarPieces() As Single 'Ο πίνακας με τα κομμάτια αντιστοιχισμένα στις βέργες
Dim intBarsNeeded As Integer 'Οι ελάχιστες απαιτητές ράβδοι
Dim sngWaste As Single 'Η ελάχιστη υπολογιζόμενη φύρα

asngPieces(0) = 5 'Πρώτο κομμάτι: 5 μέτρα
asngPieces(1) = 4.55 '...
asngPieces(2) = 4.55 '...
asngPieces(3) = 2 '...
asngPieces(4) = 1.45 '...
asngPieces(5) = 1 '...

intBarsNeeded = BestCuttingBars(6, asngPieces(), asngBarPieces(), sngWaste)
'Τώρα ο πίνακας asngBarPieces περιέχει ομαδοποιημένα τα κομμάτια στις ράβδους
'η μεταβλητή intBarsNeeded έχει τον αριθμό των απαιτούμενων ράβδων
'ενώ η μεταβλητή sngWaste το υπόλοιπο (φύρα) της κοπής
End Sub

kapetang 20-10-10 16:40

Καλησπέρα στην παρέα
Κάνοντας μία δοκιμή στον κώδικα του Γιάννη προέκυψε το αποτέλεσμα
1. Λύση
Κώδικας:

Table  ------------------------------
        Item  Bar  Length(m) Waste(m)
        ------------------------------
        1  |  1 |  3,5  |  0,5
        2  |  2 |  2,55  |  0,9
        3  |  2 |  2,55  |  0
        4  |  1 |  2    |  0
        5  |  3 |  1,45  |  3,55
        6  |  3 |  1    |  0
        ------------------------------
Total:  6  |  3 |  13,05 |  4,95(3 pcs)

Εύκολα διαπίστωσα ότι η κοπή των ράβδων θα μπορούσε να γίνει σύμφωνα και με τον ακόλουθο πίνακα.
2.Λύση
Κώδικας:

Table  ------------------------------
        Item  Bar  Length(m) Waste(m)
        ------------------------------
        1  |  2 |  3,5  |  1,5
        2  |  1 |  2,55  |  0
        3  |  3 |  2,55  |  3,45
        4  |  1 |  2    |  0
        5  |  1 |  1,45  |  0
        6  |  2 |  1    |  0
        ------------------------------
Total:  6  |  3 |  13,05 |  4,95(3 pcs)

Στο ερώτημα ποια λύση είναι καλύτερη, αφού και οι δύο χρησιμοποιούν 3 ράβδους και δίνουν ίδια φύρα 3,95 μ, χωρίς να ξέρω τη γνώμη του Σάκη, θα απαντούσα η δεύτερη που συγκεντρώνει τη φύρα σε δύο κομμάτια, αν φυσικά δεν πετιέται η φύρα.
Έτσι πιστεύω ότι ο αλγόριθμος για την επίλυση του ενδιαφέροντος και δύσκολου προβλήματος που έθεσε ο Σάκης χρειάζεται βελτίωση.

Φιλικά/Γιώργος

sakis 20-10-10 17:41

1 Συνημμένο(α)
ευχαριστω πολυ για τις απαντησεις σας.ειναι οντως αυτο που θελω να κανω.επειδη δεν γνωριζω και πολλα απο προγραμματισμο θα ηθελα αν μπορει καποιος να μου πει που θα βαλω των κωδικα στο συννημενο που θα στειλω.πρεπει να κανω καποιον πινακα η καποια φορμα;;;;;

sakis 20-10-10 17:59

θελω να αναφερω οτι εφαρμογες του εμποριου εχω αγορασει ηδη το profil αποτην εταιρια themelio και εχω και το thyrae που το δινουν δωρεαν για τρεις μηνες τα εμπορικα των προφιλ.θεωρω ομως οτι το προγραμμα που εχω φτιαξει εγω στην access ειναι (για μενα)πολυ καλυτερο γιατι ειναι ανοιχτο και μπορω να προσθεσω λειτουργειες οποτε χρειαστει.κανω εκθεσεις οπως με βολευει,κανω προσφορες πολυ πιο ομορφες ,εχω βαλει εκτος απο το κουφωμα και ρολα , σιτες,τζαμια και γενικος οποτε χρειαστει το φτιαχνω οπως θελω(με την βοηθεια και των ανθρωπων του forum). μεχρι στιγμης δουλευω τα παντα απο το δικο μου προγραμμα και αναγκαζομε να ξαναγραφω τις διαστασεις στο thyrae η στο profil για να κανω βελτιστοποιηση.τωρα με την βοηθεια σας πιστευω οτι θα το φτιαξουμε και αυτο.

kapetang 21-10-10 20:48

1 Συνημμένο(α)
Σάκη επισυνάπτω το αρχείο. Άνοιξέ το στην access

sakis 21-10-10 21:16

γιωργο ευχαριστο πολυ.ως προεπιλογη μου ειχε ανοιχτο το watch window και ως ασχετος με vb ειχα την εντυπωση οτι πρεπει να καλεσω τον κωδικα απο καποια φορμα.στο προηγουμενο μυνημα σου κανεις μια σωστη διαπιστοση για την φυρα.για να βγαλεις αυτα τα αποτελεσματα που θεωρω πιο σωστα απο αυτα του γιαννη εκανες καποια αλλαγη στον κωδικα?? (χωρις φυσικα να θελω να μειωσω τον γιαννη που αντιθετος τον ευχαριστο πολυ που ασχοληθηκε με το προβλημα μου). το μεγαλο μου ερωτημα ειναι πως θα κανω αυτον η εναν βελτιωμενο κωδικα να δουλεψει σε access???


Η ώρα είναι 08:45.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2